Перейти к содержимому


Переключение чата Чат Симбиона

Porfel : (26 дек. 2023 09:58) Немного есть :-D
Po)(yist : (23 дек. 2023 18:04) выжившие есть?
ovchar : (29 авг. 2023 07:52) Здравия, всех выживших ждём в нашей группе в Телеграмме - https://t.me/+E9gT3ULaSn5jNDli
sSer : (15 авг. 2023 23:20) Что как?
HorunziyA : (26 апр. 2023 21:26) Всем приветы!
ovchar : (24 дек. 2022 12:38) Здравия Всем. Сделали Группу в Телеге, Там уже Ларри с Порфелем, Артоса добавил (может подтянется). Велком - https://t.me/+E9gT3ULaSn5jNDli
sSer : (16 авг. 2022 03:41) Здрасьте, люди )
ovchar : (12 марта 2022 19:57) Здравия, Всем!
Porfel : (08 марта 2022 12:01) Привет! =)
CBO6OgA : (05 марта 2022 23:20) Вспомнил и ник и пароль от аккаунта... что бы казать вам Привет, ребята! Если вы помните меня ещё со времен сайта Stalker-portal. Саша "белый" на аватаре и странные рассказы о сталкерах. Чорт подери... сколько лет, сколько зим!
Porfel : (31 янв. 2022 16:41) Трям!
Lisaa : (05 июня 2021 18:49) Ёпрстблятьнахуйгдевсе?
Эт ни чо шо я по англицки ? )))
waran : (12 апр. 2021 08:09) не узнал со страху ))
waran : (12 апр. 2021 08:07) ёшкин кот !!! выругался мозгноневслух на полшаге согнутой нагой ,ёмаё ..протягивая руку для приветсвия
michey : (06 апр. 2021 23:23) *Неподалёку, за кустами, мелькнула всклокоченая борода. Над ветками орешника, на фоне брезентового бока огромного рюкзака промелькнула, в приветствии, темная ладонь.*
waran : (27 марта 2021 19:46) фиють)
waran : (26 марта 2021 21:03) Ъ ))
waran : (26 марта 2021 21:01) Larry76 мы тоже живы токо эт ( чешет за большим треугольным ухом) мутировали мы малость
tolanchi : (24 марта 2021 08:20) Привет!
Larry76 : (22 марта 2021 19:59) Я ЖИВ!! А ВЫ?
Изменить размеры окна чата

Создание квеста


1 ответов в этой теме

#1 Отшель[НИК]

    СуперСтарожил!


  • сообщений 588
  • Имя:Серега
  • Пол:Мужчина
  • Город:Россия, Свердловская обл., г. Качканар
  • Группировка: Одиночка

Отправлено 30 Май 2009 - 11:51

Небольшое отступление. ПРОЧИТАТЬ ВСЕМ!

Если вы хотите стать толковым квестером, то НЕ ТОРОПИТЕСЬ! Настоятельно НЕ рекомендую вам читать данный материал, если вы не имеете никаких основ. Чтобы делать квесты нужно как минимум хорошее знание диалогов и свободная работа с конфигами! В идеале желательно знать так же и скрипты, так как используются в квестах они очень часто! Быть квестером не означает создать запись о нем в ПДА. Вы должны уметь создавать полноценные квесты с диалогами, передачей наград, предметов, выполнения каких-либо функций и т.д. Учитывайте это.

Ну а теперь собственно создание квестов.

Все квесты прописываются в файлах типа tasks_локация. Структура каждого квеста очень похожа на структуру диалогов, но обо всем по-порядку.
Сам квест выглядит так:
<game_task id="tutorial_find_artefact">
	<title>tutorial_find_artefact</title>
	<objective>
		<text>tutorial_find_artefact_0</text>
		<icon>ui_iconsTotal_tutorial_find_artefact</icon>
		<infoportion_complete>tutorial_artefact_done</infoportion_complete>
	</objective>
	<objective>
		<text>tutorial_find_artefact_1</text>
		<map_location_type hint="tutorial_artefact">green_location</map_location_type>
		<object_story_id>Escape_Tutorial_Artefact</object_story_id>
		<infoportion_complete>tutorial_artefact_gain</infoportion_complete>
	</objective>
	<objective>
		<text>tutorial_find_artefact_2</text>
		<map_location_type hint="escape_trader">blue_location</map_location_type>
		<object_story_id>Escape_Trader</object_story_id>
		<infoportion_complete>tutorial_artefact_done</infoportion_complete>
	</objective>
