vlad_z9 Опубликовано 23 июля, 2016 Жалоба Поделиться Опубликовано 23 июля, 2016 Всем, кто еще читает этот форум, доброго времени суток. Я пишу моды для себя, и в процессе создания одного с таких столкнулся с такой проблемой.Создал себе напарника, написал ему все нужные команды (через пакеты, понятно), всё вроде работает. Мне этого показалось мало, начал совершенствовать свое творение. Задумка была такой: при команде "иди домой", непись должен идти в назначенное домом место, и там функционировать (пить, есть, спать, гулять), но при команде "следуй за мной" должен был бросить свои дела и отправиться со мной спасать мир. От своего не очень большого знания CS, осуществить у меня это не получается. Если добавить в топиках результирующий скрипт с добавлением всех пакетов распорядка дня, то непись, услышав команду, просто идет спать. Пока я не заберу его спасать мир. А если добавить все пакеты распорядка в список пакетов самого непися, то получается так, что он отлично живет, выполняя пакеты, но плевать хотел на мои команды типа "следуй за мной". Подскажите, как мне решить эту проблему?P.S. если я непонятно написал (я не исключаю этого варианта), говорите, что именно не понятно Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 23 июля, 2016 Жалоба Поделиться Опубликовано 23 июля, 2016 (изменено) Есть вариант завести локальную переменную неписю и поставить ее в условия пакетов. Если переменная равна 1, то следовать за игроком, если 0, то выполнять остальные пакеты. Через диалоги менять только переменную. Изменено 23 июля, 2016 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
vlad_z9 Опубликовано 25 июля, 2016 Автор Жалоба Поделиться Опубликовано 25 июля, 2016 Есть вариант завести локальную переменную неписю и поставить ее в условия пакетов. Если переменная равна 1, то следовать за игроком, если 0, то выполнять остальные пакеты. Через диалоги менять только переменную. Подскажите, пожалуйста, как это осуществить? Впервые сталкиваюсь с переменными, а статьи в инете не помогают разобраться. Извиняюсь за свою безграмотность в скриптовом языке. Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 25 июля, 2016 Жалоба Поделиться Опубликовано 25 июля, 2016 (изменено) М. Этот учебник подойдет? Если вкратце, то нужно создать скрипт примерно такой: 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 Изменено 25 июля, 2016 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
vlad_z9 Опубликовано 25 июля, 2016 Автор Жалоба Поделиться Опубликовано 25 июля, 2016 (изменено) М. Этот учебник подойдет? Если вкратце, то нужно создать скрипт примерно такой: 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". Изменено 25 июля, 2016 пользователем vlad_z9 Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 26 июля, 2016 Жалоба Поделиться Опубликовано 26 июля, 2016 Прошу прощения. Айди подставлено компаньона из выделенного поля или айди из скриншота? Ссылка на комментарий Поделиться на другие сайты Поделиться
vlad_z9 Опубликовано 26 июля, 2016 Автор Жалоба Поделиться Опубликовано 26 июля, 2016 (изменено) Айди со скрина.11:10. Проверил, вставил RefId компаньона, компиляция прошла.11:17. Проверил на работоспособность в самой игре, но непись не реагирует на команды, а живет своей жизнью. Изменено 26 июля, 2016 пользователем vlad_z9 Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 26 июля, 2016 Жалоба Поделиться Опубликовано 26 июля, 2016 Условия во всех пакетах правильно проставлены? Можно попробовать для теста оставить только два пакета. Работающий, когда переменая равна 1, и работающий, когда переменная равна 0. Потом все нужные пакеты можно будет перетащить из Character->Packages обратно. Ссылка на комментарий Поделиться на другие сайты Поделиться
vlad_z9 Опубликовано 26 июля, 2016 Автор Жалоба Поделиться Опубликовано 26 июля, 2016 Оставил только один пакет для жизнедеятельности. В освободившемся времени компаньон выполняет команды без затруднений (с переменной 1), но когда наступает время оставшегося пакета (с переменной 0), то он идет выполнять данный пакет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 26 июля, 2016 Жалоба Поделиться Опубликовано 26 июля, 2016 А если в консоли выбрать компаньона и написать sv, то значение CurrentPackages всегда 1 или 0? Ссылка на комментарий Поделиться на другие сайты Поделиться
vlad_z9 Опубликовано 26 июля, 2016 Автор Жалоба Поделиться Опубликовано 26 июля, 2016 (изменено) И во время выполнения пакета, и во время следования за игроком, CurrentPackages=0. Условия прописаны правильно (для пакетов жизнедеятельности =0, для следования =1) Изменено 26 июля, 2016 пользователем vlad_z9 Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 26 июля, 2016 Жалоба Поделиться Опубликовано 26 июля, 2016 Ммда. После реплики "Следуй за мной" CurrentPackages должны меняться на один. Попробуйте еще раз, может, прописать для этой реплики Set NPCRefID.CurrentPackages to 1 EvaluatePackage Ссылка на комментарий Поделиться на другие сайты Поделиться
vlad_z9 Опубликовано 26 июля, 2016 Автор Жалоба Поделиться Опубликовано 26 июля, 2016 (изменено) Хех, в первый раз вы писали наоборот (на жизнедеятельность CurrentPackages=1, а на следование =0) :)Изменил значения, попробовал. Дождался времени начала пакета, компаньон идет за мной, то есть, приоритет отдан пакету следования. А когда отдал команду "иди домой", игра вылетела. Хемм.14:05. Попробовал в другой локации, всё работает. Наконец-то!))По случаю неисправности буду сообщать) Изменено 26 июля, 2016 пользователем vlad_z9 Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 26 июля, 2016 Жалоба Поделиться Опубликовано 26 июля, 2016 (изменено) Действительно. Извиняюсь, в этом посте к какой реплике относится что написано под кодом. Изменено 26 июля, 2016 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти