Створення примітивного квеста на ліквідацію сквада мутантів, без
переробки спавна на S.T.A.L.K.E.R. Call of Pripyat
Автор: Devil_Stalker
Телеграм:
https://t.me/modostoi_stalker
Файли які потрібно для роботи:
1. gamedata\configs\gameplay
-character_desc_zaton.xml
-dialogs_zaton.xml
-info_zaton.xml
2. gamedata\configs\misc
- tm_zaton.ltx
3.gamedata\configs\text\rus
- st_dialogs_zaton.xml
- st_quests_zaton.xml
5. gamedata\scripts
- dialogs_zaton.script
В файл dialogs_zaton.xml(gamedata\configs\gameplay) в низу
добавим два діалога:
На видачу завдання.
<dialog id="zat_b106_stalker_gonta_lesson_start">
<has_info>zat_b106_search_soroka</has_info>
<dont_has_info>zat_b106_stalker_gonta_lesson_otkaz</dont_has_info>
<dont_has_info>zat_b106_stalker_gonta_lesson_start_tm</dont_has_info>
<phrase_list>
<phrase id="1">
<text>zat_b106_stalker_gonta_lesson_start_1</text>
<next>2</next>
<next>21</next>
</phrase>
<phrase id="3">
<text>zat_b106_stalker_gonta_lesson_start_3</text>
</phrase>
<phrase id="2">
<text>zat_b106_stalker_gonta_lesson_start_2</text>
<action>dialogs_zaton.zat_b106_stalker_gonta_give_tm_lesson</action>
<give_info>zat_b106_stalker_gonta_lesson_start_tm</give_info>
<next>3</next>
</phrase>
<phrase id="0">
<text>zat_b106_stalker_gonta_lesson_start_0</text>
<next>1</next>
</phrase>
<phrase id="21">
<text>zat_b106_stalker_gonta_lesson_start_21</text>
<give_info>zat_b106_stalker_gonta_lesson_otkaz</give_info>
</phrase>
</phrase_list>
</dialog>
На заввершення завдання.
<dialog id="zat_b106_stalker_gonta_lesson_end">
<has_info>zat_b106_stalker_gonta_lesson_start_tm</has_info>
<dont_has_info>zat_b106_stalker_gonta_lesson_complite</dont_has_info>
<dont_has_info>zat_b106_stalker_gonta_lesson_fail</dont_has_info>
<phrase_list>
<phrase id="1">
<text>zat_b106_stalker_gonta_lesson_end_1</text>
<next>2</next>
<next>21</next>
<next>22</next>
</phrase>
<phrase id="3">
<text>zat_b106_stalker_gonta_lesson_end_3</text>
</phrase>
<phrase id="0">
<text>zat_b106_stalker_gonta_lesson_end_0</text>
<next>1</next>
</phrase>
<phrase id="2">
<text>zat_b106_stalker_gonta_lesson_end_2</text>
<has_info>zat_sim_16_snork_squad_kill</has_info>
<action>dialogs_zaton.zat_b106_stalker_gonta_give_revard</action>
<give_info>zat_b106_stalker_gonta_lesson_complite</give_info>
<next>3</next>
</phrase>
<phrase id="22">
<text>zat_b106_stalker_gonta_lesson_end_22</text>
</phrase>
<phrase id="21">
<text>zat_b106_stalker_gonta_lesson_end_21</text>
<give_info>zat_b106_stalker_gonta_lesson_fail</give_info>
</phrase>
</phrase_list>
</dialog>
Пояснення
Діалог буде активовано тільки після того як ми поговоримо з гонтой про
сороку
тобто отримали інфопоршень zat_b106_search_soroka
zat_b106_stalker_gonta_lesson_start_tm
Це алгоритм діалога у нас відсутній інфопоршень
zat_b106_stalker_gonta_lesson_start_tm
в
ході діалогу ми його отримаємо <give_info>zat_b106_stalker_gonta_lesson_start_tm
</give_info> і наш діалог не буде
активуватись знову.
zat_b106_stalker_gonta_lesson_otkaz
Інфопршень в діалогу на відмову брати цю роботу після чого діалогу бідьше
не буде.
<action>dialogs_zaton.zat_b106_stalker_gonta_give_tm_lesson</action>
<action>dialogs_zaton.zat_b106_stalker_gonta_give_tm_lesson</action>це
ссилка на фунцію в скрипті(gamedata\scripts \dialogs_zaton.script ) для
видачі завдання на полювання , та спавн мутантів
zat_b106_stalker_gonta_lesson_fail
ході діалогу ми його отримаємо <give_info>zat_b106_stalker_gonta_lesson_fail
</give_info> і наш діалог не буде
активуватись знову. Завдання буде провалено
zat_b106_stalker_gonta_lesson_complite
ході діалогу ми його отримаємо <give_info>zat_b106_stalker_gonta_lesson_complite
</give_info> і наш діалог не буде
активуватись знову. Завдання буде виконано
dialogs_zaton.zat_b106_stalker_gonta_give_revard
<action>dialogs_zaton.zat_b106_stalker_gonta_give_revard</action>це
ссилка на фунцію в скрипті(gamedata\scripts \dialogs_zaton.script ) для
видачі винагороди ГГ.
Тепер пропишем текст наших діалогів
- st_dialogs_zaton.xml(gamedata\configs\text\rus)в низу
перед строкою </string_table> добавим такі строки:
<string id="zat_b106_stalker_gonta_lesson_end_0">
<text>Я з приводу роботи.</text>
</string>
<string id="zat_b106_stalker_gonta_lesson_end_1">
<text>Ну що там друже?</text>
</string>
<string id="zat_b106_stalker_gonta_lesson_end_2">
<text>Все немає снорків.</text>
</string>
<string id="zat_b106_stalker_gonta_lesson_end_21">
<text>Я відмовляюся виконувати це завдання.</text>
</string>
<string id="zat_b106_stalker_gonta_lesson_end_22">
<text>Я ще не ходив туди.</text>
</string>
<string id="zat_b106_stalker_gonta_lesson_end_3">
<text>Дякую тобі сталкер, ти багатьом допоміг.</text>
</string>
<string id="zat_b106_stalker_gonta_lesson_start_0">
<text>Чи якась робота для мене?</text>
</string>
<string id="zat_b106_stalker_gonta_lesson_start_1">
<text>Там у лісництва завелися снорки, повилазили з нори скоти тепер
там спокійно не пройдеш, а толкових мисливців зараз у нас
немає.</text>
</string>
<string id="zat_b106_stalker_gonta_lesson_start_2">
<text>Ну добре схожу постреляю тих гадів.</text>
</string>
<string id="zat_b106_stalker_gonta_lesson_start_21">
<text>Та ні самі якось.</text>
</string>
<string id="zat_b106_stalker_gonta_lesson_start_3">
<text>Удачі тобі сталкер, будь обережний.</text>
</string>
В файл nfo_zaton.xml (gamedata\configs\gameplay) в низу
добавим Інфопоршні
<!-- lesson gonta-->
<info_portion
id="zat_b106_stalker_gonta_lesson_start_tm"></info_portion>
<info_portion
id="zat_b106_stalker_gonta_lesson_otkaz"></info_portion>
<info_portion
id="zat_b106_stalker_gonta_lesson_complite"></info_portion>
<info_portion
id="zat_b106_stalker_gonta_lesson_fail"></info_portion>
Пояснення
В цій строкі <!-- --> можна проаисати назву груп наших
інфопоршнів які відносяться до квесту
В файл
character_desc_zaton.xml(gamedata\configs\gameplay)
в секції Гонти zat_b106_stalker_gontaдобавим
ідентифікатори діалогів:
<actor_dialog>zat_b106_stalker_gonta_lesson_start</actor_dialog>
<actor_dialog>zat_b106_stalker_gonta_lesson_end</actor_dialog>
Пропишем функції в скриптах
dialogs_zaton.script(gamedata\scripts) в кінці
пропишем фунції які ми указували в діалогах
function zat_b106_stalker_gonta_give_tm_lesson()
task_manager.get_task_manager():give_task("lesson_zat_b106_stalker_gonta")
xr_effects.create_squad(nil, nil, {"zat_sim_16_snork_squad", "zat_sim_16"})
end
function zat_b106_stalker_gonta_give_revard(first_speaker, second_speaker)
dialogs.relocate_money_to_actor(first_speaker, second_speaker, 5000)
treasure_manager.get_treasure_manager():give_treasure("zat_hiding_place_20")
end
Пояснення
function zat_b106_stalker_gonta_give_tm_lesson()
task_manager.get_task_manager():give_task("lesson_zat_b106_stalker_gonta")
xr_effects.create_squad(nil, nil, {"zat_sim_16_snork_squad",
"zat_sim_16"})
end
Функція для видачі завдання та спавна сквада снорків у смарт терейн під
назвою zat_sim_16
function zat_b106_stalker_gonta_give_revard(first_speaker,
second_speaker)
dialogs.relocate_money_to_actor(first_speaker, second_speaker, 5000)
treasure_manager.get_treasure_manager():give_treasure("zat_hiding_place_20")
end
Функція для передачі грошової винагороди ГГ та
наводки на схрон
В файл tm_zaton.ltx(gamedata\configs\misc) добавим
квест:
[lesson_zat_b106_stalker_gonta]
icon = ui_inGame2_Ohota_na_Himeru
prior = 2
storyline = false
title = {+esc_tushkan_monster_kill} lesson_zat_b106_stalker_gonta_title_1,
lesson_zat_b106_stalker_gonta_title_0
descr = {+esc_tushkan_monster_kill} lesson_zat_b106_stalker_gonta_descr_1,
lesson_zat_b106_stalker_gonta_descr_0
target = {+zat_sim_16_snork_squad_kill} zat_b106_stalker_gonta,
zat_sim_16_snork_squad
condlist_0 = {+zat_b106_stalker_gonta_lesson_complite} complete
condlist_1 = {+zat_b106_stalker_gonta_lesson_fail} fail
Пояснення
- [lesson_zat_b106_stalker_gonta]- назва завдання в таск менеджері
- icon = ui_inGame2_Ohota_na_Himeru - іконка квеста
- prior = 2 - пріоритет завдання
- storyline = false - сюжетный квест або ні
- title = - заголовки при обновленні завдання
- descr = - дескрипшини при обновленні завдання
- target = - мітка на карті при обновленні завдання
- condlist_0 =- кондішн в квесті на завершення
- condlist_1 =- кондішн в квесті на провал
Пропишемо транскрипцію дескрипшинов і тайтлов квеста в
st_quests_zaton.xml
(gamedata\configs\text\rus)
<string id="lesson_zat_b106_stalker_gonta_title_1">
<text>Розповісти Гонті про ліквідацію мутантів</text>
</string>
<string id="lesson_zat_b106_stalker_gonta_descr_1">
<text>Мутанти вбиті потрібно повернутися до гонти та розповісти йому
і отримати винагороду за урок</text>
</string>
<string id="lesson_zat_b106_stalker_gonta_descr_0">
<text>Гонта в ході уроку поросив мене допомогти розібратися зі
снорками у лісництва</text>
</string>
<string id="lesson_zat_b106_stalker_gonta_title_0">
<text>Ліквідувати снорків</text>
</string>
В файл
squad_descr_zaton.ltx(gamedata\configs\misc)
створимо сквад снорків в низу допишемо секцію:
[zat_sim_16_snork_squad]:online_offline_group
faction = monster_zombied_day
npc = snork_indoor, snork_indoor, snork_indoor, snork_indoor
target_smart = zat_sim_16
story_id = zat_sim_16_snork_squad
on_death = %+zat_sim_16_snork_squad_kill%
Пояснення
[zat_sim_16_snork_squad]:online_offline_group назва нашого сквада
faction = monster_zombied_day фракція сквада
npc = snork_indoor, snork_indoor, snork_indoor, snork_indoor назва
мутантів і кількість які будуть в скваді ( можна взяти із
character_desc_general.XML
)
target_smart = zat_sim_16 смарт терейн якому належить сквад і до якого
він буде прив'язаний
story_id = zat_sim_16_snork_squad сторі ІД для мінікарти і позначення
нашого сквада
on_death = %+zat_sim_16_snork_squad_kill% інфопоршень який нам видасть якщо
сквад буде знищено