![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3801
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
shadowdweller, огромное спасибо! Я и сам понимаю, что с триггером проще, но видимо я там где-то тож лопухнулся в скрипте - и...
(я знаю, что тэги без кавычек (IMG:style_emoticons/kolobok_light/rolleyes.gif) ) ну дык сделай чтобы рабатало, а не виласепедры придумывай. 1. не видно где устанавливается локалка 2. GetPCSpeaker() на онПерсепшен? Устанавливалась в диалоге, в другом скрипте. Про Speaker - OnPerception - поправлю, вдруг получися. А придумывать велосипеды я престану, когда научусь нормально. Пока же я выкручиваюсь.. Сообщение отредактировал Lirulin - Jul 6 2008, 20:37 |
![]()
Сообщение
#3802
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
(я знаю, что тэги без кавычек) А я вот не знала. Сколько мучилась из-за этого... Теперь неосознанное стремление всем разжевать. (IMG:style_emoticons/kolobok_light/smile.gif) Вот только единственное - НПС у меня не бежит, а вразвалочку прогулочным шагом идет. Слышала, что есть какая-то переменная Neverwinter Script int bRun , но вот как задавать - не знаю...Думаю, из более солидных специалистов кто поможет (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#3803
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
за отсутствием солидных спецов могу помочь я.
nRun - параметр в функции ActionMoveToObject (и всех других Move'ов), подробнее см. помощник в скрипт эдиторе или лексикон. |
![]()
Сообщение
#3804
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
А я вот не знала. Сколько мучилась из-за этого... Теперь неосознанное стремление всем разжевать. (IMG:style_emoticons/kolobok_light/smile.gif) Вот только единственное - НПС у меня не бежит, а вразвалочку прогулочным шагом идет. Ну, я вот хоть и знаю, а иногда забываю! Однажды скопировал нужный мне тэг из скрипта, придал этот тэг объекту (не помню, что это было), а кавычки забыл убрать. Долго не мог понять, почему не работает=) А вроде еще можно просто скорость перемещения задать? float'ом... то ли после того, какой собсно, объект перемещается, писать этот float, то ли... не помню! (IMG:style_emoticons/kolobok_light/unsure.gif) У меня у самого вразвалочку топают! (но им вроде бегать по статусу не положено, потому я не задумывался над этим=)) |
![]()
Сообщение
#3805
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Если чару, то через Leto. (IMG:style_emoticons/kolobok_light/biggrin.gif) Скорость можно менять и через эффект. EffectMovementIncrease (и Decrease или что-то похоже. Поиск по слову movement рулит)
|
![]()
Сообщение
#3806
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
nRun - параметр в функции ActionMoveToObject (и всех других Move'ов), подробнее см. помощник в скрипт эдиторе или лексикон. Lex, спасибо огромное! По секрету, именно из скрипт-эдитора в тулсете я про эту функцию и узнала. Даже прочитала, перевела и догадалась, что она значит, правда! Проблема не в том, где найти, а в том, как пользоваться. Но твое внимание льстит, однозначно. |
![]()
Сообщение
#3807
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Проблема не в том, где найти, а в том, как пользоваться. (IMG:style_emoticons/kolobok_light/pardon.gif) проще, как говорится, некуда: ставишь TRUE - бежит. Ставишь FALSE (или ничего не ставишь) - не бежит. Думал такие вещи ты уже знаешь. TINT: чтобы указать необязательный параметр у функции, необходимо обязательно указывать все параметры до него, даже если вас устраивают значения по умолчанию. TINT2: обязательный параметр это тот параметр, который не имеет значения по умолчанию. Они идут первыми, только после того как закончатся все обязательные параметры, идут необязательные, со значением по умолчанию. Перемешать порядок параметров нельзя. Создавая свои функции, учитывайте это. Старайтесь, так же, ставить необязательные параметры в порядке частоты их изменения. Те тот парамерт, который чаще всего будет настраиваться разработчиком нужно ставить как можно раньше. Тот, который будет настраиваться редко, в самый конец списка. |
![]()
Сообщение
#3808
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Чертишь триггер, в таг триггера пишешь TR_CONV_ТАГ_ТВОЕГО_НПС Скрипт в слот на OnEnter. Имя триггера - фраза которую скажет НПС увидев РС. В свойствах KeyTag - больше 0 - подбежит. Все.
Neverwinter Script //::////////////////////////////////////////////// //:: OnEnter am_ten_speak_npc //:: Copyright © 2005 WRG! //::////////////////////////////////////////////// /* Текст над NPC KeyTag - Количество раз. Если 0, то бесконечно. TAG НПС приписываем к четырем знакам к TAG-у триггера. НПС SubRace - анимации, НПС Deity - Длительность анимаций. */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 21.04.2005 //::////////////////////////////////////////////// void main() { object oPC = GetEnteringObject(); // PC object oTrig = OBJECT_SELF; string sTag = GetTag(oTrig); // Таг триггера TR_SPK_ string sNPC = GetStringRight(sTag, (GetStringLength(sTag)- 7)); // Таг НПС object oNPC = GetNearestObjectByTag(sNPC); string sSpeak = GetName(oTrig); // Фраза int i = StringToInt(GetLockKeyTag(oTrig)); // Количество раз int iSp = GetLocalInt(oTrig, "SPEAK"); int iAnim = StringToInt(GetSubRace(oNPC)); // Анимации float fAnim = StringToFloat(GetDeity(oNPC)); // Длительность анимаций if (!GetIsObjectValid(oNPC) || !GetIsPC(oPC) || iSp >= i && i!=0) { return; } AssignCommand(oNPC, ClearAllActions()); AssignCommand(oNPC, ActionDoCommand(SetFacingPoint(GetPosition(oPC)))) ; DelayCommand(1.0, AssignCommand(oNPC, SpeakString(sSpeak))); if (GetSubRace(oNPC)!="") { if (GetDeity(oNPC)=="") fAnim = 1.0; AssignCommand(oNPC, ActionPlayAnimation(iAnim, 1.0, fAnim)); } if (i!=0) { SetLocalInt(oTrig, "SPEAK", (iSp+1)); } } Есть скрипт для НПС, который будетбегать за РС и говорить типа: "Великий воин, последователь Темпуса! Подойди ко мне, базар есть!" Настраивается дистанция. Напирмер, вы отбежали от НПС на 15 метров и все, он успокоился пока вас снова не увидит. |
![]() ![]()
Сообщение
#3809
|
|
Level 4 ![]() ![]() Класс: Друид Характер: True Neutral Раса: Человек ![]() |
Я тут недавно узнал что есть такая 2да таблица как hen_companion ( hen_familiar).
Вообщем я долго искал, и 2да.биф смотрел, но не нашел, кто может сказать как это таблица выглядит? (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) |
![]()
Сообщение
#3810
|
|
Level 12 ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] ![]() |
Цитата Вообщем я долго искал, и 2да.биф смотрел, но не нашел наверное плохо смотрели, как раз там она и находится. (хотя для начала я всегда советовал бы заглядывать в xp2patch.bif и xp2.bif для последний версий тулсета). получите и распишитесь: hen_companion.2da Код 2DA V2.0 NAME BASERESREF STRREF DESCRIPTION 0 Badger NW_AC_BADGER 1993 5569 1 Wolf NW_AC_WOLF 1578 5929 2 Bear NW_AC_BEAR 1580 5986 3 Boar NW_AC_BOAR 1577 5988 4 Hawk NW_AC_HAWK 5989 5990 5 Panther NW_AC_PANT 5991 5992 6 Spider NW_AC_SPID 1573 5993 7 Direwolf NW_AC_DWLF 10526 5994 hen_familiar.2da Код 2DA V2.0
NAME BASERESREF STRREF DESCRIPTION 0 Bat NW_FM_BAT 1995 5636 1 Panther NW_FM_CRAG 5995 5996 2 Hellhound NW_FM_HELL 5997 5998 3 Imp NW_FM_IMP 5999 6000 4 Firemephit NW_FM_FIRE 6001 6002 5 Icemephit NW_FM_ICE 6003 6004 6 Pixie NW_FM_PIXI 6005 6007 7 Raven NW_FM_RAVE 6008 6009 |
![]()
Сообщение
#3811
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Есть скрипт для НПС, который будетбегать за РС и говорить типа: "Великий воин, последователь Темпуса! Подойди ко мне, базар есть!" Настраивается дистанция. Напирмер, вы отбежали от НПС на 15 метров и все, он успокоился пока вас снова не увидит. И он, этот скрипт, на Perception ставится, да? Или куда-то еще, а дистанция задается произвольно, независимо Perception'а NPC? Сообщение отредактировал Lirulin - Jul 9 2008, 21:48 |
![]()
Сообщение
#3812
|
|
Level 4 ![]() ![]() Класс: Друид Характер: True Neutral Раса: Человек ![]() |
Да, наверно действительно плохо искал.
Спасибо! |
![]()
Сообщение
#3813
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
Опять о триггерах и разговорах. Мы уже когда-то спрашивали тут, что делать с тем, что при 1 хенче реплика есть, при двух - нет=( Но это-то ладно... А как быть, если надо чтобы некоторые хенчи говорили что-то, а другие - нет? Только через их тэги устанавливать, какие говорят нужную фразу, а какие нет?
|
![]()
Сообщение
#3814
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Да
|
![]()
Сообщение
#3815
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
Спасибо! А если хенчи по расе отличаются, то через racial type можно? Или все равно только тэгами?
|
![]() ![]()
Сообщение
#3816
|
|
Level 4 ![]() ![]() Класс: Друид Характер: True Neutral Раса: Человек ![]() |
Я недавно скачал СЕР 2.1 и начал разбираться с системой лошадок, практически во всем разобрался, но 1 вопрос остался, где брать радиальное меню, которое управляет этими лошадками?
|
![]()
Сообщение
#3817
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
|
![]()
Сообщение
#3818
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Очередной дурацкий вопрос из моей коллекции (IMG:style_emoticons/kolobok_light/smile.gif)
Хочу НПС OnSpawn прописать последовательность действий, которую он должен постоянно выполнять - пошел на первый вейп, сделал там что-нибудь, пошел на второй, постоял, пошел на третий, и так далее. Потом так же - обратно. Перешел к одному - действие - ко второму - действие, и т.д. Как пишется анимация, я знаю и напишу. Вопрос в другом - нужно, чтобы НПС делал это все постоянно. Насколько я знаю, скрипт OnSpawn срабатывает только один раз. Как сделать, чтобы он работал постоянно. Вариант OnHeartbeat отпадает - за 6 секунд НПС с такой последовательностью действий не управится. Кам к мне поступить? |
![]()
Сообщение
#3819
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Я бы через хербит делал, только надо воткнуть туда проверку (мы рядом с нужным вейпом? да - делаем то, что надо, идём дальше, нет - выходим).
|
![]()
Сообщение
#3820
|
|
Level 12 ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] ![]() |
можно вставить в экшен несколько экшенов, в том числе тот, который их вставляет... (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) хз как сказать нормально - чтобы объяснить рекурсию нужно сначала объяснить рекурсию... так что пример:
Neverwinter Script void DoItAgain()
{ SetCommandable(TRUE); ActionMoveToLocation(...); ActionPlayAnimation(...); // ... // и прочие непотребства ActionDoCommand(DoItAgain()); SetCommandable(FALSE); // а это чтобы наш "шатун" не отвлекался на настырного игрока } void main() { // ещё какая-то инициализация по умолчанию // ... DoItAgain(); } Сообщение отредактировал azathoth - Jul 17 2008, 16:00 |
![]()
Сообщение
#3821
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
shadowdweller, Лекса пни. Он это делает на пять с плюсом. (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#3822
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Ну вот... Из трех советов до конца поняла только последний... Дядюшка Айв, не хочу я никого пинать, я хочу сама уметь. (IMG:style_emoticons/kolobok_light/sad.gif) Разжуйте мне, плиз, как для идиота, а? Хотя, почему - "как"? (IMG:style_emoticons/kolobok_light/sad.gif)
azathoth, спасибо (IMG:style_emoticons/kolobok_light/smile.gif) А то, что ты писал - куда ставится? На OnSpawn? И что такое "еще какая-то инициализация по умолчанию"? Это то, что в дефолтном скрипте может стоять? Есть, вообще, какие-то необходимые вещи, которые туда вписываются? С остальным, вроде, понятно более-менее. |
![]()
Сообщение
#3823
|
|
Level 12 ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] ![]() |
я скрипт не тестировал даже (IMG:style_emoticons/kolobok_light/blum3.gif) предупреждаю, просто показал вариант работы экшанов. Ставится на онСпаун, действительно, в других местах он будет не к месту. "инициализация по умолчанию" - это то что обычно у неписи в онСпаун стоит (много чего там, вроде задания лисниг паттернов использующихся для работы ИИ - наверно ж важно, я такие вещи предпочитаю руками не трогать). можно просто этот скрипт запустить кроме всего прочего.
Neverwinter Script ExecuteScript("nw_c2_default9", OBJECT_SELF); а вообще я бы тоже это через онХатбит бы сделал, т.е. заставляем непись выполнять одно из действий А Б С и т.д., записываем текущее действие (локальная переменная), в следующий запуск соотвественно смотрим переменную, проверяем и дошел ли вообще нпц до вейпойнта и посылаем его выполнять следующее действие. |
![]()
Сообщение
#3824
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Придется пинать Лекса. Жестокие вы люди, господа...
|
![]()
Сообщение
#3825
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
сначала курим (правда там на примере UD скрипта, но логика у него точно такая же как и у HB в данном случае):
http://nwnmod.narod.ru/stat_anim_npc1.htm http://nwnmod.narod.ru/stat_anim_npc2.htm демо-модуль с кузнецами: http://www.wrg.ru/download.php?view.50 потом можно пнуть, только нежно. зы: делайте скидку на время написания, это было давно, некоторые конструкции или подходы уже могли устареть. |
![]() ![]() |
Текстовая версия | Сейчас: 28th April 2025 - 22:04 |