骑马与砍杀中文站论坛

用户名  找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

帖子
购买CDKEY 衣谷三国
查看: 2535|回复: 8

[功能与代码] 【藕内的兽小课堂】战前指挥界面/局内重整阵型和自动行动

[复制链接]

20

主题

166

回帖

181

积分

贵族[MOD作者]

Rank: 7Rank: 7Rank: 7

UID
3048044
第纳尔
2219
精华
0
互助
19
荣誉
3
贡献
20
魅力
495
注册时间
2018-12-15
鲜花(40) 鸡蛋(0)
发表于 2025-2-4 13:37:36 | 显示全部楼层 |阅读模式
本帖最后由 黑暗路西法 于 2025-2-9 20:47 编辑

这篇文章需要你至少有理解constant/missiontemplate和presentation的基本原理的能力才能看懂
这个阵型指挥系统目前在我的mod中运行的很好,拿出来的分享的源码功能也是没有阉割功能的版本,因此保留了一些个人风格的设置,你可以根据需要自己修改,包括独有ui在内的其他文件我也发出来了,如果你发现有ui没找到,那么你可以根据id去战团的commonres里搜索缺失的meshid,然后再加入就好了,或者你也可以通过我之前的帖子查询我从commonres里找到的mesh
做这个系统的灵感来源于之前泡菜的指挥界面,不知道为什么后面各路大神都不屑于模拟这个轮子,可能是大家都在用喷气发动机吧


这个osp包含以下功能:


用20*20的模拟战场界面,在战斗之前设定玩家部队的站位
在战斗之前自动执行的6类命令
3个存档保证可以即时切换阵型适配不同的战术
在战场内己方兵种根据玩家的设定自动结成阵型
场内重整阵型
兵种在30秒后根据玩家的指令自动执行命令(如前进或坚守)


使用方式很简单,部署界面在任意一个地方调用打开这个prsnt就可以了(看不懂prsnt建议跳过这个帖子),场内的绑定battle那个prsnt,按退格键唤出

示例图如下↓

mb43.png

mb44.png
首先,在开始之前在所有打中文的文件顶上加一条#coding=utf-8,否则编译会报错

下面是各部分的源码:
constant部分
  1. ##我的constant直接应用在对应分组也就是0到9的item slot上,也就是说我调用class的时候根据返回数获取对应的item slot就可以获得信息,如果你的mod也占用了这些slot数字槽可以把slot改大一点,但不建议把class对应的item改掉,因为这意味着你需要重新排一遍
  2. slot_item_commander_bolck_id   = 40
  3. slot_item_commander_bolck_y    = 41
  4. slot_item_commander_bolck_x    = 42
  5. slot_item_commander_choosed_order_mordr      = 43  ##5种命令,移动/队列/骑乘/武器使用/射击命令
  6. slot_item_commander_choosed_order_roll       = 44
  7. slot_item_commander_choosed_order_rordr      = 45
  8. slot_item_commander_choosed_order_wordr      = 46
  9. slot_item_commander_choosed_order_aordr      = 47
  10. slot_item_commander_choosed_order_pos_x      = 48  ##场内的坚守位置
  11. slot_item_commander_choosed_order_pos_y      = 49
  12. slot_item_commander_choosed_button_type_u    = 50  ##图标样式

  13. slot_item_commander_choosed_button_mordr    = 51  ##5种命令,移动/队列/骑乘/武器使用/射击命令
  14. slot_item_commander_choosed_button_roll     = 52
  15. slot_item_commander_choosed_button_rordr    = 53
  16. slot_item_commander_choosed_button_wordr    = 54
  17. slot_item_commander_choosed_button_aordr    = 55
  18. slot_item_commander_choosed_button_pos      = 56
  19. slot_item_commander_choosed_button_pos_on   = 57
  20. slot_item_commander_choosed_button_pos_img  = 58
  21. slot_item_commander_choosed_button_type     = 59  ##图标样式

  22. slot_item_commander_choosed_order_pos_x_old_1      = 60  ##存档1,场内的坚守位置
  23. slot_item_commander_choosed_order_pos_y_old_1      = 61
  24. slot_item_commander_choosed_order_pos_x_old_2      = 62  ##存档2,场内的坚守位置
  25. slot_item_commander_choosed_order_pos_y_old_2      = 63
  26. slot_item_commander_choosed_order_pos_x_old_3      = 64  ##存档3,场内的坚守位置
  27. slot_item_commander_choosed_order_pos_y_old_3      = 65

  28. slot_item_commander_choosed_order_mordr_old_1      = 66  ##三套存档对应的动作
  29. slot_item_commander_choosed_order_roll_old_1       = 67
  30. slot_item_commander_choosed_order_rordr_old_1      = 68
  31. slot_item_commander_choosed_order_wordr_old_1      = 69
  32. slot_item_commander_choosed_order_aordr_old_1      = 70

  33. slot_item_commander_choosed_order_mordr_old_2      = 71
  34. slot_item_commander_choosed_order_roll_old_2       = 72
  35. slot_item_commander_choosed_order_rordr_old_2      = 73
  36. slot_item_commander_choosed_order_wordr_old_2      = 74
  37. slot_item_commander_choosed_order_aordr_old_2      = 75

  38. slot_item_commander_choosed_order_mordr_old_3      = 76
  39. slot_item_commander_choosed_order_roll_old_3       = 77
  40. slot_item_commander_choosed_order_rordr_old_3      = 78
  41. slot_item_commander_choosed_order_wordr_old_3      = 79
  42. slot_item_commander_choosed_order_aordr_old_3      = 80
复制代码
然后在team slot底下加上以下几个slot


  1. <div>slot_team_class_active_grc_infantry     = 20  ###九个槽位来确定是否要半自动化
  2. slot_team_class_active_grc_pikeman      = 21
  3. slot_team_class_active_grc_berserker    = 22
  4. slot_team_class_active_grc_archers      = 23
  5. slot_team_class_active_grc_cavalry      = 24
  6. slot_team_class_active_grc_horse_archer = 25
  7. slot_team_class_active_grc_heroes       = 26
  8. slot_team_class_active_grc_8            = 27
  9. slot_team_class_active_grc_9            = 28
  10. slot_team_class_form_fallow_leader_cd   = 29   ###重新列阵后的缓冲时间30秒</div>
复制代码



##然后在开局调用的任意script里跑一下这个代码调整战团原版的分组
以下为script部分

  1. <div>    (try_for_range,":troop","trp_farmer","你设定的兵种结束"),
  2.      (try_begin),#设定兵种分组,新
  3.        (troop_is_hero,":troop"),
  4.        (troop_set_class, ":troop", grc_heroes),
  5.       (else_try),
  6.        (troop_is_guarantee_horse,":troop"),
  7.        (troop_is_guarantee_ranged,":troop"),
  8.        (troop_get_inventory_capacity, ":inv_cap", ":troop"),      
  9.        (try_for_range, ":i_slot", 0, ":inv_cap"),
  10.          (troop_get_inventory_slot, ":item", ":troop", ":i_slot"),
  11.          (neq,":item",-1),
  12.          (item_get_type,":troop_itp",":item"),
  13.          (this_or_next|eq,":troop_itp",itp_type_bow),
  14.          (this_or_next|eq,":troop_itp",itp_type_crossbow),
  15.          (this_or_next|eq,":troop_itp",itp_type_pistol),
  16.          (eq,":troop_itp",itp_type_thrown),
  17.          (neg|item_has_property, ":item", itp_cant_use_on_horseback),
  18.          (troop_set_class, ":troop", grc_horse_archer),
  19.        (try_end),
  20.       (else_try),
  21.        (troop_is_guarantee_horse,":troop"),
  22.        (troop_set_class, ":troop", grc_cavalry),
  23.       (else_try),
  24.        (troop_is_guarantee_ranged,":troop"),
  25.        (troop_set_class, ":troop", grc_archers),
  26.       (else_try),
  27.        (assign,":polearm",0),
  28.        (assign,":two_handed",0),      
  29.        (troop_get_inventory_capacity, ":inv_cap", ":troop"),      
  30.        (try_for_range, ":i_slot", 0, ":inv_cap"),
  31.          (troop_get_inventory_slot, ":item", ":troop", ":i_slot"),
  32.          (try_begin),
  33.           (eq,":item",-1),
  34.           (assign,":inv_cap",0),
  35.          (try_end),
  36.          (neq,":item",-1),
  37.          (item_get_type,":troop_itp",":item"),
  38.          (try_begin),
  39.            (eq,":troop_itp",itp_type_two_handed_wpn),
  40.            (val_add,":two_handed",1),
  41.           (else_try),
  42.            (eq,":troop_itp",itp_type_polearm),
  43.            (val_add,":polearm",1),
  44.           (else_try),
  45.            (this_or_next|eq,":troop_itp",itp_type_one_handed_wpn),
  46.            (this_or_next|eq,":troop_itp",itp_type_bow),
  47.            (this_or_next|eq,":troop_itp",itp_type_crossbow),
  48.            (this_or_next|eq,":troop_itp",itp_type_thrown),
  49.            (eq,":troop_itp",itp_type_shield),
  50.            (val_sub,":polearm",10000),
  51.            (val_sub,":two_handed",10000),
  52.            (assign,":inv_cap",0),
  53.          (try_end),
  54.        (try_end),
  55.        (try_begin),
  56.          (ge,":two_handed",1),
  57.          (ge,":polearm",0),
  58.          (gt,":two_handed",":polearm"),
  59.          (troop_set_class, ":troop", grc_berserker),
  60.         (else_try),
  61.          (ge,":two_handed",0),
  62.          (ge,":polearm",1),
  63.          (gt,":polearm",":two_handed"),
  64.          (troop_set_class, ":troop", grc_pikeman),
  65.         (else_try),
  66.          (this_or_next|ge,":two_handed",1),
  67.          (ge,":polearm",1),
  68.          (troop_set_class, ":troop", grc_berserker),
  69.         (else_try),
  70.          (troop_set_class, ":troop", grc_infantry),
  71.        (try_end),
  72.      (try_end),
  73.     (try_end),

  74.     #重新设定组名
  75.     (class_set_name,grc_infantry,"@前 排 步 兵 "),
  76.     (class_set_name,grc_pikeman,"@长 矛 兵 "),
  77.     (class_set_name,grc_berserker,"@双 手 步 兵 "),   
  78.     (class_set_name,grc_archers,"@射 手 "),
  79.     (class_set_name,grc_cavalry,"@近 战 骑 兵 "),
  80.     (class_set_name,grc_horse_archer,"@投 射 骑 兵 "),
  81.     (class_set_name,grc_heroes,"@NPC"),
  82.     (class_set_name,7,"@预 备 队 1 "),
  83.     (class_set_name,8,"@预 备 队 2 "),
  84.    
  85.     #重新设定初始阵型  如果你不更改分组你也需要调一下默认的
  86.     (item_set_slot,grc_infantry,slot_item_commander_choosed_order_pos_y,5),
  87.     (item_set_slot,grc_pikeman,slot_item_commander_choosed_order_pos_y,4),
  88.     (item_set_slot,grc_berserker,slot_item_commander_choosed_order_pos_x,-2),
  89.     (item_set_slot,grc_berserker,slot_item_commander_choosed_order_pos_y,4),
  90.     (item_set_slot,grc_archers,slot_item_commander_choosed_order_pos_y,-2),
  91.     (item_set_slot,grc_cavalry,slot_item_commander_choosed_order_pos_y,1),
  92.     (item_set_slot,grc_cavalry,slot_item_commander_choosed_order_pos_x,4),
  93.     (item_set_slot,grc_horse_archer,slot_item_commander_choosed_order_pos_y,1),
  94.     (item_set_slot,grc_horse_archer,slot_item_commander_choosed_order_pos_x,-4),
  95.     (item_set_slot,grc_heroes,slot_item_commander_choosed_order_mordr,1),

  96. ########</div>
