骑砍战团MOD开发(28)-骑砍联盟之RTS大规模军团竞技

骑砍1战团mod开发-欢迎来到骑砍联盟(RTS大规模军团竞技)_哔哩哔哩_bilibili

一.小地图presentation

    ("RTS_battle", 0, 0, [
      (ti_on_presentation_load, [
        (set_fixed_point_multiplier, 1000),
        (call_script, "script_RTS_calculate_map_scale"),
        (call_script, "script_RTS_init_map_overlay"),
        (call_script, "script_RTS_update_overlay_on_map"),
        (presentation_set_duration, 999999),
      ]),
      (ti_on_presentation_run, [
        (set_fixed_point_multiplier, 1000),
        (call_script, "script_RTS_update_overlay_on_map"),
      ]),
      (ti_on_presentation_mouse_press, [
         (store_trigger_param_1, ":object"),
         (store_trigger_param_2, ":mouse_state"),
         (get_scene_boundaries, pos2, pos3),
         (try_begin),
            (eq, ":object", "$g_RTS_battle_map_plane"),
            (eq, ":mouse_state", 0),
            (mouse_get_position, pos1),
            (call_script, "script_RTS_convert_map_pos_to_3d_pos"),
            (position_get_x, ":3d_cam_x", pos0),
            (position_get_y, ":3d_cam_y", pos0),
            (init_position, pos2),
            (mission_cam_get_position, pos2),
            (position_set_x, pos2, ":3d_cam_x"),
            (position_set_y, pos2, ":3d_cam_y"),
            (position_set_z_to_ground_level, pos2),
            (position_move_z, pos2, 1000, 1),
            (mission_cam_set_position, pos2),
         (try_end),
      ]),
    ]),

