Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
 
Ответить в эту темуОткрыть новую тему
> Создание квестов, Простые и сложные квесты
Orochimaru
сообщение Aug 26 2010, 23:13
Сообщение #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)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 26 2010, 23:54
Сообщение #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 что в любой другой игре - примерно одинаковая.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Orochimaru
сообщение Aug 27 2010, 10:59
Сообщение #3


Level 3
*

Класс: Маг
Характер: True Neutral
Раса: Нежить



Цитата(Lex @ Aug 26 2010, 23:54) *
1) Как сделать чтобы при первом разгооре игрока с НПС показывался первый диалог;

Спасибо вам большое(Вы все мои мысли прочитали(почти все(Уж про журнал я точно знал)))Тока я не понял вон то что я в цитату занёс.Эт чё значит показывался? (IMG:style_emoticons/kolobok_light/yahoo.gif)

Тока я нифига не понял где этот Text Apperas When И всё остальное тожэ.И "Итэм ин Инвертори" я тожэ нигде не нашёл.И ВАЩЕ НИФИГА Я НЕ ПОНЯЛ:ЭТО СКРИПТЫ ИЛИ В NODE ЭТО НАДО ИСКАТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (IMG:style_emoticons/kolobok_light/swoon.gif) (IMG:style_emoticons/kolobok_light/swoon.gif) (IMG:style_emoticons/kolobok_light/swoon.gif) (IMG:style_emoticons/kolobok_light/swoon.gif) (IMG:style_emoticons/kolobok_light/swoon.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)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 27 2010, 13:03
Сообщение #4


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



у НПС может быть несколько фраз стартовых или ответных на фразы игрока. По умолчанию показывается первая, а остальные игнорируются. Однако если на условиях появления фраз есть скрипты, то все становится интереснее. Тут как раз описана ситуация, когда фразы появляются по условию. Те то, что и нужно в квестах.

то что описано выше - не скрипты, а инструкции по их созданию.
По поводу "Text Apperas When" - это мануал для НВН, в НВН2 все немного подругому, но логика та же. Читайте мануал по созданию диалогов:
http://www.wrg.ru/download.php?view.152 там поймете где условия, где действия, все описано.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Orochimaru
сообщение Aug 28 2010, 12:00
Сообщение #5


Level 3
*

Класс: Маг
Характер: True Neutral
Раса: Нежить