复制代码
添加以下两个新脚本

  1. <div>#######$####玩家战术
  2.   ("player_battle_tactic_apply",
  3.     [
  4.       (get_player_agent_no, ":player_agent"),
  5.       (agent_get_team,":player_team",":player_agent"),
  6.       (agent_get_position,pos24,":player_agent"),
  7.       
  8.       
  9.       
  10.       (try_begin),
  11.         (eq,"$main_command_info",0),
  12.         (agent_get_position,pos21,":player_agent"),
  13.        (else_try),
  14.         (eq,"$main_command_info",1),
  15.         (agent_get_position, pos1, ":player_agent"),
  16.         (call_script, "script_find_high_ground_around_pos1", ":player_team", 200),
  17.         (copy_position, pos1, pos52),
  18.         (call_script, "script_find_high_ground_around_pos1", ":player_team", 100), # call again just in case we are not at peak point.
  19.         (copy_position,pos21,pos52),
  20.         (position_copy_rotation,pos21,pos24),
  21.        (else_try),
  22.         (eq,"$main_command_info",2),
  23.         (agent_get_position, pos1, ":player_agent"),
  24.         (call_script, "script_find_high_ground_around_pos1", ":player_team", 300),
  25.         (copy_position, pos1, pos52),
  26.         (call_script, "script_find_high_ground_around_pos1", ":player_team", 200), # call again just in case we are not at peak point.
  27.         (copy_position, pos1, pos52),
  28.         (call_script, "script_find_high_ground_around_pos1", ":player_team", 100), # call again just in case we are not at peak point.
  29.         (copy_position,pos21,pos52),
  30.         (position_copy_rotation,pos21,pos24),
  31.       (try_end),
  32.       
  33.       
  34.       
  35.       (try_for_range,":class_order",0,9),
  36.         (item_get_slot, reg6, ":class_order", slot_item_commander_choosed_order_pos_x),
  37.         (item_get_slot, reg7, ":class_order", slot_item_commander_choosed_order_pos_y),
  38.         (val_mul,reg6,1500),#这里设定的是xy的移动值,可以根据需要修改
  39.         (val_mul,reg7,500),
  40.         (copy_position,pos22,pos21),
  41.         (position_copy_rotation,pos22,pos21),
  42.         (position_move_x,pos22,reg6),
  43.         (position_move_y,pos22,reg7),
  44.         
  45.         (try_begin),
  46.           (this_or_next|item_slot_eq, ":class_order", slot_item_commander_choosed_order_mordr, 0),
  47.           (item_slot_ge, ":class_order", slot_item_commander_choosed_order_mordr, 4),
  48.           (str_store_class_name,s2,":class_order"),
  49.          #(display_message,"@{s2} 驻 扎 点 : {reg6}/{reg7}"),
  50.           (team_give_order, ":player_team", ":class_order", mordr_hold),
  51.           (team_set_order_position, ":player_team", ":class_order", pos22),
  52.           (item_slot_ge, ":class_order", slot_item_commander_choosed_order_mordr, 4),
  53.           (store_add,":slot_id",slot_team_class_active_grc_infantry,":class_order"),
  54.           (team_set_slot,":player_team",":slot_id",1),
  55.          (else_try),
  56.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_mordr, 1),
  57.           (team_give_order, ":player_team", ":class_order", mordr_follow),
  58.          (else_try),
  59.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_mordr, 2),
  60.           (team_give_order, ":player_team", ":class_order", mordr_charge),
  61.          (else_try),
  62.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_mordr, 3),
  63.           (team_give_order, ":player_team", ":class_order", mordr_retreat),
  64.         (try_end),
  65.         
  66.         (try_begin),
  67.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 0),
  68.          (else_try),
  69.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 1),
  70.           (team_give_order, ":player_team", ":class_order", mordr_stand_closer),
  71.          (else_try),
  72.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 2),
  73.           (team_give_order, ":player_team", ":class_order", mordr_spread_out),
  74.          (else_try),
  75.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 3),
  76.           (team_give_order, ":player_team", ":class_order", mordr_stand_closer),
  77.           (team_give_order, ":player_team", ":class_order", mordr_stand_closer),
  78.          (else_try),
  79.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 4),
  80.           (team_give_order, ":player_team", ":class_order", mordr_spread_out),
  81.           (team_give_order, ":player_team", ":class_order", mordr_spread_out),
  82.          (else_try),
  83.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 5),
  84.           (team_give_order, ":player_team", ":class_order", mordr_form_1_row),
  85.          (else_try),
  86.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 6),
  87.           (team_give_order, ":player_team", ":class_order", mordr_form_2_row),
  88.          (else_try),
  89.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 7),
  90.           (team_give_order, ":player_team", ":class_order", mordr_form_3_row),
  91.          (else_try),
  92.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 8),
  93.           (team_give_order, ":player_team", ":class_order", mordr_form_4_row),
  94.          (else_try),
  95.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 9),
  96.           (team_give_order, ":player_team", ":class_order", mordr_form_5_row),        
  97.         (try_end),
  98.       
  99.         (try_begin),
  100.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_rordr, 0),
  101.           (this_or_next|eq,":class_order",grc_cavalry),
  102.           (eq,":class_order",grc_horse_archer),
  103.           (team_give_order, ":player_team", ":class_order", mordr_mount),
  104.          (else_try),
  105.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_rordr, 1),
  106.           (team_give_order, ":player_team", ":class_order", mordr_mount),
  107.          (else_try),
  108.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_rordr, 2),
  109.           (team_give_order, ":player_team", ":class_order", mordr_dismount),
  110.         (try_end),
  111.         
  112.         (try_begin),
  113.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_wordr, 0),
  114.          (else_try),
  115.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_wordr, 1),
  116.           (team_give_order, ":player_team", ":class_order", mordr_use_melee_weapons),
  117.          (else_try),
  118.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_wordr, 2),
  119.           (team_give_order, ":player_team", ":class_order", mordr_use_ranged_weapons),
  120.          (else_try),
  121.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_wordr, 3),
  122.           (team_give_order, ":player_team", ":class_order", mordr_use_blunt_weapons),
  123.         (try_end),
  124.         
  125.         (try_begin),
  126.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_aordr, 0),
  127.          (else_try),
  128.           (item_slot_eq, ":class_order", slot_item_commander_choosed_order_aordr, 1),
  129.           (team_give_order, ":player_team", ":class_order", mordr_hold_fire),
  130.         (try_end),
  131.         
  132.         
  133.       (try_end),
  134.   ]),
  135.   
  136.   
  137.   
  138.   ("player_battle_tactic_continue",
  139.     [
  140.   
  141.       (get_player_agent_no, ":player_agent"),
  142.       (agent_get_team,":player_team",":player_agent"),
  143.       (try_begin),
  144.         (team_slot_eq,":player_team",slot_team_class_form_fallow_leader_cd,0),
  145.         (assign,":form_continue",1),
  146.        (else_try),
  147.         (assign,":form_continue",0),
  148.         (team_get_slot,":form_cd",":player_team",slot_team_class_form_fallow_leader_cd),
  149.         (val_sub,":form_cd",1),
  150.         (team_set_slot,":player_team",slot_team_class_form_fallow_leader_cd,":form_cd"),
  151.       (try_end),
  152.       
  153.       (try_for_range,":class_order",0,9),
  154.         (store_add,":slot_id",slot_team_class_cd_grc_infantry,":class_order"),
  155.         (try_begin),
  156.          (team_slot_ge,":player_team",":slot_id",1),
  157.          (team_get_slot,":unmove_time",":player_team",":slot_id"),
  158.          (val_sub,":unmove_time",1),
  159.          (team_set_slot,":player_team",":slot_id",":unmove_time"),
  160.         (try_end),
  161.         (team_slot_eq,":player_team",":slot_id",0),
  162.         
  163.         (eq,":form_continue",1),
  164.         (assign,":continue",1),
  165.         (assign,":chosed_agent",":player_agent"),
  166.         (try_for_agents,":agent"),#抓个不骑马的壮丁矫正一下角度,抓不到就拴玩家
  167.          (eq,":continue",1),
  168.          (agent_get_team,":agent_team",":agent"),
  169.          (eq,":agent_team",":player_team"),
  170.          (agent_is_human,":agent"),
  171.          (agent_is_alive,":agent"),
  172.          (agent_is_active,":agent"),
  173.          (neg|agent_slot_ge,":agent", slot_agent_is_running_away,1),
  174.          (agent_get_horse,":horse_id",":agent"),
  175.          (eq,":horse_id",-1),
  176.          (assign,":chosed_agent",":agent"),
  177.          (assign,":continue",0),
  178.         (try_end),
  179.         (agent_get_position,pos61,":chosed_agent"),

  180.         
  181.         (store_add,":slot_id",slot_team_class_active_grc_infantry,":class_order"),
  182.         (try_begin),
  183.           (team_get_movement_order,":order", ":player_team", ":class_order"),
  184.           (neq,":order",mordr_hold),
  185.           (team_set_slot,":player_team",":slot_id",0),
  186.         (try_end),
  187.         (team_slot_eq,":player_team",":slot_id",1),
  188.         
  189.         (team_get_order_position,pos1, ":player_team", ":class_order"),
  190.         (assign, ":avg_dist", 100000),  
  191.         (call_script, "script_get_closest3_distance_of_enemies_at_pos1", ":player_team", 1),
  192.         (assign, ":avg_dist", reg0),   
  193.         (item_get_slot,":moving_order",":class_order", slot_item_commander_choosed_order_mordr),
  194.         
  195.         (team_get_order_position,pos21, ":player_team", ":class_order"),
  196.         (position_copy_rotation,pos21,pos61),
  197.         
  198.         (try_begin),
  199.           (eq,":moving_order",4),
  200.           (try_begin),
  201.             (lt,":avg_dist",2000),
  202.             (team_set_slot,":player_team",":slot_id",0),
  203.             (team_give_order, ":player_team", ":class_order", mordr_charge),
  204.            (else_try),
  205.             (position_move_y,pos21,750),
  206.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  207.             (team_set_order_position, ":player_team", ":class_order", pos21),
  208.           (try_end),
  209.          (else_try),
  210.           (eq,":moving_order",5),
  211.           (try_begin),
  212.             (lt,":avg_dist",2000),
  213.             (team_set_slot,":player_team",":slot_id",0),
  214.             (team_give_order, ":player_team", ":class_order", mordr_charge),
  215.            (else_try),
  216.             (position_move_y,pos21,1000),
  217.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  218.             (team_set_order_position, ":player_team", ":class_order", pos21),
  219.           (try_end),
  220.          (else_try),
  221.           (eq,":moving_order",6),
  222.           (try_begin),
  223.             (lt,":avg_dist",2000),
  224.             (team_set_slot,":player_team",":slot_id",0),
  225.             (team_give_order, ":player_team", ":class_order", mordr_charge),
  226.            (else_try),
  227.             (position_move_y,pos21,1250),
  228.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  229.             (team_set_order_position, ":player_team", ":class_order", pos21),
  230.           (try_end),
  231.          (else_try),
  232.           (eq,":moving_order",7),
  233.           (try_begin),
  234.             (lt,":avg_dist",3000),
  235.             (team_set_slot,":player_team",":slot_id",0),
  236.             (team_give_order, ":player_team", ":class_order", mordr_charge),
  237.            (else_try),
  238.             (position_move_y,pos21,2000),
  239.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  240.             (team_set_order_position, ":player_team", ":class_order", pos21),
  241.           (try_end),
  242.          (else_try),
  243.           (eq,":moving_order",8),
  244.           (try_begin),
  245.             (lt,":avg_dist",5000),
  246.             (team_set_slot,":player_team",":slot_id",0),
  247.             (team_give_order, ":player_team", ":class_order", mordr_charge),
  248.            (else_try),
  249.             (position_move_y,pos21,2500),
  250.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  251.             (team_set_order_position, ":player_team", ":class_order", pos21),
  252.           (try_end),
  253.          (else_try),
  254.           (eq,":moving_order",9),
  255.           (try_begin),
  256.             (lt,":avg_dist",500),
  257.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  258.             (team_set_order_position, ":player_team", ":class_order", pos21),
  259.            (else_try),
  260.             (position_move_y,pos21,750),
  261.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  262.             (team_set_order_position, ":player_team", ":class_order", pos21),
  263.           (try_end),
  264.          (else_try),
  265.           (eq,":moving_order",10),
  266.           (try_begin),
  267.             (lt,":avg_dist",500),
  268.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  269.             (team_set_order_position, ":player_team", ":class_order", pos21),
  270.            (else_try),
  271.             (position_move_y,pos21,1000),
  272.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  273.             (team_set_order_position, ":player_team", ":class_order", pos21),
  274.           (try_end),
  275.          (else_try),
  276.           (eq,":moving_order",11),
  277.           (try_begin),
  278.             (lt,":avg_dist",500),
  279.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  280.             (team_set_order_position, ":player_team", ":class_order", pos21),
  281.            (else_try),
  282.             (position_move_y,pos21,1400),
  283.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  284.             (team_set_order_position, ":player_team", ":class_order", pos21),
  285.           (try_end),
  286.          (else_try),
  287.           (eq,":moving_order",12),
  288.           (try_begin),
  289.             (lt,":avg_dist",2800),
  290.             (position_move_y,pos21,-1200),
  291.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  292.             (team_set_order_position, ":player_team", ":class_order", pos21),
  293.            (else_try),
  294.             (gt,":avg_dist",3750),
  295.             (position_move_y,pos21,800),
  296.             (team_set_order_position, ":player_team", ":class_order", pos21),
  297.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  298.           (try_end),
  299.          (else_try),
  300.           (eq,":moving_order",13),
  301.           (try_begin),
  302.             (lt,":avg_dist",4500),
  303.             (position_move_y,pos21,-1200),
  304.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  305.             (team_set_order_position, ":player_team", ":class_order", pos21),
  306.            (else_try),
  307.             (gt,":avg_dist",5500),
  308.             (position_move_y,pos21,700),
  309.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  310.             (team_set_order_position, ":player_team", ":class_order", pos21),
  311.           (try_end),
  312.         (try_end),
  313.         
  314.         (position_get_x,reg2,pos21),
  315.         (position_get_y,reg3,pos21),
  316.         (display_message,"@{reg2}/{reg3}"),
  317.   
  318.       (try_end),
  319.   ]),
  320. ####script部分</div>
