Режимы квеста

Published
Отписываемся тут если нужно внести новый квестовый режим или же расширить\доработать.

Описание существующих режимов

» Эскорт
Описание режима: - сопровождение юнита в точку.
Доп. сведения о режиме: -
Функция:
Escort(unit u, real targetX, real targetY, string compl_str, string fail_str, string ondeath_str, int attacker_type)
Значения аргументов:
u - юнит которого сопровождают
targetX - координата точки назначения Х
targetY - координата точки назначения Y
compl_str - сообщения для игрока при завершения сопровождения
fail_str - сообщение для игрока при провале сопровождения
ondeath_str - сообщение для игрока при смерти сопровождаемого
attacker_type - тип юнитов, который будет появятся периодически для осуществления препятствий для эскорта юнита
» Преследование
Описание режима: Преследование враждебными юнита игрока.
Доп. сведения о режиме: преследование активно в рамках одного этапа в квесте. Не обладает специальным условиями и может быть использован как дополнительный эффект в других квестовых режимах, а так же не требует этапа квеста.
Функция:
CreatePursuit(int unitType)
Значения аргументов:
unitType - тип юнитов которые будут периодически нападать на игрока
» Защита
Описание режима: Защита юнита от нападения враждебных юнитов
Доп. сведения о режиме: -
Функция:
ProtectQuestUnit(int protect_time, int killers_type, string str_on_finish, string str_on_fail)
Значения аргументов:
protect_time - время в течении которого необходимо осуществлять защиту
killers_type - тип враждебных юнитов
str_on_finish - сообщение для игрока при завершении защиты
str_on_fail - сообщение для игрока при провале защиты
» Поиск предмета
Описание режима: поиск предметов
Доп. сведения о режиме: предметы создаются сами по указанным координатам
Функция:
CreateNItemInRange(int item_type, int item_count, string quest_item_name, string quest_msg_complite, real x, real y, real d, boolean b, integer terrain_type)
Значения аргументов:
item_type - тип предмета
item_count - количество предметов
quest_item_name - имя предмета
quest_msg_complite - сообщение для игрока при завершении поиска
x - координата Х спавна предметов
y - координата Y спавна предметов
d - радиус в котором будут созданы предметы
b - нужно ли на мини карте указать координаты спавна
terrain_type - тип почвы(id тайла) для спавна
» Поиск предмета 2
Описание режима: поиск предмета
Доп. сведения о режиме: предметы не создаются. Они могут быть в магазинах, спрятаны, выпадать с мобов или быть квестовой наградой
Функция:
SearchQuestItem(int item_type, int item_count, string quest_item_name, string quest_msg_complite)
Значения аргументов:
item_type - тип предмета
item_count - количество предметов
quest_item_name - имя предмета
quest_msg_complite - сообщение для игрока при завершении поиска
» Стелс-миссия
Описание режима: условием поражения в этом режиме квеста является столкновение с нпц из указанного клана.
Доп. сведения о режиме: Не требует этапа квеста.
Функция:
Stealth(int quest_clan, string fail_str, bool agression)
Значения аргументов:
quest_clan - id клана
fail_str - сообщение при обнаружении
agression - должны ли обнаружившие напасть на игрока
» Дуэль
Описание режима: дуэль с нпц
Доп. сведения о режиме: дуэль происходит с нпц с которым игрок разговаривает
Функция:
CreateDuelSimple()
Значения аргументов:

