📌 Обновление Форума
Онлайн всего: 255
Гостей: 249
Пользователей: 6
ol_4ik56uj
Новый сталкер: ol_4ik56uj 
Сталкеров: 9215 🛸
CoP. Создание квеста

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

    
        SHARE
👁️ 488

📆 2023.10.11

💬 0

Разбираем параметры
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_fail — действия, которые выполняются, если задание провалено
Примеры использования:
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 - награда в виде предмета
Примеры использования:
reward_money = 5000 -- даем актору 5000.
reward_item = wpn_ak74 -- даем актору АК-74.

Примечание: Награда выдается двумя методами: от NPC или просто свалится с неба. Если не найден NPC, с которым мы в диалоге, то валится с неба.

Практика

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

Код
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 и добавляем перед :

Код
<dialog id="vodka_quest_dialog">
<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>
<dont_has_info>quest_vodka_done</dont_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">
  <text>Вот твоя водяра</text>
  <action>dialogs_zaton.transfer_vodka_to_boroda</action>
  <next>1</next>
  </phrase>
</phrase_list>
</dialog>


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

Код
<actor_dialog>vodka_quest_dialog</actor_dialog>
<actor_dialog>vodka_quest_prines</actor_dialog>


Сохраняем.

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

Код
<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 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>


Сохраняем.


5.0 | припять, Зов, квеста, COP, создание

Обсуждение материала:
💬 0
Указать плюсы и минусы
🔸Войдите, чтоб оставить комментарии! 🔹Быстрый Вход ➞

Вверх 

🔰Заходили сегодня: | Anubis, stalkercom, sashadevyatov2019, Стриж, mikhail_shurmin, d-3av, shnur94132, leks05891, mori2013, axel_85, monteki9191, artema2003, Nuker, pigont71, silvanecxl, MorganGames, mrgreenfin, markklim47, KENT1991, yur4ik, Spic3, bagetzenia, xxxramisv32, PaTrAsKoN, сурик, Dezertak, Maximus, mayorbugor1978, frolovsergey2034, timurtokarskij64, slygingerfox, alexandrpas28021995, gordienko1966, janeride228, Agressor, Ohaegodzaimas, aldi7, sergghall, abdullohtojiyev1443, kham130699, dima228usas12, t-safiulin, vladiksmirne383, coco-zaza, skalikovviktor6, vanyadub2014, Стрелок3076, gareddairlines, viktorlozesnik26, iwanvlasenko2015, 95razorrazor, [Полный список]