复制代码
接下来为mission template部分

##在野战那里加上这个触发器,野战的部分在这个下面:"lead_charge",mtf_battle_mode|mtf_synch_inventory,charge,

  1. <div>      #AI Triggers 开局选择战术
  2.       (1, 0, ti_once, [
  3.           (store_mission_timer_a,":mission_time"),(ge,":mission_time",3),
  4.           ],
  5.        [
  6.         (call_script, "script_player_battle_tactic_apply"), #玩家使用野战战术
  7.         ]),</div>
复制代码

##然后再加上这个  作为后续触发效果

  1. <div>      (6, 0, 0, [
  2.             
  3.           (store_mission_timer_a,":mission_time"),#阵型会缓慢结成之后再前进
  4.           (ge,":mission_time",30),#30秒之后才会继续推进
  5.          
  6.           (set_show_messages,0),
  7.           (ge,":mission_time",30),
  8.           (set_fixed_point_multiplier, 1000),
  9.           (call_script, "script_player_battle_tactic_continue"),
  10.           (set_show_messages,1),
  11.          
  12.          
  13.           ], []),</div>
复制代码

接下来是mesh部分


  1. <div>##背景板
  2. <span style="font-size: 14px;">  ("commander_table", 0, "commander_table", 0, 0, 0, 0, 0, 0, 1, 1, 1),</span>
  3. ##中心图标
  4.   ("lord_ui_1", 0, "leader_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  5.   ("lord_ui_2", 0, "leader_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  6.   ("lord_ui_3", 0, "leader_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  7.   ("lord_ui_4", 0, "leader_4", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  8.   ("lord_ui_5", 0, "leader_5", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  9. ##步兵图标
  10.   ("infantry_1", 0, "infantry_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  11.   ("infantry_2", 0, "infantry_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  12.   ("infantry_3", 0, "infantry_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),

  13. ##矛兵图标
  14.   ("spearman_1", 0, "spearman_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  15.   ("spearman_2", 0, "spearman_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  16.   ("spearman_3", 0, "spearman_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),

  17. ##双手图标
  18.   ("berserker_1", 0, "berserker_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  19.   ("berserker_2", 0, "berserker_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  20.   ("berserker_3", 0, "berserker_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),

  21. ##射手图标
  22.   ("archer_1", 0, "archer_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  23.   ("archer_2", 0, "archer_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  24.   ("archer_3", 0, "archer_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),

  25. ##骑兵图标
  26.   ("cavalry_1", 0, "cavalry_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  27.   ("cavalry_2", 0, "cavalry_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  28.   ("cavalry_3", 0, "cavalry_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),

  29. ##骑射手图标

  30.   ("horse_archer_1", 0, "horse_archer_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  31.   ("horse_archer_2", 0, "horse_archer_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  32.   ("horse_archer_3", 0, "horse_archer_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  33. ##npc图标
  34.   ("npc_1", 0, "npc_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  35.   ("npc_2", 0, "npc_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  36.   ("npc_3", 0, "npc_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),

  37. ##预备队图标
  38.   ("alter_1", 0, "alter_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  39.   ("alter_2", 0, "alter_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  40.   ("alter_3", 0, "alter_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  41.   ("alter_4", 0, "alter_4", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  42.   ("alter_5", 0, "alter_5", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  43.   ("alter_6", 0, "alter_6", 0, 0, 0, 0, 0, 0, 1, 1, 1),
  44.   ("alter_7", 0, "alter_7", 0, 0, 0, 0, 0, 0, 1, 1, 1),</div>
复制代码

最后是presentation部分
  1. ####指挥系统prsnt部分
  2.     ("commander_order",0,mesh_commander_table, [
  3.         (ti_on_presentation_load,
  4.          [
  5.         (set_fixed_point_multiplier, 1000),

  6.         (assign,":abs_limit_x",9999),#这两个值控制的是上下限,x轴上下限是10和-10
  7.         (assign,":abs_limit_y",9999),#y轴下限是-4,上限是16到满,在我的mod中这个设置是根据

  8.         (assign, ":pos_x", 346),
  9.         (assign, ":pos_y", 710),
  10.          
  11.         (assign,":y_id",16),
  12.         (assign,":chest_item",1),
  13.         (try_for_range, ":unused_height", 0, 20),####20行
  14.           (assign,":x_id",-10),
  15.           (try_for_range, ":unused_width", 0, 21),####20行
  16.             (item_set_slot, ":chest_item", slot_item_commander_bolck_x, ":x_id"),
  17.             (item_set_slot, ":chest_item", slot_item_commander_bolck_y, ":y_id"),
  18.             (try_begin),
  19.               (eq,":y_id",0),
  20.               (eq,":x_id",0),
  21.               (store_add,":lord_ui","mesh_lord_ui_1","$choose_lord_ui"),
  22.               (create_image_button_overlay, reg1, ":lord_ui","mesh_mp_inventory_choose"),
  23.               (call_script,"script_fix_position",250,250,1),
  24.               (overlay_set_size, reg1, pos1),
  25.               (call_script,"script_fix_position",":pos_x",":pos_y",1),
  26.               (overlay_set_position, reg1, pos1),
  27.               (item_set_slot, ":chest_item", slot_item_commander_bolck_id, reg1),
  28.              (else_try),
  29.               (assign,":max",9),
  30.               (assign,":soldier_ui","mesh_mp_inventory_choose"),
  31.               (try_for_range,":ui_item",0,":max"),
  32.                 (item_slot_eq, ":ui_item", slot_item_commander_choosed_order_pos_x,":x_id"),
  33.                 (item_slot_eq, ":ui_item", slot_item_commander_choosed_order_pos_y,":y_id"),
  34.                 (item_get_slot,":ui_type", ":ui_item", slot_item_commander_choosed_button_type_u),
  35.                 (try_begin),
  36.                   (eq,":ui_item",grc_infantry),
  37.                   (store_add,":soldier_ui","mesh_infantry_1",":ui_type"),
  38.                  (else_try),
  39.                   (eq,":ui_item",grc_pikeman),
  40.                   (store_add,":soldier_ui","mesh_spearman_1",":ui_type"),
  41.                  (else_try),
  42.                   (eq,":ui_item",grc_berserker),
  43.                   (store_add,":soldier_ui","mesh_berserker_1",":ui_type"),
  44.                  (else_try),
  45.                   (eq,":ui_item",grc_archers),
  46.                   (store_add,":soldier_ui","mesh_archer_1",":ui_type"),
  47.                  (else_try),
  48.                   (eq,":ui_item",grc_cavalry),
  49.                   (store_add,":soldier_ui","mesh_cavalry_1",":ui_type"),
  50.                  (else_try),
  51.                   (eq,":ui_item",grc_horse_archer),
  52.                   (store_add,":soldier_ui","mesh_horse_archer_1",":ui_type"),
  53.                  (else_try),
  54.                   (eq,":ui_item",grc_heroes),
  55.                   (store_add,":soldier_ui","mesh_npc_1",":ui_type"),
  56.                  (else_try),
  57.                   (store_add,":soldier_ui","mesh_alter_1",":ui_type"),
  58.                 (try_end),
  59.                 (assign,":max",0),
  60.               (try_end),
  61.               (create_image_button_overlay, reg1, ":soldier_ui","mesh_lord_ui_1"),
  62.               (call_script,"script_fix_position",250,250,1),
  63.               (overlay_set_size, reg1, pos1),
  64.               (call_script,"script_fix_position",":pos_x",":pos_y",1),
  65.               (overlay_set_position, reg1, pos1),
  66.               (item_set_slot, ":chest_item", slot_item_commander_bolck_id, reg1),
  67.               (try_begin),
  68.                 (assign,":cur_x_id",":x_id"),
  69.                 (assign,":cur_y_id",":y_id"),
  70.                 (val_abs, ":cur_x_id"),
  71.                 (val_abs, ":cur_y_id"),
  72.                 (this_or_next|gt,":cur_x_id",":abs_limit_x"),
  73.                 (gt,":cur_y_id",":abs_limit_y"),
  74.                 (overlay_set_display,reg1,0),
  75.               (try_end),
  76.             (try_end),
  77.             (val_add, ":pos_x", 31),
  78.             (val_add, ":chest_item", 1),
  79.             (val_add,":x_id",1),
  80.           (try_end),
  81.           (assign, ":pos_x", 346),
  82.           (val_sub, ":pos_y", 34),
  83.           (val_sub,":y_id",1),
  84.         (try_end),
  85.         (assign,"$max_item_cmd", ":chest_item"),
  86.          
  87.          
  88.          
  89.          
  90.          
  91.          
  92.          
  93.          
  94.         (call_script,"script_fix_position",2,10,1),
  95.         (call_script,"script_fix_position",1300,1300,2),      
  96.         (call_script,"script_fix_position",325,730,3),         
  97.         (create_text_overlay,reg1,"@ ", tf_scrollable),
  98.         
  99.         (overlay_set_position, reg1, pos1),
  100.         (overlay_set_area_size, reg1, pos3),
  101.         (overlay_set_color, reg1, 0xFFFFFF),        
  102.         
  103.         (set_container_overlay,reg1),
  104.         
  105.         (assign,":cur_y",3500),
  106.         (call_script,"script_fix_position",2,":cur_y",1),
  107.         (call_script,"script_fix_position",1300,1300,2),              
  108.         (create_text_overlay,reg1,"@ ", tf_left_align),        
  109.         
  110.         (val_sub,":cur_y",30),
  111.         (call_script,"script_fix_position",165,":cur_y",1),
  112.         (call_script,"script_fix_position",1300,1300,2),  
  113.         (create_text_overlay,reg1,"@选 择 指 挥 中 心 点 ", tf_center_justify),
  114.         (overlay_set_position, reg1, pos1),
  115.         (overlay_set_size, reg1, pos2),
  116.         (overlay_set_color, reg1, 0xFFFFFF),  
  117.         
  118.         (val_sub,":cur_y",45),
  119.         (call_script,"script_fix_position",165,":cur_y",1),
  120.         (call_script,"script_fix_position",1300,1300,2),
  121.         (create_combo_button_overlay,"$main_command"),
  122.         (overlay_add_item, "$main_command", "@以 玩 家 为 中 心 坚 守 "), #三种中心点获取设置
  123.         (overlay_add_item, "$main_command", "@以 附 近 最 高 点 为 中 心 坚 守 "),  
  124.         (overlay_add_item, "$main_command", "@以 周 边 最 高 点 为 中 心 坚 守 "),   

  125.         (overlay_set_position, "$main_command", pos1),
  126.         (overlay_set_val,"$main_command","$main_command_info"),
  127.         
  128.         (val_sub,":cur_y",50),
  129.         (call_script,"script_fix_position",165,":cur_y",1),
  130.         (call_script,"script_fix_position",1300,1300,2),  
  131.         (create_text_overlay,reg1,"@选 择 指 挥 中 心 点 图 标 ", tf_center_justify),
  132.         (overlay_set_position, reg1, pos1),
  133.         (overlay_set_size, reg1, pos2),
  134.         (overlay_set_color, reg1, 0xFFFFFF),  
  135.         
  136.         (val_sub,":cur_y",45),
  137.         (call_script,"script_fix_position",165,":cur_y",1),
  138.         (call_script,"script_fix_position",1300,1300,2),
  139.         (create_combo_button_overlay,"$cmd_main_ui"),
  140.         (overlay_add_item, "$cmd_main_ui", "@图 标 样 式 1 "),  
  141.         (overlay_add_item, "$cmd_main_ui", "@图 标 样 式 2 "),      
  142.         (overlay_add_item, "$cmd_main_ui", "@图 标 样 式 3 "),  
  143.         (overlay_add_item, "$cmd_main_ui", "@图 标 样 式 4 "),  
  144.         (overlay_add_item, "$cmd_main_ui", "@图 标 样 式 5 "),  
  145.         (overlay_set_position,"$cmd_main_ui", pos1),
  146.         (overlay_set_val,"$cmd_main_ui","$choose_lord_ui"),
  147.         
  148.         (val_sub,":cur_y",50),
  149.         (call_script,"script_fix_position",165,":cur_y",1),
  150.         (call_script,"script_fix_position",1300,1300,2),  
  151.         (create_text_overlay,reg1,"@选 择 兵 种 分 组 命 令", tf_center_justify),
  152.         (overlay_set_position, reg1, pos1),
  153.         (overlay_set_size, reg1, pos2),
  154.         (overlay_set_color, reg1, 0xFFFFFF),  
  155.         
  156.         (val_sub,":cur_y",40), #几种指令
  157.         (try_for_range,":troop_class",0,9),
  158.           (call_script,"script_fix_position",10,":cur_y",1),
  159.           (call_script,"script_fix_position",1000,1000,2),   
  160.           (str_store_class_name,s21, ":troop_class"),
  161.           (create_text_overlay,reg1,s21, tf_left_align),
  162.           (overlay_set_position, reg1, pos1),
  163.           (overlay_set_color, reg1, 0xFFFFFF),
  164.           (overlay_set_size, reg1, pos2),  
  165.           (val_sub, ":cur_y",50),
  166.           (assign,":cur_x",118),
  167.           (call_script,"script_fix_position",":cur_x",":cur_y",1),
  168.           (call_script,"script_fix_position",416,1000,2),
  169.           (create_combo_button_overlay,reg2),            
  170.           (overlay_set_position, reg2, pos1),
  171.           (overlay_set_size, reg2, pos2),
  172.           (overlay_add_item, reg2, "@指 令 : 在 指 定 地 点 站 定 "),
  173.           (overlay_add_item, reg2, "@指 令 : 跟 随 指 挥 官 "),
  174.           (overlay_add_item, reg2, "@指 令 : 冲 锋 "),
  175.           (overlay_add_item, reg2, "@指 令 : 撤 退 "),
  176.           (overlay_add_item, reg2, "@指 令 : 缓 慢 推 进 后 冲 锋 "),
  177.           (overlay_add_item, reg2, "@指 令 : 向 前 推 进 后 冲 锋 "),
  178.           (overlay_add_item, reg2, "@指 令 : 快 速 推 进 后 冲 锋 "),
  179.           (overlay_add_item, reg2, "@指 令 : 快 速 推 进 后 冲 锋 ( 近 ) "),
  180.           (overlay_add_item, reg2, "@指 令 : 快 速 推 进 后 冲 锋 ( 远 ) "),
  181.           (overlay_add_item, reg2, "@指 令 : 缓 慢 推 近 , 靠 近 后 坚 守 阵 型 "),
  182.           (overlay_add_item, reg2, "@指 令 : 推 进 , 靠 近 后 坚 守 阵 型 "),
  183.           (overlay_add_item, reg2, "@指 令 : 快 速 推 近 , 靠 近 敌 人 后 坚 守 阵 型 "),
  184.           (overlay_add_item, reg2, "@指 令 : 推 进 后 保 持 短 距 离 袭 扰 "),
  185.           (overlay_add_item, reg2, "@指 令 : 推 进 后 保 持 长 距 离 袭 扰 "),
  186.           (item_set_slot, ":troop_class", slot_item_commander_choosed_button_mordr, reg2),
  187.           (item_get_slot, ":val", ":troop_class",slot_item_commander_choosed_order_mordr),
  188.           (overlay_set_val,reg2,":val"),
  189.          
  190.          
  191.           (val_add,":cur_x",108),
  192.           (call_script,"script_fix_position",":cur_x",":cur_y",1),
  193.           (create_combo_button_overlay,reg2),            
  194.           (overlay_set_position, reg2, pos1),
  195.           (overlay_set_size, reg2, pos2),
  196.           (overlay_add_item, reg2, "@队 列 : 无 "),
  197.           (overlay_add_item, reg2, "@队 列 : 紧 凑 "),
  198.           (overlay_add_item, reg2, "@队 列 : 散 开 "),
  199.           (overlay_add_item, reg2, "@队 列 : 聚 拢 结 阵 "),
  200.           (overlay_add_item, reg2, "@队 列 : 散 兵 阵 线 "),
  201.           (overlay_add_item, reg2, "@队 列 : 排 成 1 行 "),
  202.           (overlay_add_item, reg2, "@队 列 : 排 成 2 行 "),
  203.           (overlay_add_item, reg2, "@队 列 : 排 成 3 行 "),
  204.           (overlay_add_item, reg2, "@队 列 : 排 成 4 行 "),
  205.           (overlay_add_item, reg2, "@队 列 : 排 成 5 行 "),
  206.           (item_set_slot, ":troop_class", slot_item_commander_choosed_button_roll, reg2),
  207.           (item_get_slot, ":val", ":troop_class",slot_item_commander_choosed_order_roll),
  208.           (overlay_set_val,reg2,":val"),
  209.          
  210.           (val_add,":cur_x",108),
  211.           (call_script,"script_fix_position",":cur_x",":cur_y",1),
  212.           (create_combo_button_overlay,reg2),            
  213.           (overlay_set_position, reg2, pos1),
  214.           (overlay_set_size, reg2, pos2),
  215.           (overlay_add_item, reg2, "@骑 行 : 默 认 "),
  216.           (overlay_add_item, reg2, "@全 体 上 马 "),
  217.           (overlay_add_item, reg2, "@全 体 下 马 "),
  218.           (item_set_slot, ":troop_class", slot_item_commander_choosed_button_rordr, reg2),
  219.           (item_get_slot, ":val", ":troop_class",slot_item_commander_choosed_order_rordr),
  220.           (overlay_set_val,reg2,":val"),
  221.          
  222.           (val_sub, ":cur_y",45),
  223.           (assign,":cur_x",118),
  224.           (call_script,"script_fix_position",":cur_x",":cur_y",1),
  225.           (create_combo_button_overlay,reg2),            
  226.           (overlay_set_position, reg2, pos1),
  227.           (overlay_set_size, reg2, pos2),
  228.           (overlay_add_item, reg2, "@武 器 使 用 : 默 认 "),
  229.           (overlay_add_item, reg2, "@使 用 近 战 武 器 "),
  230.           (overlay_add_item, reg2, "@使 用 远 程 武 器 "),
  231.           (overlay_add_item, reg2, "@使 用 钝 器 "),
  232.           (item_set_slot, ":troop_class", slot_item_commander_choosed_button_wordr, reg2),
  233.           (item_get_slot, ":val", ":troop_class",slot_item_commander_choosed_order_wordr),
  234.           (overlay_set_val,reg2,":val"),
  235.          
  236.           (val_add,":cur_x",108),
  237.           (call_script,"script_fix_position",":cur_x",":cur_y",1),
  238.           (create_combo_button_overlay,reg2),            
  239.           (overlay_set_position, reg2, pos1),
  240.           (overlay_set_size, reg2, pos2),
  241.           (overlay_add_item, reg2, "@自 由 射 击 "),
  242.           (overlay_add_item, reg2, "@听 命 射 击 "),
  243.           (item_set_slot, ":troop_class", slot_item_commander_choosed_button_aordr, reg2),
  244.           (item_get_slot, ":val", ":troop_class",slot_item_commander_choosed_order_aordr),
  245.           (overlay_set_val,reg2,":val"),
  246.           (val_add,":cur_x",108),
  247.           (call_script,"script_fix_position",":cur_x",":cur_y",1),
  248.           (create_combo_button_overlay,reg2),            
  249.           (overlay_set_position, reg2, pos1),
  250.           (overlay_set_size, reg2, pos2),
  251.           (try_begin),
  252.             (gt,":troop_class",grc_heroes),#在我的设定里,兵种被重排了,你可以根据自己需要的情况修改(不过战团也是heros之后都是预备队)
  253.             (overlay_add_item, reg2, "@图 标 : 预 备 队 "),
  254.             (overlay_add_item, reg2, "@图 标 : 法 师 "),
  255.             (overlay_add_item, reg2, "@图 标 : 手 枪 & 弯 刀 "),
  256.             (overlay_add_item, reg2, "@图 标 : 耐 扎 王 "),
  257.             (overlay_add_item, reg2, "@图 标 : 农 民 "),
  258.             (overlay_add_item, reg2, "@图 标 : 月 刃 斧 "),
  259.             (overlay_add_item, reg2, "@图 标 : 带 刺 战 锤 "),
  260.            (else_try),
  261.             (overlay_add_item, reg2, "@图 标 样 式 1 "),
  262.             (overlay_add_item, reg2, "@图 标 样 式 2 "),
  263.             (overlay_add_item, reg2, "@图 标 样 式 3 "),
  264.           (try_end),
  265.           (item_set_slot, ":troop_class", slot_item_commander_choosed_button_type, reg2),
  266.           (item_get_slot, ":val", ":troop_class",slot_item_commander_choosed_button_type_u),
  267.           (overlay_set_val,reg2,":val"),
  268.           (val_sub, ":cur_y",45),
  269.           (assign,":cur_x",118),
  270.          #(val_sub,":cur_x",2),
  271.          
  272.           (call_script,"script_fix_position",415,490,2),
  273.           (store_add,":buttion_x_text",":cur_x",42),
  274.           (store_add,":buttion_y_text",":cur_y",7),
  275.           (create_image_button_overlay, reg2, "mesh_button_drop","mesh_button_down"),
  276.           (call_script,"script_fix_position",":cur_x",":cur_y",1),
  277.           (overlay_set_position, reg2, pos1),
  278.           (overlay_set_size, reg2, pos2),  
  279.           (create_text_overlay, reg1, "@改 变 坚 守 位 置 ", tf_center_justify),
  280.           (call_script,"script_fix_position",":buttion_x_text",":buttion_y_text",1),
  281.           (overlay_set_position, reg1, pos1),  
  282.           (call_script,"script_fix_position",750,800,3),
  283.           (overlay_set_size, reg1, pos3),  
  284.           (item_set_slot, ":troop_class", slot_item_commander_choosed_button_pos, reg2),
  285.           (val_add,":cur_x",108),
  286.           (store_add,":buttion_x_text",":cur_x",42),
  287.           (create_text_overlay, reg2, "@ 移 动 位 置 中 ", tf_center_justify),
  288.           (call_script,"script_fix_position",":buttion_x_text",":buttion_y_text",1),
  289.           (overlay_set_position, reg2, pos1),  
  290.           (call_script,"script_fix_position",750,800,3),
  291.           (overlay_set_size, reg2, pos3),  
  292.           (item_set_slot, ":troop_class", slot_item_commander_choosed_button_pos_img, reg2),
  293.           (overlay_set_color, reg2, 0x33CCFF),  
  294.           (val_sub, ":cur_y",40),
  295.         (try_end),
  296.         
  297.         
  298.           (val_sub, ":cur_y",30),
  299.           (call_script,"script_fix_position",165,":cur_y",1), #三套阵型保存槽位
  300.           (create_in_game_button_overlay, "$save_form_1", "@保 存 为 阵 型 1 ", tf_center_justify),
  301.           (overlay_set_position, "$save_form_1", pos1),
  302.           (val_sub, ":cur_y",40),
  303.           (create_in_game_button_overlay, "$load_form_1", "@读 取 阵 型 1 ", tf_center_justify),
  304.           (call_script,"script_fix_position",165,":cur_y",1),  
  305.           (overlay_set_position, "$load_form_1", pos1),
  306.           (val_sub, ":cur_y",60),
  307.          
  308.           (create_in_game_button_overlay, "$save_form_2", "@保 存 为 阵 型 2 ", tf_center_justify),
  309.           (call_script,"script_fix_position",165,":cur_y",1),  
  310.           (overlay_set_position, "$save_form_2", pos1),
  311.           (val_sub, ":cur_y",40),
  312.           (create_in_game_button_overlay, "$load_form_2", "@读 取 阵 型 2 ", tf_center_justify),
  313.           (call_script,"script_fix_position",165,":cur_y",1),  
  314.           (overlay_set_position, "$load_form_2", pos1),
  315.           (val_sub, ":cur_y",60),
  316.            
  317.           (create_in_game_button_overlay, "$save_form_3", "@保 存 为 阵 型 3 ", tf_center_justify),
  318.           (call_script,"script_fix_position",165,":cur_y",1),  
  319.           (overlay_set_position, "$save_form_3", pos1),
  320.           (val_sub, ":cur_y",40),
  321.           (create_in_game_button_overlay, "$load_form_3", "@读 取 阵 型 3 ", tf_center_justify),
  322.           (call_script,"script_fix_position",165,":cur_y",1),  
  323.           (overlay_set_position, "$load_form_3", pos1),
  324.           (val_sub, ":cur_y",60),
  325.          
  326.           (call_script,"script_fix_position",165,":cur_y",1),
  327.           (create_text_overlay, reg1, "@指 挥 系 统 说 明 ", tf_center_justify),
  328.           (overlay_set_position, reg1, pos1),
  329.           (overlay_set_color, reg1, 0xFFFFFF),
  330.           (val_sub, ":cur_y",185),
  331.           (call_script,"script_fix_position",1,":cur_y",1), #阵型说明
  332.           (create_text_overlay, reg1, "@指 挥 中 心 说 明 :指 挥 中 心 指 的 是 右 侧 战 场 示 意 栏 中 对 应 图 标 的 位 置 ,游 戏 开 始 2秒 后 的 自 动 部 署 时 和 使 用 backspace箭 头 唤 起 指 挥 菜 单 中 使 用 重 新 布 阵 功 能 的 情 况 下 ,己 方 军 队 会 以 玩 家 位 置 为中 心 点 和 面 向 角 度 为 方 向 重 新 布 阵 。如 果 中 心 点 选 择 以 附 近 最 高 点 为 中 心 ,在 游 戏 开 始 时 的 布 阵 会 自 动 搜 索 附 近 的 最 高 点 为 中 心 ,并 根 据 玩 家 面 向 角 度 开 始 布 阵 , 因 此 请 注 意 前 期 游 戏 开 始 时 不 要 乱 调 马 头 。",tf_scrollable),
  333.           (call_script,"script_fix_position",325,135,2),
  334.           (call_script,"script_fix_position",800,800,3),
  335.           (overlay_set_position, reg1, pos1),
  336.           (overlay_set_area_size, reg1, pos2),           
  337.           (overlay_set_size, reg1, pos3),  
  338.           (overlay_set_color, reg1, 0xFFFFFFF),
  339.           (val_sub, ":cur_y",215),
  340.           (call_script,"script_fix_position",1,":cur_y",1),
  341.           (create_text_overlay, reg1, "@战 场 示 意 图 :右 侧 的 21*20示 意 图 是 战 场 入 场 后 的 部 署 展 示 ,每 个 横 向 格 子 代 表 以 玩 家 面 向 角 度 ,以 指 挥 中 心 点 为 中 心 左 右 位 移 1500距 离 ,每 个 纵 向 格 子 代 表 以 指 挥 中 心 点 为 中 心 前 后 位 移 500距 离 (众 所 周 知 骑 砍 部 署 宽 远 大 于 长 ),在 对 应 位 置 布 置 了 编 组 后 点 击 指 定 位 置 会 显 示 该 位 置 布 置 的 编 组 数 量 ,否 则 仅 显 示 位 移 距 离 ,显 示 的 部 队 图 标 以 第 一 队 布 置 在 该 位 置 的 编 组 为 准 。完 成 图 标 样 式 和 部 队 部 署 的 设 置 后 界 面 不 会 直 接 刷 新 ,需 点 击 左 下 角 的 “ 刷 新 部 署 ” 按 键 更 新 战 场 示 意 图 。",tf_scrollable),
  342.           (call_script,"script_fix_position",325,165,2),
  343.           (call_script,"script_fix_position",800,800,3),
  344.           (overlay_set_position, reg1, pos1),
  345.           (overlay_set_area_size, reg1, pos2),           
  346.           (overlay_set_size, reg1, pos3),  
  347.           (overlay_set_color, reg1, 0xFFFFFFF),
  348.           (val_sub, ":cur_y",430),
  349.           (call_script,"script_fix_position",1,":cur_y",1),
  350.           (create_text_overlay, reg1, "@兵 种 分 组 命 令 :兵 种 分 组 命 令 分 为 5种 ,行 动 指 令 /队 列 指 令 /骑 行 指 令 /武 器 使 用 指 令 和 射 击 命 令 ,以 下 详 细 说 明 行 动 指 令 部 分 。^^除 了 默 认 的 四 种 不 变 指 令 之 外 ,其 他 的 指 令 均 为 自 动 指 令 ,自 动 指 令 的 分 组 会 在 战 斗 开 始 30秒 后 根 据 设 定 自 动 行 动 ,这 个 状 态 下 玩 家 可 以 使 用 除 了 坚 守 之 外 的 其 他 命 令 来 取 消 编 组 的 自 动 行 为 ,如 果 需 要 重 新 启 用 自 动 行 为 需 要 使 用 重 新 布 阵 功 能 来 启 动 ,不 过 请 注 意 ,由 于 自 动 行 为 和 敌 人 一 样 是 每 6秒 行 动 一 次 ,因 此 玩 家 的 “ 坚 守 某 处 ” 指 令 很 可 能 不 会 生 效 多 久 ,  为 此 需 要 在 backspace 指 挥 中 点 击 延 迟 对 应 分 组 的 自 动 行 动 来 停 止 该 分 组 的 自 动 行 为 。^^队 列 指 令 中 的 二 级 聚 拢 和 散 开 指 的 是 执 行 两 次 对 应 命 令 。^^如 果 骑 行 被 设 定 为 默 认 , 近 战 骑 兵 分 组 和 投 射 骑 兵 分 组 开 局 会 默 认 执 行 一 次 上 马 指 令 以 免 被 挤 下 马 。^^ 其 他 的 指 令 看 不 明 白 罚 你 们 重 玩 战 团 。^兵 种 的 示 意 图 标 可 以 根 据 需 求 自 行 更 换 ,图 标 仅 起 到 指 示 效 果 。^点 击 改 变 坚 守 位 置 按 钮 后 ,对 应 的 按 钮 右 侧 位 置 会 显 示 “ 移 动 位 置 中 ” 字 样 ,在 这 个 状 态 下 点 击 右 侧 战 场 示 意 图 可 以 将 部 队 移 动 到 指 定 位 置 。",tf_scrollable),
  351.           (call_script,"script_fix_position",325,405,2),
  352.           (call_script,"script_fix_position",800,800,3),
  353.           (overlay_set_position, reg1, pos1),
  354.           (overlay_set_area_size, reg1, pos2),           
  355.           (overlay_set_size, reg1, pos3),  
  356.           (overlay_set_color, reg1, 0xFFFFFFF),
  357.           (val_sub, ":cur_y",175),
  358.           (call_script,"script_fix_position",1,":cur_y",1),
  359.           (create_text_overlay, reg1, "@阵 型 存 档 /读 档 :玩 家 最 多 可 以 保 存 三 个 阵 型 备 份 ,点 击 储 存 会 记 录 玩 家 的 部 署 和 指 令 ,点 击 读 取 会 覆 盖 当 前 的 部 署 ,还 原 对 应 存 档 的 部 署 ,请 注 意 ,读 取 会 直 接 去 改 当 前 的 阵 型 部 署 。^^^^每 场 战 斗 的 前 30秒 是 部 署 阶 段 ,双 方 的 所 有 兵 种 如 果 有 驻 扎 点 会 尽 力 达 到 驻 扎 点 ,为 之 后 的 推 进 阶 段 做 好 准 备 。",tf_scrollable),
  360.           (call_script,"script_fix_position",325,150,2),
  361.           (call_script,"script_fix_position",800,800,3),
  362.           (overlay_set_position, reg1, pos1),
  363.           (overlay_set_area_size, reg1, pos2),           
  364.           (overlay_set_size, reg1, pos3),  
  365.           (overlay_set_color, reg1, 0xFFFFFFF),           
  366.           (val_sub, ":cur_y",235),
  367.           (call_script,"script_fix_position",1,":cur_y",1),
  368.           (create_text_overlay, reg1, "@特 殊 设 定 :^^本 mod自 带 两 种 挂 载 的 地 图 示 意 切 换 ,按 m可 以 切 换 三 种 款 式 ,同 时 本 mod自 带 了 兵 种 分 组 功 能 ,如 果 编 组 为 前 排 步 兵 没 有 装 备 盾 ,那 么 如 果 他 装 备 了 双 手 武 器 会 被 编 入 双 手 步 兵 编 组 ,装 备 了 长 杆 会 被 编 入 长 杆 编 组 ,如 果 编 组 为 双 手 步 兵 装 备 了 盾 和 混 种 武 器 ,那 么 会 被 编 入 前 排 步 兵 编 组 ,如 果 编 组 为 射 手 或 NPC的 兵 种 装 备 了 马 ,会 被 编 入 投 射 骑 兵 编 组 ,如 果 编 组 为 三 种 步 兵 会 被 编 入 近 战 骑 兵 编 组 。",tf_scrollable),
  369.           (call_script,"script_fix_position",325,210,2),
  370.           (call_script,"script_fix_position",800,800,3),
  371.           (overlay_set_position, reg1, pos1),
  372.           (overlay_set_area_size, reg1, pos2),           
  373.           (overlay_set_size, reg1, pos3),  
  374.           (overlay_set_color, reg1, 0xFFFFFFF),  
  375.         (set_container_overlay,-1),
  376.          
  377.         (create_in_game_button_overlay, "$ui_buttion_5", "@保 存 并 退 出 ", tf_center_justify),
  378.         (position_set_x, pos1, 565),
  379.         (position_set_y, pos1, 15),
  380.         (overlay_set_position, "$ui_buttion_5", pos1),   
  381.         
  382.         (create_in_game_button_overlay, "$ui_buttion_4", "@刷 新 部 署 ", tf_center_justify),
  383.         (position_set_x, pos1, 775),
  384.         (position_set_y, pos1, 15),
  385.         (overlay_set_position, "$ui_buttion_4", pos1),  
  386.         
  387.        ######### mouse fix pos system #######
  388.        #(call_script, "script_mouse_fix_pos_ready"),
  389.        ######### mouse fix pos system #######
  390.          
  391.         (presentation_set_duration, 999999),  
  392.          
  393.          ]),
  394.          
  395.          
  396.          
  397.     (ti_on_presentation_run,
  398.       [
  399.        ###### mouse fix pos system #######
  400.        #(set_fixed_point_multiplier, 1000),
  401.        #(call_script, "script_mouse_fix_pos_run"),
  402.        ###### mouse fix pos system #######
  403.        (try_for_range, ":chest_item", 0, 9),
  404.          (item_get_slot,":display_image",":chest_item",slot_item_commander_choosed_button_pos_img),
  405.          (try_begin),
  406.             (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_pos_on,1),
  407.             (overlay_set_display, ":display_image", 1),
  408.            (else_try),
  409.             (overlay_set_display, ":display_image", 0),
  410.          (try_end),   
  411.        (try_end),
  412.       
  413.     ]),

  414.         (ti_on_presentation_event_state_change,
  415.          [
  416.           (store_trigger_param_1, ":object"),
  417.           (store_trigger_param_2, ":value"),
  418.           (assign,":continue",1),
  419.         (try_begin),
  420.            (eq, ":object", "$main_command"),  # 更换阵型ZY
  421.            (assign, "$main_command_info", ":value"),
  422.          (else_try),
  423.            (eq, ":object", "$save_form_1"),  # 保存当前阵型1
  424.            (try_for_range,":chest_item",0,9),
  425.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_pos_x),
  426.               (item_get_slot, reg7, ":chest_item", slot_item_commander_choosed_order_pos_y),
  427.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_x_old_1, reg6),
  428.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_y_old_1, reg7),
  429.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_mordr),
  430.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_mordr_old_1, reg6),
  431.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_roll ),
  432.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_roll_old_1, reg6),
  433.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_rordr),   
  434.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_rordr_old_1, reg6),
  435.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_wordr),
  436.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_wordr_old_1, reg6),
  437.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_aordr),              
  438.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_aordr_old_1, reg6),
  439.            (try_end),
  440.            (display_message,"@已 保 存 阵 型 1 "),
  441.          (else_try),
  442.            (eq, ":object", "$save_form_2"),  # 保存当前阵型2
  443.            (try_for_range,":chest_item",0,9),
  444.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_pos_x),
  445.               (item_get_slot, reg7, ":chest_item", slot_item_commander_choosed_order_pos_y),
  446.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_x_old_2, reg6),
  447.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_y_old_2, reg7),
  448.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_mordr),
  449.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_mordr_old_2, reg6),
  450.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_roll ),
  451.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_roll_old_2, reg6),
  452.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_rordr),   
  453.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_rordr_old_2, reg6),
  454.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_wordr),
  455.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_wordr_old_2, reg6),
  456.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_aordr),              
  457.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_aordr_old_2, reg6),
  458.            (try_end),
  459.            (display_message,"@已 保 存 阵 型 2 "),
  460.          (else_try),
  461.            (eq, ":object", "$save_form_3"),  # 保存当前阵型3
  462.            (try_for_range,":chest_item",0,9),
  463.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_pos_x),
  464.               (item_get_slot, reg7, ":chest_item", slot_item_commander_choosed_order_pos_y),
  465.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_x_old_3, reg6),
  466.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_y_old_3, reg7),
  467.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_mordr),
  468.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_mordr_old_3, reg6),
  469.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_roll ),
  470.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_roll_old_3, reg6),
  471.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_rordr),   
  472.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_rordr_old_3, reg6),
  473.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_wordr),
  474.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_wordr_old_3, reg6),
  475.               (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_aordr),              
  476.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_aordr_old_3, reg6),
  477.            (try_end),
  478.            (display_message,"@已 保 存 阵 型 3 "),
  479.          (else_try),
  480.            (eq, ":object", "$load_form_1"),  # 读取阵型1
  481.            (try_for_range,":chest_item",0,9),
  482.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_pos_x_old_1),
  483.               (item_get_slot, reg7, ":chest_item", slot_item_commander_choosed_order_pos_y_old_1),
  484.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_x, reg6),
  485.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_y, reg7),
  486.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_mordr_old_1),
  487.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_mordr, reg6),
  488.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_roll_old_1),
  489.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_roll, reg6),
  490.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_rordr_old_1),   
  491.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_rordr, reg6),
  492.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_wordr_old_1),
  493.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_wordr, reg6),
  494.               (item_get_slot, reg6,":chest_item", slot_item_commander_choosed_order_aordr_old_1),              
  495.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_aordr, reg6),
  496.            (try_end),
  497.            (display_message,"@已 读 取 阵 型 1 "),
  498.            (start_presentation, "prsnt_commander_order"),
  499.          (else_try),
  500.            (eq, ":object", "$load_form_2"),  # 读取阵型2
  501.            (try_for_range,":chest_item",0,9),
  502.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_pos_x_old_2),
  503.               (item_get_slot, reg7, ":chest_item", slot_item_commander_choosed_order_pos_y_old_2),
  504.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_pos_x, reg6),
  505.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_pos_y, reg7),
  506.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_mordr_old_2),
  507.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_mordr, reg6),
  508.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_roll_old_2),
  509.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_roll, reg6),
  510.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_rordr_old_2),   
  511.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_rordr, reg6),
  512.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_wordr_old_2),
  513.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_wordr, reg6),
  514.               (item_get_slot, reg6,":chest_item", slot_item_commander_choosed_order_aordr_old_2),              
  515.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_aordr, reg6),
  516.            (try_end),
  517.            (display_message,"@已 读 取 阵 型 2 "),
  518.            (start_presentation, "prsnt_commander_order"),
  519.          (else_try),
  520.            (eq, ":object", "$load_form_3"),  # 读取阵型3
  521.            (try_for_range,":chest_item",0,9),
  522.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_pos_x_old_3),
  523.               (item_get_slot, reg7, ":chest_item", slot_item_commander_choosed_order_pos_y_old_3),
  524.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_x, reg6),
  525.               (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_y, reg7),
  526.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_mordr_old_3),
  527.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_mordr, reg6),
  528.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_roll_old_3),
  529.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_roll, reg6),
  530.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_rordr_old_3),   
  531.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_rordr, reg6),
  532.               (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_wordr_old_3),
  533.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_wordr, reg6),
  534.               (item_get_slot, reg6,":chest_item", slot_item_commander_choosed_order_aordr_old_3),              
  535.               (item_set_slot, ":chest_item",slot_item_commander_choosed_order_aordr, reg6),
  536.            (try_end),
  537.            (display_message,"@已 读 取 阵 型 3 "),
  538.            (start_presentation, "prsnt_commander_order"),
  539.          (else_try),
  540.            (eq, ":object", "$cmd_main_ui"),  # 更换图标样式
  541.            (assign, "$choose_lord_ui", ":value"),
  542.          (else_try),
  543.           (eq, ":object", "$ui_buttion_4"),
  544.           (start_presentation, "prsnt_commander_order"),
  545.          (else_try),
  546.           (eq, ":object", "$ui_buttion_5"),
  547.           (presentation_set_duration, 0),
  548.          (else_try),         
  549.           (try_begin),
  550.             (assign,":pass",9),
  551.             (try_for_range, ":chest_item", 0, ":pass"),
  552.               (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_mordr, ":object"),
  553.               (item_set_slot,":chest_item", slot_item_commander_choosed_order_mordr, ":value"),
  554.               (assign,":continue",0),
  555.              (else_try),
  556.               (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_roll, ":object"),
  557.               (item_set_slot,":chest_item", slot_item_commander_choosed_order_roll, ":value"),
  558.               (assign,":continue",0),
  559.              (else_try),
  560.               (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_rordr, ":object"),
  561.               (item_set_slot,":chest_item", slot_item_commander_choosed_order_rordr, ":value"),
  562.               (assign,":continue",0),
  563.              (else_try),
  564.               (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_wordr, ":object"),
  565.               (item_set_slot,":chest_item", slot_item_commander_choosed_order_wordr, ":value"),
  566.               (assign,":continue",0),
  567.              (else_try),
  568.               (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_aordr, ":object"),
  569.               (item_set_slot,":chest_item", slot_item_commander_choosed_order_aordr, ":value"),
  570.               (assign,":continue",0),
  571.              (else_try),
  572.               (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_type, ":object"),
  573.               (item_set_slot,":chest_item", slot_item_commander_choosed_button_type_u, ":value"),
  574.               (assign,":continue",-1),
  575.              (else_try),
  576.               (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_pos, ":object"),
  577.               (assign,":continue",0),
  578.               (try_begin),
  579.                 (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_pos_on,0),
  580.                 (item_set_slot, ":chest_item", slot_item_commander_choosed_button_pos_on,1),
  581.                (else_try),
  582.                 (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_pos_on,1),
  583.                 (item_set_slot, ":chest_item", slot_item_commander_choosed_button_pos_on,0),
  584.               (try_end),
  585.             (try_end),
  586.           (try_end),
  587.           (le,":continue",0),
  588.          (else_try),         
  589.             (assign,":pass","$max_item_cmd"),
  590.             (try_for_range, ":chest_item", 1, ":pass"),
  591.               (item_slot_eq, ":chest_item", slot_item_commander_bolck_id, ":object"),
  592.               (item_get_slot, reg6, ":chest_item", slot_item_commander_bolck_x),
  593.               (item_get_slot, reg7, ":chest_item", slot_item_commander_bolck_y),
  594.               (assign,reg8,0),
  595.               (str_clear,s22),
  596.               (str_store_string,s22,"@这 个 位 置 驻 扎 的 分 组 为 : "),
  597.               (assign,":pass",1),
  598.               (try_for_range,":chest_item",0,9),
  599.                 (item_slot_eq, ":chest_item", slot_item_commander_choosed_order_pos_x,reg6),
  600.                 (item_slot_eq, ":chest_item", slot_item_commander_choosed_order_pos_y,reg7),
  601.                 (val_add,reg8,1),
  602.                 (str_store_class_name,s23,":chest_item"),
  603.                 (str_store_string,s22,"@{s22} {s23}/"),
  604.                (else_try),
  605.                 (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_pos_on,1),
  606.                 (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_x,reg6),
  607.                 (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_y,reg7),
  608.                 (item_set_slot, ":chest_item", slot_item_commander_choosed_button_pos_on,0),
  609.                 (assign,":continue",0),
  610.               (try_end),
  611.             (try_end),
  612.             (val_mul,reg6,1500),
  613.             (val_mul,reg7,500),
  614.             
  615.             (try_begin),
  616.               (ge,reg8,1),
  617.               (display_message,s22),
  618.               (display_message,"@x 轴 移 动 {reg6},y 轴 移 动 {reg7} "),
  619.              (else_try),
  620.               (display_message,"@x 轴 移 动 {reg6},y 轴 移 动 {reg7} "),
  621.             (try_end),  
  622.         (try_end),

  623.          ]),

  624.     ]),