» Ожидание
Описание режима: создание эффекта прохождения времени
Доп. сведения о режиме:
Функция:
AddQuestWait( float time, string msg)
Значения аргументов:
time - время(в секундах) которое нужно полождать
msg - сообщение при истечении времени
» Путешествие с ловушкой
Описание режима: неизбежная ловушка в которую по квесту обязательно нужно попасть и убить всех атакующих
Доп. сведения о режиме:
Функция:
CreateQuestAdventureWithTrap(float x, float y, float d, int trapUnitTypeId, int trapUnitCount, string msgOnComplete)
Значения аргументов:
x - координата ловушки Х
y - координата ловушки Y
d - радиус ловушки
trapUnitTypeId -тип атакующих юнитов
trapUnitCount - количество юнитов
msgOnComplete - сообщение при ликвидации всех атакующих юнитов
» Приключение
Описание режима: нужно попасть в определенную зону
Доп. сведения о режиме:
Функция:
CreateQuestAdventure(float x, float y, float d, string msgOnComplete, string msgOnFail)
Значения аргументов:
x - координата зоны Х
y - координата зоны Y
d - радиус зоны
msgOnComplete - сообщение при вхождении в зону
msgOnFail - сообщение при провале задачи(по истечении времени)
» Преследование 2
Описание режима: преследование указанного юнита
Доп. сведения о режиме: преследуемым является указанный существующий юнит
Функция:
MakeOutlaw(unit u, float x, float y)
Значения аргументов:
u - преследуемый юнит
x - координата х в которую должен добраться преследуемый
y - координата y в которую должен добраться преследуемый
» Преследование 3
Описание режима: преследование указанного юнита
Доп. сведения о режиме: преследуемый юнит создается.
Функция:
CreateOutlaw(int unit_type, float x, float y)
Значения аргументов:
u - преследуемый юнит
x - координата х в которую должен добраться преследуемый
y - координата y в которую должен добраться преследуемый
» Патрулирование зоны
Описание режима: задачей является охрана определенной зоны. Если зона будет покинута, задача будет считаться невыполненной
Доп. сведения о режиме:
Функция:
SetLocationDefence(real x, real y, real d, int time, int unit_type, string s)
Значения аргументов:
x,y,d - параметры размера и положения зоны
time - время в течении которого нужно патрулировать зону
unit_type - тип атакующих юнитов
s - сообщение при окончании патрулирования
» Слежка
Описание режима: задачей является слежка за нпц.
Доп. сведения о режиме: можно подключить диалог, который будет появляться при завершении слежки.
Функция:
AddQuestStalk(unit u, string complitedMsg, string failMsg)
Значения аргументов:
u - юнит объект слежки
complitedMsg - сообщение при окончании слежки
failMsg - сообщение при провале слежки
функция возвращает stalkId нужный для аттчамента диалогов и фраз
Функция:
AddQuestStalkReplic(int stalkId, unit replicUnit, string replicString)
Значения аргументов:
stalkId - id квест экшена
replicUnit - юнит произносящий реплику
replicString - реплика
Функция:
AddQuestStalkDialoge(int stalkId, unit questionUnit, string questionString, unit asnwerUnit, string answerString)
Значения аргументов:
stalkId - id квест экшена
questionUnit - юнит задающий вопрос
questionString - строка с вопросом
asnwerUnit - юнит дающий ответ
answerString - строка с ответом
» Убийство мобов
Описание режима: задачей является уничтожение групп враждебных юнитов
Доп. сведения о режиме: юниты создаются автоматически в соответствии с указанными параметрами
Функция:
SpawnQuestMob(int mob_id, int count, float x, float y, float ang, float d ,string progress_str, string compl_str, string fail_str)
Значения аргументов:
mob_id - тип юнита
count - количество
x - координата х
y - координата у
ang - угол поворота юнита
d - радиус
progress_str - имя юнита
compl_str - сообщение при завершении уничтожения юинтов
fail_str - сообщение при провале задачи.
» Оплата
Описание режима: позволяет продвинутся по квесту только если заплатить нужную сумму
Доп. сведения о режиме: не требует этапов
Функция:
PayMoney(int pay)
Значения аргументов:
pay - нужная сумма
» Оплата2
Описание режима: позволяет продвинутся по квесту только если заплатить нужную сумму. В обмен игроку за деньги будут дан предмет
Доп. сведения о режиме: не требует этапов
Функция:
ByForMoney(int pay, int item_id)
Значения аргументов:
pay - нужная сумма
item_id - предмет который будет получен
» Арена
Описание режима: позволяет создать турнир
Доп. сведения о режиме:
Функция:
void CreateArena(int arenaId,real time, int n, real x, real y, real x1, real y1, real x2, real y2, string s1, string s2,group g)
Значения аргументов:
arenaId- идентификатор(любое число int32)
time - время до старта при наличии нужного кол-ва участников
n - минимальное кол-во участников
x - координата х центра арены
y - координата у центра арены
x1 - координата х точки спавна участника 1
y1 - координата y точки спавна участника 1
x2 - координата х точки спавна участника 2
y2 - координата y точки спавна участника 2
s1 - сообщение о окончании регистрации
s2 - сообщение об отмене турнира
g - группа участников(для добавления нп участников)
Пример квеста
scope KageWay initializer Init
StartQuest
QuestHead
quest_single = false
quest_repeat = true
quest_num = 91
quest_name = "Путь Каге"
quest_req_rep = 50
quest_rang = S
quest_for_clan = konoha_shinobi
quest_vs_clan = none
quest_cond = 0
quest_cond_other = false
quest_cond_status = unstarted
quest_stages = 2
quest_rew = 'I00G'
quest_exp = 0
quest_money = 100
quest_npc[0] = Npc_Unit[11]
quest_npc[1] = Npc_Unit[11]
quest_npc[2] = Npc_Unit[11]
EndQuestHead
IsNpcIdAndStage(11, 1)


