NOTA: Si las recompensas no te las da un PNJ, estas se pondrán automáticamente en tu inventario.
Cómo ya tenemos alguna idea de lo que vamos a encontrarnos por el camino, empezaremos utilizando los siguientes archivos:
Abrimos configs/gameplay/dialogs_zaton.xml y justo encima de </game_dialogs> añadimos:
<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>Lleva una botella</text> <give_info>quest_vodka_give</give_info> <action>dialogs_zaton.give_vodka_quest</action> </phrase> <phrase id="0"> <text>Hola, ¿Tienes Vodka?</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>¡Gracias tio!</text> <give_info>quest_vodka_done</give_info> </phrase> <phrase id="0"> <has_info>quest_has_vodka</has_info> <text>Aquí tienes el mejor Vodka de la Zona.</text> <action>dialogs_zaton.transfer_vodka_to_boroda</action> <next>1</next> </phrase> </phrase_list> </dialog>
NOTA by Dade: El tutorial es muy sencillo, y por ello no menciona que en lugar de, por ejemplo, '¡Gracias tio!' podríamos poner 'dademod_gracias' lo cual haría referencia a una ID de algún archivo de texto (supongo que configs/text/XXX/st_dialogs_zaton.xml) y que efectivamente daría el mismo resultado. Fijaros en otras ramas de diálogos y veréis lo que digo.
Ahora tendremos que hacer que estos diálogos salgan a la luz por boca de algún stalker. Toca abrir configs/gameplay/character_desc_zaton.xml y buscar a Beard. Hallaremos la línea <actor_dialog>zat_a2_stalker_barmen_actor_info</actor_dialog> y justo debajo añadimos:
<actor_dialog>vodka_quest_dialog</actor_dialog> <actor_dialog>vodka_quest_prines</actor_dialog>
Ya tenemos establecidos los diálogos que se llevarán a cabo durante la misión. Seguimos…
Una vez abierto configs/gameplay/info_zaton.xml añadimos just antes de </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>
Seguidamente abrimos scripts/dialogs_zaton.script y añadimos al final del archivo:
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
Ya hemos definido las 'consecuencias' de realizar el diálogo que habíamos realizado previamente. Hora de ponerlo todo en marcha…
Una vez abierto configs/misc/tm_zaton.ltx añadimos al final del todo:
[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
Ahora damos con configs/text/XXX/st_quests_zaton.xml y añadimos antes de <string_table>:
<string id="vodka_barmen_naiti_name"> <text>Busca vodka para Beard</text> </string> <string id="vodka_barmen_prinesti_name"> <text>Busca vodka para Beard</text> </string> <string id="vodka_barmen_descr"> <text>Beard ha terminado con sus reservas de vodka y te pide que le traigas un par de botellas antes de que la cosa se ponga fea.</text> </string>
Guardamos todo, y listo, ¡hemos creado nuestra primer quest! :)