</game_task>
Разберем более подробно.

<game_task id="tutorial_find_artefact">
</game_task>
Это наш квест. Так же здесь содержится его id. Внутри него помещается все остальное.

<title></title>
Это название нашего квеста, которое будет отображаться в ПДА.

<objective>
</objective>
Представляет собой подзадание. К примеру возьмем первое задание от Сидорыча: Добыть флешку. Оно состоит из нескольких подзаданий: Поговорить с Волком, Встретится с людьми Волка и т.д.

<text></text>
Здесь указывается название подзадания.

<icon></icon>
В этом тэге должна быть ссылка на изображение, которое будет отображаться в ПДА (иконка задания). ВНИМАНИЕ: указывать обязательно, иначе будет происходить вылет при входе в ПДА.

<object_story_id></object_story_id>
Ссылается на sid из файла со всеми story id (config/game_story_ids.ltx)

<infoportion_complete></infoportion_complete>
При выдаче указанного здесь инфопоршня, подзадание будет выполнятся.

<infoportion_fail></infoportion_fail>
Следовательно, если будет выдан данный инфопоршень, то подзадание будет провалено.

<map_location_type hint="tutorial_artefact">green_location</map_location_type>
Этот тэг позволяет нам добавить отметку на карте (к примеру при взятии задания у Сидорыча, то в ПДА на карте изображена такая бледная отметка). hint ссылается на определенного НПС или предмет, а green_location указывает какая должна быть отметка (gren_location - зеленая, blue_location - как над НПС-Квестодателями).

Ничего сложного как мне кажется нет. Но я не написал еще один тэг, потому что пользуюсь им очень редко:

<function_complete></function_complete>
Как не сложно догадаться, по аналогии с предыдущими, этот тэг вызывает какую-либо функцию (если вы читали статью о создании диалогов, то должны знать как указать файл и название функции). Если все условия функции выполняются, то подзадание выполняется.

Теперь на готовом примере разберем создание квеста.

За основу я взял диалог из статьи по созданию диалогов. Попытаемся сделать квест на поиск водки для Сидорыча.

Открываем файл task_escape и создаем базовую структуру нашего квеста, названия и подзадания (их будет два - найти водку и отдать ее):
<game_task id="quest_vodka">
	<title>Принести водку Сидору</title>
	<objective>
		<text>Найти водку</text>
	</objective>
	<objective>
		<text>Отдать ее Сидорычу</text>
	</objective>
</game_task>
Далее создадим два инфопоршня (для старта и для окончания квеста):
<info_portion id="quest_vodka_start">
	<task>quest_vodka</task>
</info_portion>
<info_portion id="quest_vodka_finish"></info_portion>
И пропишем второй инфопоршень для завершения второго подзадания:
<game_task id="quest_vodka">
	<title>Принести водку Сидору</title>
	<objective>
		<text>Найти водку</text>
	</objective>
	<objective>
		<text>Отдать ее Сидорычу</text>
		<infoportion_complete>quest_vodka_finish</infoportion_complete>
	</objective>
</game_task>
Один момент я упустил. Незнаю почему так, но для работоспособности квеста нужно скопировать последнее подзадание в самый верх, т.е.:
<game_task id="quest_vodka">
	<title>Принести водку Сидору</title>
	<objective>
		<text>Отдать ее Сидорычу</text>
		<infoportion_complete>quest_vodka_finish</infoportion_complete>
	</objective>
	<objective>
		<text>Найти водку</text>
	</objective>
	<objective>
		<text>Отдать ее Сидорычу</text>
		<infoportion_complete>quest_vodka_finish</infoportion_complete>
	</objective>
</game_task>
Уж незнаю особенность это движка или еще что то, но без этого квест работать не будет!