Replicas
npc_ask ="Ты хочешь участвовать в турнире за звание Каге?"
quest_tips = "Турнир скоро начнеться. Не забудьте подготовиться."
strHELP = "Детали участия"
strMEAN = "Участвовать"
strEXIT = "Отказатся от участия"
qweHELP = "Что мне нужно сделать для того что бы участвовать в турнире?"
qweMEAN = "Я желаю зарегистрироватся на участие в турнире за звание Каге"
qweEXIT = "Я желаю отказатся от участия в турнире"
ansHELP = "Для участия в турнире за звание Каге необходимо иметь ранг не ниже Джонина. Если ты достиг ранга Джонина, то тебе необходимо оставить заявку на участие у меня и ожидать когда наберется нужное количество притендентов. Минимальное количество притендентов - 2."
ansMEAN = "Хорошо, ваш ранг подходит. Пожалуста распишитесь сдесь и еще вам необходимо оставить немного своей крови, это необходимо для немедленного призыва вас для на место проведения турнира. Спасибо."
ansEXIT = "Хорошо, скажите ваше имя и я уберу ваше имя из списков участников"
EndReplicas
QuestActions
MeanAction
CreateArena(100002,20.0 ,2, -6200., -30250., -6750., -30250., -5750., -30250., "Регистрация окончена", "Нехватает регов, бой отменен",TMG[1])
AddToTournament()
EndAction
EndQuestActions
IsNpcIdAndStage(11, 2)


Replicas
npc_ask ="Вам что то нужно?"

strHELP = "Когда начнется турнир?"
strEXIT = "Отказаться от участия"

qweHELP = "Когда начнется турнир?"
qweEXIT = "Я передумал участвовать в турнире, и хочу отказаться"

ansHELP = "Турнир начнется сразу же как только количество участников будет достаточно"
ansEXIT = "Хорошо, вы исключены из списка участников"
EndReplicas
QuestActions
ExitAction
RejectTournament()
EndAction
EndQuestActions

IsNpcIdAndStage(11, 3)


Replicas
npc_ask ="Поздравляю вас с победой, от звания Хокаге вас отделяет лишь пару формальностей"

strMEAN = "Стать Хокаге"
strEXIT = "Отказаться от звания Хокаге"

qweHELP = "Да начнется новая эпоха в мире шиноби"
qweEXIT = "Постой, у меня нет никакого желания становится Хокаге, я лишь хотел испытать свои силы"

ansHELP = "Надеюсь в этой новой эпохе селение Листа будет процветать"
ansEXIT = "Что? Но как же так?... Хорошо, я сообщу Хокаге о том что вы отказываетесь становится новым Хокаге"
EndReplicas
QuestActions
MeanAction
P_rang[Quest_Pid] = 7
EndAction
EndQuestActions

EndQuest
endscope


Views: 5 089

