Перейти к содержанию

NPC->startscript


Рекомендуемые сообщения

Допустим, в диалоге с NPC запускается некий скрипт, который прикрепляется к этому NPC и начинает выполнятся. Внимание, вопрос: Если на этом NPC уже есть такой скрипт, означает ли это, что запустится ещё одна копия скрипта и они будут работать одновременно? Или же перезапустится уже работающий скрипт, или ничего не произойдёт?
Ссылка на комментарий
Поделиться на другие сайты

Поэкспериментировал. Интересно... Кажется, этот скрипт запускается ВООБЩЕ на всех NPC с таким id. И запускается к счастью только один раз.
Ссылка на комментарий
Поделиться на другие сайты

а разве у NPC не должен быть уникальный ID? это ко всем объектам в целом относится

 

В игре он у всех уникальный. Что-то вроде redoran_guard_male0000000001. А в конструкторе у всех стандартных стражей редоран стоит просто redoran_guard_male. То есть в терминах ООП это класс, а в игре размещаются экзепмляры этого класса и им даются уникальные номера.

Что касается скрипта, то он по-моему присоединяется ко всем NPC которые отвечают условиям этого диалога, который скрипт запускает. Но я не уверен.

Ссылка на комментарий
Поделиться на другие сайты

а ну стражи понятное дело, все верно, всем стражам добавится. если надо чтоб одному - делать уникального стража. если надо всем стражам иметь этот скрипт, но чтоб действовал один с которым разговор... хмм... надо mfsd листать, чтоб указывать в результате не абстрактного стражника в диалоге, а того, с кем говоришь. как-то так :scratch:
Ссылка на комментарий
Поделиться на другие сайты

Какова цель эксперимента?

Если на НПС (или другом объекте) уже висит скрипт, то он будет выполняться по умолчанию пока его не остановят командой СтопСкрипт. А если мы его не останавливали, то зачем его запускать из диалога - он уже выполняется? Просто ставишь условие, которое нужно, чтобы отследить некий момент.

 

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

 

В игре он у всех уникальный. Что-то вроде redoran_guard_male0000000001.

Это не ID объекта - это имя копии (Reference) объекта в игровом мире. Если нужно чтобы эффект скрипта распрострянал свои действия на 1 объект, то этот объект должен иметь уникальный ID в редакторе и 1 копию в ячейке исполнения (в идеале - дабы избежать глупых ошибок - вообще 1 копию в игровом мире)

Изменено пользователем TJ
Ссылка на комментарий
Поделиться на другие сайты

Какова цель эксперимента?

Если на НПС (или другом объекте) уже висит скрипт, то он будет выполняться по умолчанию пока его не остановят командой СтопСкрипт. А если мы его не останавливали, то зачем его запускать из диалога - он уже выполняется? Просто ставишь условие, которое нужно, чтобы отследить некий момент.

 

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

 

 

Это не ID объекта - это имя копии (Reference) объекта в игровом мире. Если нужно чтобы эффект скрипты распрострянал свои действия на 1 объект, то этот объект должен иметь уникальный ID в редакторе и 1 копию в ячейке исполнения (в идеале - дабы избежать глупых ошибок - вообще 1 копию в игровом мире)

 

Мне нужно, чтобы при изменении глобальной переменной любой NPC класса Guard предпринимал определённые действия (допустим подбегал к игроку и начинал его задержание). Повесить напрямую скрипт на стражников как-то неправильно, да и не известно насколько это совместимо с какими-нить другими плагинами. Вместо этого для запуска скрипта я использовал голосовые приветствия. То есть создаю "приветствие" Hello с фильтром для всех Guard-ов и для нужного состояния глобальной переменной. И ешё одно такое-же на Idle.

Когда игрок проходит мимо такого NPC, срабатывает голосовой диалог в Result которого стоит startscript XXX. И, что самое интересное, этот XXX запускается не глобально, а локально именно на этом NPC. Правда я опасаюсь, что там несколько копий скрипта могут на одном стражнике запустится, потому и задаю этот вопрос.

Ссылка на комментарий
Поделиться на другие сайты

Мне нужно, чтобы при изменении глобальной переменной любой NPC класса Guard предпринимал определённые действия (допустим подбегал к игроку и начинал его задержание). Повесить напрямую скрипт на стражников как-то неправильно, да и не известно насколько это совместимо с какими-нить другими плагинами. Вместо этого для запуска скрипта я использовал голосовые приветствия. То есть создаю "приветствие" Hello с фильтром для всех Guard-ов и для нужного состояния глобальной переменной. И ешё одно такое-же на Idle.

Когда игрок проходит мимо такого NPC, срабатывает голосовой диалог в Result которого стоит startscript XXX. И, что самое интересное, этот XXX запускается не глобально, а локально именно на этом NPC. Правда я опасаюсь, что там несколько копий скрипта могут на одном стражнике запустится, потому и задаю этот вопрос.

Ух как. Ну вообще, чтобы начинали задерживать достаточно лишь поднять CrimeLevel игрока.

А так - ну запустили вы этот скрипт из реплики Hello - потом во время задержания в резулте диалога пропишите СТопСкрипт "ваш скрипт" и он будет остановлен.

Изменено пользователем TJ
Ссылка на комментарий
Поделиться на другие сайты

Ух как. Ну вообще, чтобы начинали задерживать достаточно лишь поднять CrimeLevel игрока.

А так - ну запустили вы этот скрипт из реплики Hello - потом во время задержания в резулте диалога пропишите СТопСкрипт "ваш скрипт" и он будет остановлен.

 

Т.е. если поднять CrimeLevel, то стражники должны задерживать без скрипта? У меня они обычно НЕ задерживают пока я с ними сам не заговорю.

 

 

В процессе выяснения причин по которым в моём моде RA стражники не задерживают нарушителя, обнаружилась правда о запуске скрипта на NPC. Так вот, это глобальный скрипт, нацеленный на NPC, и в каждый момент времени такой скрипт может быть запущен только один. То есть, если на всех стражников повесить один и тот-же скрипт, заработает только один -- у самого первого встреченного стражника. :boring:

Изменено пользователем z-Hunter
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...