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

    Comparte

    Hernanxd16
    Hombre de armas
    Hombre de armas

    : : Desarrollador del mod A New Era For Calradia.
    Mensajes : 888
    Facción : Imperio de Tamriel

    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","Jabalí","Jabalí",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!!.


    _________________
    «Ten una sola mente y una sola fe, entonces podrás conquistar a tus enemigos y vivir una vida larga y feliz» Gengis Khan.



    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!
    A New Era For Calradia

    LordArrozConPollo
    Miliciano
    Miliciano

    Mensajes : 80
    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


    Clint Easwood
    Espadachín
    Espadachín

    Mensajes : 152
    Edad : 18
    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-

    Contenido patrocinado

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

    Mensaje por Contenido patrocinado Hoy a las 4:53 am


      Fecha y hora actual: Dom Dic 04, 2016 4:53 am