复制代码

##然后在state change下面加上这一段

  1. <div>          (eq, ":object", "$remake_form"),
  2.           (team_set_slot,":player_team",slot_team_class_form_fallow_leader_cd,5),
  3.           (get_player_agent_no, ":player_agent"),
  4.           (agent_get_position,pos21,":player_agent"),
  5.           (display_message,"@全 军 重 整 阵 型 ! "),
  6.           (try_for_range,":class_order",0,9),
  7.             (item_get_slot, reg6, ":class_order", slot_item_commander_choosed_order_pos_x),
  8.             (item_get_slot, reg7, ":class_order", slot_item_commander_choosed_order_pos_y),
  9.             (val_mul,reg6,1500),#这里设定的是xy的移动值,可以根据需要修改
  10.             (val_mul,reg7,500),
  11.             (copy_position,pos22,pos21),
  12.             (position_move_x,pos22,reg6),
  13.             (position_move_y,pos22,reg7),
  14.             (team_give_order, ":player_team", ":class_order", mordr_hold),
  15.             (team_set_order_position, ":player_team", ":class_order", pos22),
  16.             (try_begin),
  17.               (item_slot_ge, ":class_order", slot_item_commander_choosed_order_mordr, 4),
  18.               (store_add,":slot_id",slot_team_class_active_grc_infantry,":class_order"),
  19.               (team_set_slot,":player_team",":slot_id",1),
  20.              (else_try),
  21.               (team_set_slot,":player_team",":slot_id",0),
  22.             (try_end),
  23.           (try_end),  
  24.         (else_try),
  25.           (eq, ":object", "$stop_aoto_form"),
  26.           (team_get_slot,":unmove_time",":player_team",slot_team_class_form_fallow_leader_cd),
  27.           (val_add,":unmove_time",2),
  28.           (team_set_slot,":player_team",slot_team_class_form_fallow_leader_cd,":unmove_time"),
  29.           (assign,reg6,":unmove_time"),
  30.           (val_mul,reg6,6),
  31.           (display_message,"@全 军 停 止 行 动 {reg6} 秒 。 "),
  32.         (else_try),
  33.           (eq, ":object", "$stop_aoto_move"),
  34.           (store_add,":slot_id",slot_team_class_cd_grc_infantry,":value"),
  35.           (team_get_slot,":unmove_time",":player_team",":slot_id"),
  36.           (val_add,":unmove_time",2),
  37.           (team_set_slot,":player_team",":slot_id",":unmove_time"),
  38.           (assign,reg6,":unmove_time"),
  39.           (val_mul,reg6,6),
  40.           (str_store_class_name,s9,":value"),
  41.           (display_message,"@{s9} 分 组 停 止 行 动 {reg6} 秒 。 "),    </div>
