Herramientas de usuario

Herramientas del sitio


modding:tutoriales:crearmision

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

modding:tutoriales:crearmision [26/12/2014 20:36]
modding:tutoriales:crearmision [26/12/2014 20:36] (actual)
Línea 1: Línea 1:
 +====== 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 </​game_dialogs>​ añadimos:
 +
 +<​code><​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></​code>​
 +
 +**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:
 +<​code><​actor_dialog>​vodka_quest_dialog</​actor_dialog>​
 +<​actor_dialog>​vodka_quest_prines</​actor_dialog></​code>​
 +
 +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 //</​game_information_portions>//:​
 +
 +<​code> ​   <​info_portion id="​quest_vodka_give"></​info_portion>​
 +    <​info_portion id="​quest_has_vodka"></​info_portion>​
 +    <​info_portion id="​quest_vodka_done"></​info_portion></​code>​
 +
 +Seguidamente abrimos //​scripts///​**dialogs_zaton.script** y añadimos al final del archivo:
 +<​code>​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</​code>​
 +
 +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:
 +<​code>​[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</​code>​
 +
 +Ahora damos con //​configs/​text/​XXX///​**st_quests_zaton.xml** y añadimos antes de //<​string_table>//:​
 +<​code><​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></​code>​
 +
 +Guardamos todo, y listo, ¡hemos creado nuestra primer quest! :)
modding/tutoriales/crearmision.txt · Última modificación: 26/12/2014 20:36 (editor externo)