Este era un código de caza que venía en el mod Project Age Of Machinery, creado por Highlander y pasado al Warband por HyperCharge, este tutorial lo creé yo.
Dificultad: Facíl, no se necesita ser un experto en Module System para hacer esto, aparte que los guiaré durante todo el proceso.
Antes de comezar les explico algunas cosas:
Lo que yo escriba con negrita es importante o algo destacado.
Lo que escriba con letra verde es qué hace el código, para que se den una idea.
Primero, debemos descargar estos archivos y pegarlos en la carpeta del mod. (Créditos a Highlander, yo solo borré los archivos de armas de asedio y deje los animales)
https://mega.nz/#!gs9ywTIQ!eMnNzZ8CK1tGXHMZiSKW9G9OEFL3niDP_BE-Jft2nys
Luego, añadimos estas líneas en module.ini
Ahora, pasemos al Module System.
1)En module_factions.py buscamos ("culture_6", "{!}culture_6", 0, 0.9, [], []), , hacemos un espacio y debajo añadimos esto:
Este código, lo que hace es crear una nueva facción llamada ''Animales Salvajes'' a la que pertenecerán todos los animales del OSP y que solo el jugador puede atacar (Así no pueden cazar los demas nobles)
2)Abrimos module_game_menus.py, buscamos la línea "siege_attack_meets_sally",mnf_scale_picture, y arriba del (, hacemos un espacio y ponemos esto:
Lo que hace esto, es crear los menus para cuando encontremos a los ciervos y jabalíes en el mapa, y decidamos atacarlos.
3)Ahora abriremos module_items.py, nos vamos hasta el final y antes del ["items_end", "Items End", [("shield_round_a",0)], 0, 0, 1, 0, 0], añadimos esta línea:
Lo que hace esto basicamente es, crear a los ciervos y jabalíes en si, y su carne, para cuando los matemos.
4)Ya es el turno de module_mission_templates.py, al final del archivo, antes del último ] ponemos esto:
No hay mucha explicación para esto, es lo que hace que puedas ''pelear'' contra los animales (en realidad no peleas, ellos huyen y debes matarlos)
5)Abramos module_party_templates.py buscamos la linea ("default_prisoners","Default Prisoners",0,0,fac_commoners,0,[(trp_bandit,5,10,pmf_is_prisoner)]), y debajo de ella ponemos esto:
Esto hace que los animales puedan aparecer en el mapa de batalla.
6)Ahora le toca a module_scripts.py, buscamos la línea (party_set_morale, "p_main_party", reg0), y debajo ponemos esto:
Esto hace que cuando matemos a los animales, nos dén su carne.
Todavía en module_scripts.py buscamos (jump_to_menu, "mnu_cattle_herd"), y debajo ponemos esto:
Esto lo que hace es que cuando los matemos y nos dé la carne, se abra la ventana del inventario
Siguiendo en module_scripts.py buscamos (spawn_around_party,":spawn_point","pt_forest_bandits"), y debajo del (try_end), ponemos esto:
Esto hace que los animales spawneen en el mapa.
7) Por último, abrimos module_troops.py , buscamos ["relative_of_merchants_end","relative_of_merchants_end","relative_of_merchants_end",tf_hero, 0,0, fac_commoners,[],def_attrib|level(2),wp(20),knows_inventory_management_10,0], y debajo pegamos esto:
Esto hace que los ciervos y jabalíes, que antes eran objetos, se conviertan en una tropa.
Ya esta, hemos terminado, los animales spawnearan alrededor de Dhirim-Uxkhal, así que ¡¡A CAZAR!!.
Dificultad: Facíl, no se necesita ser un experto en Module System para hacer esto, aparte que los guiaré durante todo el proceso.
Antes de comezar les explico algunas cosas:
Lo que yo escriba con negrita es importante o algo destacado.
Lo que escriba con letra verde es qué hace el código, para que se den una idea.
Primero, debemos descargar estos archivos y pegarlos en la carpeta del mod. (Créditos a Highlander, yo solo borré los archivos de armas de asedio y deje los animales)
https://mega.nz/#!gs9ywTIQ!eMnNzZ8CK1tGXHMZiSKW9G9OEFL3niDP_BE-Jft2nys
Luego, añadimos estas líneas en module.ini
- Código:
load_mod_resource = OSP_Caceria_de_Animales
- Imagen:
Ahora, pasemos al Module System.
1)En module_factions.py buscamos ("culture_6", "{!}culture_6", 0, 0.9, [], []), , hacemos un espacio y debajo añadimos esto:
- Código:
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
("wild_animals","Animales Salvajes",0, 0.1,[("player_faction",-0.15)], [],0xFFFFFF),
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
Este código, lo que hace es crear una nueva facción llamada ''Animales Salvajes'' a la que pertenecerán todos los animales del OSP y que solo el jugador puede atacar (Así no pueden cazar los demas nobles)
- Imagen:
2)Abrimos module_game_menus.py, buscamos la línea "siege_attack_meets_sally",mnf_scale_picture, y arriba del (, hacemos un espacio y ponemos esto:
- Código:
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
("deer_herd",mnf_scale_picture,
"You encounter a herd of deers.",
"none",
[
(try_begin),
(gt, "$num_deers_killed",0),
(troop_clear_inventory, "trp_temp_troop"),
(troop_add_items, "trp_temp_troop", "itm_deer_meat", "$num_deers_killed"),
(party_get_num_companions, ":num_deers", "$g_encountered_party"),
(try_begin),
(ge, "$num_deers_killed", ":num_deers"),
(remove_party, "$g_encountered_party"),
(else_try),
(party_remove_members, "$g_encountered_party", "trp_deer", "$num_deers_killed"),
(try_end),
(assign,"$num_deers_killed",0),
(troop_sort_inventory, "trp_temp_troop"),
(change_screen_loot,"trp_temp_troop"),
(try_end),
(set_background_mesh, "mesh_pic_cattle"),
],
[
("deer_kill",
[
(party_get_num_companions, ":num_deers", "$g_encountered_party"),
(try_begin),
(le,":num_deers",0),
(disable_menu_option),
(try_end),
]
,"Hunt some of the animals.",
[
(set_jump_mission,"mt_deer_hunting"),
(jump_to_scene,"scn_random_scene_plain_forest"),
(change_screen_mission),
]
),
("leave",[],"Leave.",
[(change_screen_return),
]
),
]
),
("deer_herd_kill_end",0,
"You shouldn't be reading this.",
"none",
[(change_screen_return)],
[
]
),
("boar_herd",mnf_scale_picture,
"You encounter a herd of boars.",
"none",
[
(try_begin),
(gt, "$num_boars_killed",0),
(troop_clear_inventory, "trp_temp_troop"),
(troop_add_items, "trp_temp_troop", "itm_boar_meat", "$num_boars_killed"),
(party_get_num_companions, ":num_deers", "$g_encountered_party"),
(try_begin),
(ge, "$num_boars_killed", ":num_deers"),
(remove_party, "$g_encountered_party"),
(else_try),
(party_remove_members, "$g_encountered_party", "trp_boar", "$num_boars_killed"),
(try_end),
(assign,"$num_boars_killed",0),
(troop_sort_inventory, "trp_temp_troop"),
(change_screen_loot,"trp_temp_troop"),
(try_end),
(set_background_mesh, "mesh_pic_cattle"),
],
[
("boar_kill",[
(party_get_num_companions, ":num_deers", "$g_encountered_party"),
(try_begin),
(le,":num_deers",0),
(disable_menu_option),
(try_end),
],"Hunt some of the animals.",
[
(set_jump_mission,"mt_boar_hunting"),
(jump_to_scene,"scn_random_scene_plain_forest"),
(change_screen_mission),
]
),
("leave",[],"Leave.",
[(change_screen_return),
]
),
]
),
("boar_herd_kill_end",0,
"You shouldn't be reading this.",
"none",
[(change_screen_return)],
[
]
),
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
Lo que hace esto, es crear los menus para cuando encontremos a los ciervos y jabalíes en el mapa, y decidamos atacarlos.
- Imagen:
3)Ahora abriremos module_items.py, nos vamos hasta el final y antes del ["items_end", "Items End", [("shield_round_a",0)], 0, 0, 1, 0, 0], añadimos esta línea:
- Código:
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
["deer","Ciervo", [("deer",0)], itp_unique|itp_type_horse, 0, 1411,abundance(40)|hit_points(40)|body_armor(0)|difficulty(11)|horse_speed(40)|horse_maneuver(32)|horse_charge(20),imodbits_horse_basic],
["boar","Jabalí", [("boar",0)], itp_unique|itp_type_horse, 0, 1411,abundance(40)|hit_points(100)|body_armor(0)|difficulty(11)|horse_speed(40)|horse_maneuver(20)|horse_charge(100),imodbits_horse_basic],
["deer_meat","Carne de ciervo", [("raw_meat",0)], itp_merchandise|itp_type_goods|itp_consumable|itp_food, 0, 10,weight(30)|abundance(100)|food_quality(40)|max_ammo(30),imodbits_none],
["boar_meat","Carne de jabalí", [("raw_meat",0)], itp_merchandise|itp_type_goods|itp_consumable|itp_food, 0, 20,weight(30)|abundance(100)|food_quality(80)|max_ammo(50),imodbits_none],
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
Lo que hace esto basicamente es, crear a los ciervos y jabalíes en si, y su carne, para cuando los matemos.
- Imagen:
4)Ya es el turno de module_mission_templates.py, al final del archivo, antes del último ] ponemos esto:
- Código:
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
(
"deer_hunting",mtf_battle_mode,-1,
"You lead your deers to battle.",
[
(1,mtef_team_0|mtef_leader_only,0,aif_start_alarmed,12,[]),
(4,mtef_visitor_source,0,aif_start_alarmed,0,[]),
],
[
(ti_tab_pressed, 0, 0, [
(set_trigger_result,1)], []), #leaving area
(0, 0, ti_once, [ #spawing deers
(party_count_members_of_type,":num_deers","$g_encountered_party","trp_deer"),
(val_sub,":num_deers",1),
(ge,":num_deers",0),
(assign,"$num_deers_killed",0),
(get_scene_boundaries, pos10,pos11),
(position_get_x, ":scene_min_x", pos10),
(position_get_x, ":scene_max_x", pos11),
(position_get_y, ":scene_min_y", pos10),
(position_get_y, ":scene_max_y", pos11),
(store_div,":border_x",":scene_max_x",10),
(val_add,":scene_min_x",":border_x"),
(val_sub,":scene_max_x",":border_x"),
(store_div,":border_y",":scene_max_y",10),
(val_add,":scene_min_y",":border_y"),
(val_sub,":scene_max_y",":border_y"),
(store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
(store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
(init_position, pos1),
(position_set_x,pos1,":x_pos"),
(position_set_y,pos1,":y_pos"),
(position_set_z,pos1,10000),
(position_set_z_to_ground_level,pos1),
(set_spawn_position, pos1),
(spawn_horse, "itm_deer"),
(assign,"$leading_deer",reg0),
(try_for_range,":unused",0,":num_deers"),
(init_position, pos1),
(store_random_in_range,":x_pos_add",0,1000),
(store_random_in_range,":y_pos_add",0,1000),
(val_add,":x_pos_add",":x_pos"),
(val_add,":y_pos_add",":y_pos"),
(position_set_x,pos1,":x_pos_add"),
(position_set_y,pos1,":y_pos_add"),
(position_set_z,pos1,10000),
(position_set_z_to_ground_level,pos1),
(set_spawn_position, pos1),
(spawn_horse, "itm_deer"),
(try_end),
], []),
(1,0,0,[], #wounded deers move slower
[(try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_deer"),
(store_agent_hit_points,reg(2),reg(1)),
(store_mul,reg(3),20,reg(2)),
(val_div,reg(3),40),
(agent_set_speed_limit,reg(1),reg(3)),
(try_end),
]),
(5,0,0,
[
(neg|agent_is_alive,"$leading_deer"),
],
[
(try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_deer"),
(assign,"$leading_deer",reg(1)),
(try_end),
]),
(1,0,0,[],
[
(assign,":num_kills",0),
(try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_deer"),
(store_agent_hit_points,reg(2),reg(1)),
(eq,reg(2),0),
(val_add,":num_kills",1),
(try_end),
(gt,":num_kills","$num_deers_killed"),
(get_scene_boundaries, pos10,pos11),
(position_get_x, ":scene_min_x", pos10),
(position_get_x, ":scene_max_x", pos11),
(position_get_y, ":scene_min_y", pos10),
(position_get_y, ":scene_max_y", pos11),
(store_div,":border_x",":scene_max_x",10),
(val_add,":scene_min_x",":border_x"),
(val_sub,":scene_max_x",":border_x"),
(store_div,":border_y",":scene_max_y",10),
(val_add,":scene_min_y",":border_y"),
(val_sub,":scene_max_y",":border_y"),
(store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
(store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
(init_position, pos1),
(position_set_x,pos1,":x_pos"),
(position_set_y,pos1,":y_pos"),
(position_set_z,pos1,10000),
(position_set_z_to_ground_level,pos1),
(agent_set_scripted_destination,"$leading_deer",pos1),
(assign,"$num_deers_killed",":num_kills"),
]),
(5,0,0,[],
[
(agent_get_position,pos1,"$leading_deer"),
(position_get_x,":x_pos",pos1),
(position_get_y,":y_pos",pos1),
(this_or_next|le,":x_pos",5000),
(this_or_next|le,":y_pos",5000),
(this_or_next|ge,":x_pos",38000),
(ge,":y_pos",38000),
(get_scene_boundaries, pos10,pos11),
(position_get_x, ":scene_min_x", pos10),
(position_get_x, ":scene_max_x", pos11),
(position_get_y, ":scene_min_y", pos10),
(position_get_y, ":scene_max_y", pos11),
(store_div,":border_x",":scene_max_x",10),
(val_add,":scene_min_x",":border_x"),
(val_sub,":scene_max_x",":border_x"),
(store_div,":border_y",":scene_max_y",10),
(val_add,":scene_min_y",":border_y"),
(val_sub,":scene_max_y",":border_y"),
(store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
(store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
(init_position, pos1),
(position_set_x,pos1,":x_pos"),
(position_set_y,pos1,":y_pos"),
(position_set_z,pos1,10000),
(position_set_z_to_ground_level,pos1),
(agent_set_scripted_destination,"$leading_deer",pos1),
]),
(1,0,0,[],
[
(try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_deer"),
(store_agent_hit_points,":health",reg(1)),
(store_sub,":damage",100,":health"),
(agent_get_slot,":prev_damage",reg(1),1),
(neq,":prev_damage",":damage"),
(agent_set_slot,reg(1),1,":damage"),
(agent_get_position,pos1,reg(1)),
(position_get_x,":x_pos",pos1),
(position_get_y,":y_pos",pos1),
(store_random_in_range,":x_pos_add",0,1000),
(store_random_in_range,":y_pos_add",0,1000),
(val_add,":x_pos",":x_pos_add"),
(val_add,":y_pos",":y_pos_add"),
(position_set_x,pos1,":x_pos"),
(position_set_y,pos1,":y_pos"),
(agent_set_scripted_destination,reg(1),pos1),
(try_end),
]),
(0.5,0,0, #deer travelling
[],
[
(get_player_agent_no,reg(1)),
(agent_get_position,pos1,reg(1)),
(agent_get_position,pos4,"$leading_deer"),
(position_get_x,":x_pos",pos4),
(position_get_y,":y_pos",pos4),
(try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_deer"),
(agent_get_position,pos2,reg(1)),
(get_distance_between_positions,reg(3),pos1,pos2),
(try_begin),
(position_get_x,":pos_x",pos2),
(position_get_x,":pos_y",pos2),
(position_get_x, ":scene_min_x", pos10),
(position_get_x, ":scene_max_x", pos11),
(position_get_y, ":scene_min_y", pos10),
(position_get_y, ":scene_max_y", pos11),
(store_div,":border_x",":scene_max_x",10),
(val_add,":scene_min_x",":border_x"),
(val_sub,":scene_max_x",":border_x"),
(store_div,":border_y",":scene_max_y",10),
(val_add,":scene_min_y",":border_y"),
(val_sub,":scene_max_y",":border_y"),
(this_or_next|gt,":pos_x",":scene_max_x"),
(this_or_next|lt,":pos_x",":scene_min_x"),
(this_or_next|gt,":pos_y",":scene_max_y"),
(lt,":pos_y",":scene_min_y"),
(store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
(store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
(init_position, pos1),
(position_set_x,pos1,":x_pos"),
(position_set_y,pos1,":y_pos"),
(position_set_z,pos1,10000),
(position_set_z_to_ground_level,pos1),
(agent_set_scripted_destination,reg(1),pos1),
(else_try),
(le,reg(3),2500),
(position_get_x,reg(4),pos1),
(position_get_x,reg(5),pos2),
(store_sub,":x_dist",reg(5),reg(4)),
(val_mul,":x_dist",10),
(position_get_y,reg(6),pos1),
(position_get_y,reg(7),pos2),
(store_sub,":y_dist",reg(7),reg(6)),
(val_mul,":y_dist",10),
(init_position,pos3),
(val_add,":x_dist",reg(5)),
(val_add,":y_dist",reg(7)),
(position_set_x,pos3,":x_dist"),
(position_set_y,pos3,":y_dist"),
(position_set_z,pos3,10000),
(position_set_z_to_ground_level,pos3),
(agent_set_scripted_destination,reg(1),pos3),
(else_try),
(get_distance_between_positions,reg(3),pos4,pos2),
(ge,reg(3),2000),
(init_position, pos6),
(store_random_in_range,":x_pos_add",0,1000),
(store_random_in_range,":y_pos_add",0,1000),
(val_add,":x_pos_add",":x_pos"),
(val_add,":y_pos_add",":y_pos"),
(position_set_x,pos6,":x_pos_add"),
(position_set_y,pos6,":y_pos_add"),
(position_set_z,pos6,10000),
(position_set_z_to_ground_level,pos6),
(agent_set_scripted_destination,reg(1),pos6),
(try_end),
(try_end),
]),
]),
(
"boar_hunting",mtf_battle_mode,-1,
"You lead your boars to battle.",
[
(1,mtef_team_0|mtef_leader_only,0,aif_start_alarmed,12,[]),
(4,mtef_visitor_source,0,aif_start_alarmed,0,[]),
],
[
(ti_tab_pressed, 0, 0, [ (set_trigger_result,1)], []), #leaving area
(0, 0, ti_once, [ #spawing boars
(party_count_members_of_type,":num_boars","$g_encountered_party","trp_boar"),
(val_sub,":num_boars",1),
(ge,":num_boars",0),
(assign,"$num_boars_killed",0),
(get_scene_boundaries, pos10,pos11),
(position_get_x, ":scene_min_x", pos10),
(position_get_x, ":scene_max_x", pos11),
(position_get_y, ":scene_min_y", pos10),
(position_get_y, ":scene_max_y", pos11),
(store_div,":border_x",":scene_max_x",10),
(val_add,":scene_min_x",":border_x"),
(val_sub,":scene_max_x",":border_x"),
(store_div,":border_y",":scene_max_y",10),
(val_add,":scene_min_y",":border_y"),
(val_sub,":scene_max_y",":border_y"),
(store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
(store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
(init_position, pos1),
(position_set_x,pos1,":x_pos"),
(position_set_y,pos1,":y_pos"),
(position_set_z,pos1,10000),
(position_set_z_to_ground_level,pos1),
(set_spawn_position, pos1),
(spawn_horse, "itm_boar"),
(assign,"$leading_boar",reg0),
(try_for_range,":unused",0,":num_boars"),
(init_position, pos1),
(store_random_in_range,":x_pos_add",0,1000),
(store_random_in_range,":y_pos_add",0,1000),
(val_add,":x_pos_add",":x_pos"),
(val_add,":y_pos_add",":y_pos"),
(position_set_x,pos1,":x_pos_add"),
(position_set_y,pos1,":y_pos_add"),
(position_set_z,pos1,10000),
(position_set_z_to_ground_level,pos1),
(set_spawn_position, pos1),
(spawn_horse, "itm_boar"),
(try_end),
], []),
(1,0,0,[], #wounded boars move slower
[(try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_boar"),
(store_agent_hit_points,reg(2),reg(1)),
(store_mul,reg(3),20,reg(2)),
(val_div,reg(3),100),
(agent_set_speed_limit,reg(1),reg(3)),
(try_end),
]),
(5,0,0,
[
(neg|agent_is_alive,"$leading_boar"),
],
[
(try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_boar"),
(assign,"$leading_boar",reg(1)),
(try_end),
]),
(1,0,0,[],
[
(assign,":num_kills",0),
(try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_boar"),
(store_agent_hit_points,reg(2),reg(1)),
(eq,reg(2),0),
(val_add,":num_kills",1),
(try_end),
(gt,":num_kills","$num_boars_killed"),
(get_scene_boundaries, pos10,pos11),
(position_get_x, ":scene_min_x", pos10),
(position_get_x, ":scene_max_x", pos11),
(position_get_y, ":scene_min_y", pos10),
(position_get_y, ":scene_max_y", pos11),
(store_div,":border_x",":scene_max_x",10),
(val_add,":scene_min_x",":border_x"),
(val_sub,":scene_max_x",":border_x"),
(store_div,":border_y",":scene_max_y",10),
(val_add,":scene_min_y",":border_y"),
(val_sub,":scene_max_y",":border_y"),
(store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
(store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
(init_position, pos1),
(position_set_x,pos1,":x_pos"),
(position_set_y,pos1,":y_pos"),
(position_set_z,pos1,10000),
(position_set_z_to_ground_level,pos1),
(agent_set_scripted_destination,"$leading_boar",pos1),
(assign,"$num_boars_killed",":num_kills"),
]),
(5,0,0,[],
[
(agent_get_position,pos1,"$leading_boar"),
(position_get_x,":x_pos",pos1),
(position_get_y,":y_pos",pos1),
(this_or_next|le,":x_pos",5000),
(this_or_next|le,":y_pos",5000),
(this_or_next|ge,":x_pos",38000),
(ge,":y_pos",38000),
(get_scene_boundaries, pos10,pos11),
(position_get_x, ":scene_min_x", pos10),
(position_get_x, ":scene_max_x", pos11),
(position_get_y, ":scene_min_y", pos10),
(position_get_y, ":scene_max_y", pos11),
(store_div,":border_x",":scene_max_x",10),
(val_add,":scene_min_x",":border_x"),
(val_sub,":scene_max_x",":border_x"),
(store_div,":border_y",":scene_max_y",10),
(val_add,":scene_min_y",":border_y"),
(val_sub,":scene_max_y",":border_y"),
(store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
(store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
(init_position, pos1),
(position_set_x,pos1,":x_pos"),
(position_set_y,pos1,":y_pos"),
(position_set_z,pos1,10000),
(position_set_z_to_ground_level,pos1),
(agent_set_scripted_destination,"$leading_boar",pos1),
]),
(1,0,0,[],
[
(try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_boar"),
(store_agent_hit_points,":health",reg(1)),
(store_sub,":damage",100,":health"),
(agent_get_slot,":prev_damage",reg(1),1),
(neq,":prev_damage",":damage"),
(agent_set_slot,reg(1),1,":damage"),
(agent_get_position,pos1,reg(1)),
(position_get_x,":x_pos",pos1),
(position_get_y,":y_pos",pos1),
(store_random_in_range,":x_pos_add",0,1000),
(store_random_in_range,":y_pos_add",0,1000),
(val_add,":x_pos",":x_pos_add"),
(val_add,":y_pos",":y_pos_add"),
(position_set_x,pos1,":x_pos"),
(position_set_y,pos1,":y_pos"),
(agent_set_scripted_destination,reg(1),pos1),
(try_end),
]),
(0.5,0,0, #boar travelling
[],
[
(get_player_agent_no,reg(1)),
(agent_get_position,pos1,reg(1)),
(agent_get_position,pos4,"$leading_boar"),
(position_get_x,":x_pos",pos4),
(position_get_y,":y_pos",pos4),
(try_for_agents,reg(1)),
(agent_get_item_id,reg(2),reg(1)),
(eq,reg(2),"itm_boar"),
(agent_get_position,pos2,reg(1)),
(get_distance_between_positions,reg(3),pos1,pos2),
(try_begin),
(position_get_x,":pos_x",pos2),
(position_get_x,":pos_y",pos2),
(position_get_x, ":scene_min_x", pos10),
(position_get_x, ":scene_max_x", pos11),
(position_get_y, ":scene_min_y", pos10),
(position_get_y, ":scene_max_y", pos11),
(store_div,":border_x",":scene_max_x",10),
(val_add,":scene_min_x",":border_x"),
(val_sub,":scene_max_x",":border_x"),
(store_div,":border_y",":scene_max_y",10),
(val_add,":scene_min_y",":border_y"),
(val_sub,":scene_max_y",":border_y"),
(this_or_next|gt,":pos_x",":scene_max_x"),
(this_or_next|lt,":pos_x",":scene_min_x"),
(this_or_next|gt,":pos_y",":scene_max_y"),
(lt,":pos_y",":scene_min_y"),
(store_random_in_range,":x_pos",":scene_min_x",":scene_max_x"),
(store_random_in_range,":y_pos",":scene_min_y",":scene_max_y"),
(init_position, pos1),
(position_set_x,pos1,":x_pos"),
(position_set_y,pos1,":y_pos"),
(position_set_z,pos1,10000),
(position_set_z_to_ground_level,pos1),
(agent_set_scripted_destination,reg(1),pos1),
(else_try),
(le,reg(3),2500),
(position_get_x,reg(4),pos1),
(position_get_x,reg(5),pos2),
(store_sub,":x_dist",reg(5),reg(4)),
(val_mul,":x_dist",10),
(position_get_y,reg(6),pos1),
(position_get_y,reg(7),pos2),
(store_sub,":y_dist",reg(7),reg(6)),
(val_mul,":y_dist",10),
(init_position,pos3),
(val_add,":x_dist",reg(5)),
(val_add,":y_dist",reg(7)),
(position_set_x,pos3,":x_dist"),
(position_set_y,pos3,":y_dist"),
(position_set_z,pos3,10000),
(position_set_z_to_ground_level,pos3),
(agent_set_scripted_destination,reg(1),pos3),
(else_try),
(get_distance_between_positions,reg(3),pos4,pos2),
(ge,reg(3),2000),
(init_position, pos6),
(store_random_in_range,":x_pos_add",0,1000),
(store_random_in_range,":y_pos_add",0,1000),
(val_add,":x_pos_add",":x_pos"),
(val_add,":y_pos_add",":y_pos"),
(position_set_x,pos6,":x_pos_add"),
(position_set_y,pos6,":y_pos_add"),
(position_set_z,pos6,10000),
(position_set_z_to_ground_level,pos6),
(agent_set_scripted_destination,reg(1),pos6),
(try_end),
(try_end),
]),
]),
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
No hay mucha explicación para esto, es lo que hace que puedas ''pelear'' contra los animales (en realidad no peleas, ellos huyen y debes matarlos)
- Imagen:
5)Abramos module_party_templates.py buscamos la linea ("default_prisoners","Default Prisoners",0,0,fac_commoners,0,[(trp_bandit,5,10,pmf_is_prisoner)]), y debajo de ella ponemos esto:
- Código:
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
("deer_herd","Manada de ciervos",icon_cattle|carries_goods(10),0,fac_wild_animals,merchant_personality,[(trp_deer,8,15)]),
("boar_herd","Manada de jabalíes",icon_cattle|carries_goods(10),0,fac_wild_animals,merchant_personality,[(trp_boar,2,4)]),
# ("village_hunters","Village Hunters",icon_peasant,0,fac_innocents,soldier_personality,[(trp_hunter,8,16)]),
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
Esto hace que los animales puedan aparecer en el mapa de batalla.
- Imagen:
6)Ahora le toca a module_scripts.py, buscamos la línea (party_set_morale, "p_main_party", reg0), y debajo ponemos esto:
- Código:
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
(item_set_slot, "itm_deer_meat", slot_item_food_bonus, 2),
(item_set_slot, "itm_deer_meat", slot_item_food_bonus, 5),
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
Esto hace que cuando matemos a los animales, nos dén su carne.
- Imagen:
Todavía en module_scripts.py buscamos (jump_to_menu, "mnu_cattle_herd"), y debajo ponemos esto:
- Código:
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
(else_try),
(party_get_template_id, ":party_template","$g_encountered_party"),
(eq,":party_template","pt_deer_herd"),
(jump_to_menu, "mnu_deer_herd"),
(else_try),
(party_get_template_id, ":party_template","$g_encountered_party"),
(eq,":party_template","pt_boar_herd"),
(jump_to_menu, "mnu_boar_herd"),
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
Esto lo que hace es que cuando los matemos y nos dé la carne, se abra la ventana del inventario
- Imagen:
Siguiendo en module_scripts.py buscamos (spawn_around_party,":spawn_point","pt_forest_bandits"), y debajo del (try_end), ponemos esto:
- Código:
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
(try_begin),
(store_num_parties_of_template, ":num_parties", "pt_deer_herd"),
(lt,":num_parties",5),
(store_random,":spawn_point",num_mountain_bandit_spawn_points),
(val_add,":spawn_point","p_forest_bandit_spawn_point"),
(spawn_around_party,":spawn_point","pt_deer_herd"),
(try_end),
(try_begin),
(store_num_parties_of_template, ":num_parties", "pt_boar_herd"),
(lt,":num_parties",2),
(store_random,":spawn_point",num_mountain_bandit_spawn_points),
(val_add,":spawn_point","p_forest_bandit_spawn_point"),
(spawn_around_party,":spawn_point","pt_boar_herd"),
(try_end),
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
Esto hace que los animales spawneen en el mapa.
- Imagen:
7) Por último, abrimos module_troops.py , buscamos ["relative_of_merchants_end","relative_of_merchants_end","relative_of_merchants_end",tf_hero, 0,0, fac_commoners,[],def_attrib|level(2),wp(20),knows_inventory_management_10,0], y debajo pegamos esto:
- Código:
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod begin#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
["deer","Ciervo","Ciervo",0,no_scene,reserved,fac_neutral, [], def_attrib|level(0),wp(60),0,swadian_face_younger_1, swadian_face_younger_1],
["boar","Jabali","Jabali",0,no_scene,reserved,fac_neutral, [], def_attrib|level(0),wp(60),0,swadian_face_younger_1, swadian_face_younger_1],
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-#-#-#Hunting Mod end#-#-#-#
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
Esto hace que los ciervos y jabalíes, que antes eran objetos, se conviertan en una tropa.
- Imagen:
Ya esta, hemos terminado, los animales spawnearan alrededor de Dhirim-Uxkhal, así que ¡¡A CAZAR!!.
Última edición por Hernanxd16 el Jue Ago 24, 2017 2:11 pm, editado 1 vez