二.RTS视角切换

     (0, 0, ti_once, [],[
        (assign, "$g_tank_mode", 0),
        (assign, "$g_tank_paota_rotate_z", 0),
        (assign, "$g_tank_cheti_instance_no", 0),
        (assign, "$g_tank_paota_instance_no", 0),
         
        (assign, "$g_fly_mode", 0),
        (assign, "$g_fly_speed", 0),
        (assign, "$g_RTS_battle_mode", 0),
        (assign, "$g_RTS_battle_rbtn_flag", 0),
        (assign, "$g_RTS_shift_mode", 0),
     ]),
     (0, 0, 0, [(key_clicked, key_numpad_4),(eq, "$g_RTS_battle_mode", 0)],[
        (init_position, pos1),
        (init_position, pos2),
        (init_position, pos3),
        (assign, "$g_RTS_battle_mode", 1),
        
        #set player position
        (get_player_agent_no, ":player_agent"),
        (agent_get_horse, ":player_horse", ":player_agent"),
        (agent_set_no_dynamics, ":player_agent", 1),
        (try_begin),
           (neq, ":player_horse", -1),
           (agent_set_no_dynamics, ":player_horse", 1),
        (try_end),
        
        #spawn rbtn flag
        (try_begin),
          (eq, "$g_RTS_battle_rbtn_flag", 0),
          (agent_get_position, pos3, ":player_agent"),
          (set_spawn_position, pos3),
          (spawn_scene_prop, "spr_RTS_rbtn_flag"),
          (assign, "$g_RTS_battle_rbtn_flag", reg0),
        (try_end),

        #set camera position
        (mission_cam_set_mode, 1, 1, 0),
        (mission_cam_get_position, pos1),
        (position_set_z_to_ground_level, pos1),
        (position_get_rotation_around_z, ":cam_rotation_around_z", pos1),
        (position_copy_origin, pos2, pos1),
        (position_rotate_z, pos2, ":cam_rotation_around_z"),
        (position_move_y, pos2, -800),
        (position_move_z, pos2, 1000),
        (position_rotate_x, pos2, -30),
        (mission_cam_set_position, pos2),
        
        #set map overlay slot
        (try_for_agents, ":agent_no"),
           (agent_set_slot, ":agent_no", slot_agent_map_overlay_id, 0),
        (try_end),
        (start_presentation, "prsnt_RTS_battle"),
     ]),
      
     (0, 0, 0, [(key_clicked, key_numpad_5),(eq, "$g_RTS_battle_mode", 1)],[
        (assign, "$g_RTS_battle_mode", 0),
        (play_sound, "snd_lol_reconn"),
        
        (mission_cam_set_mode, 0, 1, 0),
        (get_player_agent_no, ":player_agent"),
        (agent_get_horse, ":player_horse", ":player_agent"),
        (agent_set_no_dynamics, ":player_agent", 0),
        (try_begin),
           (neq, ":player_horse", -1),
           (agent_set_no_dynamics, ":player_horse", 0),
        (try_end),
        (presentation_set_duration, 0),
     ]),
     (0, 0, 0, [(neg|key_is_down, key_left_mouse_button),(eq, "$g_RTS_battle_mode", 1)],[
        (assign, "$g_RTS_battle_white_frame_alpha", 0),
     ]),
     (0, 0.1, 0, [(key_is_down, key_left_mouse_button),(eq, "$g_RTS_battle_mode", 1)],[
        (assign, "$g_RTS_battle_white_frame_alpha", 0xFF),
        (init_position, pos1),
        (init_position, pos2),
        (init_position, pos3),
        (set_fixed_point_multiplier, 1000),
        (mouse_get_position, pos1),
        (position_get_x, "$g_RTS_battle_mouse_rd_x", pos1),
        (position_get_y, "$g_RTS_battle_mouse_rd_y", pos1),
        
        (try_begin),
           (gt, "$g_RTS_battle_mouse_rd_x", "$g_RTS_battle_map_pos_x"),
           (gt, "$g_RTS_battle_mouse_rd_y", "$g_RTS_battle_map_pos_y"),
           (assign, "$g_RTS_battle_mouse_rd_x", -1),
           (assign, "$g_RTS_battle_mouse_rd_y", -1),
        (try_end),
        
        (try_for_agents, ":agent_no"),
          (try_begin),
            (agent_is_non_player, ":agent_no"),
            (agent_is_alive, ":agent_no"),
            (agent_is_ally, ":agent_no"),
            (agent_is_human, ":agent_no"),
            (agent_get_slot, ":origin_division", ":agent_no", slot_agent_rts_origin_division),
            (agent_set_division, ":agent_no", ":origin_division"),
            (call_script, "script_RTS_3d_pos_to_mouse_pos", ":agent_no"),
            (position_get_x, ":agent_screen_x", pos2),
            (position_get_y, ":agent_screen_y", pos2),
            (try_begin),
               (lt, ":agent_screen_x", "$g_RTS_battle_mouse_rd_x"),
               (gt, ":agent_screen_x", "$g_RTS_battle_mouse_lt_x"),
               (lt, ":agent_screen_y", "$g_RTS_battle_mouse_lt_y"),
               (gt, ":agent_screen_y", "$g_RTS_battle_mouse_rd_y"),
               (agent_set_division, ":agent_no", 8),
               (team_set_order_listener, 1, 8),               
            (try_end),
          (try_end),
        (try_end),
     ]),
     (0, 0, 0, [(key_clicked, key_left_mouse_button),(eq, "$g_RTS_battle_mode", 1)],[
        (init_position, pos1),
        (set_fixed_point_multiplier, 1000),
        (mouse_get_position, pos1),
        (position_get_x, "$g_RTS_battle_mouse_lt_x", pos1),
        (position_get_y, "$g_RTS_battle_mouse_lt_y", pos1),
        (try_begin),
           (gt, "$g_RTS_battle_mouse_lt_x", "$g_RTS_battle_map_pos_x"),
           (gt, "$g_RTS_battle_mouse_lt_y", "$g_RTS_battle_map_pos_y"),
           (assign, "$g_RTS_battle_mouse_lt_x", -1),
           (assign, "$g_RTS_battle_mouse_lt_y", -1),
        (try_end),
     ]),
     (0, 0, 0, [(key_clicked, key_right_mouse_button),(eq, "$g_RTS_battle_mode", 1)],[
        (call_script, "script_RTS_mouse_pos_to_3d_pos"),
        (prop_instance_set_position, "$g_RTS_battle_rbtn_flag", pos3),
        
        #check enemy around
        (assign, ":is_enemy_around", 0),
        (set_fixed_point_multiplier, 100),
        (try_for_agents, ":agent_no", pos3, 200),
           (try_begin),
              (agent_is_alive, ":agent_no"),
              (agent_is_human, ":agent_no"),
              (neg|agent_is_ally, ":agent_no"),
              (assign, ":is_enemy_around", 1),
           (try_end),
        (try_end),
        
        #enemy around mordr_charge otherwise go to pos3
        (try_begin),
           (eq, ":is_enemy_around", 1),
           (team_set_order_listener, 1, 8),
           (team_give_order, 1, 1, mordr_charge),
        (else_try),
           (try_for_agents, ":agent_no"),
              (agent_get_division, ":current_division", ":agent_no"),
              (try_begin),
                 (agent_is_alive, ":agent_no"),
                 (agent_is_human, ":agent_no"),
                 (agent_is_ally, ":agent_no"),
                 (eq, ":current_division", 8),
                 (agent_set_scripted_destination, ":agent_no", pos3),
              (try_end),
           (try_end),
        (try_end),
     ]),
     #camera zoom press shift
     (0, 0.2, 0, [(neg|key_is_down,  key_left_shift),(eq, "$g_RTS_battle_mode", 1)],[
        (try_begin),
          (eq, "$g_RTS_shift_mode", 1),
          (assign, "$g_RTS_shift_mode", 0),
          (init_position, pos2),
          (mission_cam_get_position, pos2),
          (position_move_y, pos2, -500),
          (mission_cam_animate_to_position, pos2, 100, 0),
        (try_end),
     ]),
     (0, 0.1, 0, [(key_is_down,  key_left_shift),(eq, "$g_RTS_battle_mode", 1)],[
        (try_begin),
          (eq, "$g_RTS_shift_mode", 0),
          (assign, "$g_RTS_shift_mode", 1),
          (init_position, pos2),
          (mission_cam_get_position, pos2),
          (position_move_y, pos2, 500),
          (mission_cam_animate_to_position, pos2, 100, 0),
        (try_end),
     ]),
     
     #spawn agent for help press space
     (0, 0, 0, [(key_clicked, key_space),(eq, "$g_RTS_battle_mode", 1)],[
        (init_position, pos3),
        (try_begin),
           (neq, "$g_RTS_battle_rbtn_flag", 0),
           (prop_instance_get_position, pos3, "$g_RTS_battle_rbtn_flag"),
           (set_spawn_position, pos3),
           (spawn_agent, "trp_kingdom_1_lord"),
           (agent_set_team, reg0, 1),
        (try_end),
     ]),
     (0, 0, 0.1, [(game_key_is_down, gk_move_left),(eq, "$g_RTS_battle_mode", 1)],[
        (init_position, pos2),
        (mission_cam_get_position, pos2),
        (position_rotate_x, pos2, 30),
        (position_move_x, pos2, -500),
        (position_set_z_to_ground_level, pos2),
        (position_move_z, pos2, 1000),
        (position_rotate_x, pos2, -30),
        (mission_cam_animate_to_position, pos2, 300, 0),
     ]),
     (0, 0, 0.1, [(game_key_is_down, gk_move_right),(eq, "$g_RTS_battle_mode", 1)],[
        (init_position, pos2),
        (mission_cam_get_position, pos2),
        (position_rotate_x, pos2, 30),
        (position_move_x, pos2, 500),
        (position_set_z_to_ground_level, pos2),
        (position_move_z, pos2, 1000),
        (position_rotate_x, pos2, -30),
        (mission_cam_animate_to_position, pos2, 300, 0),
     ]),
     (0, 0, 0.1, [(game_key_is_down, gk_move_forward),(eq, "$g_RTS_battle_mode", 1)],[ 
        (init_position, pos2),
        (mission_cam_get_position, pos2),
        (position_rotate_x, pos2, 30),
        (position_move_y, pos2, 500),
        (position_set_z_to_ground_level, pos2),
        (position_move_z, pos2, 1000),
        (position_rotate_x, pos2, -30),
        (mission_cam_animate_to_position, pos2, 300, 0),
     ]),
     (0, 0, 0.1, [(game_key_is_down, gk_move_backward),(eq, "$g_RTS_battle_mode", 1)],[ 
        (init_position, pos2),
        (mission_cam_get_position, pos2),
        (position_rotate_x, pos2, 30),
        (position_move_y, pos2, -500),
        (position_set_z_to_ground_level, pos2),
        (position_move_z, pos2, 1000),
        (position_rotate_x, pos2, -30),
        (mission_cam_animate_to_position, pos2, 300, 0),
     ]),
     (ti_on_agent_spawn, 0, 0, [], [
        (store_trigger_param_1, ":agent_no"),
        (try_begin),
           (agent_is_non_player, ":agent_no"),
           (agent_is_alive, ":agent_no"),
           (agent_is_ally, ":agent_no"),
           (agent_is_human, ":agent_no"),
           (agent_get_division, ":origin_division", ":agent_no"),
           (agent_set_slot, ":agent_no", slot_agent_rts_origin_division, ":origin_division"),
        (try_end),
     ]),

