![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2886
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Если gff-редактором открыть чара, то можно посмотреть. Если я правильно помню, скрипт дефолт один во всех слотах.
|
![]()
Сообщение
#2887
|
|
Level 6 ![]() ![]() Класс: Друид Характер: Chaotic Neutral Раса: Гном ![]() |
Да, дефолт один везде у игрока. У меня нвникса нет, поэтому препарировать копию не получается. Проверял его ондэс - не срабатывает, но на атаки отвечает.
|
![]()
Сообщение
#2888
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
По логике вещей - создается обычная крича, соответственно у нее должны работать дефолтные скрипты. Ммм...это как если у НПС убрать из слотов скрипты и атаковать - он будет работать по дефолтным для крич скриптам. Опыт взаимодействия с НВН мне подсказывает, что на логику вещей полагаться в таких вопросах неуместно – пока не проверишь, не узнаешь.Если у НПС убрать из слотов все скрипты – он превращается в плейсбл со свойствами криттера (т.е. если убрать скрипты отвечающие за мотивацию НПС – атаковать он не будет бей его или не бей). |
![]()
Сообщение
#2889
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Цитата Если у НПС убрать из слотов все скрипты – он превращается в плейсбл со свойствами криттера (т.е. если убрать скрипты отвечающие за мотивацию НПС – атаковать он не будет бей его или не бей). Если бы у меня ни разу так не случалось, я бы не писала об этом. |
![]()
Сообщение
#2890
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Цитата Опыт взаимодействия с НВН мне подсказывает, что на логику вещей полагаться в таких вопросах неуместно – пока не проверишь, не узнаешь. Если у НПС убрать из слотов все скрипты – он превращается в плейсбл со свойствами криттера (т.е. если убрать скрипты отвечающие за мотивацию НПС – атаковать он не будет бей его или не бей). Если бы... но нет. НПС с пустым набором скриптов будет: 1)Защищать себя, если на него нападают. Plot-флаг отменяет это. 2)Ползать из стороны в сторону при твоем приближении, если фракция NPC дружественна тебе. Эта мерзкая подробность была введена в игру где-то в районе SoU или HotU, или в одном из промежуточных патчей. Касательно вышеобсуждаемого предмета - подтверждаю, у меня так брат умер. В смысле, я делал катсценку, все было отлично, пока не начал писать общую логику для одного из участвующий в сцене персонажей. Долго вдуплял, почему это у меня добрый няшный хенч вдруг начал бессердечно убивать беззащитного игрока во время катсцены. Оказалось, copyobject... Сообщение отредактировал Talarasha - Apr 11 2012, 09:37 |
![]()
Сообщение
#2891
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Цитата dumbo default скрипт работает на PC только как хб, несмотря на то, что прописан во всех слотах - проверено путем написания оного. несмотря на активное поведение PC, тестовая строка падала в лог с методичностью хб. и не более. Цитата rdx Еще интереснее, если открыть в какой-нибудь программе файл игрока, например, в nwn explorer. Там есть поля ScriptHeartbeat, ScriptOnNotice, ScriptSpellAt, ..Attacked, ..Damaged, ..Disturbed, ..EndRound, ..Dialogue, ..Spawn, ..Rested, ..Death, ..UserDefine, ..OnBlocked. И напротив всех них стоит (что бы вы думали?) - default ! Учитывая наличия разных плагинов к nwnx типа leto и подобных, а так же возможности редактировать эти поля вручную .. На неделе обязательно проверю, будут ли функционировать скрипты, прикрепленные к этим событиям. Очень хотелось бы Возможно, конечно, что эти значения ни на что не влияют, и нвн все равно будет привязывать только скрипт с именем default Добавлено Проверил, эти поля появляются только если зайти в модуль (т.е. не сразу после создания), и перезаписываются нвн, так что их подредактировать не удастся. А скрипт default исполняется еще как минимум при смерти игрока. Цитата 2_advanced NWNXом менял скрипты, повешанные на чара.. - сервак падал при первом вызове любого скрипта.. и на последок: Цитата Lex
Почитал Lексикон и вот что нашел в заметках: ...the PC doesn't have an OnHeartbeat event, if you create a script called "default", it will automatically trigger every PC heartbeat... Сообщение отредактировал Melisse - Apr 11 2012, 10:02 |
![]()
Сообщение
#2892
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Если бы у меня ни разу так не случалось, я бы не писала об этом. Если бы... но нет. НПС с пустым набором скриптов будет: Так скрипты тут не при чем: это не действие «дефаултов» якобы прописывающихся автоматически взамен пустому месту – это действие фракций, репутации и т.п..1)Защищать себя, если на него нападают. Plot-флаг отменяет это. 2)Ползать из стороны в сторону при твоем приближении, если фракция NPC дружественна тебе. Эта мерзкая подробность была введена в игру где-то в районе SoU или HotU, или в одном из промежуточных патчей По поводу ползаний НПС – видел такое только на шардах, видимо это действие кастомного AI, потому что при работе с модулем у меня НПС ведут себя строго так как прописано в их скриптах (с учетом влияния фракций, репутации и т.д. конечно). (IMG:style_emoticons/kolobok_light/smile.gif) P.S.: Кстати, а какое событие стартует триггер OnUserDefined? Сообщение отредактировал Flaristan - Apr 11 2012, 11:36 |
![]()
Сообщение
#2893
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Plot флаг вообще отменяет всякое воздействие и без удаления скриптов.
Скрипты удаляются у НПс, чтобы не жрали ресурсы, если не особо нужно, например у нпс торговцев, которые просто стоят. |
![]()
Сообщение
#2894
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Цитата Кстати, а какое событие стартует триггер OnUserDefined? Созданное вручную. Там есть функция посылки события по номеру.
|
![]()
Сообщение
#2895
|
|
Level 6 ![]() ![]() Класс: Друид Характер: Chaotic Neutral Раса: Гном ![]() |
|
![]()
Сообщение
#2896
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Дело даже не в проверках, а в том что при плот флаге на НПС не оказывается вообще никакого негативного воздействия: ни атака, ни урон, ни магия - все пофигу. Токмо болтать можно.
|
![]()
Сообщение
#2897
|
|
Level 6 ![]() ![]() Класс: Друид Характер: Chaotic Neutral Раса: Гном ![]() |
что при плот флаге на НПС не оказывается вообще никакого негативного воздействия: ни атака, ни урон, ни магия - все пофигу. Токмо болтать можно. Мы же говорим не о том, что воздействует на НПС (это воздействие никак не связано с наличием каких-либо скриптов на существе), а о том, как они на это воздействие реагирует. Плоты точно так же могут сердиться на игрока и убивать (в широком смысле этого слова) его по поводу и без повода ЕСЛИ таковое прописано у них в скриптах. |
![]()
Сообщение
#2898
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Речь шла о существе без скриптов вообще.
|
![]()
Сообщение
#2899
|
|
Level 8 ![]() ![]() ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Хафлинг ![]() |
P.S.: Кстати, а какое событие стартует триггер OnUserDefined? Посути это механизм разветвления ветвления скриптов, хз, все что он делает - можно реализовать с и без него, но наверно такая организация в некоторых случаях будет производительнее.. . В любом скрипте, исполняемой на кричуре ты можешь вызывать функцию чтото типа SignalUserDefinedEven(nEventNum), например при смерти, если ударили каким-то оружием..эта функция исполняет то тригер UserDefinedEvent, притом передает число которое было в аргументах SignalUserDefinedEven можно будет получить в этом скрипте функцией типа GetUserDefinedEventNumber() полезно наверное.. |
![]()
Сообщение
#2900
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
А у меня на Геме автозаблокировался чар с прозвищем "Шкуронос" (IMG:style_emoticons/kolobok_light/biggrin.gif) , регулярные выражения бдят на геме? Шкуроносов в проверялочке точно нет. Может, там двойные кавычки были или что-то в этом роде?Цитата Посути это механизм разветвления ветвления скриптов, Это полезно, если хочется построить из неписей многоагентную систему "по науке". (IMG:style_emoticons/kolobok_light/smile.gif) хз, все что он делает - можно реализовать с и без него, но наверно такая организация в некоторых случаях будет производительнее.. . В любом скрипте, исполняемой на кричуре ты можешь вызывать функцию чтото типа SignalUserDefinedEven(nEventNum), например при смерти, если ударили каким-то оружием..эта функция исполняет то тригер UserDefinedEvent, притом передает число которое было в аргументах SignalUserDefinedEven можно будет получить в этом скрипте функцией типа GetUserDefinedEventNumber() полезно наверное.. Не могу быть на сто процентов уверенным, но мне почему-то кажется, что прироста производительности по сравнению с простым ExecuteScript() здесь не будет. |
![]()
Сообщение
#2901
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Цитата Так скрипты тут не при чем Смысл в том, что получившийся объект плейсебл ничем не напоминает. Цитата По поводу ползаний НПС – видел такое только на шардах, видимо это действие кастомного AI, потому что при работе с модулем у меня НПС ведут себя строго так как прописано в их скриптах (с учетом влияния фракций, репутации и т.д. конечно). Ползанье от дружественной фракции это движковая фича. Если есть пример обхода, то с удовольствием посмотрб. В виде тестового модуля. Цитата На самом деле в большинстве скриптов просто стоят проверки На самом деле, неть. Можешь открыть станартные скрипты и пройтись по ним от корня по всем вложенным инклюдам. Проверки, касающиеся plot-флага, встречаются только два раза в Talent spell/melee функциях. |
![]()
Сообщение
#2902
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Смысл в том, что получившийся объект плейсебл ничем не напоминает. Ещё одним костылём замораживается анимация движения существа, так что статую вполне можно изобразить.Цитата На самом деле, неть. Можешь открыть станартные скрипты и пройтись по ним от корня по всем вложенным инклюдам. Проверки, касающиеся plot-флага, встречаются только два раза в Talent spell/melee функциях. Хм?x2_def_attacked, x2_def_ondamage, x2_def_spellcast - скрипты, отвечающие за обработку враждебных неписю действий: Neverwinter Script if (GetPlotFlag(OBJECT_SELF))
{ return; } |
![]()
Сообщение
#2903
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Цитата Ещё одним костылём замораживается анимация движения существа, так что статую вполне можно изобразить. Это я знаю, но мне не для статуй. Цитата Хм? Не заметил. Я стандартным набором просто обычно пользуюсь (nw_c2_default*). |
![]()
Сообщение
#2904
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Ну, начиная с HotU, эти скрипты по дефолту ставятся в слоты новосозданному неписю в тулсете. (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#2905
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Да, я знаю, мне просто как правило не нужны расширения от дополнений в скриптах, поэтому я новых НПС делаю на основе прегенеренных шаблонов со стандартным набором.
Я тогда неправильно указал в своем первом посте, что plot-флаг отменяет самозащиту. Я сейчас не могу с уверенностью сказать, почему так происходит, но сомневаюсь, что это чисто скриптовое решение, т.к.: Чистый НПС с plot-флагом не защищается Чистый НПС без plot-флага защищается Скриптованный nw_c2_* НПС защищается в обоих случаях Скриптованный x2_* НПС защищается только без флага Надо будет глянуть, почему так. Ну т.е. понятно, что x2_* не защищается из-за процитированной проверки, но непонятно тогда, почему чистый НПС не требует такой же. Сообщение отредактировал Talarasha - Apr 12 2012, 00:11 |
![]()
Сообщение
#2906
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Возможно, существует заглушка в виде автоатаки, если скрипт в слоте пуст. В коде заглушки вполне может быть и проверка флага. Лень ковырять в IDA. (IMG:style_emoticons/kolobok_light/smile.gif)
Ради интереса можно поставить игроку плотфлаг и посмотреть, будет ли автоатака. |
![]()
Сообщение
#2907
|
|
Level 8 ![]() ![]() ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Хафлинг ![]() |
Шкуроносов в проверялочке точно нет. Может, там двойные кавычки были или что-то в этом роде?Это полезно, если хочется построить из неписей многоагентную систему "по науке". (IMG:style_emoticons/kolobok_light/smile.gif) Не могу быть на сто процентов уверенным, но мне почему-то кажется, что прироста производительности по сравнению с простым ExecuteScript() здесь не будет. Ну если в модуле порядка 100500 наименований скриптов (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#2908
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Цитата Ползанье от дружественной фракции это движковая фича. Если есть пример обхода, то с удовольствием посмотрб. В виде тестового модуля. Нафига? (IMG:style_emoticons/kolobok_light/smile.gif) Чтобы приведённый доминейтом или раззадориванием моб намертво закрывал проход? Хотя вряд ли это остановит старпёра - умельцы способны пролазить даже сквозь закрытые двери и глухие нагромождения плейсов - тоже движковая фича (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#2909
|
|
Level 6 ![]() ![]() Класс: Маг Характер: Lawful Evil Раса: Нежить ![]() |
Я понимаю, что эта фича появилась не по велению левой пятки программиста, а по необходимости, но мне не нравится, что мои НПС от пинков персонажа скачут по всей локации. Это не дело. Могли бы сделать ее и отключаемой для отдельных НПС.
Сообщение отредактировал Talarasha - Apr 12 2012, 09:23 |
![]()
Сообщение
#2910
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Созданное вручную. Там есть функция посылки события по номеру. В общем походу что-то вроде продвинутого «ExecuteScript» видимо. (хотя что-то сдается мне, что это рычажок от тулсетовского мастера сюжета)Смысл в том, что получившийся объект плейсебл ничем не напоминает. Он бы напоминал, просто дело в том, что зафиксированная на НПС агрессия в НВН автоматически изменяет репутацию агрессора в глазах НПС, а атаки недружественного существа заставляют атаковать в ответ.Ползанье от дружественной фракции это движковая фича. Если есть пример обхода, то с удовольствием посмотрб. В виде тестового модуля. Плот флаг не дает совершить агрессию на НПС => репутация агрессора в его глазах измениться не может, и это не вызывает ответную атаку. Однако если скриптами НПС заставить атаковать в ответ – он будет атаковать. Может конечно дело в том, что я моделю в 1.67 версии а использую под 1.69, но если это фича движка - по идее тут должно быть без разницы. Но дружественные НПС у меня стоят на месте при виде ПС. P.S.: А временный «катсцен иммобилайз» на «онперсепшн» неписям проблему эту не решает? Сообщение отредактировал Flaristan - Apr 12 2012, 12:28 |
![]() ![]() |
Текстовая версия | Сейчас: 9th July 2025 - 06:09 |