######Tactical triggers below##########
(ti_before_mission_start, 0, 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),
(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,
[(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,
[(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,
[(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,
[(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,
[(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,
[(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,
[(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,
[(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,
[(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,
[(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"),
], []),
##########Tactical triggers above########
в файл module_mission_templates.py после строк: ("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),]),
Все. Теперь можно играть. Однако будут ошибки, но их можно исправить.