(1, 0, 0, [(multiplayer_is_server),
(eq, "$g_round_ended", 0),
(store_mission_timer_a, ":current_time"),
(store_sub, ":seconds_past_in_round", ":current_time", "$g_round_start_time"),
(ge, ":seconds_past_in_round", "$g_multiplayer_round_max_seconds"),
(assign, ":overtime_needed", 0), #checking for if overtime is needed. Overtime happens when lower heighted flag is going up
(try_begin),
(eq, "$g_battle_death_mode_started", 2), #if death mod is currently open
(scene_prop_get_instance, ":pole_1_id", "spr_headquarters_pole_code_only", 0),
(scene_prop_get_instance, ":pole_2_id", "spr_headquarters_pole_code_only", 1),
(scene_prop_get_instance, ":flag_1_id", "$team_1_flag_scene_prop", 0),
(scene_prop_get_instance, ":flag_2_id", "$team_2_flag_scene_prop", 0),
(prop_instance_get_position, pos1, ":pole_1_id"),
(prop_instance_get_position, pos2, ":pole_2_id"),
(prop_instance_get_position, pos3, ":flag_1_id"),
(prop_instance_get_position, pos4, ":flag_2_id"),
(get_distance_between_positions, ":height_of_flag_1", pos1, pos3),
(get_distance_between_positions, ":height_of_flag_2", pos2, pos4),
(store_add, ":height_of_flag_1_plus", ":height_of_flag_1", min_allowed_flag_height_difference_to_make_score),
(store_add, ":height_of_flag_2_plus", ":height_of_flag_2", min_allowed_flag_height_difference_to_make_score),
(try_begin),
(le, ":height_of_flag_1", ":height_of_flag_2_plus"),
(prop_instance_is_animating, ":is_animating", ":flag_1_id"),
(eq, ":is_animating", 1),
(prop_instance_get_animation_target_position, pos5, ":flag_1_id"),
(position_get_z, ":flag_2_animation_target_z", pos5),
(position_get_z, ":flag_1_cur_z", pos3),
(ge, ":flag_2_animation_target_z", ":flag_1_cur_z"),
(assign, ":overtime_needed", 1),
(try_end),
(try_begin),
(le, ":height_of_flag_2", ":height_of_flag_1_plus"),
(prop_instance_is_animating, ":is_animating", ":flag_2_id"),
(eq, ":is_animating", 1),
(prop_instance_get_animation_target_position, pos5, ":flag_2_id"),
(position_get_z, ":flag_2_animation_target_z", pos5),
(position_get_z, ":flag_2_cur_z", pos4),
(ge, ":flag_2_animation_target_z", ":flag_2_cur_z"),
(assign, ":overtime_needed", 1),
(try_end),
(try_end),
(eq, ":overtime_needed", 0),
],
[ #round time is up
(store_mission_timer_a, "$g_round_finish_time"),
(assign, "$g_round_ended", 1),
(assign, "$g_winner_team", -1),
(try_begin), #checking for winning by death mod
(eq, "$g_battle_death_mode_started", 2), #if death mod is currently open
(scene_prop_get_instance, ":pole_1_id", "spr_headquarters_pole_code_only", 0),
(scene_prop_get_instance, ":pole_2_id", "spr_headquarters_pole_code_only", 1),
(scene_prop_get_instance, ":flag_1_id", "$team_1_flag_scene_prop", 0),
(scene_prop_get_instance, ":flag_2_id", "$team_2_flag_scene_prop", 0),
(prop_instance_get_position, pos1, ":pole_1_id"),
(prop_instance_get_position, pos2, ":pole_2_id"),
(prop_instance_get_position, pos3, ":flag_1_id"),
(prop_instance_get_position, pos4, ":flag_2_id"),
(get_distance_between_positions, ":height_of_flag_1", pos1, pos3),
(get_distance_between_positions, ":height_of_flag_2", pos2, pos4),
(try_begin),
(ge, ":height_of_flag_1", ":height_of_flag_2"), #if flag_1 is higher than flag_2
(store_sub, ":difference_of_heights", ":height_of_flag_1", ":height_of_flag_2"),
(ge, ":difference_of_heights", min_allowed_flag_height_difference_to_make_score), #if difference between flag heights is greater than
(assign, "$g_winner_team", 0), #"min_allowed_flag_height_difference_to_make_score" const value
(else_try), #if flag_2 is higher than flag_1
(store_sub, ":difference_of_heights", ":height_of_flag_2", ":height_of_flag_1"),
(ge, ":difference_of_heights", min_allowed_flag_height_difference_to_make_score), #if difference between flag heights is greater than
(assign, "$g_winner_team", 1), #"min_allowed_flag_height_difference_to_make_score" const value
(try_end),
(try_end),
(multiplayer_get_my_player, ":my_player_no"), #send all players draw information of round.
#for only server itself-----------------------------------------------------------------------------------------------
(call_script, "script_draw_this_round", "$g_winner_team"),
#for only server itself-----------------------------------------------------------------------------------------------
(get_max_players, ":num_players"),
(try_for_range, ":player_no", 1, ":num_players"), #0 is server so starting from 1
(player_is_active, ":player_no"),
(neq, ":player_no", ":my_player_no"),
(multiplayer_send_int_to_player, ":player_no", multiplayer_event_draw_this_round, "$g_winner_team"),
(try_end),
]),
This is the entire trigger for determining MOTF victory. It checks to see if the flags are a certain distance apart and if either is animating to determine if overtime is needed. If the overtime is up or isn't needed, it checks to see if the flags are a certain distance apart, and if they are, the team with the higher flag wins.