Warband Script Enhancer 2 (v1.1.0.5)

正在查看此主题的用户

插入代码块:
    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;
 
插入代码块:
    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?
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"),
  ]),
 
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?
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"),
  ]),
for human only switch to walking
 
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?
 
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?
Thanks for report, will be fixed in the next update.
 
wse2:
QW2RSmP8.jpg

native:
GGQriabB.jpg

Why did the underwater grass texture disappear? This is a question from another modder.
 
最后编辑:
I'm on Viking Conquest, balance mod, in the controls I get:

STR NOT FOUND: ui_order7
STR NOT FOUND: ui_order8

Any thoughts?

I1YKBcf.png
 
1.1.0.1
-Fixed module selection from the command line for dedicated server.
-Fixed perma bans for dedicated server.
-Fixed Vsync issues.
-Fixed crash with empty meta meshes for prop_instance_deform_to_time, prop_instance_deform_in_range, prop_instance_deform_in_cycle_loop, prop_instance_get_current_deform_progress, prop_instance_get_current_deform_frame, prop_instance_set_material operations.


Critical update for dedicated server owners!
 
When do you think it will be possible to have the scene editor mode on WSE 2?

The "Gondolin" server running the "Full Invasion Osiris" module has the WSE 2 patch installed on the server side. Thanks again for your help K700. Amazing work & support ! Don't forget to support him with some donation, it's a god.
 
The scene editor is planned, unfortunately most of the time is spent on cleaning up bugs.
 
This might be a rather useless and non-priority feature, may I suggest that forest terrain have a separate material? so its:
map_plain
+new WSE2 map_plain_forest
map_steppe
+new WSE2 map_steppe_forest
etc.
 
what exactly do you want to achieve with this? I can make the functionality you need to order
 
后退
顶部 底部