CoP. Создание квеста — S.T.A.L.K.E.R. Inside Wiki

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

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
Разбираем конкретно параметры:

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 — проверка инфопоршня, после которого метка будет поставлена на нпц

on_init — инфопоршень, который «включает» задание Пример использования: on_init = %+название_инфопоршня%

condlist_x — блок условий. возможные значения complete, reversed, fail Примеры использования: condlist_0 = {+название_инфопоршня} complete — если поршень есть, задание выполнено condlist_1 = {+название_инфопоршня} reversed — если поршень есть, есть возможность повторить задание condlist_2 = {+название_инфопоршня} fail — если поршень есть, задание провалено

on_complete — действия, которые выполняются, если задание выполнено on_reversed — действия, которые выполняются, если задание провалено Примеры использования: on_complete = %=inc_faction_goodwill_to_actor(stalker:200)% — повышаем репу у сталкеров (функция юзаются из xr_effect) on_reversed = {+название_ифопоршня} %=inc_faction_goodwill_to_actor(stalker:200)% — повышаем репу у сталкеров, только если есть опр.инфопоршень on_complete = %+название_инфопоршня% — выдаем инфопоршень

reward_money — денежная награда Пример использования: reward_money = 5000




Создаем примитивный квест:

Используемые файлы:

configs\gameplay\dialogs_zaton.xml
configs\gameplay\info_zaton.xml
configs\gameplay\character_desc_zaton.xml
configs\text\rus\st_quests_zaton.xml
configs\misc\tm_zaton.ltx
scripts\dialogs_zaton.script

Создание диалога Открываем файл dialogs_zaton.xml и добавляем перед </game_dialogs>:

<dialog id="vodka_quest_dialog">
<dont_has_info>quest_vodka_done</dont_has_info>
<dont_has_info>quest_vodka_give</dont_has_info>
<phrase_list>
<phrase id="1">
<text>Принеси бутылочку</text>
<give_info>quest_vodka_give</give_info>
<action>dialogs_zaton.give_vodka_quest</action>
</phrase>
<phrase id="0">
<text>Привет, тебе водки не принести?</text>
<next>1</next>
</phrase>
</phrase_list>
</dialog>
 
<dialog id="vodka_quest_prines">
<has_info>quest_vodka_give</has_info>
<precondition>dialogs_zaton.is_has_vodka_borode</precondition>
<phrase_list>
<phrase id="1">
<text>Спасибо, чувак. Выручил</text>
<give_info>quest_vodka_done</give_info>
</phrase>
<phrase id="0">
<has_info>quest_has_vodka</has_info>
<text>Вот твоя водяра</text>
<action>dialogs_zaton.transfer_vodka_to_boroda</action>
<next>1</next>
</phrase>
</phrase_list>
</dialog>


Далее добавляем наши диалоги Бороде. Открываем файл character_desc_zaton.xml Находим строчку <actor_dialog>zat_a2_stalker_barmen_actor_info</actor_dialog> и под ней пишем

<actor_dialog>vodka_quest_dialog</actor_dialog>
<actor_dialog>vodka_quest_prines</actor_dialog>

Сохраняем

Открываем файл info_zaton.xml и добавляем перед </game_information_portions>:

<info_portion id="quest_vodka_give"></info_portion>
<info_portion id="quest_has_vodka"></info_portion>
<info_portion id="quest_vodka_done"></info_portion>

Открываем файл 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

Сохраняем

Открываем файл tm_zaton.ltx и в конец пишем:

[quest_vodka_give]
icon = ui_inGame2_Put_v_pripyat
prior = 2
storyline = false
title = {=actor_has_item(vodka)}vodka_barmen_prinesti_name, vodka_barmen_naiti_name
descr = vodka_barmen_descr
target = {=actor_has_item(vodka)}zat_a2_stalker_barmen
condlist_0 = {+quest_vodka_done} complete

Открываем файл 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]

Другие места
LANGUAGE