本帖最后由 黑暗路西法 于 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,按退格键唤出
示例图如下↓
首先,在开始之前在所有打中文的文件顶上加一条#coding=utf-8,否则编译会报错
下面是各部分的源码:
constant部分
- ##我的constant直接应用在对应分组也就是0到9的item slot上,也就是说我调用class的时候根据返回数获取对应的item slot就可以获得信息,如果你的mod也占用了这些slot数字槽可以把slot改大一点,但不建议把class对应的item改掉,因为这意味着你需要重新排一遍
- slot_item_commander_bolck_id = 40
- slot_item_commander_bolck_y = 41
- slot_item_commander_bolck_x = 42
- slot_item_commander_choosed_order_mordr = 43 ##5种命令,移动/队列/骑乘/武器使用/射击命令
- slot_item_commander_choosed_order_roll = 44
- slot_item_commander_choosed_order_rordr = 45
- slot_item_commander_choosed_order_wordr = 46
- slot_item_commander_choosed_order_aordr = 47
- slot_item_commander_choosed_order_pos_x = 48 ##场内的坚守位置
- slot_item_commander_choosed_order_pos_y = 49
- slot_item_commander_choosed_button_type_u = 50 ##图标样式
- slot_item_commander_choosed_button_mordr = 51 ##5种命令,移动/队列/骑乘/武器使用/射击命令
- slot_item_commander_choosed_button_roll = 52
- slot_item_commander_choosed_button_rordr = 53
- slot_item_commander_choosed_button_wordr = 54
- slot_item_commander_choosed_button_aordr = 55
- slot_item_commander_choosed_button_pos = 56
- slot_item_commander_choosed_button_pos_on = 57
- slot_item_commander_choosed_button_pos_img = 58
- slot_item_commander_choosed_button_type = 59 ##图标样式
- slot_item_commander_choosed_order_pos_x_old_1 = 60 ##存档1,场内的坚守位置
- slot_item_commander_choosed_order_pos_y_old_1 = 61
- slot_item_commander_choosed_order_pos_x_old_2 = 62 ##存档2,场内的坚守位置
- slot_item_commander_choosed_order_pos_y_old_2 = 63
- slot_item_commander_choosed_order_pos_x_old_3 = 64 ##存档3,场内的坚守位置
- slot_item_commander_choosed_order_pos_y_old_3 = 65
- slot_item_commander_choosed_order_mordr_old_1 = 66 ##三套存档对应的动作
- slot_item_commander_choosed_order_roll_old_1 = 67
- slot_item_commander_choosed_order_rordr_old_1 = 68
- slot_item_commander_choosed_order_wordr_old_1 = 69
- slot_item_commander_choosed_order_aordr_old_1 = 70
- slot_item_commander_choosed_order_mordr_old_2 = 71
- slot_item_commander_choosed_order_roll_old_2 = 72
- slot_item_commander_choosed_order_rordr_old_2 = 73
- slot_item_commander_choosed_order_wordr_old_2 = 74
- slot_item_commander_choosed_order_aordr_old_2 = 75
- slot_item_commander_choosed_order_mordr_old_3 = 76
- slot_item_commander_choosed_order_roll_old_3 = 77
- slot_item_commander_choosed_order_rordr_old_3 = 78
- slot_item_commander_choosed_order_wordr_old_3 = 79
- slot_item_commander_choosed_order_aordr_old_3 = 80
复制代码 然后在team slot底下加上以下几个slot
- <div>slot_team_class_active_grc_infantry = 20 ###九个槽位来确定是否要半自动化
- slot_team_class_active_grc_pikeman = 21
- slot_team_class_active_grc_berserker = 22
- slot_team_class_active_grc_archers = 23
- slot_team_class_active_grc_cavalry = 24
- slot_team_class_active_grc_horse_archer = 25
- slot_team_class_active_grc_heroes = 26
- slot_team_class_active_grc_8 = 27
- slot_team_class_active_grc_9 = 28
- slot_team_class_form_fallow_leader_cd = 29 ###重新列阵后的缓冲时间30秒</div>
复制代码
##然后在开局调用的任意script里跑一下这个代码调整战团原版的分组
以下为script部分
- <div> (try_for_range,":troop","trp_farmer","你设定的兵种结束"),
- (try_begin),#设定兵种分组,新
- (troop_is_hero,":troop"),
- (troop_set_class, ":troop", grc_heroes),
- (else_try),
- (troop_is_guarantee_horse,":troop"),
- (troop_is_guarantee_ranged,":troop"),
- (troop_get_inventory_capacity, ":inv_cap", ":troop"),
- (try_for_range, ":i_slot", 0, ":inv_cap"),
- (troop_get_inventory_slot, ":item", ":troop", ":i_slot"),
- (neq,":item",-1),
- (item_get_type,":troop_itp",":item"),
- (this_or_next|eq,":troop_itp",itp_type_bow),
- (this_or_next|eq,":troop_itp",itp_type_crossbow),
- (this_or_next|eq,":troop_itp",itp_type_pistol),
- (eq,":troop_itp",itp_type_thrown),
- (neg|item_has_property, ":item", itp_cant_use_on_horseback),
- (troop_set_class, ":troop", grc_horse_archer),
- (try_end),
- (else_try),
- (troop_is_guarantee_horse,":troop"),
- (troop_set_class, ":troop", grc_cavalry),
- (else_try),
- (troop_is_guarantee_ranged,":troop"),
- (troop_set_class, ":troop", grc_archers),
- (else_try),
- (assign,":polearm",0),
- (assign,":two_handed",0),
- (troop_get_inventory_capacity, ":inv_cap", ":troop"),
- (try_for_range, ":i_slot", 0, ":inv_cap"),
- (troop_get_inventory_slot, ":item", ":troop", ":i_slot"),
- (try_begin),
- (eq,":item",-1),
- (assign,":inv_cap",0),
- (try_end),
- (neq,":item",-1),
- (item_get_type,":troop_itp",":item"),
- (try_begin),
- (eq,":troop_itp",itp_type_two_handed_wpn),
- (val_add,":two_handed",1),
- (else_try),
- (eq,":troop_itp",itp_type_polearm),
- (val_add,":polearm",1),
- (else_try),
- (this_or_next|eq,":troop_itp",itp_type_one_handed_wpn),
- (this_or_next|eq,":troop_itp",itp_type_bow),
- (this_or_next|eq,":troop_itp",itp_type_crossbow),
- (this_or_next|eq,":troop_itp",itp_type_thrown),
- (eq,":troop_itp",itp_type_shield),
- (val_sub,":polearm",10000),
- (val_sub,":two_handed",10000),
- (assign,":inv_cap",0),
- (try_end),
- (try_end),
- (try_begin),
- (ge,":two_handed",1),
- (ge,":polearm",0),
- (gt,":two_handed",":polearm"),
- (troop_set_class, ":troop", grc_berserker),
- (else_try),
- (ge,":two_handed",0),
- (ge,":polearm",1),
- (gt,":polearm",":two_handed"),
- (troop_set_class, ":troop", grc_pikeman),
- (else_try),
- (this_or_next|ge,":two_handed",1),
- (ge,":polearm",1),
- (troop_set_class, ":troop", grc_berserker),
- (else_try),
- (troop_set_class, ":troop", grc_infantry),
- (try_end),
- (try_end),
- (try_end),
- #重新设定组名
- (class_set_name,grc_infantry,"@前 排 步 兵 "),
- (class_set_name,grc_pikeman,"@长 矛 兵 "),
- (class_set_name,grc_berserker,"@双 手 步 兵 "),
- (class_set_name,grc_archers,"@射 手 "),
- (class_set_name,grc_cavalry,"@近 战 骑 兵 "),
- (class_set_name,grc_horse_archer,"@投 射 骑 兵 "),
- (class_set_name,grc_heroes,"@NPC"),
- (class_set_name,7,"@预 备 队 1 "),
- (class_set_name,8,"@预 备 队 2 "),
-
- #重新设定初始阵型 如果你不更改分组你也需要调一下默认的
- (item_set_slot,grc_infantry,slot_item_commander_choosed_order_pos_y,5),
- (item_set_slot,grc_pikeman,slot_item_commander_choosed_order_pos_y,4),
- (item_set_slot,grc_berserker,slot_item_commander_choosed_order_pos_x,-2),
- (item_set_slot,grc_berserker,slot_item_commander_choosed_order_pos_y,4),
- (item_set_slot,grc_archers,slot_item_commander_choosed_order_pos_y,-2),
- (item_set_slot,grc_cavalry,slot_item_commander_choosed_order_pos_y,1),
- (item_set_slot,grc_cavalry,slot_item_commander_choosed_order_pos_x,4),
- (item_set_slot,grc_horse_archer,slot_item_commander_choosed_order_pos_y,1),
- (item_set_slot,grc_horse_archer,slot_item_commander_choosed_order_pos_x,-4),
- (item_set_slot,grc_heroes,slot_item_commander_choosed_order_mordr,1),
- ########</div>
复制代码 添加以下两个新脚本
- <div>#######$####玩家战术
- ("player_battle_tactic_apply",
- [
- (get_player_agent_no, ":player_agent"),
- (agent_get_team,":player_team",":player_agent"),
- (agent_get_position,pos24,":player_agent"),
-
-
-
- (try_begin),
- (eq,"$main_command_info",0),
- (agent_get_position,pos21,":player_agent"),
- (else_try),
- (eq,"$main_command_info",1),
- (agent_get_position, pos1, ":player_agent"),
- (call_script, "script_find_high_ground_around_pos1", ":player_team", 200),
- (copy_position, pos1, pos52),
- (call_script, "script_find_high_ground_around_pos1", ":player_team", 100), # call again just in case we are not at peak point.
- (copy_position,pos21,pos52),
- (position_copy_rotation,pos21,pos24),
- (else_try),
- (eq,"$main_command_info",2),
- (agent_get_position, pos1, ":player_agent"),
- (call_script, "script_find_high_ground_around_pos1", ":player_team", 300),
- (copy_position, pos1, pos52),
- (call_script, "script_find_high_ground_around_pos1", ":player_team", 200), # call again just in case we are not at peak point.
- (copy_position, pos1, pos52),
- (call_script, "script_find_high_ground_around_pos1", ":player_team", 100), # call again just in case we are not at peak point.
- (copy_position,pos21,pos52),
- (position_copy_rotation,pos21,pos24),
- (try_end),
-
-
-
- (try_for_range,":class_order",0,9),
- (item_get_slot, reg6, ":class_order", slot_item_commander_choosed_order_pos_x),
- (item_get_slot, reg7, ":class_order", slot_item_commander_choosed_order_pos_y),
- (val_mul,reg6,1500),#这里设定的是xy的移动值,可以根据需要修改
- (val_mul,reg7,500),
- (copy_position,pos22,pos21),
- (position_copy_rotation,pos22,pos21),
- (position_move_x,pos22,reg6),
- (position_move_y,pos22,reg7),
-
- (try_begin),
- (this_or_next|item_slot_eq, ":class_order", slot_item_commander_choosed_order_mordr, 0),
- (item_slot_ge, ":class_order", slot_item_commander_choosed_order_mordr, 4),
- (str_store_class_name,s2,":class_order"),
- #(display_message,"@{s2} 驻 扎 点 : {reg6}/{reg7}"),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos22),
- (item_slot_ge, ":class_order", slot_item_commander_choosed_order_mordr, 4),
- (store_add,":slot_id",slot_team_class_active_grc_infantry,":class_order"),
- (team_set_slot,":player_team",":slot_id",1),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_mordr, 1),
- (team_give_order, ":player_team", ":class_order", mordr_follow),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_mordr, 2),
- (team_give_order, ":player_team", ":class_order", mordr_charge),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_mordr, 3),
- (team_give_order, ":player_team", ":class_order", mordr_retreat),
- (try_end),
-
- (try_begin),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 0),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 1),
- (team_give_order, ":player_team", ":class_order", mordr_stand_closer),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 2),
- (team_give_order, ":player_team", ":class_order", mordr_spread_out),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 3),
- (team_give_order, ":player_team", ":class_order", mordr_stand_closer),
- (team_give_order, ":player_team", ":class_order", mordr_stand_closer),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 4),
- (team_give_order, ":player_team", ":class_order", mordr_spread_out),
- (team_give_order, ":player_team", ":class_order", mordr_spread_out),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 5),
- (team_give_order, ":player_team", ":class_order", mordr_form_1_row),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 6),
- (team_give_order, ":player_team", ":class_order", mordr_form_2_row),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 7),
- (team_give_order, ":player_team", ":class_order", mordr_form_3_row),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 8),
- (team_give_order, ":player_team", ":class_order", mordr_form_4_row),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_roll, 9),
- (team_give_order, ":player_team", ":class_order", mordr_form_5_row),
- (try_end),
-
- (try_begin),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_rordr, 0),
- (this_or_next|eq,":class_order",grc_cavalry),
- (eq,":class_order",grc_horse_archer),
- (team_give_order, ":player_team", ":class_order", mordr_mount),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_rordr, 1),
- (team_give_order, ":player_team", ":class_order", mordr_mount),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_rordr, 2),
- (team_give_order, ":player_team", ":class_order", mordr_dismount),
- (try_end),
-
- (try_begin),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_wordr, 0),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_wordr, 1),
- (team_give_order, ":player_team", ":class_order", mordr_use_melee_weapons),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_wordr, 2),
- (team_give_order, ":player_team", ":class_order", mordr_use_ranged_weapons),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_wordr, 3),
- (team_give_order, ":player_team", ":class_order", mordr_use_blunt_weapons),
- (try_end),
-
- (try_begin),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_aordr, 0),
- (else_try),
- (item_slot_eq, ":class_order", slot_item_commander_choosed_order_aordr, 1),
- (team_give_order, ":player_team", ":class_order", mordr_hold_fire),
- (try_end),
-
-
- (try_end),
- ]),
-
-
-
- ("player_battle_tactic_continue",
- [
-
- (get_player_agent_no, ":player_agent"),
- (agent_get_team,":player_team",":player_agent"),
- (try_begin),
- (team_slot_eq,":player_team",slot_team_class_form_fallow_leader_cd,0),
- (assign,":form_continue",1),
- (else_try),
- (assign,":form_continue",0),
- (team_get_slot,":form_cd",":player_team",slot_team_class_form_fallow_leader_cd),
- (val_sub,":form_cd",1),
- (team_set_slot,":player_team",slot_team_class_form_fallow_leader_cd,":form_cd"),
- (try_end),
-
- (try_for_range,":class_order",0,9),
- (store_add,":slot_id",slot_team_class_cd_grc_infantry,":class_order"),
- (try_begin),
- (team_slot_ge,":player_team",":slot_id",1),
- (team_get_slot,":unmove_time",":player_team",":slot_id"),
- (val_sub,":unmove_time",1),
- (team_set_slot,":player_team",":slot_id",":unmove_time"),
- (try_end),
- (team_slot_eq,":player_team",":slot_id",0),
-
- (eq,":form_continue",1),
- (assign,":continue",1),
- (assign,":chosed_agent",":player_agent"),
- (try_for_agents,":agent"),#抓个不骑马的壮丁矫正一下角度,抓不到就拴玩家
- (eq,":continue",1),
- (agent_get_team,":agent_team",":agent"),
- (eq,":agent_team",":player_team"),
- (agent_is_human,":agent"),
- (agent_is_alive,":agent"),
- (agent_is_active,":agent"),
- (neg|agent_slot_ge,":agent", slot_agent_is_running_away,1),
- (agent_get_horse,":horse_id",":agent"),
- (eq,":horse_id",-1),
- (assign,":chosed_agent",":agent"),
- (assign,":continue",0),
- (try_end),
- (agent_get_position,pos61,":chosed_agent"),
-
- (store_add,":slot_id",slot_team_class_active_grc_infantry,":class_order"),
- (try_begin),
- (team_get_movement_order,":order", ":player_team", ":class_order"),
- (neq,":order",mordr_hold),
- (team_set_slot,":player_team",":slot_id",0),
- (try_end),
- (team_slot_eq,":player_team",":slot_id",1),
-
- (team_get_order_position,pos1, ":player_team", ":class_order"),
- (assign, ":avg_dist", 100000),
- (call_script, "script_get_closest3_distance_of_enemies_at_pos1", ":player_team", 1),
- (assign, ":avg_dist", reg0),
- (item_get_slot,":moving_order",":class_order", slot_item_commander_choosed_order_mordr),
-
- (team_get_order_position,pos21, ":player_team", ":class_order"),
- (position_copy_rotation,pos21,pos61),
-
- (try_begin),
- (eq,":moving_order",4),
- (try_begin),
- (lt,":avg_dist",2000),
- (team_set_slot,":player_team",":slot_id",0),
- (team_give_order, ":player_team", ":class_order", mordr_charge),
- (else_try),
- (position_move_y,pos21,750),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (try_end),
- (else_try),
- (eq,":moving_order",5),
- (try_begin),
- (lt,":avg_dist",2000),
- (team_set_slot,":player_team",":slot_id",0),
- (team_give_order, ":player_team", ":class_order", mordr_charge),
- (else_try),
- (position_move_y,pos21,1000),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (try_end),
- (else_try),
- (eq,":moving_order",6),
- (try_begin),
- (lt,":avg_dist",2000),
- (team_set_slot,":player_team",":slot_id",0),
- (team_give_order, ":player_team", ":class_order", mordr_charge),
- (else_try),
- (position_move_y,pos21,1250),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (try_end),
- (else_try),
- (eq,":moving_order",7),
- (try_begin),
- (lt,":avg_dist",3000),
- (team_set_slot,":player_team",":slot_id",0),
- (team_give_order, ":player_team", ":class_order", mordr_charge),
- (else_try),
- (position_move_y,pos21,2000),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (try_end),
- (else_try),
- (eq,":moving_order",8),
- (try_begin),
- (lt,":avg_dist",5000),
- (team_set_slot,":player_team",":slot_id",0),
- (team_give_order, ":player_team", ":class_order", mordr_charge),
- (else_try),
- (position_move_y,pos21,2500),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (try_end),
- (else_try),
- (eq,":moving_order",9),
- (try_begin),
- (lt,":avg_dist",500),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (else_try),
- (position_move_y,pos21,750),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (try_end),
- (else_try),
- (eq,":moving_order",10),
- (try_begin),
- (lt,":avg_dist",500),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (else_try),
- (position_move_y,pos21,1000),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (try_end),
- (else_try),
- (eq,":moving_order",11),
- (try_begin),
- (lt,":avg_dist",500),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (else_try),
- (position_move_y,pos21,1400),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (try_end),
- (else_try),
- (eq,":moving_order",12),
- (try_begin),
- (lt,":avg_dist",2800),
- (position_move_y,pos21,-1200),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (else_try),
- (gt,":avg_dist",3750),
- (position_move_y,pos21,800),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (try_end),
- (else_try),
- (eq,":moving_order",13),
- (try_begin),
- (lt,":avg_dist",4500),
- (position_move_y,pos21,-1200),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (else_try),
- (gt,":avg_dist",5500),
- (position_move_y,pos21,700),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos21),
- (try_end),
- (try_end),
-
- (position_get_x,reg2,pos21),
- (position_get_y,reg3,pos21),
- (display_message,"@{reg2}/{reg3}"),
-
- (try_end),
- ]),
- ####script部分</div>
复制代码 接下来为mission template部分
##在野战那里加上这个触发器,野战的部分在这个下面:"lead_charge",mtf_battle_mode|mtf_synch_inventory,charge,
- <div> #AI Triggers 开局选择战术
- (1, 0, ti_once, [
- (store_mission_timer_a,":mission_time"),(ge,":mission_time",3),
- ],
- [
- (call_script, "script_player_battle_tactic_apply"), #玩家使用野战战术
- ]),</div>
复制代码
##然后再加上这个 作为后续触发效果
- <div> (6, 0, 0, [
-
- (store_mission_timer_a,":mission_time"),#阵型会缓慢结成之后再前进
- (ge,":mission_time",30),#30秒之后才会继续推进
-
- (set_show_messages,0),
- (ge,":mission_time",30),
- (set_fixed_point_multiplier, 1000),
- (call_script, "script_player_battle_tactic_continue"),
- (set_show_messages,1),
-
-
- ], []),</div>
复制代码
接下来是mesh部分
- <div>##背景板
- <span style="font-size: 14px;"> ("commander_table", 0, "commander_table", 0, 0, 0, 0, 0, 0, 1, 1, 1),</span>
- ##中心图标
- ("lord_ui_1", 0, "leader_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("lord_ui_2", 0, "leader_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("lord_ui_3", 0, "leader_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("lord_ui_4", 0, "leader_4", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("lord_ui_5", 0, "leader_5", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ##步兵图标
- ("infantry_1", 0, "infantry_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("infantry_2", 0, "infantry_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("infantry_3", 0, "infantry_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ##矛兵图标
- ("spearman_1", 0, "spearman_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("spearman_2", 0, "spearman_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("spearman_3", 0, "spearman_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ##双手图标
- ("berserker_1", 0, "berserker_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("berserker_2", 0, "berserker_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("berserker_3", 0, "berserker_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ##射手图标
- ("archer_1", 0, "archer_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("archer_2", 0, "archer_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("archer_3", 0, "archer_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ##骑兵图标
- ("cavalry_1", 0, "cavalry_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("cavalry_2", 0, "cavalry_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("cavalry_3", 0, "cavalry_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ##骑射手图标
- ("horse_archer_1", 0, "horse_archer_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("horse_archer_2", 0, "horse_archer_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("horse_archer_3", 0, "horse_archer_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ##npc图标
- ("npc_1", 0, "npc_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("npc_2", 0, "npc_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("npc_3", 0, "npc_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ##预备队图标
- ("alter_1", 0, "alter_1", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("alter_2", 0, "alter_2", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("alter_3", 0, "alter_3", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("alter_4", 0, "alter_4", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("alter_5", 0, "alter_5", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("alter_6", 0, "alter_6", 0, 0, 0, 0, 0, 0, 1, 1, 1),
- ("alter_7", 0, "alter_7", 0, 0, 0, 0, 0, 0, 1, 1, 1),</div>
复制代码
最后是presentation部分
- ####指挥系统prsnt部分
- ("commander_order",0,mesh_commander_table, [
- (ti_on_presentation_load,
- [
- (set_fixed_point_multiplier, 1000),
- (assign,":abs_limit_x",9999),#这两个值控制的是上下限,x轴上下限是10和-10
- (assign,":abs_limit_y",9999),#y轴下限是-4,上限是16到满,在我的mod中这个设置是根据
- (assign, ":pos_x", 346),
- (assign, ":pos_y", 710),
-
- (assign,":y_id",16),
- (assign,":chest_item",1),
- (try_for_range, ":unused_height", 0, 20),####20行
- (assign,":x_id",-10),
- (try_for_range, ":unused_width", 0, 21),####20行
- (item_set_slot, ":chest_item", slot_item_commander_bolck_x, ":x_id"),
- (item_set_slot, ":chest_item", slot_item_commander_bolck_y, ":y_id"),
- (try_begin),
- (eq,":y_id",0),
- (eq,":x_id",0),
- (store_add,":lord_ui","mesh_lord_ui_1","$choose_lord_ui"),
- (create_image_button_overlay, reg1, ":lord_ui","mesh_mp_inventory_choose"),
- (call_script,"script_fix_position",250,250,1),
- (overlay_set_size, reg1, pos1),
- (call_script,"script_fix_position",":pos_x",":pos_y",1),
- (overlay_set_position, reg1, pos1),
- (item_set_slot, ":chest_item", slot_item_commander_bolck_id, reg1),
- (else_try),
- (assign,":max",9),
- (assign,":soldier_ui","mesh_mp_inventory_choose"),
- (try_for_range,":ui_item",0,":max"),
- (item_slot_eq, ":ui_item", slot_item_commander_choosed_order_pos_x,":x_id"),
- (item_slot_eq, ":ui_item", slot_item_commander_choosed_order_pos_y,":y_id"),
- (item_get_slot,":ui_type", ":ui_item", slot_item_commander_choosed_button_type_u),
- (try_begin),
- (eq,":ui_item",grc_infantry),
- (store_add,":soldier_ui","mesh_infantry_1",":ui_type"),
- (else_try),
- (eq,":ui_item",grc_pikeman),
- (store_add,":soldier_ui","mesh_spearman_1",":ui_type"),
- (else_try),
- (eq,":ui_item",grc_berserker),
- (store_add,":soldier_ui","mesh_berserker_1",":ui_type"),
- (else_try),
- (eq,":ui_item",grc_archers),
- (store_add,":soldier_ui","mesh_archer_1",":ui_type"),
- (else_try),
- (eq,":ui_item",grc_cavalry),
- (store_add,":soldier_ui","mesh_cavalry_1",":ui_type"),
- (else_try),
- (eq,":ui_item",grc_horse_archer),
- (store_add,":soldier_ui","mesh_horse_archer_1",":ui_type"),
- (else_try),
- (eq,":ui_item",grc_heroes),
- (store_add,":soldier_ui","mesh_npc_1",":ui_type"),
- (else_try),
- (store_add,":soldier_ui","mesh_alter_1",":ui_type"),
- (try_end),
- (assign,":max",0),
- (try_end),
- (create_image_button_overlay, reg1, ":soldier_ui","mesh_lord_ui_1"),
- (call_script,"script_fix_position",250,250,1),
- (overlay_set_size, reg1, pos1),
- (call_script,"script_fix_position",":pos_x",":pos_y",1),
- (overlay_set_position, reg1, pos1),
- (item_set_slot, ":chest_item", slot_item_commander_bolck_id, reg1),
- (try_begin),
- (assign,":cur_x_id",":x_id"),
- (assign,":cur_y_id",":y_id"),
- (val_abs, ":cur_x_id"),
- (val_abs, ":cur_y_id"),
- (this_or_next|gt,":cur_x_id",":abs_limit_x"),
- (gt,":cur_y_id",":abs_limit_y"),
- (overlay_set_display,reg1,0),
- (try_end),
- (try_end),
- (val_add, ":pos_x", 31),
- (val_add, ":chest_item", 1),
- (val_add,":x_id",1),
- (try_end),
- (assign, ":pos_x", 346),
- (val_sub, ":pos_y", 34),
- (val_sub,":y_id",1),
- (try_end),
- (assign,"$max_item_cmd", ":chest_item"),
-
-
-
-
-
-
-
-
- (call_script,"script_fix_position",2,10,1),
- (call_script,"script_fix_position",1300,1300,2),
- (call_script,"script_fix_position",325,730,3),
- (create_text_overlay,reg1,"@ ", tf_scrollable),
-
- (overlay_set_position, reg1, pos1),
- (overlay_set_area_size, reg1, pos3),
- (overlay_set_color, reg1, 0xFFFFFF),
-
- (set_container_overlay,reg1),
-
- (assign,":cur_y",3500),
- (call_script,"script_fix_position",2,":cur_y",1),
- (call_script,"script_fix_position",1300,1300,2),
- (create_text_overlay,reg1,"@ ", tf_left_align),
-
- (val_sub,":cur_y",30),
- (call_script,"script_fix_position",165,":cur_y",1),
- (call_script,"script_fix_position",1300,1300,2),
- (create_text_overlay,reg1,"@选 择 指 挥 中 心 点 ", tf_center_justify),
- (overlay_set_position, reg1, pos1),
- (overlay_set_size, reg1, pos2),
- (overlay_set_color, reg1, 0xFFFFFF),
-
- (val_sub,":cur_y",45),
- (call_script,"script_fix_position",165,":cur_y",1),
- (call_script,"script_fix_position",1300,1300,2),
- (create_combo_button_overlay,"$main_command"),
- (overlay_add_item, "$main_command", "@以 玩 家 为 中 心 坚 守 "), #三种中心点获取设置
- (overlay_add_item, "$main_command", "@以 附 近 最 高 点 为 中 心 坚 守 "),
- (overlay_add_item, "$main_command", "@以 周 边 最 高 点 为 中 心 坚 守 "),
-
- (overlay_set_position, "$main_command", pos1),
- (overlay_set_val,"$main_command","$main_command_info"),
-
- (val_sub,":cur_y",50),
- (call_script,"script_fix_position",165,":cur_y",1),
- (call_script,"script_fix_position",1300,1300,2),
- (create_text_overlay,reg1,"@选 择 指 挥 中 心 点 图 标 ", tf_center_justify),
- (overlay_set_position, reg1, pos1),
- (overlay_set_size, reg1, pos2),
- (overlay_set_color, reg1, 0xFFFFFF),
-
- (val_sub,":cur_y",45),
- (call_script,"script_fix_position",165,":cur_y",1),
- (call_script,"script_fix_position",1300,1300,2),
- (create_combo_button_overlay,"$cmd_main_ui"),
- (overlay_add_item, "$cmd_main_ui", "@图 标 样 式 1 "),
- (overlay_add_item, "$cmd_main_ui", "@图 标 样 式 2 "),
- (overlay_add_item, "$cmd_main_ui", "@图 标 样 式 3 "),
- (overlay_add_item, "$cmd_main_ui", "@图 标 样 式 4 "),
- (overlay_add_item, "$cmd_main_ui", "@图 标 样 式 5 "),
- (overlay_set_position,"$cmd_main_ui", pos1),
- (overlay_set_val,"$cmd_main_ui","$choose_lord_ui"),
-
- (val_sub,":cur_y",50),
- (call_script,"script_fix_position",165,":cur_y",1),
- (call_script,"script_fix_position",1300,1300,2),
- (create_text_overlay,reg1,"@选 择 兵 种 分 组 命 令", tf_center_justify),
- (overlay_set_position, reg1, pos1),
- (overlay_set_size, reg1, pos2),
- (overlay_set_color, reg1, 0xFFFFFF),
-
- (val_sub,":cur_y",40), #几种指令
- (try_for_range,":troop_class",0,9),
- (call_script,"script_fix_position",10,":cur_y",1),
- (call_script,"script_fix_position",1000,1000,2),
- (str_store_class_name,s21, ":troop_class"),
- (create_text_overlay,reg1,s21, tf_left_align),
- (overlay_set_position, reg1, pos1),
- (overlay_set_color, reg1, 0xFFFFFF),
- (overlay_set_size, reg1, pos2),
- (val_sub, ":cur_y",50),
- (assign,":cur_x",118),
- (call_script,"script_fix_position",":cur_x",":cur_y",1),
- (call_script,"script_fix_position",416,1000,2),
- (create_combo_button_overlay,reg2),
- (overlay_set_position, reg2, pos1),
- (overlay_set_size, reg2, pos2),
- (overlay_add_item, reg2, "@指 令 : 在 指 定 地 点 站 定 "),
- (overlay_add_item, reg2, "@指 令 : 跟 随 指 挥 官 "),
- (overlay_add_item, reg2, "@指 令 : 冲 锋 "),
- (overlay_add_item, reg2, "@指 令 : 撤 退 "),
- (overlay_add_item, reg2, "@指 令 : 缓 慢 推 进 后 冲 锋 "),
- (overlay_add_item, reg2, "@指 令 : 向 前 推 进 后 冲 锋 "),
- (overlay_add_item, reg2, "@指 令 : 快 速 推 进 后 冲 锋 "),
- (overlay_add_item, reg2, "@指 令 : 快 速 推 进 后 冲 锋 ( 近 ) "),
- (overlay_add_item, reg2, "@指 令 : 快 速 推 进 后 冲 锋 ( 远 ) "),
- (overlay_add_item, reg2, "@指 令 : 缓 慢 推 近 , 靠 近 后 坚 守 阵 型 "),
- (overlay_add_item, reg2, "@指 令 : 推 进 , 靠 近 后 坚 守 阵 型 "),
- (overlay_add_item, reg2, "@指 令 : 快 速 推 近 , 靠 近 敌 人 后 坚 守 阵 型 "),
- (overlay_add_item, reg2, "@指 令 : 推 进 后 保 持 短 距 离 袭 扰 "),
- (overlay_add_item, reg2, "@指 令 : 推 进 后 保 持 长 距 离 袭 扰 "),
- (item_set_slot, ":troop_class", slot_item_commander_choosed_button_mordr, reg2),
- (item_get_slot, ":val", ":troop_class",slot_item_commander_choosed_order_mordr),
- (overlay_set_val,reg2,":val"),
-
-
- (val_add,":cur_x",108),
- (call_script,"script_fix_position",":cur_x",":cur_y",1),
- (create_combo_button_overlay,reg2),
- (overlay_set_position, reg2, pos1),
- (overlay_set_size, reg2, pos2),
- (overlay_add_item, reg2, "@队 列 : 无 "),
- (overlay_add_item, reg2, "@队 列 : 紧 凑 "),
- (overlay_add_item, reg2, "@队 列 : 散 开 "),
- (overlay_add_item, reg2, "@队 列 : 聚 拢 结 阵 "),
- (overlay_add_item, reg2, "@队 列 : 散 兵 阵 线 "),
- (overlay_add_item, reg2, "@队 列 : 排 成 1 行 "),
- (overlay_add_item, reg2, "@队 列 : 排 成 2 行 "),
- (overlay_add_item, reg2, "@队 列 : 排 成 3 行 "),
- (overlay_add_item, reg2, "@队 列 : 排 成 4 行 "),
- (overlay_add_item, reg2, "@队 列 : 排 成 5 行 "),
- (item_set_slot, ":troop_class", slot_item_commander_choosed_button_roll, reg2),
- (item_get_slot, ":val", ":troop_class",slot_item_commander_choosed_order_roll),
- (overlay_set_val,reg2,":val"),
-
- (val_add,":cur_x",108),
- (call_script,"script_fix_position",":cur_x",":cur_y",1),
- (create_combo_button_overlay,reg2),
- (overlay_set_position, reg2, pos1),
- (overlay_set_size, reg2, pos2),
- (overlay_add_item, reg2, "@骑 行 : 默 认 "),
- (overlay_add_item, reg2, "@全 体 上 马 "),
- (overlay_add_item, reg2, "@全 体 下 马 "),
- (item_set_slot, ":troop_class", slot_item_commander_choosed_button_rordr, reg2),
- (item_get_slot, ":val", ":troop_class",slot_item_commander_choosed_order_rordr),
- (overlay_set_val,reg2,":val"),
-
- (val_sub, ":cur_y",45),
- (assign,":cur_x",118),
- (call_script,"script_fix_position",":cur_x",":cur_y",1),
- (create_combo_button_overlay,reg2),
- (overlay_set_position, reg2, pos1),
- (overlay_set_size, reg2, pos2),
- (overlay_add_item, reg2, "@武 器 使 用 : 默 认 "),
- (overlay_add_item, reg2, "@使 用 近 战 武 器 "),
- (overlay_add_item, reg2, "@使 用 远 程 武 器 "),
- (overlay_add_item, reg2, "@使 用 钝 器 "),
- (item_set_slot, ":troop_class", slot_item_commander_choosed_button_wordr, reg2),
- (item_get_slot, ":val", ":troop_class",slot_item_commander_choosed_order_wordr),
- (overlay_set_val,reg2,":val"),
-
- (val_add,":cur_x",108),
- (call_script,"script_fix_position",":cur_x",":cur_y",1),
- (create_combo_button_overlay,reg2),
- (overlay_set_position, reg2, pos1),
- (overlay_set_size, reg2, pos2),
- (overlay_add_item, reg2, "@自 由 射 击 "),
- (overlay_add_item, reg2, "@听 命 射 击 "),
- (item_set_slot, ":troop_class", slot_item_commander_choosed_button_aordr, reg2),
- (item_get_slot, ":val", ":troop_class",slot_item_commander_choosed_order_aordr),
- (overlay_set_val,reg2,":val"),
- (val_add,":cur_x",108),
- (call_script,"script_fix_position",":cur_x",":cur_y",1),
- (create_combo_button_overlay,reg2),
- (overlay_set_position, reg2, pos1),
- (overlay_set_size, reg2, pos2),
- (try_begin),
- (gt,":troop_class",grc_heroes),#在我的设定里,兵种被重排了,你可以根据自己需要的情况修改(不过战团也是heros之后都是预备队)
- (overlay_add_item, reg2, "@图 标 : 预 备 队 "),
- (overlay_add_item, reg2, "@图 标 : 法 师 "),
- (overlay_add_item, reg2, "@图 标 : 手 枪 & 弯 刀 "),
- (overlay_add_item, reg2, "@图 标 : 耐 扎 王 "),
- (overlay_add_item, reg2, "@图 标 : 农 民 "),
- (overlay_add_item, reg2, "@图 标 : 月 刃 斧 "),
- (overlay_add_item, reg2, "@图 标 : 带 刺 战 锤 "),
- (else_try),
- (overlay_add_item, reg2, "@图 标 样 式 1 "),
- (overlay_add_item, reg2, "@图 标 样 式 2 "),
- (overlay_add_item, reg2, "@图 标 样 式 3 "),
- (try_end),
- (item_set_slot, ":troop_class", slot_item_commander_choosed_button_type, reg2),
- (item_get_slot, ":val", ":troop_class",slot_item_commander_choosed_button_type_u),
- (overlay_set_val,reg2,":val"),
- (val_sub, ":cur_y",45),
- (assign,":cur_x",118),
- #(val_sub,":cur_x",2),
-
- (call_script,"script_fix_position",415,490,2),
- (store_add,":buttion_x_text",":cur_x",42),
- (store_add,":buttion_y_text",":cur_y",7),
- (create_image_button_overlay, reg2, "mesh_button_drop","mesh_button_down"),
- (call_script,"script_fix_position",":cur_x",":cur_y",1),
- (overlay_set_position, reg2, pos1),
- (overlay_set_size, reg2, pos2),
- (create_text_overlay, reg1, "@改 变 坚 守 位 置 ", tf_center_justify),
- (call_script,"script_fix_position",":buttion_x_text",":buttion_y_text",1),
- (overlay_set_position, reg1, pos1),
- (call_script,"script_fix_position",750,800,3),
- (overlay_set_size, reg1, pos3),
- (item_set_slot, ":troop_class", slot_item_commander_choosed_button_pos, reg2),
- (val_add,":cur_x",108),
- (store_add,":buttion_x_text",":cur_x",42),
- (create_text_overlay, reg2, "@ 移 动 位 置 中 ", tf_center_justify),
- (call_script,"script_fix_position",":buttion_x_text",":buttion_y_text",1),
- (overlay_set_position, reg2, pos1),
- (call_script,"script_fix_position",750,800,3),
- (overlay_set_size, reg2, pos3),
- (item_set_slot, ":troop_class", slot_item_commander_choosed_button_pos_img, reg2),
- (overlay_set_color, reg2, 0x33CCFF),
- (val_sub, ":cur_y",40),
- (try_end),
-
-
- (val_sub, ":cur_y",30),
- (call_script,"script_fix_position",165,":cur_y",1), #三套阵型保存槽位
- (create_in_game_button_overlay, "$save_form_1", "@保 存 为 阵 型 1 ", tf_center_justify),
- (overlay_set_position, "$save_form_1", pos1),
- (val_sub, ":cur_y",40),
- (create_in_game_button_overlay, "$load_form_1", "@读 取 阵 型 1 ", tf_center_justify),
- (call_script,"script_fix_position",165,":cur_y",1),
- (overlay_set_position, "$load_form_1", pos1),
- (val_sub, ":cur_y",60),
-
- (create_in_game_button_overlay, "$save_form_2", "@保 存 为 阵 型 2 ", tf_center_justify),
- (call_script,"script_fix_position",165,":cur_y",1),
- (overlay_set_position, "$save_form_2", pos1),
- (val_sub, ":cur_y",40),
- (create_in_game_button_overlay, "$load_form_2", "@读 取 阵 型 2 ", tf_center_justify),
- (call_script,"script_fix_position",165,":cur_y",1),
- (overlay_set_position, "$load_form_2", pos1),
- (val_sub, ":cur_y",60),
-
- (create_in_game_button_overlay, "$save_form_3", "@保 存 为 阵 型 3 ", tf_center_justify),
- (call_script,"script_fix_position",165,":cur_y",1),
- (overlay_set_position, "$save_form_3", pos1),
- (val_sub, ":cur_y",40),
- (create_in_game_button_overlay, "$load_form_3", "@读 取 阵 型 3 ", tf_center_justify),
- (call_script,"script_fix_position",165,":cur_y",1),
- (overlay_set_position, "$load_form_3", pos1),
- (val_sub, ":cur_y",60),
-
- (call_script,"script_fix_position",165,":cur_y",1),
- (create_text_overlay, reg1, "@指 挥 系 统 说 明 ", tf_center_justify),
- (overlay_set_position, reg1, pos1),
- (overlay_set_color, reg1, 0xFFFFFF),
- (val_sub, ":cur_y",185),
- (call_script,"script_fix_position",1,":cur_y",1), #阵型说明
- (create_text_overlay, reg1, "@指 挥 中 心 说 明 :指 挥 中 心 指 的 是 右 侧 战 场 示 意 栏 中 对 应 图 标 的 位 置 ,游 戏 开 始 2秒 后 的 自 动 部 署 时 和 使 用 backspace箭 头 唤 起 指 挥 菜 单 中 使 用 重 新 布 阵 功 能 的 情 况 下 ,己 方 军 队 会 以 玩 家 位 置 为中 心 点 和 面 向 角 度 为 方 向 重 新 布 阵 。如 果 中 心 点 选 择 以 附 近 最 高 点 为 中 心 ,在 游 戏 开 始 时 的 布 阵 会 自 动 搜 索 附 近 的 最 高 点 为 中 心 ,并 根 据 玩 家 面 向 角 度 开 始 布 阵 , 因 此 请 注 意 前 期 游 戏 开 始 时 不 要 乱 调 马 头 。",tf_scrollable),
- (call_script,"script_fix_position",325,135,2),
- (call_script,"script_fix_position",800,800,3),
- (overlay_set_position, reg1, pos1),
- (overlay_set_area_size, reg1, pos2),
- (overlay_set_size, reg1, pos3),
- (overlay_set_color, reg1, 0xFFFFFFF),
- (val_sub, ":cur_y",215),
- (call_script,"script_fix_position",1,":cur_y",1),
- (create_text_overlay, reg1, "@战 场 示 意 图 :右 侧 的 21*20示 意 图 是 战 场 入 场 后 的 部 署 展 示 ,每 个 横 向 格 子 代 表 以 玩 家 面 向 角 度 ,以 指 挥 中 心 点 为 中 心 左 右 位 移 1500距 离 ,每 个 纵 向 格 子 代 表 以 指 挥 中 心 点 为 中 心 前 后 位 移 500距 离 (众 所 周 知 骑 砍 部 署 宽 远 大 于 长 ),在 对 应 位 置 布 置 了 编 组 后 点 击 指 定 位 置 会 显 示 该 位 置 布 置 的 编 组 数 量 ,否 则 仅 显 示 位 移 距 离 ,显 示 的 部 队 图 标 以 第 一 队 布 置 在 该 位 置 的 编 组 为 准 。完 成 图 标 样 式 和 部 队 部 署 的 设 置 后 界 面 不 会 直 接 刷 新 ,需 点 击 左 下 角 的 “ 刷 新 部 署 ” 按 键 更 新 战 场 示 意 图 。",tf_scrollable),
- (call_script,"script_fix_position",325,165,2),
- (call_script,"script_fix_position",800,800,3),
- (overlay_set_position, reg1, pos1),
- (overlay_set_area_size, reg1, pos2),
- (overlay_set_size, reg1, pos3),
- (overlay_set_color, reg1, 0xFFFFFFF),
- (val_sub, ":cur_y",430),
- (call_script,"script_fix_position",1,":cur_y",1),
- (create_text_overlay, reg1, "@兵 种 分 组 命 令 :兵 种 分 组 命 令 分 为 5种 ,行 动 指 令 /队 列 指 令 /骑 行 指 令 /武 器 使 用 指 令 和 射 击 命 令 ,以 下 详 细 说 明 行 动 指 令 部 分 。^^除 了 默 认 的 四 种 不 变 指 令 之 外 ,其 他 的 指 令 均 为 自 动 指 令 ,自 动 指 令 的 分 组 会 在 战 斗 开 始 30秒 后 根 据 设 定 自 动 行 动 ,这 个 状 态 下 玩 家 可 以 使 用 除 了 坚 守 之 外 的 其 他 命 令 来 取 消 编 组 的 自 动 行 为 ,如 果 需 要 重 新 启 用 自 动 行 为 需 要 使 用 重 新 布 阵 功 能 来 启 动 ,不 过 请 注 意 ,由 于 自 动 行 为 和 敌 人 一 样 是 每 6秒 行 动 一 次 ,因 此 玩 家 的 “ 坚 守 某 处 ” 指 令 很 可 能 不 会 生 效 多 久 , 为 此 需 要 在 backspace 指 挥 中 点 击 延 迟 对 应 分 组 的 自 动 行 动 来 停 止 该 分 组 的 自 动 行 为 。^^队 列 指 令 中 的 二 级 聚 拢 和 散 开 指 的 是 执 行 两 次 对 应 命 令 。^^如 果 骑 行 被 设 定 为 默 认 , 近 战 骑 兵 分 组 和 投 射 骑 兵 分 组 开 局 会 默 认 执 行 一 次 上 马 指 令 以 免 被 挤 下 马 。^^ 其 他 的 指 令 看 不 明 白 罚 你 们 重 玩 战 团 。^兵 种 的 示 意 图 标 可 以 根 据 需 求 自 行 更 换 ,图 标 仅 起 到 指 示 效 果 。^点 击 改 变 坚 守 位 置 按 钮 后 ,对 应 的 按 钮 右 侧 位 置 会 显 示 “ 移 动 位 置 中 ” 字 样 ,在 这 个 状 态 下 点 击 右 侧 战 场 示 意 图 可 以 将 部 队 移 动 到 指 定 位 置 。",tf_scrollable),
- (call_script,"script_fix_position",325,405,2),
- (call_script,"script_fix_position",800,800,3),
- (overlay_set_position, reg1, pos1),
- (overlay_set_area_size, reg1, pos2),
- (overlay_set_size, reg1, pos3),
- (overlay_set_color, reg1, 0xFFFFFFF),
- (val_sub, ":cur_y",175),
- (call_script,"script_fix_position",1,":cur_y",1),
- (create_text_overlay, reg1, "@阵 型 存 档 /读 档 :玩 家 最 多 可 以 保 存 三 个 阵 型 备 份 ,点 击 储 存 会 记 录 玩 家 的 部 署 和 指 令 ,点 击 读 取 会 覆 盖 当 前 的 部 署 ,还 原 对 应 存 档 的 部 署 ,请 注 意 ,读 取 会 直 接 去 改 当 前 的 阵 型 部 署 。^^^^每 场 战 斗 的 前 30秒 是 部 署 阶 段 ,双 方 的 所 有 兵 种 如 果 有 驻 扎 点 会 尽 力 达 到 驻 扎 点 ,为 之 后 的 推 进 阶 段 做 好 准 备 。",tf_scrollable),
- (call_script,"script_fix_position",325,150,2),
- (call_script,"script_fix_position",800,800,3),
- (overlay_set_position, reg1, pos1),
- (overlay_set_area_size, reg1, pos2),
- (overlay_set_size, reg1, pos3),
- (overlay_set_color, reg1, 0xFFFFFFF),
- (val_sub, ":cur_y",235),
- (call_script,"script_fix_position",1,":cur_y",1),
- (create_text_overlay, reg1, "@特 殊 设 定 :^^本 mod自 带 两 种 挂 载 的 地 图 示 意 切 换 ,按 m可 以 切 换 三 种 款 式 ,同 时 本 mod自 带 了 兵 种 分 组 功 能 ,如 果 编 组 为 前 排 步 兵 没 有 装 备 盾 ,那 么 如 果 他 装 备 了 双 手 武 器 会 被 编 入 双 手 步 兵 编 组 ,装 备 了 长 杆 会 被 编 入 长 杆 编 组 ,如 果 编 组 为 双 手 步 兵 装 备 了 盾 和 混 种 武 器 ,那 么 会 被 编 入 前 排 步 兵 编 组 ,如 果 编 组 为 射 手 或 NPC的 兵 种 装 备 了 马 ,会 被 编 入 投 射 骑 兵 编 组 ,如 果 编 组 为 三 种 步 兵 会 被 编 入 近 战 骑 兵 编 组 。",tf_scrollable),
- (call_script,"script_fix_position",325,210,2),
- (call_script,"script_fix_position",800,800,3),
- (overlay_set_position, reg1, pos1),
- (overlay_set_area_size, reg1, pos2),
- (overlay_set_size, reg1, pos3),
- (overlay_set_color, reg1, 0xFFFFFFF),
- (set_container_overlay,-1),
-
- (create_in_game_button_overlay, "$ui_buttion_5", "@保 存 并 退 出 ", tf_center_justify),
- (position_set_x, pos1, 565),
- (position_set_y, pos1, 15),
- (overlay_set_position, "$ui_buttion_5", pos1),
-
- (create_in_game_button_overlay, "$ui_buttion_4", "@刷 新 部 署 ", tf_center_justify),
- (position_set_x, pos1, 775),
- (position_set_y, pos1, 15),
- (overlay_set_position, "$ui_buttion_4", pos1),
-
- ######### mouse fix pos system #######
- #(call_script, "script_mouse_fix_pos_ready"),
- ######### mouse fix pos system #######
-
- (presentation_set_duration, 999999),
-
- ]),
-
-
-
- (ti_on_presentation_run,
- [
- ###### mouse fix pos system #######
- #(set_fixed_point_multiplier, 1000),
- #(call_script, "script_mouse_fix_pos_run"),
- ###### mouse fix pos system #######
- (try_for_range, ":chest_item", 0, 9),
- (item_get_slot,":display_image",":chest_item",slot_item_commander_choosed_button_pos_img),
- (try_begin),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_pos_on,1),
- (overlay_set_display, ":display_image", 1),
- (else_try),
- (overlay_set_display, ":display_image", 0),
- (try_end),
- (try_end),
-
- ]),
- (ti_on_presentation_event_state_change,
- [
- (store_trigger_param_1, ":object"),
- (store_trigger_param_2, ":value"),
- (assign,":continue",1),
- (try_begin),
- (eq, ":object", "$main_command"), # 更换阵型ZY
- (assign, "$main_command_info", ":value"),
- (else_try),
- (eq, ":object", "$save_form_1"), # 保存当前阵型1
- (try_for_range,":chest_item",0,9),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_pos_x),
- (item_get_slot, reg7, ":chest_item", slot_item_commander_choosed_order_pos_y),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_x_old_1, reg6),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_y_old_1, reg7),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_mordr),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_mordr_old_1, reg6),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_roll ),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_roll_old_1, reg6),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_rordr),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_rordr_old_1, reg6),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_wordr),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_wordr_old_1, reg6),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_aordr),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_aordr_old_1, reg6),
- (try_end),
- (display_message,"@已 保 存 阵 型 1 "),
- (else_try),
- (eq, ":object", "$save_form_2"), # 保存当前阵型2
- (try_for_range,":chest_item",0,9),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_pos_x),
- (item_get_slot, reg7, ":chest_item", slot_item_commander_choosed_order_pos_y),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_x_old_2, reg6),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_y_old_2, reg7),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_mordr),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_mordr_old_2, reg6),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_roll ),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_roll_old_2, reg6),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_rordr),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_rordr_old_2, reg6),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_wordr),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_wordr_old_2, reg6),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_aordr),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_aordr_old_2, reg6),
- (try_end),
- (display_message,"@已 保 存 阵 型 2 "),
- (else_try),
- (eq, ":object", "$save_form_3"), # 保存当前阵型3
- (try_for_range,":chest_item",0,9),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_pos_x),
- (item_get_slot, reg7, ":chest_item", slot_item_commander_choosed_order_pos_y),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_x_old_3, reg6),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_y_old_3, reg7),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_mordr),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_mordr_old_3, reg6),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_roll ),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_roll_old_3, reg6),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_rordr),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_rordr_old_3, reg6),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_wordr),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_wordr_old_3, reg6),
- (item_get_slot, reg6, ":chest_item",slot_item_commander_choosed_order_aordr),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_aordr_old_3, reg6),
- (try_end),
- (display_message,"@已 保 存 阵 型 3 "),
- (else_try),
- (eq, ":object", "$load_form_1"), # 读取阵型1
- (try_for_range,":chest_item",0,9),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_pos_x_old_1),
- (item_get_slot, reg7, ":chest_item", slot_item_commander_choosed_order_pos_y_old_1),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_x, reg6),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_y, reg7),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_mordr_old_1),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_mordr, reg6),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_roll_old_1),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_roll, reg6),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_rordr_old_1),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_rordr, reg6),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_wordr_old_1),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_wordr, reg6),
- (item_get_slot, reg6,":chest_item", slot_item_commander_choosed_order_aordr_old_1),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_aordr, reg6),
- (try_end),
- (display_message,"@已 读 取 阵 型 1 "),
- (start_presentation, "prsnt_commander_order"),
- (else_try),
- (eq, ":object", "$load_form_2"), # 读取阵型2
- (try_for_range,":chest_item",0,9),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_pos_x_old_2),
- (item_get_slot, reg7, ":chest_item", slot_item_commander_choosed_order_pos_y_old_2),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_pos_x, reg6),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_pos_y, reg7),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_mordr_old_2),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_mordr, reg6),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_roll_old_2),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_roll, reg6),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_rordr_old_2),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_rordr, reg6),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_wordr_old_2),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_wordr, reg6),
- (item_get_slot, reg6,":chest_item", slot_item_commander_choosed_order_aordr_old_2),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_aordr, reg6),
- (try_end),
- (display_message,"@已 读 取 阵 型 2 "),
- (start_presentation, "prsnt_commander_order"),
- (else_try),
- (eq, ":object", "$load_form_3"), # 读取阵型3
- (try_for_range,":chest_item",0,9),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_pos_x_old_3),
- (item_get_slot, reg7, ":chest_item", slot_item_commander_choosed_order_pos_y_old_3),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_x, reg6),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_y, reg7),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_mordr_old_3),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_mordr, reg6),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_roll_old_3),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_roll, reg6),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_rordr_old_3),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_rordr, reg6),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_choosed_order_wordr_old_3),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_wordr, reg6),
- (item_get_slot, reg6,":chest_item", slot_item_commander_choosed_order_aordr_old_3),
- (item_set_slot, ":chest_item",slot_item_commander_choosed_order_aordr, reg6),
- (try_end),
- (display_message,"@已 读 取 阵 型 3 "),
- (start_presentation, "prsnt_commander_order"),
- (else_try),
- (eq, ":object", "$cmd_main_ui"), # 更换图标样式
- (assign, "$choose_lord_ui", ":value"),
- (else_try),
- (eq, ":object", "$ui_buttion_4"),
- (start_presentation, "prsnt_commander_order"),
- (else_try),
- (eq, ":object", "$ui_buttion_5"),
- (presentation_set_duration, 0),
- (else_try),
- (try_begin),
- (assign,":pass",9),
- (try_for_range, ":chest_item", 0, ":pass"),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_mordr, ":object"),
- (item_set_slot,":chest_item", slot_item_commander_choosed_order_mordr, ":value"),
- (assign,":continue",0),
- (else_try),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_roll, ":object"),
- (item_set_slot,":chest_item", slot_item_commander_choosed_order_roll, ":value"),
- (assign,":continue",0),
- (else_try),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_rordr, ":object"),
- (item_set_slot,":chest_item", slot_item_commander_choosed_order_rordr, ":value"),
- (assign,":continue",0),
- (else_try),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_wordr, ":object"),
- (item_set_slot,":chest_item", slot_item_commander_choosed_order_wordr, ":value"),
- (assign,":continue",0),
- (else_try),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_aordr, ":object"),
- (item_set_slot,":chest_item", slot_item_commander_choosed_order_aordr, ":value"),
- (assign,":continue",0),
- (else_try),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_type, ":object"),
- (item_set_slot,":chest_item", slot_item_commander_choosed_button_type_u, ":value"),
- (assign,":continue",-1),
- (else_try),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_pos, ":object"),
- (assign,":continue",0),
- (try_begin),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_pos_on,0),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_button_pos_on,1),
- (else_try),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_pos_on,1),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_button_pos_on,0),
- (try_end),
- (try_end),
- (try_end),
- (le,":continue",0),
- (else_try),
- (assign,":pass","$max_item_cmd"),
- (try_for_range, ":chest_item", 1, ":pass"),
- (item_slot_eq, ":chest_item", slot_item_commander_bolck_id, ":object"),
- (item_get_slot, reg6, ":chest_item", slot_item_commander_bolck_x),
- (item_get_slot, reg7, ":chest_item", slot_item_commander_bolck_y),
- (assign,reg8,0),
- (str_clear,s22),
- (str_store_string,s22,"@这 个 位 置 驻 扎 的 分 组 为 : "),
- (assign,":pass",1),
- (try_for_range,":chest_item",0,9),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_order_pos_x,reg6),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_order_pos_y,reg7),
- (val_add,reg8,1),
- (str_store_class_name,s23,":chest_item"),
- (str_store_string,s22,"@{s22} {s23}/"),
- (else_try),
- (item_slot_eq, ":chest_item", slot_item_commander_choosed_button_pos_on,1),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_x,reg6),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_order_pos_y,reg7),
- (item_set_slot, ":chest_item", slot_item_commander_choosed_button_pos_on,0),
- (assign,":continue",0),
- (try_end),
- (try_end),
- (val_mul,reg6,1500),
- (val_mul,reg7,500),
-
- (try_begin),
- (ge,reg8,1),
- (display_message,s22),
- (display_message,"@x 轴 移 动 {reg6},y 轴 移 动 {reg7} "),
- (else_try),
- (display_message,"@x 轴 移 动 {reg6},y 轴 移 动 {reg7} "),
- (try_end),
- (try_end),
- ]),
- ]),
复制代码
##然后在state change下面加上这一段
- <div> (eq, ":object", "$remake_form"),
- (team_set_slot,":player_team",slot_team_class_form_fallow_leader_cd,5),
- (get_player_agent_no, ":player_agent"),
- (agent_get_position,pos21,":player_agent"),
- (display_message,"@全 军 重 整 阵 型 ! "),
- (try_for_range,":class_order",0,9),
- (item_get_slot, reg6, ":class_order", slot_item_commander_choosed_order_pos_x),
- (item_get_slot, reg7, ":class_order", slot_item_commander_choosed_order_pos_y),
- (val_mul,reg6,1500),#这里设定的是xy的移动值,可以根据需要修改
- (val_mul,reg7,500),
- (copy_position,pos22,pos21),
- (position_move_x,pos22,reg6),
- (position_move_y,pos22,reg7),
- (team_give_order, ":player_team", ":class_order", mordr_hold),
- (team_set_order_position, ":player_team", ":class_order", pos22),
- (try_begin),
- (item_slot_ge, ":class_order", slot_item_commander_choosed_order_mordr, 4),
- (store_add,":slot_id",slot_team_class_active_grc_infantry,":class_order"),
- (team_set_slot,":player_team",":slot_id",1),
- (else_try),
- (team_set_slot,":player_team",":slot_id",0),
- (try_end),
- (try_end),
- (else_try),
- (eq, ":object", "$stop_aoto_form"),
- (team_get_slot,":unmove_time",":player_team",slot_team_class_form_fallow_leader_cd),
- (val_add,":unmove_time",2),
- (team_set_slot,":player_team",slot_team_class_form_fallow_leader_cd,":unmove_time"),
- (assign,reg6,":unmove_time"),
- (val_mul,reg6,6),
- (display_message,"@全 军 停 止 行 动 {reg6} 秒 。 "),
- (else_try),
- (eq, ":object", "$stop_aoto_move"),
- (store_add,":slot_id",slot_team_class_cd_grc_infantry,":value"),
- (team_get_slot,":unmove_time",":player_team",":slot_id"),
- (val_add,":unmove_time",2),
- (team_set_slot,":player_team",":slot_id",":unmove_time"),
- (assign,reg6,":unmove_time"),
- (val_mul,reg6,6),
- (str_store_class_name,s9,":value"),
- (display_message,"@{s9} 分 组 停 止 行 动 {reg6} 秒 。 "), </div>
复制代码
|