Чтобы не происходило вылета при заходе в ПДА, нужно прописать квесту иконку, которая будет отображаться в списке заданий. Пропишем ее в первое подзадание:
<game_task id="quest_vodka">
	<title>Принести водку Сидору</title>
	<objective>
		<text>Отдать ее Сидорычу</text>
		<icon>ui_iconsTotal_find_item</icon>
		<infoportion_complete>quest_vodka_finish</infoportion_complete>
	</objective>

Далее прописываем выдачу инфопоршней в диалоге с Сидором.

Начало квеста прописываем после фразы ГГ "Договорились.":
<dialog id="prinesi_vodky">
<dont_has_info>info_new_vodka</dont_has_info>
	<phrase_list>
		<phrase id="0">
			<text>prinesi_vodky_0</text>
			<next>1</next>
		</phrase>
		<phrase id="1">
			<text>prinesi_vodky_1</text>
			<next>2</next>
		</phrase>
		<phrase id="2">
			<text>prinesi_vodky_2</text>
			<next>3</next>
		</phrase>
		<phrase id="3">
			<text>prinesi_vodky_3</text>
			<next>4</next>
		</phrase>
		<phrase id="4">
			<text>prinesi_vodky_4</text>
			<give_info>info_new_vodka</give_info>
			<give_info>quest_vodka_start</give_info>
		</phrase>
	</phrase_list>
</dialog>
А завершение квеста после фразы "Держи. Разливай… ":
<dialog id="oday_vodky">
<has_info>info_new_vodka</has_info>
<dont_has_info>info_new_vodka2</dont_has_info>
	<phrase_list>
		<phrase id="0">
			<text>oday_vodky_0</text>
			<next>1</next>
		</phrase>
		<phrase id="1">
			<text>oday_vodky_1</text>
			<next>21</next>
			<next>22</next>
		</phrase>
		<phrase id="21">
			<text>oday_vodky_21</text>
			<precondition>dialogs.have_a_vodka</precondition>
			<action>dialogs.transfer_vodka</action>
			<give_info>quest_vodka_finish</give_info>
			<next>31</next>
		</phrase>
		<phrase id="22">
			<text>oday_vodky_22</text>
			<next>32</next>
		</phrase>
		<phrase id="31">
			<text>oday_vodky_31</text>
			<action>dialogs.transfer_2000</action>
			<give_info>info_new_vodka2</give_info>
		</phrase>
		<phrase id="32">
			<text>oday_vodky_32</text>
		</phrase>
	</phrase_list>
</dialog>
Мы почти закончили. Осталось прописать завершение среднего подзадания (следовательно в игре оно будет первым). Для этого мы будем использовать ту же функцию, что применяли, для появления диалога:
function have_a_vodka (stalker, player)
	return db.actor:object ("vodka") ~= nil
end
Пропишем ее здесь:
<objective>
	<text>Найти водку</text>
	<function_complete>dialogs.have_a_vodka</function_complete>
</objective>
Вот и все. Вы сделали свой первый квест. Поздравляю и удачи в квестостроении :)

#2 slayer_kch

    СуперСтарожил!


  • сообщений 1 859
  • Имя:Вячеслав
  • Пол:Мужчина
  • Город:НАША РАША KCH
  • Группировка: Призрачные волки

Отправлено 30 Август 2010 - 09:34

Урок для создания квеста на убийство определённого мутанта
Суть квеста.
Выдаётся задание на убийство матёрого кабана
Идём убиваем, после убийства получаем другое задание вернутся и получить награду.
Спавн
configs\creatures\spawn_sections_marsh.ltx
Текст
Логика
configs\scripts\marsh\marsh_swm_add\mar_boar_old_logic.ltx
Текст
Диалоги
configs\gameplay\swm_dialogs.xml
Текст
Инфорпоршни
configs\gameplay\swm_info.xml
Текст
Тексты диалогов
configs\text\rus\swm_st_quests_text's.xml
Текст
Название заданий в ПДА
configs\text\rus\swm_st_quests.xml
Текст
Скрипты
scripts\swm_dialogs.script
Текст
Квест у Следопыта охота на матёрого кабана
configs\misc\tm_swm.ltx
Текст






1 посетителей читают эту тему

0 пользователей, 1 гостей, 0 скрытых