Shamanga #1 - 9 years ago 0
Голосов: +0 / -0
Режим гонка.
Надо будет первым дойти до точки прежде чем нпс, прежде чем кончится время, прежде чем другой игрок..
Можно чтобы рандомно накладывался дебафф на скорость, или сделать временные тормозящие юниты.
Еще сбор предметов по пути или за определенное время, У кого больше тот и выйграл, но предмет дает рандомно очков, т.е и отрицательно повлияет на счет.
Faion #2 - 9 years ago 0
Голосов: +0 / -0
добавить квест режим, условием победы в котором является хорошая репутация у нпц. Под вопросом еще.
SITX #3 - 9 years ago 0
Голосов: +0 / -0
Faion, хорошая идея. Что-то вроде: "Добейся моего уважения и я расскажу тебе всё, что знаю!".
Faion #4 - 9 years ago 0
Голосов: +0 / -0
Типа того:)
wester #5 - 9 years ago 0
Голосов: +0 / -0
Блин, а я этой темы не видел... А ведь очень полезная.
Можно добавить режим "Выживание" - продержатся n минут, на протяжении этого времени на тебя постоянно нападают враги.
Ну а еще можно добавить квесты, в которых нужно будет выполнить, скажем, любые 5 квестов Е ранга/3 квеста D ранга и т.д.
Shamanga #6 - 9 years ago 0
Голосов: +0 / -0
wester:
Блин, а я этой темы не видел... А ведь очень полезная.
Можно добавить режим "Выживание" - продержатся n минут, на протяжении этого времени на тебя постоянно нападают враги.
Ну а еще можно добавить квесты, в которых нужно будет выполнить, скажем, любые 5 квестов Е ранга/3 квеста D ранга и т.д.
Такой режим уже есть
wester #7 - 9 years ago 0
Голосов: +0 / -0
Shamanga, какой конкретно и как называется?
Shamanga #8 - 9 years ago 0
Голосов: +0 / -0
Патрулирование зоны
wester #9 - 9 years ago 0
Голосов: +0 / -0
Shamanga, патрулирование зоны - защита территории от врагов, выживание - ты ходишь где угодно, на тебя постоянно нападают. Т.е. даже не обязательно убивать врагов, нужно выжить определенное время. Чувствуешь разницу?
Shamanga #10 - 9 years ago 0
Голосов: +0 / -0
В патруле тоже самое
Faion #11 - 9 years ago 0
Голосов: +0 / -0
wester:
Shamanga, патрулирование зоны - защита территории от врагов, выживание - ты ходишь где угодно, на тебя постоянно нападают. Т.е. даже не обязательно убивать врагов, нужно выжить определенное время. Чувствуешь разницу?
Ты описал свое видение режима? Или ты описал режим патрулирования как у меня сейчас, если 2-е, то подчеркну что нельзя уходить слишком далеко от точки "квеста".
Shamanga #12 - 9 years ago 0
Голосов: +0 / -0
Да, только в этом разница, что нельзя покидать зону
Faion #13 - 9 years ago 0
Голосов: +0 / -0
Кстати мне кажется что зону таки над помечать графически, или не стоит?
Shamanga #14 - 9 years ago 0
Голосов: +0 / -0
Думаю надо
SLI #15 - 9 years ago 0
Голосов: +0 / -0
предлагаю следующее
во первых (я это Faionу уже говорил, он не против но сказал что много мороки поэтому хочу узнать мнение всех)
предлагаю сделать так, что после каждого экшена в квесте не надо возвращатся к нпс и вести диалог а можно сразу начать другой экшен.
Это бы повысило интерес к игре, тк можно делать всякие неожиданности, и тд ну думаю сами понимаете.
Или допустим когда идешь по поздемелью ты как бы "сам" думаешь что тебе дальше делать, и не придется каждый раз бегать обратно
Далее предлагаю еще следующие режимы:
квест - найти НПС в области
квест - выполняется самостоятельно (где то через секунду) (эт будет нужно только если будет введена вышесказанная система)
квест - выполнятся когда персонаж умирает (и такое бывает нужно офк)
Faion:
Кстати мне кажется что зону таки над помечать графически, или не стоит?
может быть ввести на это булевкое обозначение?
а то вдруг скрытно используешь эту вещь для создание какого-нибудь перевората а область опа - и подсвечивается
ах да еще режим
за промежуток времени убить как можно больше мобов ( от этого будет зависеть награда за квест)
Faion #16 - 9 years ago (изм. ) 0
Голосов: +0 / -0
он не против но сказал что много мороки
Да, но и не буду морочится, если не будет веских аргументов "За."
может быть ввести на это булевкое обозначение?
И как оно поможет определить вышел ли ты за зону или нет? :)
за промежуток времени убить как можно больше мобов ( от этого будет зависеть награда за квест)
У нас не мободрочерский гемплей, не вижу применения.
SLI #17 - 9 years ago 0
Голосов: +0 / -0
Faion, а как же сипл? там кроме мободрочества делать то нечего
симпл*
Faion #18 - 9 years ago 0
Голосов: +0 / -0
SLI, не понял, сипл == сингл?
SLI #19 - 9 years ago 0
Голосов: +0 / -0
пффф 2 раза не написал и не правильно
да, ты прав
Faion #20 - 9 years ago 0
Голосов: +0 / -0
Ммм, а где ты видел у нас мободрочерство?:)
SLI #21 - 9 years ago 0
Голосов: +0 / -0
ну не знаю, а что еще делать игроку в одиночестве без инета и противников...
хотя есть одна идея ща запостю в соответствующей теме
Faion #22 - 9 years ago 0
Голосов: +0 / -0
в том то и дело, у нас мободрочерства нету, у нас есть квестодрочерство. Но в сингле скучно, по этому я даже поднял тему, в которой даю возможность каждому изложить свои соображения. У меня глаз "замылился", по этому не ясно.
SLI #23 - 9 years ago 0
Голосов: +0 / -0
Ах да еще хотел предложить режим предмет для квеста - дается предмет, когда кв закончится или провалится предмет забирается
Faion #24 - 9 years ago 0
Голосов: +0 / -0
А смысл?
SLI #25 - 9 years ago 0
Голосов: +0 / -0
еще предлагаю сделать галку "повторяется после провала" тк можно провалить кв в начали линейки, а потом остаться без туевой хучи квестов
Faion #26 - 9 years ago 0
Голосов: +0 / -0
Окей, сделаю.
SLI #27 - 9 years ago 0
Голосов: +0 / -0
ммм, а нету квеста ВЫЙГРАТЬ дуэль у нпс?
а то имхо просто сыграть недостаточно)
Faion #28 - 9 years ago 0
Голосов: +0 / -0
Есть. Смотри в режимах, там так и написано, дуэль:)
SLI #29 - 9 years ago (изм. ) 0
Голосов: +0 / -0
ммм думал что если проиграеш дуэль то кв тоже выполнится
Faion #30 - 9 years ago 0
Голосов: +0 / -0
Нет.