case agent_set_speed_limit:
if (mbCheckAgent(intValues[0]))
g_mission->getAgent(intValues[0])->m_ai.m_speedLimit = values[1] / 3.6f;
only one usage for human
if (!(m_ai.m_moveTargetFlags & aimtf_running) || m_ai.m_speedLimit <= 2.6f)
m_ai.m_control.m_flags2 |= cf2_walk;

So setting this value just makes the agent switch between running and walking? If it will change its real running speed, why should the value of 60 be set in native, which means 16.67m/s?插入代码块:case agent_set_speed_limit: if (mbCheckAgent(intValues[0])) g_mission->getAgent(intValues[0])->m_ai.m_speedLimit = values[1] / 3.6f; only one usage for human if (!(m_ai.m_moveTargetFlags & aimtf_running) || m_ai.m_speedLimit <= 2.6f) m_ai.m_control.m_flags2 |= cf2_walk;
# script_battle_tactic_apply_aux
# Input: team_no, battle_tactic
# Output: battle_tactic
("battle_tactic_apply_aux",
[
(store_script_param, ":team_no", 1),
(store_script_param, ":battle_tactic", 2),
(store_mission_timer_a, ":mission_time"),
(try_begin),
(eq, ":battle_tactic", btactic_hold),
(copy_position, pos1, pos52),
(call_script, "script_get_closest3_distance_of_enemies_at_pos1", ":team_no", 1),
(assign, ":avg_dist", reg0),
(assign, ":min_dist", reg1),
(try_begin),
(this_or_next|lt, ":min_dist", 1000),
(lt, ":avg_dist", 4000),
(assign, ":battle_tactic", 0),
(team_give_order, ":team_no", grc_everyone, mordr_charge),
(try_end),
(else_try),
(eq, ":battle_tactic", btactic_follow_leader),
(team_get_leader, ":ai_leader", ":team_no"),
(try_begin),
(ge, ":ai_leader", 0),
(agent_is_alive, ":ai_leader"),
(agent_set_speed_limit, ":ai_leader", 9),
(call_script, "script_team_get_average_position_of_enemies", ":team_no"),
(copy_position, pos60, pos0),
(agent_get_position, pos61, ":ai_leader"),
(position_transform_position_to_local, pos62, pos61, pos60), #pos62 = vector to enemy w.r.t leader
(position_normalize_origin, ":distance_to_enemy", pos62),
(convert_from_fixed_point, ":distance_to_enemy"),
(assign, reg17, ":distance_to_enemy"),
(position_get_x, ":dir_x", pos62),
(position_get_y, ":dir_y", pos62),
(val_mul, ":dir_x", 23),
(val_mul, ":dir_y", 23), #move 23 meters
(position_set_x, pos62, ":dir_x"),
(position_set_y, pos62, ":dir_y"),
(position_transform_position_to_parent, pos63, pos61, pos62), #pos63 is 23m away from leader in the direction of the enemy.
(position_set_z_to_ground_level, pos63),
(team_give_order, ":team_no", grc_everyone, mordr_hold),
(team_set_order_position, ":team_no", grc_everyone, pos63),
(agent_get_position, pos1, ":ai_leader"),
(try_begin),
(lt, ":distance_to_enemy", 50),
(ge, ":mission_time", 30),
(assign, ":battle_tactic", 0),
(team_give_order, ":team_no", grc_everyone, mordr_charge),
(agent_set_speed_limit, ":ai_leader", 60),
(try_end),
(else_try),
(assign, ":battle_tactic", 0),
(team_give_order, ":team_no", grc_everyone, mordr_charge),
(try_end),
(try_end),
(try_begin), # charge everyone after a while
(neq, ":battle_tactic", 0),
(ge, ":mission_time", 300),
(assign, ":battle_tactic", 0),
(team_give_order, ":team_no", grc_everyone, mordr_charge),
(team_get_leader, ":ai_leader", ":team_no"),
(agent_set_speed_limit, ":ai_leader", 60),
(try_end),
(assign, reg0, ":battle_tactic"),
]),
for human only switch to walkingSo setting this value just makes the agent switch between running and walking? If it will change its real running speed, why should the value of 60 be set in native, which means 16.67m/s?
The following is the native script:
插入代码块:# script_battle_tactic_apply_aux # Input: team_no, battle_tactic # Output: battle_tactic ("battle_tactic_apply_aux", [ (store_script_param, ":team_no", 1), (store_script_param, ":battle_tactic", 2), (store_mission_timer_a, ":mission_time"), (try_begin), (eq, ":battle_tactic", btactic_hold), (copy_position, pos1, pos52), (call_script, "script_get_closest3_distance_of_enemies_at_pos1", ":team_no", 1), (assign, ":avg_dist", reg0), (assign, ":min_dist", reg1), (try_begin), (this_or_next|lt, ":min_dist", 1000), (lt, ":avg_dist", 4000), (assign, ":battle_tactic", 0), (team_give_order, ":team_no", grc_everyone, mordr_charge), (try_end), (else_try), (eq, ":battle_tactic", btactic_follow_leader), (team_get_leader, ":ai_leader", ":team_no"), (try_begin), (ge, ":ai_leader", 0), (agent_is_alive, ":ai_leader"), (agent_set_speed_limit, ":ai_leader", 9), (call_script, "script_team_get_average_position_of_enemies", ":team_no"), (copy_position, pos60, pos0), (agent_get_position, pos61, ":ai_leader"), (position_transform_position_to_local, pos62, pos61, pos60), #pos62 = vector to enemy w.r.t leader (position_normalize_origin, ":distance_to_enemy", pos62), (convert_from_fixed_point, ":distance_to_enemy"), (assign, reg17, ":distance_to_enemy"), (position_get_x, ":dir_x", pos62), (position_get_y, ":dir_y", pos62), (val_mul, ":dir_x", 23), (val_mul, ":dir_y", 23), #move 23 meters (position_set_x, pos62, ":dir_x"), (position_set_y, pos62, ":dir_y"), (position_transform_position_to_parent, pos63, pos61, pos62), #pos63 is 23m away from leader in the direction of the enemy. (position_set_z_to_ground_level, pos63), (team_give_order, ":team_no", grc_everyone, mordr_hold), (team_set_order_position, ":team_no", grc_everyone, pos63), (agent_get_position, pos1, ":ai_leader"), (try_begin), (lt, ":distance_to_enemy", 50), (ge, ":mission_time", 30), (assign, ":battle_tactic", 0), (team_give_order, ":team_no", grc_everyone, mordr_charge), (agent_set_speed_limit, ":ai_leader", 60), (try_end), (else_try), (assign, ":battle_tactic", 0), (team_give_order, ":team_no", grc_everyone, mordr_charge), (try_end), (try_end), (try_begin), # charge everyone after a while (neq, ":battle_tactic", 0), (ge, ":mission_time", 300), (assign, ":battle_tactic", 0), (team_give_order, ":team_no", grc_everyone, mordr_charge), (team_get_leader, ":ai_leader", ":team_no"), (agent_set_speed_limit, ":ai_leader", 60), (try_end), (assign, reg0, ":battle_tactic"), ]),
Thanks for report, will be fixed in the next update.Hi, we have recently started using WSE2 1.1.0.0 on our dedicated servers and have been having some trouble with the ban_list.txt
When admin perma banned a user, ban_list.txt got overwritten and it only contained the last player that was banned. Newer bans also overwrite the text file, so at any point there's only one player in ban list.
When we switched back to using vanilla .exe, the bug was no longer present.
Any idea why this may be happening?
