Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Вниз

Квесты в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.033 c
6-1082008006
mRodion
2004-04-15 09:46
2004.05.30
TIdTCPClient.Connect подвисает


14-1084374073
konstantinov
2004-05-12 19:01
2004.05.30
Создание скомпилированных HTML файлов


3-1084031212
Nick-From
2004-05-08 19:46
2004.05.30
DBF (dos) -> DBF (win-1251)


6-1081688965
LORDMAXX
2004-04-11 17:09
2004.05.30
Узнать размер файла по FPT компонент MFtp1


7-1082821040
Mosquito
2004-04-24 19:37
2004.05.30
Мониторинг лог файла





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский