Recent content by atomik

  1. kill counter for companions and lords

    I do that
    n3a9q.jpg
    I get part of source in commander mod. How can I do that
    tXr8M.jpg
    (see total number killed of each npc)
  2. kill counter for companions and lords

    I'll try.Thank you so much.
  3. kill counter for companions and lords

    Please, explain me what exactly I mast do. I cannot find any battle_debrief :oops:
  4. kill counter for companions and lords

    I'm afraid you got me wrong. How can I do that screen
    E2YGD.jpg
    in my mod
  5. kill counter for companions and lords

    i trying do that
    tXr8M.jpg
    in my mod.
    where i can find that script?
    Thank you so much
  6. kill counter for companions and lords

    Help please! I try to search that code but find noting :cry:
  7. 1257AD, source code

    help me please with source. I wanna change npc recruit  to native ( when they are in tavern) . I tried create new npc but they are not appear in tavern. I see new npc in recruit menu but I cannot hire them. or maybe can change  quantity of npc which can hire. Sorry for my bad English
  8. Normal M&B Module System for version 1.010

    that I am necessary to do that heroes can it was be abandoned in a garrison  of castle
  9. OSP Code Combat Shield Bash kit. Bug fixed and expanded!

    Mirathei said:
    Pretty simple really, press the attack controll while holding the defend controll. Ai will do it automatically when applicable with some degree of randomization. Got to give Zaro credit for making the results partially dependent on the shield skill of the basher.
    To install, just paste the following in to module scripts:
     

    ("cf_agent_shield_bash",
        [(store_script_param, ":agent",1),
        (agent_get_position,pos1,":agent"),
        (agent_set_animation, ":agent", "anim_release_bash"),
        (agent_play_sound,":agent","snd_man_grunt"),
        (assign,":victim",-1),
        (try_for_agents,":possible_victim"),
            (agent_is_alive,":possible_victim"),
            (agent_is_human,":possible_victim"),
            (neq,":possible_victim",":agent"),
            (agent_get_class ,":class", ":possible_victim"),
            (neq,":class",grc_cavalry),
            (agent_get_position,pos2,":possible_victim"),
            (get_distance_between_positions,":dist",pos1,pos2),
            (lt,":dist",150),
            (neg|position_is_behind_position,pos2,pos1),
            (assign,":victim",":possible_victim"),
        (end_try),
        (gt,":victim",-1),
        (store_random_in_range,":rand",0,2),
        (store_agent_hit_points,":hp",":victim",1),
        (val_sub,":hp",":rand"),
        (store_random_in_range,":hit_reaction",1,101),
        (store_skill_level,":a_shield",skl_shield,":victim"),
        (store_skill_level,":v_shield",skl_shield,":agent"),
        (try_begin),
            (gt,":hp",0),
            (agent_set_hit_points,":victim",":hp",1),
            (agent_play_sound,":agent","snd_shield_hit_wood_wood"),
            (agent_play_sound,":victim","snd_blunt_hit"),
            (try_begin),
              (gt,":a_shield", ":v_shield"),
                  (try_begin),
                    (is_between,":hit_reaction",0,10),
                    (agent_set_animation, ":victim", "anim_bash_unsuccessful"),
                  (else_try),
                    (is_between,":hit_reaction",11,20),
                    (agent_set_animation, ":victim", "anim_bash_crouch"),
                  (else_try),
                    (is_between,":hit_reaction",21,30),
                    (agent_set_animation, ":victim", "anim_bash_mini_stun"),
                  (else_try),
                    (is_between,":hit_reaction",21,79),
                    (agent_set_animation, ":victim", "anim_bash_stun"),
                  (else_try),
                    (is_between,":hit_reaction",80,100),
                    (agent_set_animation, ":victim", "anim_bash_knocked"),
                  (end_try),  
            (else_try),
              (lt,":a_shield", ":v_shield"),
                  (try_begin),
                    (is_between,":hit_reaction",0,20),
                    (agent_set_animation, ":victim", "anim_bash_unsuccessful"),
                  (else_try),
                    (is_between,":hit_reaction",21,42),
                    (agent_set_animation, ":victim", "anim_bash_crouch"),
                  (else_try),
                    (is_between,":hit_reaction",43,65),
                    (agent_set_animation, ":victim", "anim_bash_mini_stun"),
                  (else_try),
                    (is_between,":hit_reaction",66,92),
                    (agent_set_animation, ":victim", "anim_bash_stun"),
                  (else_try),
                    (is_between,":hit_reaction",93,100),
                    (agent_set_animation, ":victim", "anim_bash_knocked"),
                  (end_try),
            (else_try),
              (eq,":a_shield", ":v_shield"),
                  (try_begin),
                    (is_between,":hit_reaction",0,16),
                    (agent_set_animation, ":victim", "anim_bash_unsuccessful"),
                  (else_try),
                    (is_between,":hit_reaction",17,33),
                    (agent_set_animation, ":victim", "anim_bash_crouch"),
                  (else_try),
                    (is_between,":hit_reaction",34,50),
                    (agent_set_animation, ":victim", "anim_bash_mini_stun"),
                  (else_try),
                    (is_between,":hit_reaction",51,89),
                    (agent_set_animation, ":victim", "anim_bash_stun"),
                  (else_try),
                    (is_between,":hit_reaction",90,100),
                    (agent_set_animation, ":victim", "anim_bash_knocked"),
                  (end_try),
            (end_try),
        (else_try),
            (agent_play_sound,":agent","snd_shield_hit_wood_wood"),
            (agent_play_sound,":victim","snd_blunt_hit"),
            (agent_deliver_damage_to_agent,":agent",":victim"),
        (end_try),
      ]),

    The following into any applicable mission template:

          (ti_before_mission_start, 0, 0, [], [(assign,"$bash_readiness",0)]),


          (0.1, 0, 0, [], [(val_add,"$bash_readiness",1),]),


          (0, 0, 0, [(game_key_is_down, gk_defend),(game_key_clicked, gk_attack),],
          [(assign,":continue",0),
            (get_player_agent_no,":player"),
            (agent_is_alive,":player"),
            (try_for_range,":shield","itm_wooden_shield","itm_heraldic_mail_with_surcoat"),
                (agent_has_item_equipped,":player",":shield"),
                (assign,":continue",1),
            (end_try),
            (eq,":continue",1),
            (agent_get_horse,":horse",":player"),
            (neg|gt,":horse",0),
            (ge,"$bash_readiness",10),
            (assign,"$bash_readiness",0),
            (call_script,"script_cf_agent_shield_bash",":player"),
            ]),

          (1.0, 0, 0, [],
          [(get_player_agent_no,":player"),
            (try_for_agents,":agent"),
              (agent_is_alive,":agent"),
              (agent_is_human,":agent"),
              (neq,":agent",":player"),
              (agent_get_class ,":class", ":agent"),
              (neq,":class",grc_cavalry),
              (assign,":continue",0),
              (try_for_range,":shield","itm_wooden_shield","itm_heraldic_mail_with_surcoat"),
                  (agent_has_item_equipped,":agent",":shield"),
                  (assign,":continue",1),
              (end_try),
              (eq,":continue",1),
              (assign,":chances",0),
              (agent_get_team,":team",":agent"),
              (agent_get_position,pos1,":agent"),
              (try_for_agents,":eek:ther"),
                    (agent_is_alive,":eek:ther"),
                    (agent_is_human,":eek:ther"),
                    (agent_get_class ,":class", ":eek:ther"),
                    (neq,":class",grc_cavalry),
                    (agent_get_team,":eek:therteam",":eek:ther"),
                    (neq,":team",":eek:therteam"),
                    (agent_get_position,pos2,":eek:ther"),
                    (get_distance_between_positions,":dist",pos1,pos2),
                    (neg|position_is_behind_position,pos2,pos1),
                    (lt,":dist",200),
                    (val_add,":chances",1),
              (end_try),
              (store_agent_hit_points,":health",":agent",0),
              (val_mul,":health",-1),
              (val_add,":health",100),
              (val_div,":health",10),
              (val_mul,":chances",":health"),
              (store_random_in_range,":rand",1,25),
              (lt,":rand",":chances"),
              (call_script,"script_cf_agent_shield_bash",":agent"),
            (end_try),]),
    And the following into module animations (note that these must be pasted over unused animations, not at the end of the file):

    # strike_fall_back_rise_after_bashed
    ["bash_knocked", acf_enforce_all|acf_align_with_ground,
      [2.0, "anim_human", blow+5400, blow+5453, arf_blend_in_2],
    ],
    # strike_chest_front_stop
    ["bash_stun", acf_enforce_all,
      [1.5, "anim_human", blow+5000, blow+5010, arf_blend_in_3],
    ],
    # strike_chest_front_stop
    ["bash_mini_stun", acf_enforce_all,
      [0.6, "anim_human", blow+5000, blow+5010, arf_blend_in_3],
    ],
    # anim jump end
    ["bash_crouch", acf_enforce_all|acf_enforce_lowerbody,
      [0.5, "anim_human", 280, 290, arf_blend_in_3],
    ], 
    # strike_head_front_left
    ["bash_unsuccessful", acf_enforce_all,
      [0.55, "anim_human", blow+0, blow+10, arf_blend_in_3],
    ],

    ["release_bash", acf_enforce_all|acf_right_cut|acf_parallels_for_look_slope,
      [0.62, "anim_human", combat+5710, combat+5740, blend_in_release],
    ],




    Things to take note of: bashing is only for and only against footmen., thus cavalry will not bash or be bashed. Also, only shields in the range referenced in red above will be bash usable. If you want to bash with a shield, put it in that range.


    Enjoy.  :smile:
    AfterI did it I see such report
    What I do wrong? thank You
  10. OSP Kit Combat Battlefield Tactics kit. Multiple formations per team+command revamp!

    Mirathei said:
    There's been a whole lot of interest in my formations of late, so a put together a kit which would allow both the player and the ai (allied or enemy) to use multiple moveable formations of either line, box, or wedge shape for any type of there troops. In addition, battlefield morale is implemented (thank you Chel) and a side which is being thoroughly beaten will rout.

    Controlls: use the default native controlls to select cavalry, infantry, or archers. Use j to order your troops to form ranks, k to order a wedge, u to bring them out of formation, or p to order them to form a line. Use the default native commands for movement (ie. hold, follow, charge, advance), including the tactical minimap.

    To add it in, simply follow the instructions below:

    Copy and past the following under the triggers section of the "lead_charge" mission template (or any other template in which you desire formations):
    Code:
    ########Tactical triggers below##########
    
    (ti_before_mission_start, 0, 0, [], 
       [(assign,"$rout",0),
        (assign,"$airout",0),
        (assign,"$formation",0),
        (assign,"$infantryformationtype",0),
        (assign,"$archerformationtype",0),
        (assign,"$cavalryformationtype",0),]),
    
    
         (0, 0, 0,
          [(key_clicked, key_2),       
           (assign,"$formation",grc_infantry),
            ], []),
         (0, 0, 0,
          [(key_clicked, key_3),        
           (assign,"$formation",grc_archers),
            ], []),
         (0, 0, 0,
          [(key_clicked, key_4),        
           (assign,"$formation",grc_cavalry),
            ], []),
    
    
         (0, 0, 0,
          [(key_clicked, key_j),        
           (get_player_agent_no,":player"),
           (agent_get_team  ,reg0, ":player"),
           (assign,reg1,"$formation"),
           (call_script,"script_cf_formation"),
           (try_begin),
              (eq,"$formation",grc_infantry),
              (assign,"$infantryformationtype",1),
           (else_try),
              (eq,"$formation",grc_archers),
              (assign,"$archerformationtype",1),
           (else_try),
              (eq,"$formation",grc_cavalry),
              (assign,"$cavalryformationtype",1),
           (end_try),
           (display_message,"@Forming_ranks."),
            ], []),
    
         (0, 0, 0,
          [(key_clicked, key_p),        
           (get_player_agent_no,":player"),
           (agent_get_team  ,reg0, ":player"),
           (assign,reg1,"$formation"),
           (call_script,"script_cf_formation_stagger"),
           (call_script,"script_cf_formation"),
           (try_begin),
              (eq,"$formation",grc_infantry),
              (assign,"$infantryformationtype",3),
           (else_try),
              (eq,"$formation",grc_archers),
              (assign,"$archerformationtype",3),
           (else_try),
              (eq,"$formation",grc_cavalry),
              (assign,"$cavalryformationtype",3),
           (end_try),
           (display_message,"@Forming_a_line."),
            ], []),
    
         (0, 0, 0,
          [(key_clicked, key_k),        
           (get_player_agent_no,":player"),
           (agent_get_team  ,reg0, ":player"),
           (assign,reg1,"$formation"),
           (call_script,"script_cf_formation_wedge"),
           (call_script,"script_cf_formation"),
           (try_begin),
              (eq,"$formation",grc_infantry),
              (assign,"$infantryformationtype",2),
           (else_try),
              (eq,"$formation",grc_archers),
              (assign,"$archerformationtype",2),
           (else_try),
              (eq,"$formation",grc_cavalry),
              (assign,"$cavalryformationtype",2),
           (end_try),
           (display_message,"@Forming_a_wedge."),
            ], []),
    
         (0, 0, 0,
          [(key_clicked, key_u),        
           (get_player_agent_no,":player"),
           (agent_get_team  ,reg0, ":player"),
           (assign,reg1,"$formation"),
           (call_script,"script_formation_end"),
           (call_script,"script_cf_formation"),
           (try_begin),
              (eq,"$formation",grc_infantry),
              (assign,"$infantryformationtype",0),
           (else_try),
              (eq,"$formation",grc_archers),
              (assign,"$archerformationtype",0),
           (else_try),
              (eq,"$formation",grc_cavalry),
              (assign,"$cavalryformationtype",0),
           (end_try),
           (display_message,"@Formation_disassembled."),
            ], []),
    
         (5.0, 0, 0,
          [(try_for_agents,":agent"),
             (agent_is_human,":agent"),
             (neg|agent_is_ally,":agent"),
             (assign,":enemy",":agent"),
           (end_try),
           (gt,":enemy",-1),
           (eq,"$airout",0),
           (agent_get_team  ,reg0, ":enemy"),
           (assign,reg1,grc_cavalry),
           (call_script,"script_formation_end"),
           (assign,reg1,grc_infantry),
           (call_script,"script_formation_end"),
           (assign,reg1,grc_archers),
           (call_script,"script_formation_end"),], []),
    
         (5.0, 0, 0,
          [(assign,":enemy",-1),
           (assign,":infantry",0),
           (assign,":cavalry",0),
           (try_for_agents,":agent"),
             (agent_is_human,":agent"),
             (agent_is_alive,":agent"),
             (neg|agent_is_ally,":agent"),
             (assign,":enemy",":agent"),
             (agent_get_class ,":class", ":agent"),
             (try_begin),
                (eq,":class",grc_cavalry),
                (val_add,":cavalry",1),
             (else_try),
                (val_add,":infantry",1),
             (end_try),
           (end_try),
           (gt,":enemy",-1),
           (agent_get_team  ,reg0, ":enemy"),
           (assign,":ratio",":infantry"),
           (val_div,":ratio",":cavalry"),
           (try_begin),
             (gt,":ratio",2),
             (lt,":cavalry",10),
             (team_give_order, reg0, grc_everyone, mordr_dismount),
           (else_try),
             (team_give_order, reg0, grc_everyone, mordr_mount),
           (end_try),], []),
    
    
         (5.0, 0, 0,
          [(eq,"$rout",0),
           (get_player_agent_no,":player"),
           (agent_get_team  ,reg0, ":player"),
           (val_add,reg0,2),
           (assign,reg1,grc_cavalry),
           (call_script,"script_formation_end"),
           (assign,reg1,grc_infantry),
           (call_script,"script_formation_end"),
           (assign,reg1,grc_archers),
           (call_script,"script_formation_end"),], []),
    
         (5.0, 0, 0,
          [(neq, "$battle_won", 1),
           (assign,":infantry",0),
           (assign,":cavalry",0),
           (get_player_agent_no,":player"),
           (agent_get_team  ,reg0, ":player"),
           (val_add,reg0,2),
           (try_for_agents,":agent"),
             (agent_is_human,":agent"),
             (agent_is_alive,":agent"),
             (agent_get_team  ,":team", ":agent"),
             (eq,":team",reg0),
             (agent_get_class ,":class", ":agent"),
             (try_begin),
                (eq,":class",grc_cavalry),
                (val_add,":cavalry",1),
             (else_try),
                (val_add,":infantry",1),
             (end_try),
           (end_try),
           (assign,":ratio",":infantry"),
           (val_div,":ratio",":cavalry"),
           (try_begin),
             (gt,":ratio",2),
             (lt,":cavalry",10),
             (team_give_order, reg0, grc_everyone, mordr_dismount),
           (else_try),
             (team_give_order, reg0, grc_everyone, mordr_mount),
           (end_try),], []),
    
         (0.2, 0, 0,
          [(eq,"$rout",0),
           (get_player_agent_no,":player"),
           (agent_get_team  ,reg0, ":player"),
           (assign,reg1,grc_infantry),
           (try_begin),
              (eq,"$infantryformationtype",1),
              (call_script,"script_cf_formation"),
           (else_try),
              (eq,"$infantryformationtype",2),
              (call_script,"script_cf_formation_wedge"),
           (else_try),
              (eq,"$infantryformationtype",3),
              (call_script,"script_cf_formation_stagger"),
           (else_try),
              (call_script,"script_formation_end"),
           (end_try),], []),
    
         (0.2, 0, 0,
          [(eq,"$rout",0),
           (get_player_agent_no,":player"),
           (agent_get_team  ,reg0, ":player"),
           (assign,reg1,grc_archers),
           (try_begin),
              (eq,"$archerformationtype",1),
              (call_script,"script_cf_formation"),
           (else_try),
              (eq,"$archerformationtype",2),
              (call_script,"script_cf_formation_wedge"),
           (else_try),
              (eq,"$archerformationtype",3),
              (call_script,"script_cf_formation_stagger"),
           (else_try),
              (call_script,"script_formation_end"),
           (end_try),], []),
    
         (0.2, 0, 0,
          [(eq,"$rout",0),
           (get_player_agent_no,":player"),
           (agent_get_team  ,reg0, ":player"),
           (assign,reg1,grc_cavalry),
           (try_begin),
              (eq,"$cavalryformationtype",1),
              (call_script,"script_cf_formation"),
           (else_try),
              (eq,"$cavalryformationtype",2),
              (call_script,"script_cf_formation_wedge"),
           (else_try),
              (eq,"$cavalryformationtype",3),
              (call_script,"script_cf_formation_stagger"),
           (else_try),
              (call_script,"script_formation_end"),
           (end_try),], []),
    
         (0.2, 0, 0,
          [(eq,"$airout",0),
           (try_for_agents,":agent"),
             (agent_is_human,":agent"),
             (neg|agent_is_ally,":agent"),
             (assign,":enemy",":agent"),
           (end_try),
           (gt,":enemy",-1),
           (agent_get_team  ,reg0, ":enemy"),
           (store_normalized_team_count,":num", reg0),  
           (gt,":num",5),
           (assign,reg1,grc_infantry),
           (call_script,"script_cf_formation"),
            ], []),
    
         (0.2, 0, 0,
          [(eq,"$airout",0),
           (try_for_agents,":agent"),
             (agent_is_human,":agent"),
             (neg|agent_is_ally,":agent"),
             (assign,":enemy",":agent"),
           (end_try),
           (gt,":enemy",-1),
           (agent_get_team  ,reg0, ":enemy"),
           (store_normalized_team_count,":num", reg0),  
           (gt,":num",5),
           (assign,reg1,grc_archers),
           (call_script,"script_cf_formation_stagger"),
            ], []),
    
         (0.2, 0, 0,
          [(eq,"$airout",0),
           (try_for_agents,":agent"),
             (agent_is_human,":agent"),
             (neg|agent_is_ally,":agent"),
             (assign,":enemy",":agent"),
           (end_try),
           (gt,":enemy",-1),
           (agent_get_team  ,reg0, ":enemy"),
           (store_normalized_team_count,":num", reg0),  
           (gt,":num",5),
           (assign,reg1,grc_cavalry),
           (call_script,"script_cf_formation_wedge"),
            ], []),
    
         (0.2, 0, 0,
          [(eq,"$rout",0),
           (neq, "$battle_won", 1),
           (eq,"$rout",0),
           (get_player_agent_no,":player"),
           (agent_get_team  ,reg0, ":player"),
           (val_add,reg0,2),
           (store_normalized_team_count,":num", reg0),  
           (gt,":num",5),
           (assign,reg1,grc_infantry),
           (call_script,"script_cf_formation"),
            ], []),
    
         (0.2, 0, 0,
          [(eq,"$rout",0),
           (neq, "$battle_won", 1),
           (eq,"$rout",0),
           (get_player_agent_no,":player"),
           (agent_get_team  ,reg0, ":player"),
           (val_add,reg0,2),
           (store_normalized_team_count,":num", reg0),  
           (gt,":num",5),
           (assign,reg1,grc_archers),
           (call_script,"script_cf_formation_stagger"),
            ], []),
    
         (0.2, 0, 0,
          [(eq,"$rout",0),
           (neq, "$battle_won", 1),
           (eq,"$rout",0),
           (get_player_agent_no,":player"),
           (agent_get_team  ,reg0, ":player"),
           (val_add,reg0,2),
           (store_normalized_team_count,":num", reg0),  
           (gt,":num",5),
           (assign,reg1,grc_cavalry),
           (call_script,"script_cf_formation_wedge"),
            ], []),
    
    
    
    
         (1, 0, ti_once, [], [
            (get_player_agent_kill_count,"$base_kills",0),
            (assign,"$new_kills_a",0),
    		(assign,"$new_kills",0),
             ]),
    
         (3, 0, 3, [], [
            (get_player_agent_kill_count,":more_kills",0),
            (val_sub,":more_kills","$base_kills"),
    		(try_begin),
                (gt,":more_kills","$new_kills_a"),
                (assign,"$new_kills_a",":more_kills"),
    			(assign,"$new_kills",":more_kills"),
    			(val_div,"$new_kills",2),
                (assign,reg1,":more_kills"),
                (display_message,"@You have killed {reg1} enemies in this battle!",0x6495ed),         
                (display_message,"@Your bravery inspires your troops!",0x6495ed),
            (try_end),
             ]),
    
    
    		 
         (0, 0, 2, [(key_clicked, key_t)], [
    (call_script, "script_coherence"),    
    (call_script, "script_healthbars"),       
             ]),
    
         (0, 0, ti_once, [(key_clicked, key_y)], [
    #(play_sound,"snd_battle_cry_n"),
    (display_message,"@You rally your men!",0x7ccd7c),
    (call_script, "script_battle_cry"),
    (call_script, "script_hero_exp_penalty"),       
             ]),
         (10, 0, 20, [ ], [
    (call_script, "script_rally"),       
             ]),
         (0, 10, 100, [(key_clicked, key_v),(display_message,"@You call for reinforcements!",0x6495ed) ], [
    (display_message,"@Reinforcements arrive!",0x6495ed), 
    (add_reinforcements_to_entry,0,7),
    (add_reinforcements_to_entry,3,7),
    (call_script, "script_hero_exp_penalty"),       
             ]),      
    
          
    
    (1, 0, ti_once, [ ], [
    (call_script, "script_coherence"),    
             ]),						
    
    
          
    (15, 0, 10, [ ], [
    (call_script, "script_coherence"),    
    (call_script, "script_morale_check"),    
             ]),
    (5, 0, 3, [ ], [
    (call_script, "script_coherence"),    
    (call_script, "script_rout_check"),       
             ]),
    
    
    
    ##########Tactical triggers above#########

    Copy and past the following into the bottom of module_scripts.py:
    Code:
      ("cf_formation",
       [(team_get_leader, ":teamleader", reg0),
        (gt,":teamleader",-1),
        (assign,":leader",-1),
        (agent_get_class,":class",":teamleader"),
        (try_begin),
           (eq,":class",reg1),
           (get_player_agent_no,":player"),
           (neq,":teamleader",":player"),
           (assign,":leader",":teamleader"),
        (else_try),
           (call_script,"script_choose_formation_leader"),
           (gt,reg2,-1),
           (assign,":leader",reg2),
        (end_try),  
        (gt,":leader",-1),  
        (agent_get_position,1,":leader"),
        (position_move_x,1,100),
        (assign,":collumn",1),
        (try_for_agents,reg(5)),
           (neq,reg5,":leader"),
           (agent_is_alive,reg(5)),
           (agent_is_human,reg(5)),
           (agent_get_team  ,":team", reg5),
           (eq,":team",reg0),
           (agent_get_class ,":class", reg5),
           (eq,":class",reg1),                                   
           (agent_set_scripted_destination,reg(5),1),
           (position_move_x,1,100),
           (try_begin),
              (eq,":collumn",12),
              (position_move_x,1,-12*100),
              (position_move_y,1,-200),
              (assign,":collumn",1),
           (else_try),
              (val_add,":collumn",1),
           (end_try),
        (end_try)]),
    
      ("cf_formation_stagger",
       [(team_get_leader, ":teamleader", reg0),
        (gt,":teamleader",-1),
        (assign,":leader",-1),
        (agent_get_class,":class",":teamleader"),
        (try_begin),
           (eq,":class",reg1),
           (get_player_agent_no,":player"),
           (neq,":teamleader",":player"),
           (assign,":leader",":teamleader"),
        (else_try),
           (call_script,"script_choose_formation_leader"),
           (gt,reg2,-1),
           (assign,":leader",reg2),
        (end_try),  
        (gt,":leader",-1), 
        (agent_get_position,1,":leader"),
        (position_move_x,1,100),
        (assign,":move_y",-100),
        (try_for_agents,reg(5)),
           (neq,reg5,":leader"),
           (agent_is_alive,reg(5)),
           (agent_is_human,reg(5)),
           (agent_get_team  ,":team", reg5),
           (eq,":team",reg0),
           (agent_get_class ,":class", reg5),
           (eq,":class",reg1),                                   
           (agent_set_scripted_destination,reg(5),1),
           (position_move_x,1,100),
           (position_move_y,1,":move_y"),
           (val_mul,":move_y",-1),
        (end_try)]),
    
      ("cf_formation_wedge",
       [(team_get_leader, ":teamleader", reg0),
        (gt,":teamleader",-1),
        (assign,":leader",-1),
        (agent_get_class,":class",":teamleader"),
        (try_begin),
           (eq,":class",reg1),
           (get_player_agent_no,":player"),
           (neq,":teamleader",":player"),
              (assign,":fail",0),
              (try_for_range,":ranged_item","itm_jarid","itm_flintlock_pistol"),
                 (agent_has_item_equipped,":teamleader",":ranged_item"),
                 (assign,":fail",1),
              (end_try),
              (eq,":fail",0),
           (assign,":leader",":teamleader"),
        (else_try),
           (assign,reg2,-1),
           (assign,":max_xp",0),
           (try_for_agents,":agent"),
              (agent_is_alive,":agent"),
              (agent_is_human,":agent"),
              (agent_get_team,":team",":agent"),
              (eq,":team",reg0),
              (agent_get_class,":class",":agent"),
              (eq,":class",reg1),
              (get_player_agent_no,":player"),
              (neq,":player",":agent"),
              (assign,":fail",0),
              (try_for_range,":ranged_item","itm_jarid","itm_flintlock_pistol"),
                 (agent_has_item_equipped,":agent",":ranged_item"),
                 (assign,":fail",1),
              (end_try),
              (eq,":fail",0),
              (agent_get_troop_id,":troop", ":agent"),
              (troop_get_xp, ":xp", ":troop"),
              (gt,":xp",":max_xp"),
              (assign,":max_xp",":xp"),
              (assign,reg2,":agent"),
           (end_try),
           (gt,reg2,-1),
           (assign,":leader",reg2),
        (end_try),  
        (gt,":leader",-1), 
        (agent_get_position,1,":leader"),
        (assign,":collumn",1),
        (assign,":nc",3),
        (position_move_x,1,-150),
        (try_for_agents,reg(5)),
           (neq,reg5,":leader"),
           (agent_is_alive,reg(5)),
           (agent_is_human,reg(5)),
           (agent_get_team  ,":team", reg5),
           (eq,":team",reg0),
           (agent_get_class ,":class", reg5),
           (eq,":class",reg1), 
              (assign,":fail",0),
              (try_for_range,":ranged_item","itm_jarid","itm_flintlock_pistol"),
                 (agent_has_item_equipped,reg5,":ranged_item"),
                 (assign,":fail",1),
              (end_try),
              (eq,":fail",0), 
           (agent_set_scripted_destination,reg(5),1),
           (try_begin),
              (eq,":collumn",":nc"),
              (val_mul,":nc",-150),
              (position_move_x,1,":nc"),
              (position_move_y,1,-300),
              (assign,":collumn",1),
              (val_div,":nc",-150),
              (val_add,":nc",2),
           (else_try),
              (position_move_x,1,150),
              (val_add,":collumn",1),
           (end_try),
        (end_try)]),
    
      ("formation_end",
       [(try_for_agents,reg(5)),
           (agent_is_alive,reg(5)),
           (agent_is_human,reg(5)),
           (agent_get_team  ,":team", reg5),
           (eq,":team",reg0),
           (agent_get_class ,":class", reg5),
           (eq,":class",reg1),  
           (agent_clear_scripted_mode,reg5),
         (try_end),]),
    
      ("choose_formation_leader",
       [(assign,reg2,-1),
        (assign,":max_xp",0),
        (try_for_agents,":agent"),
            (agent_is_alive,":agent"),
            (agent_is_human,":agent"),
            (agent_get_team,":team",":agent"),
            (eq,":team",reg0),
            (agent_get_class,":class",":agent"),
            (eq,":class",reg1),
            (get_player_agent_no,":player"),
            (neq,":player",":agent"),
            (agent_get_troop_id,":troop", ":agent"),
            (troop_get_xp, ":xp", ":troop"),
            (gt,":xp",":max_xp"),
            (assign,":max_xp",":xp"),
            (assign,reg2,":agent"),
        (end_try),]),
        
    
    
    
      #script_healthbars
        ("healthbars",
        [
    (assign,reg1,"$allies_coh_base"),
    (assign,reg2,"$enemies_coh"),
    (assign,reg3,"$new_kills"),
    (display_message,"@Your troops are at {reg1}% cohesion (+{reg3}% bonus), the enemy at {reg2}%!",0x6495ed),
         ]),
    
      #script_morale_check
        ("morale_check",
        [
                (try_begin),
                  (lt,"$allies_coh",80),
                  (store_random_in_range,":routed",1,101),
                  (assign,":chance_ply",85),
                  (val_sub,":chance_ply","$allies_coh"),
                    (try_begin),            
                      (le,":routed",":chance_ply"),             
                      (display_message,"@Morale of your troops wavers!",0xff4040),            
                      (call_script, "script_flee_allies"),
                    (try_end),
                (try_end),
    
                (try_begin),
                  (lt,"$enemies_coh",80),
                  (store_random_in_range,":routed",1,101),
                  (assign,":chance_ply",85),
                  (val_sub,":chance_ply","$enemies_coh"),
                    (try_begin),  
                      (le,":routed",":chance_ply"),             
                      (display_message,"@Morale of your enemies wavers!",0x7ccd7c),            
                      (call_script, "script_flee_enemies"),
                    (try_end),            
                (try_end),
         ]),
    
      #script_battle_cry
        ("battle_cry",
        [
    
    (store_skill_level,":leader","skl_leadership","trp_player"),
    (try_for_agents,":agent"),
             (agent_is_alive,":agent"),
             (agent_is_human,":agent"),
             (agent_is_ally,":agent"),
             (store_agent_hit_points,":hitpoints",":agent",0),
    				(try_begin),
                       (le,":hitpoints",80),
    				   (val_add,":hitpoints",":leader"),
    				   (val_add,":hitpoints",10),
                       (agent_set_hit_points,":agent",":hitpoints"), 
                   (try_end),
    (end_try),	
    (try_for_agents,":agent"),
             (agent_is_alive,":agent"),
             (agent_is_human,":agent"),
             (agent_is_ally,":agent"),
             (store_agent_hit_points,":hitpoints",":agent",0),
             (val_sub,":hitpoints",10),
             (store_random_in_range,":routed",1,101),
                  (try_begin),
                       (le,":routed",":hitpoints"),
                             (agent_clear_scripted_mode,":agent"),
                   (try_end),
    (end_try),	
         ]),
    
        ("rally",
        [
    #(display_message,"@Your enemies rally to rejoin the battle!",0xff4040),
    (try_for_agents,":agent"),
             (agent_is_alive,":agent"),
             (agent_is_human,":agent"),
             (store_agent_hit_points,":hitpoints",":agent",0),
             #(val_sub,":hitpoints",10),
             (store_random_in_range,":routed",1,101),
                  (try_begin),
                       (le,":routed",":hitpoints"),
                             (agent_clear_scripted_mode,":agent"),
                   (try_end),
    (end_try),	
         ]),
    
    
      #script_rout_check
        ("rout_check",
        [
    (assign,":ally","$allies_coh"),
    #(assign,reg2,"$allies_coh"),
    #(display_message,"@allies {reg2}% cohesion!"),
    (assign,":enemy","$enemies_coh"),
    #(assign,reg2,"$enemies_coh"),
    #(display_message,"@enemies {reg2}% cohesion!"),
    (val_sub,":ally",":enemy"),
    #(assign,reg2,":ally"),
    #(display_message,"@difference {reg2}."),
    
                    (try_begin),
                       (ge,":ally",40),
                      (display_message,"@Your enemies flee in terror!",0x7ccd7c),  
                      (call_script, "script_rout_enemies"),
                      (assign,"$airout",1),
                   (try_end),
    
                    (try_begin),
                       (le,":ally",-40),
                      (display_message,"@Your troops flee in terror!",0xff4040),  
                      (call_script, "script_rout_allies"),
                      (assign,"$rout",1),
                   (try_end),
         ]),
    
    	 
    	 
    ## script_flee
        ("flee_allies",
        [
    (get_scene_boundaries, pos3, pos4),
    
    (position_get_x,":xmin",pos3),
    (position_get_y,":ymin",pos3),
    (position_get_x,":xmax",pos4),
    (position_get_y,":ymax",pos4),
    	   
    	   (val_div,":xmin",100),
    	   (val_div,":xmax",100),
    	   
    (store_random_in_range,":xrout_point3",":xmin",":xmax"),
        (val_mul,":xrout_point3",100),
    (store_random_in_range,":yrout_point3",":xmin",":xmax"),
    	(val_mul,":yrout_point3",100),
    (store_random_in_range,":xrout_point4",":xmin",":xmax"),
    	(val_mul,":xrout_point4",100),
    (store_random_in_range,":yrout_point4",":xmin",":xmax"),
    	(val_mul,":yrout_point4",100),
    
    	   (val_mul,":xmin",100),
    	   (val_mul,":xmax",100),
    
    (val_add,":xrout_point3",":xmin"),
    (val_add,":xrout_point3",":xmin"),
    (val_add,":xrout_point3",":xmin"),
    (val_div,":xrout_point3",4),
    (position_set_x,pos3,":xrout_point3"),
    (val_add,":yrout_point3",":ymin"),
    (val_add,":yrout_point3",":ymin"),
    (val_add,":yrout_point3",":ymin"),
    (val_div,":yrout_point3",4),
    (position_set_y,pos3,":yrout_point3"),
    
    (val_add,":xrout_point4",":xmax"),
    (val_add,":xrout_point4",":xmax"),
    (val_add,":xrout_point4",":xmax"),
    (val_div,":xrout_point4",4),
    (position_set_x,pos4,":xrout_point4"),
    (val_add,":yrout_point4",":ymax"),
    (val_add,":yrout_point4",":ymax"),
    (val_add,":yrout_point4",":ymax"),
    (val_div,":yrout_point4",4),
    (position_set_y,pos4,":yrout_point4"),
    
    		 
    (store_skill_level,":leader","skl_leadership","trp_player"),
    (try_for_agents,":agent"),
             (agent_is_alive,":agent"),
             (agent_is_human,":agent"),
             (agent_is_ally,":agent"),
             (store_agent_hit_points,":hitpoints",":agent",0),
    		 (agent_get_troop_id,":troop_type", ":agent"),
    		 (store_character_level, ":troop_level", ":troop_type"),
    		 (val_div,":troop_level",10),
    		 (val_add,":hitpoints",":troop_level"),		 
             (assign,":chance_ply",100),
             (val_sub,":chance_ply",":hitpoints"),
             (val_sub,":chance_ply",":leader"),
             (val_div,":chance_ply",2),
             (store_random_in_range,":routed",1,101),
                  (try_begin),
                       (le,":routed",":chance_ply"),
    #                  (display_message,"@One ally runs!"),  
                    	 (agent_get_position,pos2,":agent"),
    		 (position_move_z,pos2,200,0),
                             (agent_clear_scripted_mode,":agent"),
                             (agent_set_scripted_destination,":agent",pos4,1),
                   (try_end),
    (end_try),	
         ]),
    
        ("flee_enemies",
        [
    (get_scene_boundaries, pos3, pos4),
    
    (position_get_x,":xmin",pos3),
    (position_get_y,":ymin",pos3),
    (position_get_x,":xmax",pos4),
    (position_get_y,":ymax",pos4),
    	   
    	   (val_div,":xmin",100),
    	   (val_div,":xmax",100),
    	   
    (store_random_in_range,":xrout_point3",":xmin",":xmax"),
        (val_mul,":xrout_point3",100),
    (store_random_in_range,":yrout_point3",":xmin",":xmax"),
    	(val_mul,":yrout_point3",100),
    (store_random_in_range,":xrout_point4",":xmin",":xmax"),
    	(val_mul,":xrout_point4",100),
    (store_random_in_range,":yrout_point4",":xmin",":xmax"),
    	(val_mul,":yrout_point4",100),
    
    	   (val_mul,":xmin",100),
    	   (val_mul,":xmax",100),
    
    (val_add,":xrout_point3",":xmin"),
    (val_add,":xrout_point3",":xmin"),
    (val_add,":xrout_point3",":xmin"),
    (val_div,":xrout_point3",4),
    (position_set_x,pos3,":xrout_point3"),
    (val_add,":yrout_point3",":ymin"),
    (val_add,":yrout_point3",":ymin"),
    (val_add,":yrout_point3",":ymin"),
    (val_div,":yrout_point3",4),
    (position_set_y,pos3,":yrout_point3"),
    
    (val_add,":xrout_point4",":xmax"),
    (val_add,":xrout_point4",":xmax"),
    (val_add,":xrout_point4",":xmax"),
    (val_div,":xrout_point4",4),
    (position_set_x,pos4,":xrout_point4"),
    (val_add,":yrout_point4",":ymax"),
    (val_add,":yrout_point4",":ymax"),
    (val_add,":yrout_point4",":ymax"),
    (val_div,":yrout_point4",4),
    (position_set_y,pos4,":yrout_point4"),
    
    
    (try_for_agents,":agent"),
             (agent_is_alive,":agent"),
             (agent_is_human,":agent"),
             (neg|agent_is_ally,":agent"),
             (store_agent_hit_points,":hitpoints",":agent",0),
    		 (agent_get_troop_id,":troop_type", ":agent"),
    		 (store_character_level, ":troop_level", ":troop_type"),
    		 (val_div,":troop_level",10),
    		 (val_add,":hitpoints",":troop_level"),		 
             (assign,":chance_ply",100),
             (val_sub,":chance_ply",":hitpoints"),
             (val_sub,":chance_ply",4),
             (val_div,":chance_ply",2),
             (store_random_in_range,":routed",1,101),
    	 (try_begin),
                       (le,":routed",":chance_ply"),
    #                  (display_message,"@One enemy runs!"),  
                    	 (agent_get_position,pos2,":agent"),
    		 (position_move_z,pos2,200,0),
                             (agent_clear_scripted_mode,":agent"),
                             (agent_set_scripted_destination,":agent",pos3,1),
                   (try_end),
    (end_try),	
         ]),
    
    ## script_rout
        ("rout_allies",
        [
    (get_scene_boundaries, pos3, pos4),	
    
    (position_get_x,":xmin",pos3),
    (position_get_y,":ymin",pos3),
    (position_get_x,":xmax",pos4),
    (position_get_y,":ymax",pos4),
    	   
    	   (val_div,":xmin",100),
    	   (val_div,":xmax",100),
    	   
    (store_random_in_range,":xrout_point3",":xmin",":xmax"),
        (val_mul,":xrout_point3",100),
    (store_random_in_range,":yrout_point3",":xmin",":xmax"),
    	(val_mul,":yrout_point3",100),
    (store_random_in_range,":xrout_point4",":xmin",":xmax"),
    	(val_mul,":xrout_point4",100),
    (store_random_in_range,":yrout_point4",":xmin",":xmax"),
    	(val_mul,":yrout_point4",100),
    
    	   (val_mul,":xmin",100),
    	   (val_mul,":xmax",100),
    
    (val_add,":xrout_point3",":xmin"),
    (val_add,":xrout_point3",":xmin"),
    (val_add,":xrout_point3",":xmin"),
    (val_div,":xrout_point3",4),
    (position_set_x,pos3,":xrout_point3"),
    (val_add,":yrout_point3",":ymin"),
    (val_add,":yrout_point3",":ymin"),
    (val_add,":yrout_point3",":ymin"),
    (val_div,":yrout_point3",4),
    (position_set_y,pos3,":yrout_point3"),
    
    (val_add,":xrout_point4",":xmax"),
    (val_add,":xrout_point4",":xmax"),
    (val_add,":xrout_point4",":xmax"),
    (val_div,":xrout_point4",4),
    (position_set_x,pos4,":xrout_point4"),
    (val_add,":yrout_point4",":ymax"),
    (val_add,":yrout_point4",":ymax"),
    (val_add,":yrout_point4",":ymax"),
    (val_div,":yrout_point4",4),
    (position_set_y,pos4,":yrout_point4"),
    
    
    	 
    (store_skill_level,":leader","skl_leadership","trp_player"),
    (try_for_agents,":agent"),
             (agent_is_alive,":agent"),
             (agent_is_human,":agent"),
             (agent_is_ally,":agent"),
             (store_agent_hit_points,":hitpoints",":agent",0),
    		 (agent_get_troop_id,":troop_type", ":agent"),
    		 (store_character_level, ":troop_level", ":troop_type"),
    		 (val_div,":troop_level",10),
             (val_div,":hitpoints",3),
             (assign,":chance_ply",100),
             (val_sub,":chance_ply",":hitpoints"),
             (val_sub,":chance_ply",":leader"),
             (val_sub,":chance_ply",":troop_level"),
             (store_random_in_range,":routed",1,101),
                  (try_begin),
                       (le,":routed",":chance_ply"),
    #                  (display_message,"@One ally runs!"),  
                    	 (agent_get_position,pos2,":agent"),
    		 (position_move_z,pos2,200,0),
                             (agent_clear_scripted_mode,":agent"),
                             (agent_set_scripted_destination,":agent",pos4,1),
                   (try_end),
    (end_try),	
         ]),
    
        ("rout_enemies",
        [
    (get_scene_boundaries, pos3, pos4),
    
    (position_get_x,":xmin",pos3),
    (position_get_y,":ymin",pos3),
    (position_get_x,":xmax",pos4),
    (position_get_y,":ymax",pos4),
    	   
    	   (val_div,":xmin",100),
    	   (val_div,":xmax",100),
    	   
    (store_random_in_range,":xrout_point3",":xmin",":xmax"),
        (val_mul,":xrout_point3",100),
    (store_random_in_range,":yrout_point3",":xmin",":xmax"),
    	(val_mul,":yrout_point3",100),
    (store_random_in_range,":xrout_point4",":xmin",":xmax"),
    	(val_mul,":xrout_point4",100),
    (store_random_in_range,":yrout_point4",":xmin",":xmax"),
    	(val_mul,":yrout_point4",100),
    
    	   (val_mul,":xmin",100),
    	   (val_mul,":xmax",100),
    
    (val_add,":xrout_point3",":xmin"),
    (val_add,":xrout_point3",":xmin"),
    (val_add,":xrout_point3",":xmin"),
    (val_div,":xrout_point3",4),
    (position_set_x,pos3,":xrout_point3"),
    (val_add,":yrout_point3",":ymin"),
    (val_add,":yrout_point3",":ymin"),
    (val_add,":yrout_point3",":ymin"),
    (val_div,":yrout_point3",4),
    (position_set_y,pos3,":yrout_point3"),
    
    (val_add,":xrout_point4",":xmax"),
    (val_add,":xrout_point4",":xmax"),
    (val_add,":xrout_point4",":xmax"),
    (val_div,":xrout_point4",4),
    (position_set_x,pos4,":xrout_point4"),
    (val_add,":yrout_point4",":ymax"),
    (val_add,":yrout_point4",":ymax"),
    (val_add,":yrout_point4",":ymax"),
    (val_div,":yrout_point4",4),
    (position_set_y,pos4,":yrout_point4"),
    
    
    (try_for_agents,":agent"),
             (agent_is_alive,":agent"),
             (agent_is_human,":agent"),
             (neg|agent_is_ally,":agent"),
             (store_agent_hit_points,":hitpoints",":agent",0),
    		 (agent_get_troop_id,":troop_type", ":agent"),
    		 (store_character_level, ":troop_level", ":troop_type"),
    		 (val_div,":troop_level",10),
             (val_div,":hitpoints",3),
             (assign,":chance_ply",100),
             (val_sub,":chance_ply",":hitpoints"),
             (val_sub,":chance_ply",3), ## AI's Leadership bonus
             (val_sub,":chance_ply",":troop_level"),
             (store_random_in_range,":routed",1,101),
    	 (try_begin),
                       (le,":routed",":chance_ply"),
    #                  (display_message,"@One enemy runs!"),  
                    	 (agent_get_position,pos2,":agent"),
    		 (position_move_z,pos2,200,0),
                             (agent_clear_scripted_mode,":agent"),
                             (agent_set_scripted_destination,":agent",pos3,1),
                   (try_end),
    (end_try),
        ]),  
    
      
    
      #script_coherence
        ("coherence",
        [
    (get_scene_boundaries, pos3, pos4),		 
    (assign,":num_allies",0),
    (assign,":coh_allies",0),
    (assign,":num_enemies",0),
    (assign,":coh_enemies",0),
         (try_for_agents,":agent"),
             (agent_is_ally,":agent"),
             (agent_is_human,":agent"),
    		 (store_agent_hit_points,":hitpoints",":agent",0),
    		 (agent_get_troop_id,":troop_type", ":agent"),
    		 (store_character_level, ":troop_level", ":troop_type"),
    #		 (val_div,":troop_level",10),
    		 (val_mul,":hitpoints",":troop_level"),
    		 (val_add,":num_allies",":troop_level"),
             (val_add,":coh_allies",":hitpoints"),
          (else_try),
             (agent_is_human,":agent"),
    		 (store_agent_hit_points,":hitpoints",":agent",0),
    		 (agent_get_troop_id,":troop_type", ":agent"),
    		 (store_character_level, ":troop_level", ":troop_type"),
    #		 (val_div,":troop_level",10),
    		 (val_mul,":hitpoints",":troop_level"),
    		 (val_add,":num_enemies",":troop_level"),
             (val_add,":coh_enemies",":hitpoints"),
          (end_try),
    (val_div,":coh_allies",":num_allies"),
    (assign,"$allies_coh_base",":coh_allies"),
    (assign,"$allies_coh","$allies_coh_base"),
    (val_add,"$allies_coh","$new_kills"),
    (val_div,":coh_enemies",":num_enemies"),
    (assign,"$enemies_coh",":coh_enemies"),
         ]),  
    
    
      #script_hero_exp_penalty
        ("hero_exp_penalty",
        [(store_character_level,":level","trp_player"),
         (val_mul,":level",-20),
         (add_xp_to_troop,":level","trp_player"),
         (assign,reg1,":level"),
           (display_message, "@You lost {reg1} experience points.",0x8fbc8f),     
         ]),

    And that's it!  :razz: If you need help modifying some of the above or implementing it, or have any suggestions, please let me know.



    Next step: make the ai tactics in-battle more intelligent and fix any odd bugs that turn up.
    It is for module system version 1.011?
  11. module system please help me

    thanks for answer! wanted to use timeless kingdows as source
  12. module system please help me

    possible as that carry from module in module system that is to say that in module system was not native but other mod
    mod=>module system
    what import files from module in module system
    как импортировать файлы из модуля в модульную систему
  13. module system please help me

    in response to my question t there keeps quiet  you will try me to explain? in any event thank you
  14. module system please help me

    thank you! I not have quite understood, say please that concretely it is necessary to do?
Back
Top Bottom