Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
14 страниц V  < 1 2 3 4 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты: Все вопросы, Алгоритмы, оптимизация, особености и хитрости в скриптинге
azathoth
сообщение Dec 5 2006, 14:36
Сообщение #26


Level 12
Иконки Групп

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



QUOTE(mamuc @ Dec 5 2006, 12:48) [snapback]99860[/snapback]
QUOTE
Да, по этому поводу там усе сделано. Даже можно строку выводить или в экшн писать по несколько скриптов... Тут все ок. Можно теперь вообще всю обработку диалогов в 1 скрипт запихать... Чтоб не рыть потом тоннами.

...ммм а пгодробнее об этом можно и в деталях как именно...для тех, кто пока в обсидиановском тулсете не работает....
насколько все удобней.. итд итп ...плз


Берешь ветку диалога, выбираешь Экшн -> Добавить и суешь туды скрипт (ну пока как обычно), далее впечатываешь в появившиеся поля переменные для этого скрипта (появляются если он их поддерживает). Если мало - добававить еще таких скриптов к той же ветке, выполнятся они будут по очереди. В игре уже есть пачка простеньких кирпичиков типа "Заставить (таг1) напасть на объект (таг2)", "Забрать итем (таг)" и т.п. Так что можно выстроить комбинацию из них вместо написания отдельного скрипта для каждой ветки.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Dec 5 2006, 15:49
Сообщение #27


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



azathoth большое спасибо за информацию.... (IMG:style_emoticons/kolobok_light/hi.gif)
меня больше всего заинтересовал вот такой нюанс
QUOTE
Даже можно строку выводить

это что-то действительно новое и больше не надо будет с SetCustomToken() работать? или это и есть то самое...