复制代码




指挥界面.rar

539.67 KB, 下载次数: 19

这里是我使用的mesh文件

鲜花鸡蛋

sonicliao  在2025-2-11 11:40  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
ww1437599567  在2025-2-7 21:12  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下

17

主题

658

回帖

368

积分

见习骑士

Rank: 3

UID
3102512
第纳尔
2420
精华
0
互助
33
荣誉
0
贡献
0
魅力
84
注册时间
2019-9-6

骑砍中文站APP会员勋章战团正版勋章霸主正版勋章

鲜花(58) 鸡蛋(0)
发表于 2025-2-4 14:02:31 来自手机 | 显示全部楼层
非常好代码。
[炒作完成,群里说的50红包在哪里领?]来自: Android客户端

16

主题

110

回帖

198

积分

见习骑士

Rank: 3

UID
3304622
第纳尔
690
精华
0
互助
26
荣誉
3
贡献
0
魅力
158
注册时间
2021-12-28
鲜花(31) 鸡蛋(0)
发表于 2025-2-4 22:42:20 | 显示全部楼层
帅哦,考虑移植

32

主题

975

回帖

2432

积分

子爵[版主]

Rank: 7Rank: 7Rank: 7

UID
2755938
第纳尔
6228
精华
11
互助
12
荣誉
97
贡献
85
魅力
243
注册时间
2016-7-5

