====== Crear Misiones en Call of Prypiat ======
===== Variables básicas =====
* icon - Icono de la misión
* prior - Prioridad de la misión
* storyline - "true" si es una misión de la historia principal, y "false" si es otro tipo de misión
* title - ID en los archivos XML que representa el título de la misión
* descr - ID en los acrhivos XML que representa la descripción de la misión
* target - ID de la referencia que especifica un lugar concreto para la misión, puede ser un objeto o un stalker (por ejemplo, zat_a2_stalker_barmen sería Beard)
* condlist_x - Condiciones para realizar, modificar, rehacer o fallar la misión
* on_init - Acciones que se ejecutan cuando empieza la misión
* on_complete - Acciones que se ejecutan cuando completa la misión (puedes ver estas funciones en **xr_effect.script**)
* on_reversed - Acciones que se ejecutan cuando falla la misión
* reward_money - Dinero entregado por cumplir la misión
* reward_item - Objeto entregado por cumplir la misión
**NOTA:**// Si las recompensas no te las da un PNJ, estas se pondrán automáticamente en tu inventario.//
===== Nuestra primera Misión =====
Cómo ya tenemos alguna idea de lo que vamos a encontrarnos por el camino, empezaremos utilizando los siguientes archivos:
* //configs/gameplay///**dialogs_zaton.xml**
* //configs/gameplay///**info_zaton.xml**
* //configs/gameplay///**character_desc_zaton.xml**
* //configs/text/XXX///**st_quests_zaton.xml**
* //configs/misc///**tm_zaton.ltx**
* //scripts///**dialogs_zaton.script**
==== Creación de los diálogos ====
Abrimos //configs/gameplay///**dialogs_zaton.xml** y justo encima de añadimos:
**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 //zat_a2_stalker_barmen_actor_info// y justo debajo añadimos:
vodka_quest_dialog
vodka_quest_prines
Ya tenemos establecidos los diálogos que se llevarán a cabo durante la misión. Seguimos...
==== Porciones de Información y Scripting ====
Una vez abierto //configs/gameplay///**info_zaton.xml** añadimos just antes de ////:
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...
==== La Misión ====
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 ////:
Busca vodka para Beard
Busca vodka para Beard
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.
Guardamos todo, y listo, ¡hemos creado nuestra primer quest! :)