Recopilación de tutoriales Nº4: Como añadir animales al mapa de batalla y poder cazarlos.

    Comparte
    avatar
    Hernanxd16
    Caballero de la Orden
    Caballero de la Orden

    : :

    Mensajes : 1878
    Facción : Imperio Calrádico.

    Recopilación de tutoriales Nº4: Como añadir animales al mapa de batalla y poder cazarlos.

    Mensaje por Hernanxd16 el Mar Sep 20, 2016 1:14 am

    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

    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 7:11 pm, editado 1 vez


    _________________
    «Ten una sola mente y una sola fe, entonces podrás conquistar a tus enemigos y vivir una vida larga y feliz» Gengis Khan.
    «En realidad no me preocupa que quieran robar mis ideas, me preocupa que ellos no las tengan» Nikola Tesla.

    ¿Quieres crear un mod pero no sabes cómo? ¿O simplemente tienes una duda al crear tu propio mod? Visita el hilo de preguntas y respuestas: http://www.caballerosdecalradia.net/t6155-preguntas-y-respuestas-sobre-el-modding-de-mb-plantea-aqui-tus-problemas-al-crear-tu-mod


    A New Era For Calradia: Mod sobre una Calradia del siglo XIV, en el que un Imperio la dominó, y le trajo nuevas tecnologías. ¡Apoya el desarrollo!
    avatar
    LordArrozConPollo
    Espadachín
    Espadachín

    Mensajes : 137
    Facción : Ciudad de Zaun

    Re: Recopilación de tutoriales Nº4: Como añadir animales al mapa de batalla y poder cazarlos.

    Mensaje por LordArrozConPollo el Mar Sep 20, 2016 1:50 am

    2 cosas.

    ¿Los
    Código:
    #-#-#-#-#-#-#-#-#-#-#-#-#-#-#
    también se tienen que añadir?

    Ademas ¿seria posible que pasaras el pack completo (con las armas de asedio)?

    Muy bueno el tutorial. +rep
    avatar
    Clint Easwood
    Espadachín
    Espadachín

    Mensajes : 160
    Edad : 19
    Facción : Reino del Norte

    Re: Recopilación de tutoriales Nº4: Como añadir animales al mapa de batalla y poder cazarlos.

    Mensaje por Clint Easwood el Mar Sep 20, 2016 1:54 am

    Eh!! muy buena, veré si puedo añadirlo a mi mod.   :good:


    _________________


    "Entre los individuos, como entre las naciones, el respeto al derecho ajeno es la paz"
    -Benito Juarez-
    avatar
    Rafalongo
    Modder
    Modder

    Mensajes : 471
    Edad : 27
    Facción : Reino de Swadia

    Re: Recopilación de tutoriales Nº4: Como añadir animales al mapa de batalla y poder cazarlos.

    Mensaje por Rafalongo el Miér Jul 26, 2017 4:56 am

    LordArrozConPollo escribió:2 cosas.

    ¿Los
    Código:
    #-#-#-#-#-#-#-#-#-#-#-#-#-#-#
    también se tienen que añadir?

    Ademas ¿seria posible que pasaras el pack completo (con las armas de asedio)?

    Muy bueno el tutorial. +rep

    el numeral le quita el efecto a lo que le sigue, es para notas, no es necesario pero conviene ponerlo para guiarse en futuras modificaciones.

    Alguna idea de como hacer para que aparescan en muchos mas puntos elegidos del mapa?
    avatar
    Hernanxd16
    Caballero de la Orden
    Caballero de la Orden

    : :

    Mensajes : 1878
    Facción : Imperio Calrádico.

    Re: Recopilación de tutoriales Nº4: Como añadir animales al mapa de batalla y poder cazarlos.

    Mensaje por Hernanxd16 el Miér Jul 26, 2017 6:18 am

    LordArrozConPollo escribió:2 cosas.

    ¿Los
    Código:
    #-#-#-#-#-#-#-#-#-#-#-#-#-#-#
    también se tienen que añadir?

    Ademas ¿seria posible que pasaras el pack completo (con las armas de asedio)?

    Muy bueno el tutorial. +rep

    Creo que nunca llegué a leer este post xDDD.

    Como ya dijo Rafalongo, los numerales solo cancelan la función alguna de lo siguiente de esa misma línea, por lo que se usan para aclaraciones o notas.

    Éste es el pack completo:

    https://forums.taleworlds.com/index.php/topic,344460.0.html

    Aunque, no lo recomiendo por el hecho de que, no importa si el terreno del mapa donde se encontraron los dos ejercitos sea de nieve, o de estepa o de lo que sea, la batalla siempre será en una llanura sin árboles. Quitando eso, es bastante bueno.





    Rafalongo escribió:Alguna idea de como hacer para que aparescan en muchos mas puntos elegidos del mapa?

    No sé exactamente como añadir más puntos de spawn, pero creería que habría que agregar algo en esta línea:
    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#-#-#-#
    #-#-#-#-#-#-#-#-#-#-#-#-#-#-#




    Ahora que leo cosas que escribi, creo que en algunos está mal que hace cada código.


    Edito: En Taleworlds, Ramaraunt hizo basicamente lo mismo que yo (Yo lo hice antes xD) pero añadió algunas mejoras al código: https://forums.taleworlds.com/index.php/topic,362996.0.html


    _________________
    «Ten una sola mente y una sola fe, entonces podrás conquistar a tus enemigos y vivir una vida larga y feliz» Gengis Khan.
    «En realidad no me preocupa que quieran robar mis ideas, me preocupa que ellos no las tengan» Nikola Tesla.

    ¿Quieres crear un mod pero no sabes cómo? ¿O simplemente tienes una duda al crear tu propio mod? Visita el hilo de preguntas y respuestas: http://www.caballerosdecalradia.net/t6155-preguntas-y-respuestas-sobre-el-modding-de-mb-plantea-aqui-tus-problemas-al-crear-tu-mod


    A New Era For Calradia: Mod sobre una Calradia del siglo XIV, en el que un Imperio la dominó, y le trajo nuevas tecnologías. ¡Apoya el desarrollo!
    avatar
    Rafalongo
    Modder
    Modder

    Mensajes : 471
    Edad : 27
    Facción : Reino de Swadia

    Re: Recopilación de tutoriales Nº4: Como añadir animales al mapa de batalla y poder cazarlos.

    Mensaje por Rafalongo el Miér Ago 23, 2017 8:04 am

    Bueno! acabo de implementarlo a mi mod. Hay un errorcito: me desconfiguró tooodas las propiedades iniciales de cada faccion, por ejemplo bizancio en vez de pertenecer a los bizantinos empezó perteneciendo a los francos y todo así. Se soluciona simplemente poniendo en "module_factions" las lineas debajo del todo, no debajo de culture.

    y en cuanto a mi pregunta anterior, para que spawneen en mas lugares es muy simple, como si fuera un grupo de bandidos mas, simplemente copiar esto:

    Código:
        (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),

    y ponerlo varias veces, una debajo de la otra, pero cambiando el spawn obviamente, que es "p_forest_bandit_spawn_point" por otro spawn point que bien pueden crear o utilizar otros ya existente de otro grupo de bandidos.

    gracias por el aporte! salu2!
    avatar
    Hernanxd16
    Caballero de la Orden
    Caballero de la Orden

    : :

    Mensajes : 1878
    Facción : Imperio Calrádico.

    Re: Recopilación de tutoriales Nº4: Como añadir animales al mapa de batalla y poder cazarlos.

    Mensaje por Hernanxd16 el Miér Ago 23, 2017 11:39 pm

    Rafalongo escribió:Bueno! acabo de implementarlo a mi mod. Hay un errorcito: me desconfiguró tooodas las propiedades iniciales de cada faccion, por ejemplo bizancio en vez de pertenecer a los bizantinos empezó perteneciendo a los francos y todo así. Se soluciona simplemente poniendo en "module_factions" las lineas debajo del todo, no debajo de culture.

    ¿Lo pusiste debajo de culture6? Tal vez en tu mod haya más de esas 6 culturas, no lo sé. De todas formas, gracias por las soluciones para los que lean el hilo.


    _________________
    «Ten una sola mente y una sola fe, entonces podrás conquistar a tus enemigos y vivir una vida larga y feliz» Gengis Khan.
    «En realidad no me preocupa que quieran robar mis ideas, me preocupa que ellos no las tengan» Nikola Tesla.

    ¿Quieres crear un mod pero no sabes cómo? ¿O simplemente tienes una duda al crear tu propio mod? Visita el hilo de preguntas y respuestas: http://www.caballerosdecalradia.net/t6155-preguntas-y-respuestas-sobre-el-modding-de-mb-plantea-aqui-tus-problemas-al-crear-tu-mod


    A New Era For Calradia: Mod sobre una Calradia del siglo XIV, en el que un Imperio la dominó, y le trajo nuevas tecnologías. ¡Apoya el desarrollo!
    avatar
    Rafalongo
    Modder
    Modder

    Mensajes : 471
    Edad : 27
    Facción : Reino de Swadia

    Re: Recopilación de tutoriales Nº4: Como añadir animales al mapa de batalla y poder cazarlos.

    Mensaje por Rafalongo el Jue Ago 24, 2017 7:40 am

    no, debajo de culture 18, ya que son las culturas que hay en mi mod xD se supone que es igual... no sé, abajo del todo simplemente como una faccion extra funciona bien. Tambien hay que sacarle los tildes a jabalí, xq sino se buguea el nombre! saludos

    Contenido patrocinado

    Re: Recopilación de tutoriales Nº4: Como añadir animales al mapa de batalla y poder cazarlos.

    Mensaje por Contenido patrocinado


      Fecha y hora actual: Miér Sep 20, 2017 2:49 pm