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

Пакеты NPC


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

Всем, кто еще читает этот форум, доброго времени суток. Я пишу моды для себя, и в процессе создания одного с таких столкнулся с такой проблемой.

Создал себе напарника, написал ему все нужные команды (через пакеты, понятно), всё вроде работает. Мне этого показалось мало, начал совершенствовать свое творение. Задумка была такой: при команде "иди домой", непись должен идти в назначенное домом место, и там функционировать (пить, есть, спать, гулять), но при команде "следуй за мной" должен был бросить свои дела и отправиться со мной спасать мир. От своего не очень большого знания CS, осуществить у меня это не получается. Если добавить в топиках результирующий скрипт с добавлением всех пакетов распорядка дня, то непись, услышав команду, просто идет спать. Пока я не заберу его спасать мир. А если добавить все пакеты распорядка в список пакетов самого непися, то получается так, что он отлично живет, выполняя пакеты, но плевать хотел на мои команды типа "следуй за мной". Подскажите, как мне решить эту проблему?

P.S. если я непонятно написал (я не исключаю этого варианта), говорите, что именно не понятно

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

Есть вариант завести локальную переменную неписю и поставить ее в условия пакетов. Если переменная равна 1, то следовать за игроком, если 0, то выполнять остальные пакеты. Через диалоги менять только переменную. Изменено пользователем Муурн Шепард
Ссылка на комментарий
Поделиться на другие сайты

Есть вариант завести локальную переменную неписю и поставить ее в условия пакетов. Если переменная равна 1, то следовать за игроком, если 0, то выполнять остальные пакеты. Через диалоги менять только переменную.

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

М. Этот учебник подойдет? Если вкратце, то нужно создать скрипт примерно такой:

ScriptName CompanionNameScript

short CurrentPackages

Повесить скрипт на непися. В пакетах во вкладке Conditions создать условие GetScriptVariable. Потом выбрать цель для условия (кнопка под Function Parametrs). В открывшемся окне указать компаньона, в списке переменных выбрать CurrentPackages. Еще проставить == 1 для пакета следования за игроком или == 0 для остальных пакетов. В диалоге в поле result script

Set NPCRefId.CurrentPackages to 1
NPCRefId.EvaluatePackage

Для реплики "Следуй за мной".

Set NPCRefId.CurrentPackages to 0
NPCRefId.EvaluatePackage 

Для реплики, в которой игрок разрешает спутнику вернуться к своим занятиям. Вместо NPCRefId подставить это айди

http://pic.fullrest.ru/t758kE3y.jpg

 

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

М. Этот учебник подойдет? Если вкратце, то нужно создать скрипт примерно такой:

ScriptName CompanionNameScript

short CurrentPackages

Повесить скрипт на непися. В пакетах во вкладке Conditions создать условие GetScriptVariable. Потом выбрать цель для условия (кнопка под Function Parametrs). В открывшемся окне указать компаньона, в списке переменных выбрать CurrentPackages. Еще проставить == 1 для пакета следования за игроком или == 0 для остальных пакетов. В диалоге в поле result script

Set NPCRefId.CurrentPackages to 1
NPCRefId.EvaluatePackage

Для реплики "Следуй за мной".

Set NPCRefId.CurrentPackages to 0
NPCRefId.EvaluatePackage 

Для реплики, в которой игрок разрешает спутнику вернуться к своим занятиям. Вместо NPCRefId подставить это айди

http://pic.fullrest.ru/t758kE3y.jpg

 

А там, где CurrentPackages, вставлять пакеты для занятий, или так и оставить? А то CS выдает ошибку при компиляции, что не знает такой переменной или функции как "CurrentPackages". Изменено пользователем vlad_z9
Ссылка на комментарий
Поделиться на другие сайты

Прошу прощения. Айди подставлено компаньона из выделенного поля или айди из скриншота?
Ссылка на комментарий
Поделиться на другие сайты

Айди со скрина.

11:10. Проверил, вставил RefId компаньона, компиляция прошла.

11:17. Проверил на работоспособность в самой игре, но непись не реагирует на команды, а живет своей жизнью.

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

Условия во всех пакетах правильно проставлены? Можно попробовать для теста оставить только два пакета. Работающий, когда переменая равна 1, и работающий, когда переменная равна 0. Потом все нужные пакеты можно будет перетащить из Character->Packages обратно.
Ссылка на комментарий
Поделиться на другие сайты

Оставил только один пакет для жизнедеятельности. В освободившемся времени компаньон выполняет команды без затруднений (с переменной 1), но когда наступает время оставшегося пакета (с переменной 0), то он идет выполнять данный пакет.
Ссылка на комментарий
Поделиться на другие сайты

И во время выполнения пакета, и во время следования за игроком, CurrentPackages=0. Условия прописаны правильно (для пакетов жизнедеятельности =0, для следования =1) Изменено пользователем vlad_z9
Ссылка на комментарий
Поделиться на другие сайты

Ммда. После реплики "Следуй за мной" CurrentPackages должны меняться на один. Попробуйте еще раз, может, прописать для этой реплики
Set NPCRefID.CurrentPackages to 1
EvaluatePackage

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

Хех, в первый раз вы писали наоборот (на жизнедеятельность CurrentPackages=1, а на следование =0) :)

Изменил значения, попробовал. Дождался времени начала пакета, компаньон идет за мной, то есть, приоритет отдан пакету следования. А когда отдал команду "иди домой", игра вылетела. Хемм.

14:05. Попробовал в другой локации, всё работает. Наконец-то!))

По случаю неисправности буду сообщать)

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

Действительно. Извиняюсь, в этом посте к какой реплике относится что написано под кодом. Изменено пользователем Муурн Шепард
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

Войти

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

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

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