骑砍中文站APP会员勋章

鲜花(242) 鸡蛋(0)
发表于 2025-2-5 08:55:28 | 显示全部楼层
使用的时候可以加个条件,比如是玩家主动发起进攻的,则可以使用阵型,如果是被追击的,那么就不使用。

20

主题

166

回帖

181

积分

贵族[MOD作者]

Rank: 7Rank: 7Rank: 7

UID
3048044
第纳尔
2219
精华
0
互助
19
荣誉
3
贡献
20
魅力
495
注册时间
2018-12-15
鲜花(40) 鸡蛋(0)
 楼主| 发表于 2025-2-5 12:03:31 | 显示全部楼层
偃靖 发表于 2025-2-5 08:55
使用的时候可以加个条件,比如是玩家主动发起进攻的,则可以使用阵型,如果是被追击的,那么就不使用。 ...

不过我目前没找到"被追击的"判定方式,因为"$cant_leave_encounter"这个全局变量只需要对方对你主动攻击,和玩家行为没有关系

31

主题

213

回帖

188

积分

见习骑士

Rank: 3

UID
2462463
第纳尔
1587
精华
0
互助
23
荣誉
0
贡献
0
魅力
83
注册时间
2015-3-3
鲜花(58) 鸡蛋(0)
发表于 2025-2-5 22:39:26 | 显示全部楼层
支持一发