А что такое GUI,где это и как им пользоваться? (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 30 2010, 00:40
Сообщение #6


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Тема про квесты, гуи тут не при чем.
http://ru.wikipedia.org/wiki/GUI
окошечки, кнопочки и прочие интерактивные элементы интерфейса, а вобщем.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Orochimaru
сообщение Aug 31 2010, 13:42
Сообщение #7


Level 3
*

Класс: Маг
Характер: True Neutral
Раса: Нежить



Понял,чувак,замётано (IMG:style_emoticons/kolobok_light/ph34r.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DARKNWN2
сообщение Oct 4 2010, 16:31
Сообщение #8


Level 2
*

Класс: Самурай
Характер: True Neutral
Раса: Человек



Привет можите раскозать как делать квест
1-нпс1(даёт задание убить нпс2) и потом после этого игрок идет получать награду у нпс1
2-нпс1(даёт задание принести предмет1) и потом после этого игрок идет получать награду у нпс1
3-нпс1(даёт задание поговорить нпс2) и потом после этого игрок идет получать награду у нпс1

Сообщение отредактировал DARKNWN2 - Oct 4 2010, 17:49
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 6 2010, 14:20
Сообщение #9


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



отдельного инструментария для квестов нет. Вся внутриигровая логика квестов - на скриптах, которые сам сделаешь. Поэтому тебе нужно запоминать что игрок сделал то или иное, чтобы потом использовать. Запоминают обычно в локальные переменные.

Простой пример на основе твоего варианта 1, дальше думаю сам сможешь:
Разговор с НПС1, согласие игрока на выполнение задания - ставим на фразу игрока скрипт с установкой локальной переменной "Q_KILL_NPC2" (пусть она будет на игрока) равной 1.
В скрипте на смерть НПС2 (в его слотах) проверяй переменную Q_KILL_NPC2 и если она была 1, ставь ее 2.
В разговоре с НПС1 сделай фразу игрока "я выполнил задание" чтобы она появлялась, если переменная Q_KILL_NPC2 равна 2.
После фразы игрока про выполнение задания, давай награду и меняй значение переменной на 3.

Вот так, приблизительно, все квесты делаются. Добавляешь еще журнальные записи (лучше скриптами, не через опции диалогов, а то потом исправлять сложнее), делаешь проверку чтобы НПС2 не убили до выдачи задания (скажем в случае если НПС2 убили, а квестовая переменная еще равна 0, то делать ее -1, и квест не выдавать, если переменная -1).

Таким же методом расписываются все другие твои ситуации в той или иной степени. Скажем с предметом проще, там наличие предмета можно в диалоге проверять.



в целом, все довольно просто, проще чем кажется после прочтения описания. Но нужно иметь хотя бы базовые навыки скриптования, те уметь работать с локальными переменными, уметь правильно выбирать объекты (игрока, собеседника, объекты по тэгу и тд), уметь работать со скриптами в слотах. Если этого всего нет - не следует сходу хвататься за квесты. Лучше немного подучить скриптинг.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DARKNWN2
сообщение Oct 6 2010, 19:23
Сообщение #10


Level 2
*

Класс: Самурай
Характер: True Neutral
Раса: Человек



Можишь выложить скрипты и инструкцию где чё заменять.
Заранее спасибо (IMG:style_emoticons/kolobok_light/rolleyes.gif) (IMG:style_emoticons/kolobok_light/rolleyes.gif) (IMG:style_emoticons/kolobok_light/rolleyes.gif) (IMG:style_emoticons/kolobok_light/rolleyes.gif) (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Kcapra
сообщение Oct 7 2010, 04:36
Сообщение #11


Level 9
***

Класс: Фея
Характер: Chaotic Evil
Раса: Фея



Дефолтные скрипты работают наура.
ga_journal
gc_journal_entry
gc_local_int
ga_local_int


Вообще, на твоем месте бросил бы затею своего проекта еще пока она в зародыше.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DARKNWN2
сообщение Oct 7 2010, 15:20
Сообщение #12


Level 2
*

Класс: Самурай
Характер: True Neutral
Раса: Человек



Скрипты мне нечего не дали я не понил как с ними можно создать квест. Я использую вотетот плагит 0100_UninvitedGuests для учение но есть проблемы в скрипте








// 01_lizman_journal

// When the lizardmen die, advance the journal state to 30.

// EPF 8/17/06

#include "ginc_group"

const string GROUP_LIZMEN = "grplizmen";

void main()
{
GroupAddTag(GROUP_LIZMEN,"01_lizman1");
GroupAddTag(GROUP_LIZMEN,"01_lizman2");
GroupOnDeathSetJournalEntry(GROUP_LIZMEN, "01_lizardfolk",30);
}






Я изменяю GroupAddTag(GROUP_LIZMEN,"01_lizman1"); на GroupAddTag(GROUP_LIZMEN,"allesa"); но я ёё убиваю но журнал не обновляется


Я тут натумал может в GROUP_LIZMEN изменить что то нужно. Я так понил что это группа но где её изменять я незаю (IMG:style_emoticons/kolobok_light/swoon.gif)
(Кстати allesa у меня расой человек)

Кстати как использовать эти скрипты несколько раз кроме копирования срипта что нужно изменить.







Да на форуме глухо (IMG:style_emoticons/kolobok_light/aggressive.gif) (IMG:style_emoticons/kolobok_light/ph34r.gif)

Сообщение отредактировал DARKNWN2 - Oct 7 2010, 14:54
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Orochi
сообщение Oct 7 2010, 19:48
Сообщение #13


Level 3
*

Класс: Маг
Характер: True Neutral
Раса: Нежить



Я знаю по жизненному опыту,что тот,кто достигает своеё цели через трудности,достигнет её очень скоро (IMG:style_emoticons/kolobok_light/declare.gif) (Было бы желание).Можно вообще то посмотреть как делать квесты в Основной Кампании NWN2,там ты больше найдешь чем в UG (IMG:style_emoticons/kolobok_light/rolleyes.gif) .Я вот тоже нифига не понимаю до сих пор как вообще скрипты на проверку ставить (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) ,но я копался в своей проблеме...и узнал...что я не один такой (IMG:style_emoticons/kolobok_light/yahoo.gif) ,а что...всё равно прогресс есть (IMG:style_emoticons/kolobok_light/crazy.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 7 2010, 21:29
Сообщение #14


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(DARKNWN2 @ Oct 6 2010, 20:23) *
Можишь выложить скрипты и инструкцию где чё заменять.

а смысл? Если ты сам не готов написать (или хотя бы использовать уже готовые скрипты, которые указал Kcapra) такие простейшие скрипты, то от того, что я их тебе напишу, тебе станет легче только в этой ситуации с этим простеньким квестом. А для других случаев ты опять будешь искать готовые решения. Это не вариант, ты так не уедешь никуда и будешь делать ну очень долго.
Я же написал, создание квестов требует как минимум базового владения скриптами. Почитай мануалы (по скриптингу на базе НВН, он такой же почти, как в НВН2). Довольно неплохо написано на сайте Гены: http://remmgen.narod.ru/shpora.html

есть лишь одно крайне важное и полезное отличие скриптинга под НВН2: появилась возможность из диалога получать в скрипты параметры. Это очень помогает именно в квестах и диалоговых проверках, сокращая количество скриптов в разы. Но принцип скриптования и построения логики квестов все равно тот же.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Orochi
сообщение Oct 9 2010, 15:19
Сообщение #15


Level 3
*

Класс: Маг
Характер: True Neutral
Раса: Нежить



Все скрипты которые начинаются с "gc" можно использовать для квестов.А "где чё менять" написано обычно в самих скриптах (Там что то типа пометок).Если честно,то любая игра должна быть построена на проверках (Сюжет я имею в виду) ,кроме линейных.Даже если сможешь скрипты на действие сделать,то они фигово будут смотреться без проверок (Да хоть пол персонажа и то проверять надо,а то игра про извоащенцев получится). (IMG:style_emoticons/kolobok_light/ph34r.gif)

Почему к стати мёртвые души? (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DARKNWN2
сообщение Oct 10 2010, 17:28
Сообщение #16


Level 2
*

Класс: Самурай
Характер: True Neutral
Раса: Человек



Цитата(Orochi @ Oct 9 2010, 16:19) *
Почему к стати мёртвые души?

Просто я взял за основу русскую игру(Которая не вышла и не когда не выйдет) Мне кстати помог один из разрабочиков этой игры.
Насчет квестов лутше нужно было создать тотуриал по квестам однотипным типо их
Цитата(DARKNWN2 @ Oct 4 2010, 17:31) *
1-нпс1(даёт задание убить нпс2) и потом после этого игрок идет получать награду у нпс1
2-нпс1(даёт задание принести предмет1) и потом после этого игрок идет получать награду у нпс1
3-нпс1(даёт задание поговорить нпс2) и потом после этого игрок идет получать награду у нпс1

Нас двое и то мы можым немногое я делаю модели доспехов, оружия, зданий и Т.д он всё остольное в toolset'e.
У нас всё готова только нужно как нибуть наючится делать однотипные квесты.
За помощь всем спс. (IMG:style_emoticons/kolobok_light/good.gif)

Сообщение отредактировал DARKNWN2 - Oct 10 2010, 17:33
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Orochi
сообщение Oct 11 2010, 20:47
Сообщение #17


Level 3
*

Класс: Маг
Характер: True Neutral
Раса: Нежить



В Тулсете дофига готовых скриптов что бы сделать отличную игру.И рас уж вы такие творческие люди,то уж скриптить квесты точно научитесь,это ж не C++. (IMG:style_emoticons/kolobok_light/good.gif) (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DARKNWN2
сообщение Oct 12 2010, 13:29
Сообщение #18


Level 2
*

Класс: Самурай
Характер: True Neutral
Раса: Человек



Спосибо Orochi за подершку.

Уменя есть идея можите зделать 3 плагита и у каждого плагита по одному квесту который я дал.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Orochi
сообщение Oct 13 2010, 11:46
Сообщение #19


Level 3
*

Класс: Маг
Характер: True Neutral
Раса: Нежить



Хах.Я то сам дуб полный (IMG:style_emoticons/kolobok_light/rolleyes.gif) .Я могу поддержать,но со всем остальным я тебе врядли помогу,ты уж прости,но я недалеко от тебя ушел и сам нуждаюсь в помощи.Ты к стати не знаешь как русский tlk файл сделать? (IMG:style_emoticons/kolobok_light/crazy.gif)

Я к стати сам не знаю как делать проверку на диалог (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lord95
сообщение Apr 14 2011, 09:46
Сообщение #20


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



а как создать квест, у меня все готово, скрипты понимаю немного а как сам квест сделать??? (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29th March 2024 - 01:10