Muestra las diferencias entre dos versiones de la página.
modding:tutoriales:crearnuevoslogros [19/03/2010 17:10] Davide creado |
modding:tutoriales:crearnuevoslogros [26/12/2014 20:36] |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== Creación de nuevos Logros ====== | ||
- | Necesitaremos tener a mano los siguientes archivos, que encontraréis en la carpeta gamedata: | ||
- | * //configs/gameplay///**info_zaton.xml** | ||
- | * //configs/misc///**achievements.ltx** | ||
- | * //configs/text/XXX///**st_achievement.xml** (XXX es el código de idioma - esp, eng, rus, etc.) | ||
- | * //configs/ui/textures_descr///**ui_actor_achivments.xml** | ||
- | * //scripts///**xr_statistic.script** | ||
- | * //scripts///**xr_conditions.script** | ||
- | * //textures/ui///**ui_actor_achivments.dds** | ||
- | |||
- | Como es lógico, necesitarás descomprimir el juego para encontrar estos archivos. //Aclaración by Dade: el archivo //configs/gameplay///**info_zaton.xml** se utiliza para mostrar de dónde se sacan los nombres de las variables.// | ||
- | |||
- | Ahora abre el archivo //configs/misc///**achievements.ltx** y añade lo siguiente al final del mismo: | ||
- | <code>[sucker] ; Referencia del Logro | ||
- | icor = ui_inGame2_lopuh ; Icono del Logro | ||
- | hint = st_sp_achievement_22_hint ; Descripción mostrada en la PDA | ||
- | name = st_sp_achievement_22_name ; Nombre | ||
- | desc = st_sp_achievement_22_descr ; Descripción | ||
- | functor = xr_statistic.sucker_functor ; Función que vamos a utilizar</code> | ||
- | |||
- | Ahora abre //configs/text/XXX///**st_achievement.xml** y añade al final: | ||
- | <code><string id="st_sp_achievement_22_hint"> | ||
- | <text>No caigas en la trampa.</text> | ||
- | </string> | ||
- | <string id="st_sp_achievement_22_descr"> | ||
- | <text>Has dejado el artefacto al stalker estafador.</text> | ||
- | </string> | ||
- | <string id="st_sp_achievement_22_name"> | ||
- | <text>Bardana</text> | ||
- | </string></code> | ||
- | |||
- | Seguidamente accede a //scripts///**xr_statistic.script** y añade esto al final: | ||
- | <code>function sucker_functor() ; Nombre de la función, el mismo que pusimos en //functor//. | ||
- | if not has_alife_info("sucker_achievement_gained") then ; Se comprueba si ya has recibido este Logro. | ||
- | if has_alife_info("zat_b14_give_item_stalker") ; Se comprueba si has dado el artefacto al stalker. | ||
- | then | ||
- | xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"stalker", 200}) ; Como recompensa, tu relación con los stalkers libres ha mejorado (podrías poner -200 si quieres que el Logro tenga efectos negativos). | ||
- | xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"freedom", 200}) ; Como recompensa, la calidad de la relación que mantienes con Libertad ha aumentado 200 puntos. | ||
- | xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"dolg", 200}) ; Idem con Deber. | ||
- | xr_effects.inc_faction_goodwill_to_actor(db.actor, nil, {"bandit", 200}) ; Idem con los Bandidos. | ||
- | news_manager.send_tip(db.actor, "st_ach_diplomat", nil, "diplomat", nil, nil) ; Se informa del logro vía PDA. | ||
- | db.actor:give_info_portion("sucker_achievement_gained") ; Muestra del logro obtenido. | ||
- | end | ||
- | end | ||
- | return has_alife_info("sucker_achievement_gained") | ||
- | end</code> | ||
- | |||
- | Toca el turno al archivo //scripts///**xr_conditions.script**, dónde tienes que encontrar: | ||
- | |||
- | <code>friend_of_stalkers_functor = xr_statistic.friend_of_stalkers_functor</code> | ||
- | |||
- | Y seguidamente, bajo la misma, añadir | ||
- | |||
- | <code>sucker_functor = xr_statistic.sucker_functor</code> | ||
- | |||
- | Todo está listo, de hecho ya está todo correctamente configurado. Sin embargo, como querremos bordar el trabajo tendremos que: | ||
- | * Editar //textures/ui///**ui_actor_achivments.dds** para incluir nuestro propio icono del Logro | ||
- | * Indicar en //configs/ui/textures_descr///**ui_actor_achivments.xml** la posición del icono del Logro que habremos incluído en el archivo anterior. |