![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2516
|
|
Level 3 ![]() Класс: Обыватель Характер: Chaotic Good Раса: Человек ![]() |
Доброго времени суток.
Возникла следующая проблема: Изменил стандартный скрипт заклинания лечения к проверке на андед добавил проверку на субрасу но проверка не срабатывает. Ошибок вроде нет пробовал в отдельном скрипте - работает. Ткните, пожалуйста носом что не так делаю, подозреваю что проблема в руках =) Пробовал просто вносить изменения в тулсете в стандартный скрипт, пробовал вносить изменения в .nss выдраный из .bif'a и ложил его в оверрайд.. Или нужно обязательно делать отдельный скрипт и прописывать его в spells.2da? И еще вопрос теоретический: Какой приоритет использования ресурсов игрой? По моим предположениям: сначала в оверриде смотрит, потом ресурсы хаков и в последнюю очередь использует стандартные ресурсы? |
![]()
Сообщение
#2517
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
QUOTE(windhover @ Sep 6 2006, 03:07) [snapback]91142[/snapback] сначала в оверриде смотрит, потом ресурсы хаков и в последнюю очередь использует стандартные ресурсы Верно. Если отредактировать стандартный скрипт, то будет работать он. Никуда его класть не надо. Если удалить его из модуля то будет пахать дефолтный с таком же именем от Биовар. |
![]()
Сообщение
#2518
|
|
Level 3 ![]() Класс: Обыватель Характер: Chaotic Good Раса: Человек ![]() |
Спасибо, разобрался в чем проблема:
Я вносил изменения в скрипт nw_i0_spells - инклюд. Почитал в лексиконе, что для того чтобы изменения внесенные в инклюд вступили в силу нужно перекомпилировать ВСЕ скрипты которые ссылаються на данный инклюд. Возможно это можно какимто образом обойти? А то слишком много скриптов надо перекомпиливать. (IMG:style_emoticons/kolobok_light/sad.gif) Покачто я решил проблему так: написал свой инклюд и дал ссылку на него в тех скриптах заклинаний, которые мне нужны, перекомпилил все это дело - заработало. Возможно есть решение данной проблемы попроще? |
![]()
Сообщение
#2519
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
QUOTE(windhover @ Sep 7 2006, 19:15) [snapback]91245[/snapback] Возможно это можно какимто образом обойти? нет, но это можно сделать за пару минут. ВТулсете Build - Build Module. Если нужна только копмиляция, ставь галочку в Compile и в Scripts, остальные галочки снимай. |
![]()
Сообщение
#2520
|
|
Level 3 ![]() Класс: Обыватель Характер: Chaotic Good Раса: Человек ![]() |
QUOTE(Lex @ Sep 7 2006, 18:29) [snapback]91246[/snapback] нет, но это можно сделать за пару минут. ВТулсете Build - Build Module. Если нужна только копмиляция, ставь галочку в Compile и в Scripts, остальные галочки снимай. Эм.. Дело в том, что в лексиконе билд модуля тоже описывается как панацея.. но не помогло. (IMG:style_emoticons/kolobok_light/unsure.gif) Я так понял, что стандартные скрипты в которые не вносят изменений не компилируются при билде модуля. Хотя может это у меня глюк, проверял на 1.68. |
![]()
Сообщение
#2521
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
да, стандартные не билдаются, поэтому если ты вносишь изменения в стандартную библу, которая влияет на заклы, тебе еще скрипты этих заклов надо у себя в модуле пересохранить. Вродь только так.
|
![]()
Сообщение
#2522
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Стандартные инклюды типа nw_i0_spells, nwscript очень нежелательно изменять. Ещё раз подумай, надо ли тебе это.
|
![]()
Сообщение
#2523
|
|
Level 3 ![]() Класс: Обыватель Характер: Chaotic Good Раса: Человек ![]() |
QUOTE(virusman @ Sep 7 2006, 21:54) [snapback]91271[/snapback] Стандартные инклюды типа nw_i0_spells, nwscript очень нежелательно изменять. Ещё раз подумай, надо ли тебе это. Да я просто скопировал этот инклюд, внес в него нужные изменения, сохранил с другим названием, прописал его в нужных заклинаниях и все откомпилил.. так вроде проще всего и безопастнее, наверно (IMG:style_emoticons/kolobok_light/smile.gif) Всем спасибо за советы. Сообщение отредактировал windhover - Sep 8 2006, 13:00 |
![]()
Сообщение
#2524
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
У меня проблема. Надо что бы когда игрок наступал на тригер к нему подбегал хенчь и начинал разговор, но если хенчь далеко то он подбегает но разговор не начинает.
Вот скрипт на он энтаре тригера: NSS void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; if (GetLocalInt(OBJECT_SELF,"ACTIVATED")) return; object oIlirin = GetHenchman(oPC); if (GetTag(oIlirin)!="ilirin01") return; SetLocalInt(oIlirin,"D_LINE",GetLocalInt(OBJECT_SELF,"CONVERSATION_LINE")); SetLocalInt(OBJECT_SELF,"ACTIVATED",TRUE); DestroyObject(OBJECT_SELF,5.0); AssignCommand(oIlirin, ClearAllActions(TRUE)); AssignCommand(oPC, ClearAllActions(TRUE)); SetCutsceneMode(oPC,TRUE); AssignCommand(oIlirin, ActionStartConversation(oPC,"plot_ilitrin01")); } Может кто знает в чём ошибка. ЗЫ так же пробовал что бы хенчь сначала подбегал при момощи ActionMoveToObjecy, а только потом начинал разговор, но всё равно не получается. |
![]()
Сообщение
#2525
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Знакомый код (IMG:style_emoticons/kolobok_light/smile.gif) ))
У мну работало. Правда на большой дальности не проверял. Довольно странно, что не работает, если далеко. |
![]()
Сообщение
#2526
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Milfes, ну если он по команде ActionStartConversation подбегает, а диалог не начинает, то ведать проблема в диалоге. У него точно такой таг?
Хм, а зачем дестрой через 5 секуд? |
![]()
Сообщение
#2527
|
|
Level 4 ![]() ![]() Класс: Клерик Характер: Lawful Good Раса: Человек ![]() |
Обьект дестроится, действие остается.
|
![]()
Сообщение
#2528
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Зачем его вообще дестроить и почему именно через пять секунд?
В скрипте есть проверка переменной, чтобы он второй раз не запускался. |
![]()
Сообщение
#2529
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
-fenix-, уничтожение конечно не критично, но триггер то больше не нужен, он свое дело сделал. (IMG:style_emoticons/kolobok_light/pleasantry.gif)
Milfes, самое простое - хенчмана по пути могут задержать. (Враги, другие команды и т.д...) Поэтому лучше подстраховаться и забить стек команд помощника. PS: (ИМХО) разумнее сначала подойти к игроку, а только потом начинать диалог. (Кстати вот тебе и решение - ActionForceMoveToObject) Сообщение отредактировал Dik Morris - Sep 15 2006, 14:03 |
![]()
Сообщение
#2530
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Фен, триггер одноразовый, я такие обычно удаляю через пару секунд. Чтоб не мешался.
|
![]()
Сообщение
#2531
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
Dik Morris, не помогает.
Кстати если хенчу приказать стоять на месте, то он спокойно подбегает и начинает разговор не зависимо от расстояния. |
![]()
Сообщение
#2532
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Milfes, тоесть приказать стоять, когда?
|
![]()
Сообщение
#2533
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
Нажимаешь на хенча правой кнопкой мышки и отдаёшь приказ стоять на месте. И вот в этом случае при наступление на тригер хенч начинает разговор.
|
![]()
Сообщение
#2534
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Хм, что-то странное, такое ощущение, что у тебя хенч в каком-то возбужденном состоянии, так как он подбегает, а говорить у него не получается. Но такое состояние не снимается приказом стоять (или снимается?).
У тебя хенч что-нить делает или просто стоит ждет команды? Попробуй хенча пересоздать. Еще почитать в Лексиконе про функцию ActionStartConversation, мож там что интересное есть. Чет хз пока что. Домой прийду, постараюсь пасмотреть. Сообщение отредактировал -fenix- - Sep 15 2006, 16:53 |
![]()
Сообщение
#2535
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
В том то и дело что ничего не делает.
|
![]()
Сообщение
#2536
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Хенч там криво получился хз почему. При переходах между локациями ему надо переприказывать, чтобы шел за тобой. Я хз почему.
|
![]()
Сообщение
#2537
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
QUOTE(Milfes @ Sep 15 2006, 16:28) [snapback]91739[/snapback] У меня проблема. Надо что бы когда игрок наступал на тригер к нему подбегал хенчь и начинал разговор, но если хенчь далеко то он подбегает но разговор не начинает. Вот скрипт на он энтаре тригера: NSS void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; if (GetLocalInt(OBJECT_SELF,"ACTIVATED")) return; object oIlirin = GetHenchman(oPC); if (GetTag(oIlirin)!="ilirin01") return; SetLocalInt(oIlirin,"D_LINE",GetLocalInt(OBJECT_SELF,"CONVERSATION_LINE")); SetLocalInt(OBJECT_SELF,"ACTIVATED",TRUE); DestroyObject(OBJECT_SELF,5.0); AssignCommand(oIlirin, ClearAllActions(TRUE)); AssignCommand(oPC, ClearAllActions(TRUE)); SetCutsceneMode(oPC,TRUE); AssignCommand(oIlirin, ActionStartConversation(oPC,"plot_ilitrin01")); } Может кто знает в чём ошибка. ЗЫ так же пробовал что бы хенчь сначала подбегал при момощи ActionMoveToObjecy, а только потом начинал разговор, но всё равно не получается. NSS //::////////////////////////////////////////////// //:: OnEnter am_ten_convr_npc //:: Copyright © 2005 WRG! //::////////////////////////////////////////////// /* Старт диалога с РС. Текст над РС - Name триггера KeyTag - если больше 0, то непись ПОДБЕЖИТ. TR_CONV_[ТАГ_НПС_ДЛЯ_ДИАЛОГА] */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Original idea By: DBColl //:: Created On: 22.04.2005 //::////////////////////////////////////////////// void main() { object oPC = GetEnteringObject(); object oTrig = OBJECT_SELF; string sTag = GetTag(oTrig); // Таг триггера string sNPC = GetStringRight(sTag, (GetStringLength(sTag)- 8)); // Таг НПС object oNPC = GetNearestObjectByTag(sNPC); string sSpeak = GetName(oTrig); // Фраза vector vD = GetPosition(oNPC) - GetPosition(oPC); float fDir = VectorToAngle(vD); int bRun = StringToInt(GetLockKeyTag(oTrig)); if (!GetIsPC(oPC)) return; if (GetLocalInt(oTrig, "HAS_OPERATED")) return; if (!GetIsObjectValid(oNPC)) return; if (GetArea(OBJECT_SELF)!=GetArea(oNPC)) return; if (GetIsEnemy(oNPC, oPC)) return; if (GetObjectType(oNPC)!=OBJECT_TYPE_CREATURE) return; FadeToBlack(oPC, FADE_SPEED_FASTEST); AssignCommand(oPC, ClearAllActions()); AssignCommand(oNPC, ClearAllActions()); SetCutsceneMode(oPC); DelayCommand(0.8, AssignCommand(oPC, SetCameraFacing(fDir, 25.0, 60.0, CAMERA_TRANSITION_TYPE_SNAP))); AssignCommand(oNPC, ActionDoCommand(SetFacingPoint(GetPosition(oPC)))); DelayCommand(1.2, FadeFromBlack(oPC, FADE_SPEED_FAST)); DelayCommand(2.0, AssignCommand(oPC, SetCameraFacing(fDir+35.0, 8.0, 50.0, CAMERA_TRANSITION_TYPE_SLOW))); AssignCommand(oPC, ActionDoCommand(SetFacingPoint(GetPosition(oNPC)))); if (GetDeity(oNPC)!="") { int iAnim = StringToInt(GetDeity(oNPC)); DelayCommand(3.0, AssignCommand(oNPC, ActionPlayAnimation(iAnim, 0.8, 2.0))); } DelayCommand(3.5, AssignCommand(oNPC, SpeakString(sSpeak))); DelayCommand(4.5, AssignCommand(oNPC, ActionForceMoveToObject(oPC, bRun))); DelayCommand(5.5, AssignCommand(oNPC, ActionDoCommand(SetCutsceneMode(oPC, FALSE)))); DelayCommand(6.0, AssignCommand(oNPC, ActionStartConversation(oPC))); //------------------------------------------------------- SetLocalInt(oTrig, "HAS_OPERATED", TRUE); } Работает уже пару лет. Зайди в раздел хеньчмана, там есть заготовка диалога и стрингов. Все бегает все подбегает и прочее. Хеньч сложная системаскриптов. там постоянно чистят акции и прочее, сканит врагов и друзей. NSS //:://////////////////////////////////////////////
//:: Name: am_ten_evt_alish //:: Copyright © 2006 WRG! Team //::////////////////////////////////////////////// /* Скрипт персональных триггеров Алишан Основан на скрипте X2_EVT_TRIGGER */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 02.08.2006 //::////////////////////////////////////////////// #include "x0_i0_common" #include "x2_inc_banter" void main() { object oSelf = OBJECT_SELF; object oTrigger = GetEnteringObject(); object oAlishan = GetObjectByTag("AM_HEN_ALISHAN"); string sLl = GetLocalString(oSelf, "LOCAL_PC_01"); string sL2 = GetLocalString(oSelf, "LOCAL_PC_02"); if(GetMaster(oAlishan) == oTrigger) { // Если РС длаьше 20 метров то возврат. Иначе у BioWare тупо удаляется триггер... if(GetDistanceBetweenLocations(GetLocation(oTrigger), GetLocation(oAlishan)) > 20.0) return; // Локальные переменные на РС при каторых триггер не сработает if(GetLocalInt(oTrigger, sLl) || GetLocalInt(oTrigger, sL2)) { DestroyObject(oSelf); return; } string sTag = GetTag(OBJECT_SELF); AttemptInterjectionOrPopup(OBJECT_SELF, sTag, oTrigger, 0, oAlishan); } } |
![]()
Сообщение
#2538
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
Тут дело не в самом скрипте похоже, а в чём-то другом. По идее и скрипт Lеха должен работать.
|
![]()
Сообщение
#2539
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Milfes, ну вроде сказали уже, что похоже дело в хенче, глюкнуло там что-то.
|
![]()
Сообщение
#2540
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
QUOTE(Milfes @ Sep 16 2006, 00:43) [snapback]91780[/snapback] Тут дело не в самом скрипте похоже, а в чём-то другом. По идее и скрипт Lеха должен работать. Надо делать вот что: повесить все команды на хеньчмана акциями. Через 0.1 секунду закрыть стек команд, а в конце всех команд повесить ActionDoCommand(Открываем стек команд Хеньчману) и все будет пахать как часы. проверено на разных НПС делающих что-то по скриптам. Ходящих по вейпам, стоящих на поинтах. У них сбиваются акции. Или с рандомно бродящими НПС. |
![]() ![]() |
Текстовая версия | Сейчас: 30th April 2025 - 16:33 |