8

主题

14

回帖

7

积分

平民

Rank: 1

UID
3009042
第纳尔
45
精华
0
互助
0
荣誉
0
贡献
0
魅力
2
注册时间
2018-6-22
鲜花(3) 鸡蛋(0)
发表于 2025-2-7 22:18:23 | 显示全部楼层
(eq,":class_order",grc_horse_archer),
这一行报错了,NameError: name 'grc_horse_archer' is not defined

20

主题

166

回帖

181

积分

贵族[MOD作者]

Rank: 7Rank: 7Rank: 7

UID
3048044
第纳尔
2219
精华
0
互助
19
荣誉
3
贡献
20
魅力
495
注册时间
2018-12-15
鲜花(40) 鸡蛋(0)
 楼主| 发表于 2025-2-7 22:37:05 | 显示全部楼层
本帖最后由 黑暗路西法 于 2025-2-7 22:38 编辑
ww1437599567 发表于 2025-2-7 22:18
(eq,":class_order",grc_horse_archer),
这一行报错了,NameError: name 'grc_horse_archer' is not define ...

这个是在header里定义的,如果你想用我script部分第一段的6兵种分组需要你修改header mission template,把原来的内容改成
    grc_infantry       = 0
    grc_pikeman        = 1
    grc_berserker      = 2
    grc_archers        = 3
    grc_cavalry        = 4
    grc_horse_archer   = 5
    grc_heroes         = 6
    grc_everyone       = 9

如果你不想使用我的分组那就尽量把我这里的分组挨个找到然后替换

20

主题

166

回帖

181

积分

贵族[MOD作者]

Rank: 7Rank: 7Rank: 7

UID
3048044
第纳尔
2219
精华
0
互助
19
荣誉
3
贡献
20
魅力
495
注册时间
2018-12-15
鲜花(40) 鸡蛋(0)
 楼主| 发表于 2025-2-23 11:11:37 | 显示全部楼层
找不到那个position脚本的可以看我之前的帖子https://bbs.mountblade.com.cn/thread-2099595-1-1.html
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2025-3-23 06:32 , Processed in 0.127927 second(s), 30 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表