Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

Квесты в RPG   Найти похожие ветки 

 
PigMey ©   (2003-09-21 18:34) [0]

Подскажите, как организовать алгоритмы диалогов и раздачи квестов в RPG?


 
Artificial intelligence   (2004-02-01 13:12) [1]

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


 
Woodpecker ©   (2004-02-01 15:03) [2]

PigMey ©  (21.09.03 18:34)

Почему просто не спросить "как мне написать игру на Delphi"?


 
Vertex   (2004-02-01 15:57) [3]

нет... я уже так не могу)


 
Omar2002 ©   (2004-02-01 17:11) [4]

Лучше всего напиши Кобику на мыло, он как-то это вроде не сложно сделал (если не знаешь Кобика, то зайди в тему "Танки 2: Броня в огне")


 
kavald   (2004-02-01 18:54) [5]

Сначала надо придумать эти самые квесты :)
Потом определить зависимости между ними и написать диалоги. В процедуре обработки диалогов само собой определяется какой квест игрок выбрал (вроде NPC говорит: пойдешь на право  - коня потеряешь - прямо голову сложишь и т.п.) В программе будет структура или класс вроде:

TGameQuest = record
 QuestID: Integer; { уникальный идентификатор квеста }
 RelatedQuests: array of Integer; { массив квестов, зависящих от данного }
 Enabled: Boolean; { получен или нет }
 Done: Boolean; { выполнен или нет }
 Aborted: Boolean; { провален или нет }
end;
TGameQuests = array of TGameQuest;

var
 GlobalQuests: TGameQuests; { а здесь соотвественно все квесты хранятся }


Когда игрок получеат квест или выполняет какие-то действия связанные с квестом, то поля записи меняются. При изменении полей надо передавать эти изменения и на связанные квесты. Например, тебя послали с кем-то поговорить и этот NPC мог дать еще квестов, а ты его просто убил. Тогда в структуру квеста запишется Enabled = False (квест больше не доступен), Done = True (поговорить-поговорил, при изменении этого поля можно очки опыта давать), Aborted = False (квест не обломался). В связанных квестах должны быть все квесты, которые давал убитый и во все из них ставим Enabled = False (теперь получить их нельзя).
Или тебя послали отнести лекарство, а ты не уложился по времени.
Enabled = False (см. раньше), Done = False (не выполнил ведь), Aborted = True (само собой). Тогда в связанных квестах пишем снова Enabled = False, Aborted = True, кроме одного (теперь родня больного будет тебя искать и мстить и надо их всех пристрелить или с кем-то поговорить, чтоб заступился) - у него ставим Enabled = True.
Примерно так.

P.S. Личше все-таки делать класс для каждого из квестов и описывать там собственные методы по изменению состояния связанных квестов.



Страницы: 1 вся ветка

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
6-1081348713
ultracrash
2004-04-07 18:38
2004.05.30
отключения картинок в компоненте WebBrowser


1-1084972249
snake1977
2004-05-19 17:10
2004.05.30
TTreeView


8-1079203171
r00t
2004-03-13 21:39
2004.05.30
Редактирование wav


7-1083354207
ArchAngel
2004-04-30 23:43
2004.05.30
Мониторинг приложений


14-1084088162
Cerber
2004-05-09 11:36
2004.05.30
Интерненет