Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
8-1080055315
Ёпрст
2004-03-23 18:21
2004.05.30
Каким компонентом сделать чтобы набор картинок на форме не мигал.


8-1080131787
OlegV
2004-03-24 15:36
2004.05.30
WAV -> MP3


9-1074884494
iudjen
2004-01-23 22:01
2004.05.30
эллектронное пианино


3-1083829977
lightix
2004-05-06 11:52
2004.05.30
Вопросы по ADO


3-1084016146
Nazer
2004-05-08 15:35
2004.05.30
Не могу создать индекс




   Наверх