![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]() ![]()
Сообщение
#1
|
|
Level 3 ![]() Класс: Маг Характер: True Neutral Раса: Нежить ![]() |
Игра будет совсем неинтересной если в ней будут одинаковые квесты.Квесты должны быть разные:На убийство,на кражу,на информацию...
Я собственно этого пока как раз не умею и прошу помочь мне: Мне надо сделать зависымый диалог,Пример:Подходишь к мужику "Йоу,мэн на меня тот крендель наехал, разберись с этим рогаликом недоеденым",подходишь к Кренделю "Я его больше не больше не буду обижать и т.п.).Мне ,собственно,надо сделать так,что бы второй диалог без первого не начался. ТОКА ОБЬЯСНИТЕ ПОНЯТНО И НЕ ГОВОРИТЕ,ЧТО В ДОКЕ ВСЕ НАПИСАНО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (IMG:style_emoticons/kolobok_light/shout.gif) (IMG:style_emoticons/kolobok_light/shout.gif) (IMG:style_emoticons/kolobok_light/shout.gif) (IMG:style_emoticons/kolobok_light/shout.gif) (IMG:style_emoticons/kolobok_light/shout.gif) (IMG:style_emoticons/kolobok_light/shout.gif) (IMG:style_emoticons/kolobok_light/shout.gif) (IMG:style_emoticons/kolobok_light/shout.gif) |
![]() |
![]()
Сообщение
#2
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
в доке все есть, вот в этой: http://www.city-of-masters.ru/forums/index.php?showtopic=867
я даже не поленюсь скопировать, так что вопли "я ниче не нашел" не принимаются: ВОПРОС Здраствуйте, я вот тут захотел сделать простейший стационарный квест, но в этом я полный 0. 1) Как сделать чтобы при первом разгооре игрока с НПС показывался первый диалог; 2) После первого разговора включался второй диалог; 3) Как сделать проверку на наличие предмета у игрока? Например ели у игрока есть например ключ ему включался определеный диалог (тоесть вот смотри пункт 2, идет второй диалог. и там спрашивають.ты добыл ключ? говориш да, и делаеться проверка на наличие) 4) После того как квест выполнен включался следующий диалог ОТВЕТЫ Делается очень легко - с пмощью Локальных переменных... Как ты мог догадатсья, полистав словарик или просто почитав надписи в тулсете при создании конверсейшна: TextAppearsWhen - значит "Текст появляется когда..." и там нужно выбрать скрипт. Это значит что в скрипте задаются условия появления. (кстати там есть визард) ActionTaken - значит "Предпринимаемое действие" (или типа того), то есть - что-то происходит после того как игрко выбрал этот ответ в диалоге, или НПЦ вышел на ветку с этим скриптом... Тут опять же есть визард. Визард (Wizard) - помощник создания простых скриптов, отображается как шапочка... Итак, теперь рассказываю подробнее... Мы создаем все три ветки (для данного примера): - Привет, игрок -- Привет, нпц! - Есть ключ? -- Есть (проверка) -- Нету - Молодец, ты справился с квестом! Терь вали отсюдова! На первом диалоге (Привет, игрок) вешаем скрипт проверки локальной переменной, например назовем её - quest_prog (quest progress). Для этого можно использовать визард (пока в плане скриптинга обьяснять не буду - запустите визард, посмотрите на код и надеюсь все поймете) - визард в TextAppearsWhen (ТекстПоявляетсяКогда) - и там выбираем Local Variable, выбираем: int (числовая переменная, целая (не дробная)), пишем название переменной (q_prog), is less than (меньше чем), constant int (заданное число), 1. Далее на продолжении первого диалога ("привет, нпц!") вешаем скрипт (можно опять же визардом) на создании переменной q_prog и задачи ей числа 1. Set Local Variable (Задать локальную переменную), int, q_prog, constant int, 1. Теперь переходим к второй ветке диалога (есть ключ?) - надпись будет высвечиваться если q_prog равно 1. (Думай разберешься как сделать проверку ), ну а на ответе: (Есть) - делать првоерку на ключ... Опять же визардом: Item in Inventory и там вписываем тэг вещицы (лучше писать не попамяти - акопировать и вставлять...). Ну и Action Taken - присваиваем q_prog значение 2. И последнюю ветку вешаем првоерку, если q_prog равен 2. Раз стат квест - значит надо выдать награду. Выдавать награду можно опять же через ActionTaken (Give Rewards)... Примечание: если хочешь наградить вещью - то там надо вписывать ResRef вещит, а не тэг. Кстати попутно с квестом можно вести запись в дневнике (закладочка - Others... там думаю разберешься) ПРИМЕЧАНИЕ №1: Локальные переменные - остаюстя на игроке, так что в следущем квесте не используй переменную q_prog... ПРИМЕЧАНИЕ №2: Если хорошо подумаете - то сможете это все еще оптимизирвоать и улучшить... (хоят бы для повышения переменной - не обязательно использоват ьнесколько разных скриптов ) зы: примечание №3: скриптуется с поправкой на возможности НВН2 по передачи имени переменной и ее значения из диалога. Те количество скриптов на обслуживание квеста в НВН2 сокращается очень значительно. Логика же, что в НВН1 что в НВН2 что в любой другой игре - примерно одинаковая. |
![]() ![]() |
Текстовая версия | Сейчас: 26th April 2025 - 23:29 |