Orion 说:
CalamityuP 说:
(1, 0, 0, [],
[
(multiplayer_is_server),
(get_max_players, ":num_players"),
(try_for_range, ":player_no", 0, ":num_players"),
(player_is_active, ":player_no"),
(neg|player_is_busy_with_menus, ":player_no"),
(player_get_team_no, ":player_team", ":player_no"), #if player is currently spectator do not spawn his agent
(lt, ":player_team", multi_team_spectator),
(player_get_troop_id, ":player_troop", ":player_no"), #if troop is not selected do not spawn his agent
(ge, ":player_troop", 0),
(player_get_agent_id, ":player_agent", ":player_no"),
(assign, ":spawn_new", 0),
(try_begin),
(player_get_slot, ":player_first_spawn", ":player_no", slot_player_first_spawn),
(eq, ":player_first_spawn", 1),
(assign, ":spawn_new", 1),
(player_set_slot, ":player_no", slot_player_first_spawn, 0),
(else_try),
(try_begin),
(lt, ":player_agent", 0),
(assign, ":spawn_new", 1),
(else_try),
(neg|agent_is_alive, ":player_agent"),
(agent_get_time_elapsed_since_removed, ":elapsed_time", ":player_agent"),
(gt, ":elapsed_time", "$g_multiplayer_respawn_period"),
(assign, ":spawn_new", 1),
(try_end),
(try_end),
(eq, ":spawn_new", 1),
(call_script, "script_multiplayer_buy_agent_equipment", ":player_no"),
################## ORIGINAL START
# (troop_get_inventory_slot, ":has_item", ":player_troop", ek_horse),
# (try_begin),
# (ge, ":has_item", 0),
# (assign, ":is_horseman", 1),
# (else_try),
# (assign, ":is_horseman", 0),
# (try_end),
# (call_script, "script_multiplayer_find_spawn_point", ":player_team", 0, ":is_horseman"),
# (player_spawn_new_agent, ":player_no", reg0),
# (try_end),
################## ORIGINAL END
# custom rule
(troop_get_inventory_slot, ":has_item", ":player_troop", ek_horse),
(try_begin),
(ge, ":has_item", 0),
(assign, ":is_horseman", 1),
(else_try),
(assign, ":is_horseman", 0),
(try_end),
(store_current_scene, ":current_scene"), # stores the current map.
(try_begin), # for this scene we spawn horsemen differently.
(eq,":current_scene","scn_multi_mod_blankmap"), # checks if the current stored map matches the specific map i want.
(eq,":is_horseman", 1),
#(store_random_in_range, reg0, 63, 64),
#Randomly selects valid entry points for horsement to spawn. (0 to 63) valid entry points
(store_random_in_range, ":rand", 0, 2),
(try_begin),
(eq, ":rand", 0),
(assign, reg0, 30),
(else_try),
(eq, ":rand", 1),
(assign, reg0, 63),
(try_end),
(else_try),
(call_script, "script_multiplayer_find_spawn_point", ":player_team", 0, ":is_horseman"),
(try_end),
(player_spawn_new_agent, ":player_no", reg0),
(try_end),
]),
(1, 0, 0, [],
[
(multiplayer_is_server),
(get_max_players, ":num_players"),
(try_for_range, ":player_no", 0, ":num_players"),
(player_is_active, ":player_no"),
(neg|player_is_busy_with_menus, ":player_no"),
(player_get_team_no, ":player_team", ":player_no"), #if player is currently spectator do not spawn his agent
(lt, ":player_team", multi_team_spectator),
(player_get_troop_id, ":player_troop", ":player_no"), #if troop is not selected do not spawn his agent
(ge, ":player_troop", 0),
(player_get_agent_id, ":player_agent", ":player_no"),
(assign, ":spawn_new", 0),
(try_begin),
(player_get_slot, ":player_first_spawn", ":player_no", slot_player_first_spawn),
(eq, ":player_first_spawn", 1),
(assign, ":spawn_new", 1),
(player_set_slot, ":player_no", slot_player_first_spawn, 0),
(else_try),
(try_begin),
(lt, ":player_agent", 0),
(assign, ":spawn_new", 1),
(else_try),
(neg|agent_is_alive, ":player_agent"),
(agent_get_time_elapsed_since_removed, ":elapsed_time", ":player_agent"),
(gt, ":elapsed_time", "$g_multiplayer_respawn_period"),
(assign, ":spawn_new", 1),
(try_end),
(try_end),
(eq, ":spawn_new", 1),
(call_script, "script_multiplayer_buy_agent_equipment", ":player_no"),
################## ORIGINAL START
# (troop_get_inventory_slot, ":has_item", ":player_troop", ek_horse),
# (try_begin),
# (ge, ":has_item", 0),
# (assign, ":is_horseman", 1),
# (else_try),
# (assign, ":is_horseman", 0),
# (try_end),
# (call_script, "script_multiplayer_find_spawn_point", ":player_team", 0, ":is_horseman"),
# (player_spawn_new_agent, ":player_no", reg0),
# (try_end),
################## ORIGINAL END
# custom rule
(troop_get_inventory_slot, ":has_item", ":player_troop", ek_horse),
(try_begin),
(ge, ":has_item", 0),
(assign, ":is_horseman", 1),
(else_try),
(assign, ":is_horseman", 0),
(try_end),
(try_begin), # for this scene we spawn horsemen differently.
(store_current_scene, ":current_scene"), # stores the current map.
(eq,":current_scene","scn_multi_mod_blankmap"), # checks if the current stored map matches the specific map i want.
(eq,":is_horseman", 1),
# select a random entrypoint from the ones we use in the map for horsemen. (currently only 64)
(store_random_in_range, reg0, 64, 65),
(else_try),
(call_script, "script_multiplayer_find_spawn_point", ":player_team", 0, ":is_horseman"),
(try_end),
(player_spawn_new_agent, ":player_no", reg0),
(try_end),
]),
# custom rule
(troop_get_inventory_slot, ":has_item", ":player_troop", ek_horse),
(try_begin),
(ge, ":has_item", 0),
(assign, ":is_horseman", 1),
(else_try),
(assign, ":is_horseman", 0),
(try_end),
(try_begin), # for this scene we spawn horsemen differently.
(store_current_scene, ":current_scene"), # stores the current map.
(eq,":current_scene","scn_multi_mod_blankmap"), # checks if the current stored map matches the specific map i want.
(eq,":is_horseman", 1),
# select a random entrypoint from the ones we use in the map for horsemen. (currently only 64)
(store_random_in_range, reg0, 64, 65),
(else_try),
(call_script, "script_multiplayer_find_spawn_point", ":player_team", 0, ":is_horseman"),
(try_end),
(player_spawn_new_agent, ":player_no", reg0),
(try_end),