Hoy estoy generoso, asi que subo dos de mis tutoriales.
Post original por Malik Faris, traducido por mi.
Post original:https://forums.taleworlds.com/index.php/topic,335744.0.html
Modules que necesitaras:
Primero, en module_scripts.py busca #script_get_improvement_details y añade mi codigo #Malik al final de este script como se muestra en el codigo de abajo.
Voy a explicar lo mejor que pueda lo que hace el código aquí. Slots como slot_center_has_manor estan almacenados en module_constants y se utilizan para realizar un seguimiento de un valor, en este caso un valor de un si o no de si existe el edificio.
El store_string es lo que se muestra cuando el juego verifica si tu aldea tiene la mejora, y el 2do es la descripción que da cuando se tiene en cuenta la construcción de ésta.
reg0 es el costo del edificio, ya que el mío hace algo más que una escuela, aumente el costo.
Simple Triggers:
Hay dos partes en este codigo, asi que busca la separación. Busca # Checking center upgrades y luego # Village upgrade triggers
La primera parte es muy facil, acabo de decirle al script para comprobar también el slot del nuevo orfanato que creamos para el ya existente script ya trabajando del molino [que era originalmente un estanque de peces(fish pond)]
La segunda parte solo involucra los cambios para las referencias de la aldea a los centros, ya que eso es lo que son las ciudades.
Module Constants:
Este fue un poco complicado ya que el inicio y el fin por donde se vea para esos slots son son poco específicos, y no deje ningún número abiertos entre ellos. Vi esa nada despues del 126 que fue usado y ya que esta cosa mira a si mismo para decidir donde terminan las cosas, solo tenia que ponerlo en el final con un numero unico y elegi 127 porque estaba disponible.
Game menus:
Aqui podemos ver todas las variadas mejoras, pero yo solo queria copiar lo que ya hacen las escuelas para las ciudades, fue muy simple.
Esto es simplemente que aparece en los menus cuando vas a construir una mejora y chequea que lo que hayas construido o no.
Busca "Build a school."
Eso es todo.
Post original por Malik Faris, traducido por mi.
Post original:https://forums.taleworlds.com/index.php/topic,335744.0.html
Modules que necesitaras:
- Scripts
- Simple Triggers
- Constants
- Game Menus
Primero, en module_scripts.py busca #script_get_improvement_details y añade mi codigo #Malik al final de este script como se muestra en el codigo de abajo.
Voy a explicar lo mejor que pueda lo que hace el código aquí. Slots como slot_center_has_manor estan almacenados en module_constants y se utilizan para realizar un seguimiento de un valor, en este caso un valor de un si o no de si existe el edificio.
El store_string es lo que se muestra cuando el juego verifica si tu aldea tiene la mejora, y el 2do es la descripción que da cuando se tiene en cuenta la construcción de ésta.
reg0 es el costo del edificio, ya que el mío hace algo más que una escuela, aumente el costo.
- Código:
#script_get_improvement_details
# INPUT: arg1 = improvement
# OUTPUT: reg0 = base_cost
("get_improvement_details",
[(store_script_param, ":improvement_no", 1),
(try_begin),
(eq, ":improvement_no", slot_center_has_manor),
(str_store_string, s0, "@Manor"),
(str_store_string, s1, "@A manor lets you rest at the village and pay your troops half wages while you rest."),
(assign, reg0, 8000),
(else_try),
(eq, ":improvement_no", slot_center_has_fish_pond),
(str_store_string, s0, "@Mill"),
(str_store_string, s1, "@A mill increases village prosperity by 5%."),
(assign, reg0, 6000),
(else_try),
(eq, ":improvement_no", slot_center_has_watch_tower),
(str_store_string, s0, "@Watch Tower"),
(str_store_string, s1, "@A watch tower lets the villagers raise alarm earlier. The time it takes for enemies to loot the village increases by 50%."),
(assign, reg0, 5000),
(else_try),
(eq, ":improvement_no", slot_center_has_school),
(str_store_string, s0, "@School"),
(str_store_string, s1, "@A school increases the loyality of the villagers to you by +1 every month."),
(assign, reg0, 9000),
(else_try),
(eq, ":improvement_no", slot_center_has_messenger_post),
(str_store_string, s0, "@Messenger Post"),
(str_store_string, s1, "@A messenger post lets the inhabitants send you a message whenever enemies are nearby, even if you are far away from here."),
(assign, reg0, 4000),
(else_try),
(eq, ":improvement_no", slot_center_has_prisoner_tower),
(str_store_string, s0, "@Prison Tower"),
(str_store_string, s1, "@A prison tower reduces the chance of captives held here running away successfully."),
(assign, reg0, 7000),
#Malik Buildings
(else_try),
(eq, ":improvement_no", slot_center_has_orphanage),
(str_store_string, s0, "@Orphanage"),
(str_store_string, s1, "@An orphanage increases the loyalty of the townspeople to you by +1 every month, and increases town prosperity by 5%."),
(assign, reg0, 11000),
#Malik Buildings End
(try_end),
]),
Simple Triggers:
Hay dos partes en este codigo, asi que busca la separación. Busca # Checking center upgrades y luego # Village upgrade triggers
La primera parte es muy facil, acabo de decirle al script para comprobar también el slot del nuevo orfanato que creamos para el ya existente script ya trabajando del molino [que era originalmente un estanque de peces(fish pond)]
La segunda parte solo involucra los cambios para las referencias de la aldea a los centros, ya que eso es lo que son las ciudades.
- Código:
# Checking center upgrades
(12,
[(try_for_range, ":center_no", centers_begin, centers_end),
(party_get_slot, ":cur_improvement", ":center_no", slot_center_current_improvement),
(gt, ":cur_improvement", 0),
(party_get_slot, ":cur_improvement_end_time", ":center_no", slot_center_improvement_end_hour),
(store_current_hours, ":cur_hours"),
(ge, ":cur_hours", ":cur_improvement_end_time"),
(party_set_slot, ":center_no", ":cur_improvement", 1),
(party_set_slot, ":center_no", slot_center_current_improvement, 0),
(call_script, "script_get_improvement_details", ":cur_improvement"),
(try_begin),
(party_slot_eq, ":center_no", slot_town_lord, "trp_player"),
(str_store_party_name, s4, ":center_no"),
(display_log_message, "@Building of {s0} in {s4} has been completed."),
(try_end),
#Malik Buildings
(try_begin),
(is_between, ":center_no", towns_begin, villages_end),
(this_or_next|eq, ":cur_improvement", slot_center_has_fish_pond),
(eq, ":cur_improvement", slot_center_has_orphanage),
(call_script, "script_change_center_prosperity", ":center_no", 5),
#Malik Buildings End
(try_end),
(try_end),
]),
NEXT PART
# Village upgrade triggers
# School
(30 * 24,
[(try_for_range, ":cur_village", villages_begin, villages_end),
(party_slot_eq, ":cur_village", slot_town_lord, "trp_player"),
(party_slot_eq, ":cur_village", slot_center_has_school, 1),
(party_get_slot, ":cur_relation", ":cur_village", slot_center_player_relation),
(val_add, ":cur_relation", 1),
(val_min, ":cur_relation", 100),
(party_set_slot, ":cur_village", slot_center_player_relation, ":cur_relation"),
(try_end),
]),
#Malik Buildings
#Orphanage
(30 * 24,
[(try_for_range, ":cur_center", towns_begin, towns_end),
(party_slot_eq, ":cur_center", slot_town_lord, "trp_player"),
(party_slot_eq, ":cur_center", slot_center_has_orphanage, 1),
(party_get_slot, ":cur_relation", ":cur_center", slot_center_player_relation),
(val_add, ":cur_relation", 1),
(val_min, ":cur_relation", 100),
(party_set_slot, ":cur_center", slot_center_player_relation, ":cur_relation"),
(try_end),
]),
#Malik Buildings End
# Quest triggers:
# Remaining days text update
Module Constants:
Este fue un poco complicado ya que el inicio y el fin por donde se vea para esos slots son son poco específicos, y no deje ningún número abiertos entre ellos. Vi esa nada despues del 126 que fue usado y ya que esta cosa mira a si mismo para decidir donde terminan las cosas, solo tenia que ponerlo en el final con un numero unico y elegi 127 porque estaba disponible.
- Código:
slot_center_improvement_end_hour = 125
slot_party_last_traded_center = 126
slot_center_has_manor = 130 #village
slot_center_has_fish_pond = 131 #village
slot_center_has_watch_tower = 132 #village
slot_center_has_school = 133 #village
slot_center_has_messenger_post = 134 #town, castle, village
slot_center_has_prisoner_tower = 135 #town, castle
slot_center_has_orphanage = 127 #Malik Buildings
village_improvements_begin = slot_center_has_manor
village_improvements_end = 135
walled_center_improvements_begin = slot_center_has_messenger_post
walled_center_improvements_end = 136
slot_center_player_enterprise = 137 #noted with the item produced
Game menus:
Aqui podemos ver todas las variadas mejoras, pero yo solo queria copiar lo que ya hacen las escuelas para las ciudades, fue muy simple.
Esto es simplemente que aparece en los menus cuando vas a construir una mejora y chequea que lo que hayas construido o no.
Busca "Build a school."
- Código:
[
("center_build_manor",[(eq, reg6, 0),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_village),
(party_slot_eq, "$g_encountered_party", slot_center_has_manor, 0),
],
"Build a manor.",[(assign, "$g_improvement_type", slot_center_has_manor),
(jump_to_menu, "mnu_center_improve"),]),
("center_build_fish_pond",[(eq, reg6, 0),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_village),
(party_slot_eq, "$g_encountered_party", slot_center_has_fish_pond, 0),
],
"Build a mill.",[(assign, "$g_improvement_type", slot_center_has_fish_pond),
(jump_to_menu, "mnu_center_improve"),]),
("center_build_watch_tower",[(eq, reg6, 0),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_village),
(party_slot_eq, "$g_encountered_party", slot_center_has_watch_tower, 0),
],
"Build a watch tower.",[(assign, "$g_improvement_type", slot_center_has_watch_tower),
(jump_to_menu, "mnu_center_improve"),]),
("center_build_school",[(eq, reg6, 0),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_village),
(party_slot_eq, "$g_encountered_party", slot_center_has_school, 0),
],
"Build a school.",[(assign, "$g_improvement_type", slot_center_has_school),
(jump_to_menu, "mnu_center_improve"),]),
#Malik Buildings
("center_build_orphanage",[(eq, reg6, 0),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_town),
(party_slot_eq, "$g_encountered_party", slot_center_has_orphanage, 0),
],
"Build a orphanage.",[(assign, "$g_improvement_type", slot_center_has_orphanage),
(jump_to_menu, "mnu_center_improve"),]),
#Malik Buildings End
("center_build_messenger_post",[(eq, reg6, 0),
(party_slot_eq, "$g_encountered_party", slot_center_has_messenger_post, 0),
],
"Build a messenger post.",[(assign, "$g_improvement_type", slot_center_has_messenger_post),
(jump_to_menu, "mnu_center_improve"),]),
("center_build_prisoner_tower",[(eq, reg6, 0),
(this_or_next|party_slot_eq, "$g_encountered_party", slot_party_type, spt_town),
(party_slot_eq, "$g_encountered_party", slot_party_type, spt_castle),
(party_slot_eq, "$g_encountered_party", slot_center_has_prisoner_tower, 0),
],
"Build a prisoner tower.",[(assign, "$g_improvement_type", slot_center_has_prisoner_tower),
(jump_to_menu, "mnu_center_improve"),]),
("go_back_dot",[],"Go back.",[(jump_to_menu, "$g_next_menu")]),
],
Eso es todo.