...или я чего-то не так понял... (IMG:style_emoticons/kolobok_light/pardon.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vhall
сообщение Dec 5 2006, 16:20
Сообщение #28


Level 19
Иконки Групп

Класс: Обыватель
Характер: True Neutral
Раса: Дварф
NWN: Контент



Мамук, я не в теме, но думаю, строка это "string". Т.е. можно выводить строку в фразу из тлк.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Gloom
сообщение Dec 5 2006, 18:26
Сообщение #29


Level 2
*

Класс: Псионик
Характер: True Neutral
Раса: Рептилия



Вопрос косвенно связанный со скриптами... а сколько спелов(spells) в NWN2?

Griffon: Открой spells.2da и посчитай.

Сообщение отредактировал Griffon - Dec 6 2006, 10:54
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Plut
сообщение Dec 6 2006, 11:28
Сообщение #30


Стилспатер
**

Класс: Воин
Характер: Chaotic Good
Раса: Человек



QUOTE
это что-то действительно новое и больше не надо будет с SetCustomToken() работать? или это и есть то самое...

Этого я делать пока не пробовал... попробуем возвращать строку....
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ShadowKeeper
сообщение Dec 15 2006, 11:53
Сообщение #31


Level 1


Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Народ, а не кто не знает, как поменять расу, пол и класс игрока при входе в локацию и желательно при этом и внешний вид?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 15 2006, 12:52
Сообщение #32


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



если не урезали это в НВН2, то по идее SetCreatureAppearance или что-нить в этом роде. А если урезали - полиморфом тока наверное (IMG:style_emoticons/kolobok_light/unknw.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ShadowKeeper
сообщение Dec 16 2006, 12:14
Сообщение #33


Level 1


Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



NSS
void SetCreatureAppearanceType(object oCreature, int nAppearanceType);

Только меняет внешний вид, при этом, если игрок менял при создании персонажа лицо прическу и из-за некоторой одежды персонаж просто исчезает, но все равно спасибо.
Будим исследовать дальше.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Dec 16 2006, 12:58
Сообщение #34


Level 12
Иконки Групп

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Класс не поменять точно, максимум, что можно сделать - это сбить уровни до 1, а затем пролевелять РС обратно до того уровня, на котором он был нужным классом(см функции SetXP() и LevelUpHenchman()). Т.е, к примеру, если меняем на файтера, то Маг(20) превратится в Маг(1)-Воин(19). Если игрок 1го уровня, то этот трюк, конечно, не даст вообще никаких результатов.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ShadowKeeper
сообщение Dec 16 2006, 13:23
Сообщение #35


Level 1


Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Просто по ходу сюжета игрок вспоминает свои прошлые жизни, где он был воином магом и творил великие дела. Попробую обойтись только внешним видом и Cut-Сценами вместо боев (IMG:style_emoticons/kolobok_light/sad.gif) . Отсюда следует следующая проблема, как запретить ему просмотр персонажа?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Dec 16 2006, 13:42
Сообщение #36


Level 4
**

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить



ShadowKeeper, ну для кутсцены ничего делать и не нужно, игроку и так доступен только внешний вид. (IMG:style_emoticons/kolobok_light/smile.gif) Посему, SetCreatureAppearanceType, будет в самый раз. (IMG:style_emoticons/kolobok_light/wink3.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Gloom
сообщение Jan 5 2007, 19:07
Сообщение #37


Level 2
*

Класс: Псионик
Характер: True Neutral
Раса: Рептилия



Вопрос следующий
Нужен таг локации в которой находится игрок
и еще интересно почему не работает
NSS
string sCheckTag = GetTag(GetArea(oPC));

он возвращает пустоту
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jan 5 2007, 19:13
Сообщение #38


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE(Gloom @ Jan 5 2007, 19:07) [snapback]101568[/snapback]
он возвращает пустоту

хм.. попробуй для начала определить, получается ли там локация. Типа так:
NSS
void main()
{
object oPC = GetFirstPC();
SendMessageToPC(oPC,"Имя: "+GetName(oPC));
object oArea = GetArea(oPC);
SendMessageToPC(oPC,"Локация: "+GetName(oArea));
}

Короче суть в том, чтобы дебажить на всех этапах (определение игрока, определение локации), чтобы понять где именно косяк.
Так как игра только вышла, ни у кого еще нет достаточных знаний об ошибках и подводных камней, так что ищем (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Gloom
сообщение Jan 5 2007, 19:27
Сообщение #39


Level 2
*

Класс: Псионик
Характер: True Neutral
Раса: Рептилия



Не получается (IMG:style_emoticons/kolobok_light/sad.gif)
только у меня
NSS
object oPC = GetEnteringObject();

потомучто скрипт oncliententer
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jan 5 2007, 19:33
Сообщение #40


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Что не получается-то?
Возможно возвращается пустота, так как стоит скрипт на КлиентЭнтер. Попробуй проверить на тригере или на ОнЭнтер локи.

Сообщение отредактировал -fenix- - Jan 5 2007, 19:34
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Gloom
сообщение Jan 5 2007, 19:53
Сообщение #41


Level 2
*

Класс: Псионик
Характер: True Neutral
Раса: Рептилия



Не получается = возвращает "Локация - " т.е пустоту
он_энтер локи тоже не работает

С он_ентер тригера ситуация та же...
Пустота

Ах да, во всех трех случаях имя игрока показывается правильно
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Narruin
сообщение Jan 5 2007, 20:36
Сообщение #42


Level 2
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



QUOTE(Gloom @ Jan 5 2007, 20:53) [snapback]101575[/snapback]

Не получается = возвращает "Локация - " т.е пустоту
он_энтер локи тоже не работает

С он_ентер тригера ситуация та же...
Пустота

Предположу, что название локи на русском.
На OnClientEnter не советую вешать. Слабо срабатывает. Лучше на эвенты локации или уж на PC Loaded.
Попробовал у себя только что. Версия 1.03. Работает.
Кинул вещь на землю в локе и дописал этот код в On Acquire Item (чиста ради срабатывания (IMG:style_emoticons/kolobok_light/smile.gif) )
NSS
object oPC = GetFirstPC ();
object oArea = GetArea (oPC);
string sName = GetName (oArea);
FloatingTextStringOnCreature (sName, oPC);


Сообщение отредактировал Narruin - Jan 5 2007, 20:57
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Gloom
сообщение Jan 5 2007, 20:57
Сообщение #43


Level 2
*

Класс: Псионик
Характер: True Neutral
Раса: Рептилия



Имя локи на английском, версия 1.3, повесил ваш скрипт он_ентер тригера...
NSS
object oArea = GetArea ();

ругается дебагер
NSS
FloatingTextStringOnCreature (sName, oPC);

текст не показывает

Моя ошибка, тепрь показывает имя... у меня DisplayName было пусто
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jan 5 2007, 21:02
Сообщение #44


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



ну потому что там не скрипт в полном понимании, а набросок (с синтаксическими и прочими ошибками типа лишних пробелов)

Если бы глюк был только в onClientEnter, можно было бы списать на то что не успевает грузиться.. но если такая же петрушка на триггере, то похоже возможно не определяет.. возможное те банально GetArea не работает. Эх,, был бы тулс под рукой, поэкспериментировал бы.
зы: попробуй взять локу по тэгу и вывести ее название.
зыы: попробуй взять локу не по oPC, а по триггеру, те oArea = GetArea(OBJECT_SELF).

--------------

э.. а теперь помедленнее, что показывает и где? (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Narruin
сообщение Jan 5 2007, 21:14
Сообщение #45


Level 2
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



QUOTE(Lex @ Jan 5 2007, 22:02) [snapback]101587[/snapback]

те банально GetArea не работает. Эх,, был бы тулс под рукой, поэкспериментировал бы.

GetArea работает.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Gloom
сообщение Jan 5 2007, 21:30
Сообщение #46


Level 2
*

Класс: Псионик
Характер: True Neutral
Раса: Рептилия



Показывает название локации
Тот скрипт который выше
NSS
object oArea = GetArea ();

кстати работает хоть и ругается дебагер
остальные варианты тоже работают

на он_ентер локации проверял

NSS
string sName = GetTag(GetArea(OBJECT_SELF));
FloatingTextStringOnCreature (sName, oPC);

на on_enter локации работает
на oncliententer -нет
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jan 5 2007, 22:10
Сообщение #47


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Ну вот, знач работает. (IMG:style_emoticons/kolobok_light/smile.gif)
А если на oncliententer не пашет, значит, как гооврил Лекс, не успевает грузиться. Тут вообще многа чего не будет срабатывать. Операции с игроком должны проходить, по идее с вещами на нем, в общем смотреть надо.

Сообщение отредактировал -fenix- - Jan 5 2007, 22:12
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jan 6 2007, 20:25
Сообщение #48


Level 12
Иконки Групп

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



OnClientEnter запускается еще до того, как персонаж попал в какую-либо локацию.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Gloom
сообщение Jan 7 2007, 09:35
Сообщение #49


Level 2
*

Класс: Псионик
Характер: True Neutral
Раса: Рептилия



Всем спасибо за помощь (IMG:style_emoticons/kolobok_light/angel.gif)

Сообщение отредактировал Gloom - Jan 7 2007, 09:54
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
webkent
сообщение Jan 8 2007, 05:26
Сообщение #50


Level 2
*

Класс: Убийца
Характер: Lawful Evil
Раса: Рептилия



Пытаюсь сделать так: При получении предмета такого-то предмет удаляется и появляется рядом волк и становится хенчманом. При попытке удалить предмет вылетает из игры (НВН2). Сдается мне это изза того что не успевает что-то сделать, да? Профи, подскажите как лучше поправить. Вот мой код в OnAcquireItem:

NSS
int nObjectType = OBJECT_TYPE_CREATURE;
    object oTaker = GetModuleItemAcquiredBy(); 
    object oItem = GetModuleItemAcquired();
    location lLocationOfTaker = GetLocation(GetModuleItemAcquiredBy());
    if (GetResRef(oItem) == "it_dw10") {
    ActionTakeItem(oItem, oTaker); //тут вылетает с ошибкой
    CreateObject(nObjectType, "c_dogwolfdire",lLocationOfTaker, FALSE, "c_dogwolfdire1");
    object oHench = GetObjectByTag("c_dogwolfdire1");
    AddHenchman(oTaker, oHench);
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

14 страниц V  < 1 2 3 4 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20th January 2018 - 11:59