Предлагаю эту тему посвятить созданию квестов для STALKER Зов Припяти. От самых примитивных, до самых сложных. Кидайте туториалы, видео уроки и если вы знаете как их делать, то поведайте нам. Просьба - не фледите. Тема для новичков, будет очень к стати.
Эти так называемые "копии", с других форумов делаются просто. Квест с водкой или допустим убить сталкера... Ну так Автор! Объясни нам в подробностях что и как делать.... А твою работу вставить по указанным директориям любой дурак сможет... Лично я хочу создание квестов в подробностях.
Майк, Какие подробности? Ты должен сам понимать что ты делаешь, если ты не понимаешь то тебе хоть все по полкам розложи, ничего не поймешь... А вообще что в вашем понятии квест?
Квест, это каркас который надетый на внутрености, а внутрености это - логика, диалоги, скриптовые сцены и остальное что только ты придумаешь. То есть нельзя просто так взять и обьяснить. Ты должен сам придумать что и как делаешь, это как в программировании, сначала ты ставишь перед собой задачу, потом решаешь её, И РЕАЛИЗУЕШЬ в программе в данном случае в квесте.
Сообщение отредактировал MesnikAnd - Вторник, 19.02.2013, 00:09
icon — иконка квеста Пример использования: icon = ui_inGame2_Put_v_pripyat
prior — приоритет квеста Пример использования: prior = 112
storyline — флаг задания (true — сюжетное, false — несюжетное) Пример использования: storyline = true
title — название задание (id из xml) — если брать название не из xml, то в игре оно будет отображаться без пробелов Пример использования: title = zat_a9_way_gates_check_transport_workshop_name
descr — описание задания (id из xml) — если брать название не из xml, то в игре оно будет отображаться без пробелов Пример использования: descr = zat_a9_way_gates_check_transport_workshop_text
target — цель на карте (метка) Примеры использования: target =zat_a2_stalker_barmen (ID нпц, на которого будет поставлена метка) target = {+название_инфопоршня}zat_a2_stalker_barmen — проверка инфопоршня, после которого метка будет поставлена на нпц
condlist_x — блок условий. возможные значения complete, reversed, fail Примеры использования: condlist_0 = {+название_инфопоршня} complete — если выполняется условие, задание выполнено. condlist_1 = {+название_инфопоршня} reversed — если выполняется условие, значит есть возможность повторить задание. condlist_2 = {+название_инфопоршня} fail — если выполняется условие, задание провалено.
on_init - действия, которые выполняются, при выдаче задания on_complete — действия, которые выполняются, если задание выполнено on_reversed — действия, которые выполняются, если задание провалено Примеры использования: on_init = %+название_инфопоршня% -- выдаем опр.инфопоршень on_complete = %=inc_faction_goodwill_to_actor(stalker:200)% — повышаем репу у сталкеров (функция юзаются из xr_effect) on_reversed = {+название_ифопоршня} %=inc_faction_goodwill_to_actor(stalker:200)% — повышаем репу у сталкеров, только если есть опр.инфопоршень
reward_money - денежная награда reward_item - награда в виде предмета
Далее добавляем наши диалоги Бороде. Открываем файл character_desc_zaton.xml Находим строчку <actor_dialog>zat_a2_stalker_barmen_actor_info</actor_dialog> и под ней пишем:
Открываем файл dialogs_zaton.script и в начало записываем:
function give_vodka_quest() task_manager.get_task_manager():give_task("quest_vodka_give") end function is_has_vodka_borode() if db.actor:object("vodka") then return true end return false end function transfer_vodka_to_boroda(first_speaker, second_speaker) dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "vodka") end
Открываем файл st_quests_zaton.xml и добавляем после <string_table>:
<string id="vodka_barmen_naiti_name"> <text>Найти водку для бармена</text> </string> <string id="vodka_barmen_prinesti_name"> <text>Принести водку бармену</text> </string> <string id="vodka_barmen_descr"> <text>Бармен в тестовых целях попросил найти и принести ему 2 бутылки водки</text> </string>
Сохраняем.
Автор: XMK Источник
Примечания
Примечание №1
В варианте диалога от автора статьи есть ненужная строка: <has_info>quest_has_vodka</has_info> - эта функция по идее должна проверять наличие инфопорции quest_has_vodka которая ничем не выдаётся... Наличие (или отсутствие) строчки <has_info>quest_has_vodka</has_info> в структуре диалога ничего не изменит, поэтому она просто не нужна... Тем более что она может стать причиной багов.
Примечание №2
Чтобы скрыть диалог выполнения квеста (vodka_quest_prines) - "Вот твоя водяра" - после выполнения квеста, ниже строчки <has_info>quest_vodka_give</has_info> нужно добавить строчку <dont_has_info>quest_vodka_done</dont_has_info> - то бишь условие - показывать диалог выполнения квеста (vodka_quest_prines) при наличии следующих условий:
<has_info>quest_vodka_give</has_info> - уже выдан квест "Принести водку бармену"
<dont_has_info>quest_vodka_done</dont_has_info> - квест ещё не выполнен
<precondition>dialogs_zaton.is_has_vodka_borode</precondition> - проверка наличия у ГГ нужного предмета (водки).
Примечание №3
Наличие строчки <dont_has_info>quest_vodka_done</dont_has_info> в диалоге активации квеста (vodka_quest_dialog) - "Привет, тебе водки не принести?" тоже не нужно, ибо при активации квеста будет выдана инфопорция quest_vodka_give и функция <dont_has_info>quest_vodka_give</dont_has_info> скроет диалог активации квеста.
Конечно это квест у меня сделать поручиться, а вот к примеру похожий на него, к сожадению я не осилю... Вот что изменить в этих схемах, что бы по этой же системе сделать второй квест уже у другого непися....?
Сколько можно уже клепать повторяющиеся темы в этом разделе? Пора вводить премодерацию тем перед их созданием. Уже все давно сделано и расписано тут: ссылка на тему. Бери и учись. Что кому не понятно спрашивают тут- тема.