Главная страница
    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.46 MB
Время: 0.046 c
6-1081483248
NS
2004-04-09 08:00
2004.05.30
Как установить тип Internet-соединения?


3-1084174470
Satyros
2004-05-10 11:34
2004.05.30
Проблема с подключением к DB2


7-1082440467
Zheka
2004-04-20 09:54
2004.05.30
Работа с портами


1-1084605159
AlexLebed
2004-05-15 11:12
2004.05.30
Проблема при переходе из одного типа в другой.


1-1084813088
Sour
2004-05-17 20:58
2004.05.30
JvInspecor из JCVL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский