====== 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: quest_vodka_done quest_vodka_give Lleva una botella quest_vodka_give dialogs_zaton.give_vodka_quest Hola, ¿Tienes Vodka? 1 quest_vodka_give dialogs_zaton.is_has_vodka_borode ¡Gracias tio! quest_vodka_done quest_has_vodka Aquí tienes el mejor Vodka de la Zona. dialogs_zaton.transfer_vodka_to_boroda 1 **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! :)