三.新增函数

  # RTS_3d_pos_to_mouse_pos
  # Input: agent_no agent no
  # Output: pos2 mouse pos
  ("RTS_3d_pos_to_mouse_pos", [
     (store_script_param, ":agent_no", 1),
     (init_position, pos1),
     (init_position, pos2),
     (set_fixed_point_multiplier, 1000),
     (agent_get_position, pos1, ":agent_no"),
     (position_get_screen_projection, pos2, pos1),
  ]),

  # RTS_mouse_pos_to_3d_pos
  # Input: none
  # Output: pos3 3d pos
  ("RTS_mouse_pos_to_3d_pos", [
     (init_position, pos1),
     (init_position, pos2),
     (init_position, pos3),
     (set_fixed_point_multiplier, 1000),
     #screen coordinates is 1000*750 size, camera at center
     (mouse_get_position, pos1),
     (mission_cam_get_position, pos2),
     (position_get_x, ":mouse_x", pos1),
     (position_get_y, ":mouse_y", pos1),
     (store_sub, ":mouse_x_offset", ":mouse_x", 500),
     (store_sub, ":mouse_y_offset", ":mouse_y", 375),
        
     (val_mul, ":mouse_y_offset", 38),
     (val_div, ":mouse_y_offset", 375),
     (position_rotate_x, pos2, ":mouse_y_offset"),
        
     (val_mul, ":mouse_x_offset", -50),
     (val_div, ":mouse_x_offset", 500),
     (position_rotate_z, pos2, ":mouse_x_offset"),
        
     (cast_ray, ":scn_prop_id", pos3, pos2),
     (position_get_rotation_around_x, ":rotate_x", pos3),
     (val_mul, ":rotate_x", -1),
     (position_rotate_x, pos3, ":rotate_x"),
     (position_get_rotation_around_z, ":rotate_z", pos3),
     (val_mul, ":rotate_z", -1),
     (position_rotate_z, pos3, ":rotate_z"),
  ]),
  
  # script RTS_convert_3d_pos_to_map_pos
  # Input: pos1 = 3d_pos, pos2 = map_size_pos
  # Output: pos0 = map_pos
  ("RTS_convert_3d_pos_to_map_pos",[
    (set_fixed_point_multiplier, 1000),
    (position_transform_position_to_local, pos3, pos2, pos1),
    (position_get_x, ":agent_x_pos", pos3),
    (position_get_y, ":agent_y_pos", pos3),
    (val_div, ":agent_x_pos", "$g_battle_map_scale"),
    (val_div, ":agent_y_pos", "$g_battle_map_scale"),
    (store_sub, ":map_x", 1030, "$g_battle_map_width"),
    (store_sub, ":map_y", 770, "$g_battle_map_height"),
    (val_add, ":agent_x_pos", ":map_x"),
    (val_add, ":agent_y_pos", ":map_y"),
    (position_set_x, pos0, ":agent_x_pos"),
    (position_set_y, pos0, ":agent_y_pos"),
  ]),
  
  # script_RTS_convert_map_pos_to_3d_pos
  # Input: pos1 = map_pos, pos2 = map_size_pos
  # Output: pos0 = 3d_pos
  ("RTS_convert_map_pos_to_3d_pos",[
    (set_fixed_point_multiplier, 1000),
    (position_get_x, ":agent_x_pos", pos1),
    (position_get_y, ":agent_y_pos", pos1),
    (store_sub, ":map_x", 1030, "$g_battle_map_width"),
    (store_sub, ":map_y", 770, "$g_battle_map_height"),
    (val_sub, ":agent_x_pos", ":map_x"),
    (val_sub, ":agent_y_pos", ":map_y"),
    (val_mul, ":agent_x_pos", "$g_battle_map_scale"),
    (val_mul, ":agent_y_pos", "$g_battle_map_scale"),
    (position_set_x, pos1, ":agent_x_pos"),
    (position_set_y, pos1, ":agent_y_pos"),
    (position_transform_position_to_parent, pos0, pos2, pos1),
  ]),
  
  # script_RTS_calculate_map_scale
  # Input: none
  # Output: "$g_battle_map_scale", "$g_battle_map_height"
  ("RTS_calculate_map_scale",[
    (get_scene_boundaries, pos2, pos3),
    (position_transform_position_to_local, pos4, pos2, pos3),
    (position_get_x, ":map_width", pos4),
    (position_get_y, ":map_height", pos4),
        
    (store_div, ":map_ratio", ":map_height", 100),
    (store_div, ":map_ratio", ":map_width", ":map_ratio"),
    (try_begin),
      (gt, ":map_ratio", 100),
      (assign, "$g_battle_map_width", 300),
      (store_div, "$g_battle_map_scale", ":map_width", "$g_battle_map_width"),
      (store_div, "$g_battle_map_height", ":map_height", "$g_battle_map_scale"),
    (else_try),
      (assign, "$g_battle_map_height", 300),
      (store_div, "$g_battle_map_scale", ":map_height", "$g_battle_map_height"),
      (store_div, "$g_battle_map_width", ":map_width", "$g_battle_map_scale"),
    (try_end),
  ]),
  
  # script_RTS_init_map_overlay
  # Input: none
  # Output: none
  ("RTS_init_map_overlay",[
    (create_image_button_overlay, "$g_RTS_battle_map_plane", "mesh_white_plane", "mesh_white_plane"),
    (overlay_set_color, "$g_RTS_battle_map_plane", 0),
    (store_add, ":map_bordered_width", "$g_battle_map_width", 20),
    (store_add, ":map_bordered_height", "$g_battle_map_height", 20),
    (store_mul, ":map_scale_x", ":map_bordered_width", 30),
    (store_mul, ":map_scale_y", ":map_bordered_height", 30),
    (position_set_x, pos1, ":map_scale_x"),
    (position_set_y, pos1, ":map_scale_y"),
    (overlay_set_size, "$g_RTS_battle_map_plane", pos1),
    (store_sub, "$g_RTS_battle_map_pos_x", 1130, ":map_bordered_width"),
    (store_sub, "$g_RTS_battle_map_pos_y", 880, ":map_bordered_height"),
    (position_set_x, pos1, "$g_RTS_battle_map_pos_x"),
    (position_set_y, pos1, "$g_RTS_battle_map_pos_y"),
    (overlay_set_position, "$g_RTS_battle_map_plane", pos1),
    (overlay_set_alpha, "$g_RTS_battle_map_plane", 0x44),
        
    (create_image_button_overlay, "$g_RTS_battle_camera_frame", "mesh_white_plane", "mesh_white_plane"),
    (position_set_x, pos1, 800),
    (position_set_y, pos1, 800),
    (overlay_set_size, "$g_RTS_battle_camera_frame", pos1),
    (overlay_set_color,  "$g_RTS_battle_camera_frame", 0x337540),
        
    (create_image_button_overlay, "$g_RTS_battle_white_frame", "mesh_white_frame", "mesh_white_frame"),
    (overlay_set_color, "$g_RTS_battle_white_frame", 0xFFFFFFFF),
    (overlay_set_alpha, "$g_RTS_battle_white_frame", 0),
    (position_set_x, pos1, 5),
    (position_set_y, pos1, 5),
    (overlay_set_size, "$g_RTS_battle_white_frame", pos1),
    (position_set_x, pos1, -10),
    (position_set_y, pos1, -10),
    (overlay_set_position, "$g_RTS_battle_white_frame", pos1),
  ]),
  
  # script_RTS_update_overlay_on_map
  # Input: none
  # Output: none 
  ("RTS_update_overlay_on_map", [
     (set_fixed_point_multiplier, 1000),
     (get_scene_boundaries, pos2, pos3),
     #update agent overlay
     (try_for_agents, ":cur_agent"),
        (agent_is_human, ":cur_agent"),
        (agent_get_division, ":agent_division", ":cur_agent"),
        (agent_get_party_id, ":agent_party", ":cur_agent"),
        (agent_get_slot, ":agent_overlay", ":cur_agent", slot_agent_map_overlay_id),
        (try_begin),
           (eq, ":agent_party", "p_main_party"),
           (try_begin),
              (agent_is_alive, ":cur_agent"),
              (call_script, "script_RTS_update_agent_overlay_on_map", ":cur_agent"),
           (else_try),
              (overlay_set_alpha, ":agent_overlay", 0),
           (try_end),
        (else_try),
           (agent_is_ally, ":cur_agent"),
           (try_begin),
              (agent_is_alive, ":cur_agent"),
              (call_script, "script_RTS_update_agent_overlay_on_map", ":cur_agent"),
           (else_try),
              (overlay_set_alpha, ":agent_overlay", 0),
           (try_end),
        (else_try),
           (try_begin),
              (agent_is_alive, ":cur_agent"),
              (call_script, "script_RTS_update_agent_overlay_on_map", ":cur_agent"),
           (else_try),
              (overlay_set_alpha, ":agent_overlay", 0),
           (try_end),
        (try_end),
     (try_end),
     
     ##update camera overlay
     (init_position, pos1),
     (mission_cam_get_position, pos1),
     (position_set_z_to_ground_level, pos1),
     (position_rotate_x, pos1, 30),
     (position_move_y, pos1, 600),
     (call_script, "script_RTS_convert_3d_pos_to_map_pos"),
     (overlay_set_position, "$g_RTS_battle_camera_frame", pos0),
     
     ##update frame overlay
     (store_sub, ":frame_width", "$g_RTS_battle_mouse_rd_x", "$g_RTS_battle_mouse_lt_x"),
     (store_sub, ":frame_height", "$g_RTS_battle_mouse_lt_y", "$g_RTS_battle_mouse_rd_y"),
     (try_begin),
       (gt, ":frame_width", 0),
       (gt, ":frame_height", 0),
       (gt, "$g_RTS_battle_mouse_lt_x", 0),
       (gt, "$g_RTS_battle_mouse_rd_y", 0),
       (position_set_x, pos1, ":frame_width"),
       (position_set_y, pos1, ":frame_height"),
       (overlay_set_size, "$g_RTS_battle_white_frame", pos1),
       (position_set_x, pos1, "$g_RTS_battle_mouse_lt_x"),
       (position_set_y, pos1, "$g_RTS_battle_mouse_rd_y"),
       (overlay_set_position, "$g_RTS_battle_white_frame", pos1),
       (overlay_set_alpha, "$g_RTS_battle_white_frame", "$g_RTS_battle_white_frame_alpha"),
    (try_end),
  ]),
  
  # script_RTS_update_agent_position_on_map
  # Input: arg1 = agent_no, pos2 = map_size_pos
  # Output: none
  ("RTS_update_agent_overlay_on_map",[
    (store_script_param_1, ":agent_no"),
    (agent_get_slot, ":agent_overlay", ":agent_no", slot_agent_map_overlay_id),
    (get_player_agent_no, ":player_agent"),
    (try_begin),
      (le, ":agent_overlay", 0),
      (set_fixed_point_multiplier, 1000),
      (try_begin),
        (eq, ":agent_no", ":player_agent"),
        (create_mesh_overlay, reg1, "mesh_player_dot"),
        (position_set_x, pos1, 500),
        (position_set_y, pos1, 500),
        (overlay_set_size, reg1, pos1),
      (else_try),
        (create_mesh_overlay, reg1, "mesh_white_dot"),
        (position_set_x, pos1, 200),
        (position_set_y, pos1, 200),
        (overlay_set_size, reg1, pos1),
      (try_end),
      (overlay_set_alpha, reg1, 0x88),
      (agent_set_slot, ":agent_no", slot_agent_map_overlay_id, reg1),
      (assign, ":agent_overlay", reg1),
    (try_end),

    (try_begin),
      (neq, ":agent_no", ":player_agent"),
      (agent_get_party_id, ":agent_party", ":agent_no"),
      (try_begin),
        (eq, ":agent_party", "p_main_party"),
        (agent_get_division, ":agent_division", ":agent_no"),
        (try_begin),
          (eq, ":agent_division", 0),
          (overlay_set_color, ":agent_overlay", 0x8d5220),
        (else_try),
          (eq, ":agent_division", 1),
          (overlay_set_color, ":agent_overlay", 0x34c6e4),
        (else_try),
          (eq, ":agent_division", 2),
          (overlay_set_color, ":agent_overlay", 0x569619),
        (else_try),
          (eq, ":agent_division", 3),
          (overlay_set_color, ":agent_overlay", 0xFFE500),
        (else_try),
          (eq, ":agent_division", 4),
          (overlay_set_color, ":agent_overlay", 0x990099),
        (else_try),
          (eq, ":agent_division", 5),
          (overlay_set_color, ":agent_overlay", 0x99FE80),
        (else_try),
          (eq, ":agent_division", 6),
          (overlay_set_color, ":agent_overlay", 0x9DEFFE),
        (else_try),
          (eq, ":agent_division", 7),
          (overlay_set_color, ":agent_overlay", 0xFECB9D),
        (else_try),
          (eq, ":agent_division", 8),
          (overlay_set_color, ":agent_overlay", 0xB19C9C),
        (try_end),
      (else_try),
        (agent_is_ally, ":agent_no"),
        (overlay_set_color, ":agent_overlay", 0x5555FF),
      (else_try),
        (overlay_set_color, ":agent_overlay", 0xFF0000),
      (try_end),
    (try_end),

    (try_begin),
      (eq, ":agent_no", ":player_agent"),
      (agent_get_look_position, pos1, ":agent_no"),
      (position_get_rotation_around_z, ":rot", pos1),
      (init_position, pos10),
      (position_rotate_z, pos10, ":rot"),
      (overlay_set_mesh_rotation, ":agent_overlay", pos10),
      (call_script, "script_RTS_convert_3d_pos_to_map_pos"),
    (else_try),
      (agent_get_position, pos1, ":agent_no"),
      (call_script, "script_RTS_convert_3d_pos_to_map_pos"),
    (try_end),
    (overlay_set_position, ":agent_overlay", pos0),
  ]),

你可能感兴趣的:(骑砍1战团MOD开发,游戏程序,骑砍战团,骑马与砍杀,MOD开发,RTS视角,RTS视角军团竞技,屏幕坐标系变世界坐标系)