“战斗中的技能与事件指令说明”的版本间的差异

来自部落与弯刀Wiki

(创建页面,内容为“===二、专门用于战斗场景的脚本命令条如下:=== 1. 对话框:同上 2. 选择框:SELECT同上 3. 过场字幕:SCREEN同上 4. 屏幕震动…”)
 
第1行: 第1行:
===二、专门用于战斗场景的脚本命令条如下:===
+
===战斗中的脚本指令列表===
1. 对话框:同上
+
{| class="wikitable"
 +
|+
 +
!
 +
!
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|}
 +
 
 +
 
 +
对话框:同上
  
 
2. 选择框:SELECT同上
 
2. 选择框:SELECT同上
第150行: 第166行:
  
 
44. 显示手动结束战斗按钮:SHOW_BATTLEOVER_BTN*1
 
44. 显示手动结束战斗按钮:SHOW_BATTLEOVER_BTN*1
 +
 +
 +
 +
专门用于战斗场景中条件查询方法
 +
 +
3. [%result_code%]:战斗中各种事件脚本的查询结果(如:选择框的结果)
 +
 +
4. [%bs_time%]:当前战斗进行的时间(整秒数)
 +
 +
5. [%rnd:A,B%]:返回一个每次都不相同的大于等于A小于等于B的随机值
 +
 +
6. [%last_rnd%]:返回上一次[%rnd:A,B%]查询到的结果
 +
 +
7. [%const_rnd%]:返回一个执行周期内相同的0-100的随机值
 +
 +
8. [%last_rnd_pos_x%]:返回上一个随机位置结果的X
 +
 +
9. [%last_rnd_pos_y%]:返回上一个随机位置结果的Y
 +
 +
10. [%last_rnd_pos%]:返回上一个随机位置坐标
 +
 +
11. [%last_skill%]:返回上一个使用技能的ID
 +
 +
12. [%this_type%]:当前查询对象的类型 0英雄 1小兵
 +
 +
13. [%aim_type%]:当前查询目标对象的类型 0英雄 1小兵
 +
 +
14. [%this_level%]:当前查询对象的等级
 +
 +
15. [%aim_level%]:当前查询目标对象的等级
 +
 +
16. [%this_hp_pct%]:当前查询对象的HP百分比
 +
 +
17. [%aim_hp_pct%]:当前查询目标对象的HP百分比
 +
 +
18. [%this_mp_pct%]:当前查询对象的MP百分比
 +
 +
19. [%aim_mp_pct%]:当前查询目标对象的MP百分比
 +
 +
20. [%friends_num%]:我方剩余人数
 +
 +
21. [%enemy_num%]:敌方剩余人数
 +
 +
22. [%hit_enemy%]:判断当前命中的目标是否caster的敌人。敌方1 友方0
 +
 +
23. [%battle_res%]:当前当前战斗结果
 +
 +
24. [%skill_lv:SKILL_ID%]:查询当前source对象指定技能ID的等级,无则返回0
 +
 +
25. [%base_atk%]:当前技能等级所对应的基础物理攻击力
 +
 +
26. [%base_magic_atk%]:当前技能等级所对应的基础魔法攻击力
 +
 +
27. [%standard_magic_atk%]:当前技能等级所对应的魔法最终攻击力
 +
 +
28. [%this_buff:BUFF_ID%]:查询当前source对象指定BUFF_ID的当前层数
 +
 +
29. [%aim_buff:BUFF_ID%]:查询当前target对象指定BUFF_ID的当前层数
 +
 +
30. [%stat:STAT_FIELD%]:查询当前source指定属性字段的当前数值
 +
 +
31. [%aim_stat:STAT_FIELD%]:查询当前target对象指定属性字段的当前数值
 +
 +
32. [%this_weapon%]:当前查询source对象的武器类型
 +
 +
33. [%aim_weapon%]:当前查询target对象的武器类型
 +
 +
34. [%charge_val%]:本次伤害的蓄力值(0~100)
 +
 +
35. [%cmd_argval%]:当前命令行的参数值
 +
 +
36. [%cmd_argval_next%]:返回当前命令行参数值后立即加1
 +
 +
37. [%rpt_index%]:当前命令行所在循环的INDEX值
 +
 +
38. [%find_tag:TAGINFO%]:执行一次目标单位查找,TAGINFO为目标单位信息,参数格式见7.4章说明,当查询到合适目标时返回1否则返回0
 +
 +
39. [%add_find_tag:TAGINFO%]:从已查找单位列表中增加目标单位,始终返回1,TAGINFO同上
 +
 +
40. [%rm_find_tag:TAGINFO%]:从已查找单位列表中排除目标单位,始终返回1,TAGINFO同上
 +
 +
41. [%reset_find_list%]:重置当前查找列表,始终返回1
 +
 +
42. [%rnd_enum:PROB_A,RES_A:PROB_B,RES_B:PROB_C,RES_C[:...]%]:随机枚举值,根据所有项的概率分布返回其中一个项的RES值。比如[%rnd_enum:25,1:40,2:35,3%]表示有25%的概率返回”1”,40%的概率返回”2”,35%的概率返回”3”
 +
 +
43. [%dg_sp_state:ID%]:返回当前地城中ControlID为ID的刷新单位的当前状态 0:未刷新 1:已刷新 -1:已击败
 +
 +
44. [%dg_unitnum:TAG%]:返回当前地城中剩余未击败并且Tag为TAG的地城刷新单位的个数
 +
 +
45. [%fd_sum%]:当前查询source对象的友军倒下计数器值
 +
 +
46. [%ed_sum%]:当前查询source对象的敌军倒下计数器值
 +
 +
47. [%fd_mod:MOD_VAL%]:当前查询source对象的友军倒下计数器值与MOD_VAL取余后的值
 +
 +
48. [%ed_mod:MOD_VAL%]:当前查询source对象的敌军倒下计数器值与MOD_VAL取余后的值
 +
 +
49. [%dg_int_val:KEY%]:返回指定KEY的自定义地城整形字段的值
 +
 +
50. [%emitter_pos:ID,MIN-MAX%]:返回指定指定ID的发射器中心位置,距其中心MIN至MAX的一个随机位置,并记录入last_rnd_pos
 +
 +
51. [%unit_timer:UNIT_ID,TIMER_ID%]:返回指定UNIT_ID单位身上所附加的ID为TIMER_ID的计时器剩余时间
 +
 +
52. [%this_intvar:ID%]:返回当前查询source对象身上的自定义整形数值(技能指令set_unit_intvar设置)
 +
 +
53. [%aim_intvar:ID%]:返回当前查询target对象身上的自定义整形数值(技能指令set_unit_intvar设置)
 +
 +
54. [%defeat_hit%]:查询当前命令是否是在击杀单位指令中执行的并且目标单位已被击杀(0:否 1:是) 注意:只能在技能中的命中命令指令中生效
 +
 +
55. [%eft_count:TAG%]:查询当前场上指定TAG的特效体数量 '''注意:仅支持查询由caster本单位创建的特效体'''
 +
 +
56. [%this_id%]:当前查询对象的单位ID
 +
 +
57. [%aim_id%]:当前查询目标对象的单位ID
 +
 +
58. [%hit_dmg_val%]:查询当前施法中对目标造成的实际伤害或治疗的实际数值 注意:只能在命中指令中生效
 +
 +
59. [%stealth_hit%]:查询当前技能或伤害是否是在隐身状态下进行的 0否1是
 +
 +
60. [%hit_count%]:查询当前技能命中判定生效的次数
 +
 +
61.
 +
 +
 +
伤害表达式格式
 +
 +
4. 伤害值表达式由形如 key1:value1;key2:value2;...keyN:valueN这样的格式键值组合组成。
 +
 +
伤害值表达式可通过“[&expression&]”的格式嵌入到一些数值表里(如BUFF列表的状态值等);
 +
 +
目前可支持的键值有:
 +
 +
a. type 伤害类型:0:普通近战攻击 1:普通远程攻击 2:技能伤害 3:治疗 4:回蓝
 +
 +
b. dmg 物理伤害数值,值为伤害值公式
 +
 +
c. t_dmg 真实伤害数值(所有治疗效果都为此值),值为伤害值公式
 +
 +
d. hit 命中参数(-1000~1000) 当不能闪避时为-1000
 +
 +
e. blk 被招架参数(-1000~1000) 当不能被招架时为-1000
 +
 +
f. cri 暴击参数(-1000~1000) 当不能暴击时为-1000
 +
 +
g. act 是否播放受击动作 1是 0否
 +
 +
h. eft 受击特效ID
 +
 +
i. trig 是否触发伤害效果(如反伤等)
 +
 +
j. attack_type 指定伤害的武器攻击类型
 +
 +
k. buff 受到该伤害时附带的BUFF效果, 格式为 BuffID,[time],[overlay],两个参数为可选参数,分别表示时间及层数
 +
 +
伤害值公式仅支持标准数学公式,包含以下运算符号:+-*/^%(),可嵌入一些预定义字段,所有预定义字段写在形如[%cmd%]的格式内,目前支持的预定义字段有:
 +
 +
[%rnd:min_val,max_val%]:随机一个大于等于min_val,小于等于max_val的整数
 +
 +
[%field%]:field表示任意一个定义在角色属性字段中的数值

2020年1月26日 (日) 17:24的版本

战斗中的脚本指令列表


对话框:同上

2. 选择框:SELECT同上

3. 过场字幕:SCREEN同上

4. 屏幕震动:SHAKE_SCREEN同上

5. 延时等待:DELAY同上

6. 跳转事件:EVENT同上

7. 暂停游戏:PAUSE*1 暂停当前游戏场景

8. 继续游戏:RESUME*1 继续当前游戏场景

9. 设置天气:SET_WEATHER*同上

10. BB对话框:BB*同上

11. 战斗人物对话泡泡:B_TALK*对象ID#随机文字段落1#随机文字段落2#随机文字段落3#...#随机文字段落N

对象ID通常为角色或单位的ID,当目标类型为地城刷新对象时,对象ID为该单位的控制ID

对象ID特殊值:

RND_ENEMY_UNIT:任意一个敌方小兵单位

RND_FRIEND_UNIT:任意我方小兵单位

12. 敌方单位增援:ENEMY_REINF*小兵列表命令(见小兵列表格式)

13. 我方单位增援:FRIEND_REINF*小兵列表命令(见小兵列表格式)

14. 下达撤退指令:CMD_RETREAT*0为我方全体1为敌方全体

15. 立即强制结束战斗:BATTLE_OVER*0为胜利 1为失败

16. 全灭目标:KILL_ALL*0为我方 1:为敌方

17. 主角不死:UNDEAD_PLAYER*1

18. 所有单位不死:UNDEAD_ALL*0:仅我方 1:敌我双方

19. *全体单位停止活动:STOP_ALL*0:恢复 1:停止

20. *控制单位移动:MOVE*单位ID(同上)#路径坐标表(坐标1x,y|坐标2x,y|...|坐标Nx,y)#移动速度

21. 场景使用技能:EXEC_SKILL*释放者ID#技能ID,技能等级(默认1级)#目标坐标的x,y#坐标参数1的x,y(所有坐标均为TILEDMAP的地图坐标)

释放者ID为目标的识别ID,可以有以下特殊值

PLAYER:玩家  GM_A:进攻方的预设对象 GM_B:防守方的预设对象

THIS:指令发起者(一般返回发射器自身)

EMITTER=ID:指定ID的地城发射器,可为this表示当前地城发射器

RND_FRIEND_UNIT:随机友方单位 RND_ENEMY_UNIT:随机敌方单位

当释放者为预设对象时,坐标参数1代表技能释放的其起始坐标

22. (地城)刷新已定义的地城单位:DUNGEON_SPAWN*控制ID#是否无视状态(当该单位已被击败时仍可刷新 0:否[默认] 1是)

23. (地城)设置地城专用触发器的状态:SET_DUNGEON_TS*控制ID#状态(0正常 -1禁用)

24. (地城)结束地城:DUNGEON_OVER*结果代码(0:退出 1:胜利 2:失败)

25. 设置障碍区域的状态:SET_AREA*控制ID#状态(0正常 -1禁用)

26. 设置物件的显示状态:SET_WIDGET*控制ID#状态(0正常 -1隐藏)

27. 设置地城传送器状态:SET_TP*控制ID#状态(0正常 -1禁用)

28. 设置地城发射器状态:SET_EMITTER*控制ID#状态(0正常 -1禁用)

29. 设置玩家角色的模型:SET_PLAYER_MODEL*单位模型描述信息

30. 设置玩家角色的当前技能:SET_PLAYER_SKILL*技能ID1,等级|技能ID2,等级|...|技能ID n,等级 (最多4个技能)

31. 直接执行技能指令:SKILL_CMD*技能指令内容

32. 设置地城自定义整形字段:SET_DG_INTVAR*字段ID#设置值#设置模式(可选 1为增加模式(原值加上设置值) 其他为直接赋值模式)

33. 设置大地图镜头参数:SET_CAMERA*跟随模式#参数

目前支持的镜头跟随模式及参数含义

0:跟随主角,无参数(默认)

1:跟随指定目标,参数为目标单位的对象ID

2:战场坐标位置,参数为坐标X,Y

34. 命令一个目标攻击另外一个敌方目标:ATTACK*攻击发起者对象ID#攻击目标对象ID

35. 为一个单位指定控制命令队列:CMD_QUEUE*目标对象ID#命令脚本的事件ID

其中,战斗中命令队列的设置格式为(时间参数表示该秒数后执行下一条):

指令类型1[,时间参数]:指令参数

指令类型2[,时间参数]:指令参数

...

当前支持的队列指令类型有:

skill_cmd:执行技能指令:参数为一行技能指令

use_skill:使用技能:技能ID,技能等级#目标单位对象参数#目标位置参数

event:执行战斗事件:战斗中事件ID#执行条件(可选)

move_to:移动至指定点:目标坐标参数#速度参数(该指令中时间参数无效,只有当单位正确到达目标后执行下一条)

set_dir:设置单位方向:参数为方向

keep_act:保持一个动作:动作ID(为空时表示待机动作)#循环次数(小于等于0为无限循环 默认1)#单次动作时间(<=0为始终保持 默认0)  注:此命令中时间参数无效,需等待动作循环执行结束为止,当无限循环时只有对该单位下达新指令方可结束动作保持

注意,以上命令中所有的坐标参数当为2参数时表示目标位置的x,y地图坐标,当3参数时第三个参数表示位置类型(0:地图坐标 1:战场坐标)

36. 设置一个单位的当前策略:SET_POLICY*目标对象ID#主策略类型#参数1#位置参数

当前支持的主策略类型有:

0:强攻(参数为唤醒半径,小于等于0为无限距离)

1:固守(参数为守卫半径)  

2:跟随(参数为跟随半径)

3:攻略目标点


37. 设置一个单位身上的计时器:SET_UNIT_TIMER*目标对象ID#计时器ID#时间参数(<=0时为关闭 只有当单位身上挂有”on_timer”触发器事件时有效)

38. 立即释放出当前吟唱中的技能:FINISH_CAST*目标对象ID#目标技能ID(只有当目标正在吟唱该技能时生效)

39. 设置一个单位身上的基础属性(最终属性=基础属性+BUFF等附加属性):SET_UNIT_STAT*目标对象ID#属性信息表(格式为:字段1,值1|字段2.,值2|...)

40. 替换单位的当前技能表:REPLACE_SKILLS*目标对象ID#技能ID1,等级|技能ID2,等级|...|技能ID n,等级 (一次最多4个技能,当等级为0时表示移除该技能)

41. 替换单位的地城技能:REPLACE_DGSKILL*目标对象ID#地城技能ID,等级(技能ID为空或者null表示关闭该角色地城技能)

42. 播放一条战场消息:BATTLE_MSG*消息内容#消息类型(0:普通 1:警告)

43. 设置战斗结束检查器工作状态:SET_BATTLE_CHECKER*工作状态(0:关闭 1:开启)

44. 显示手动结束战斗按钮:SHOW_BATTLEOVER_BTN*1


专门用于战斗场景中条件查询方法

3. [%result_code%]:战斗中各种事件脚本的查询结果(如:选择框的结果)

4. [%bs_time%]:当前战斗进行的时间(整秒数)

5. [%rnd:A,B%]:返回一个每次都不相同的大于等于A小于等于B的随机值

6. [%last_rnd%]:返回上一次[%rnd:A,B%]查询到的结果

7. [%const_rnd%]:返回一个执行周期内相同的0-100的随机值

8. [%last_rnd_pos_x%]:返回上一个随机位置结果的X

9. [%last_rnd_pos_y%]:返回上一个随机位置结果的Y

10. [%last_rnd_pos%]:返回上一个随机位置坐标

11. [%last_skill%]:返回上一个使用技能的ID

12. [%this_type%]:当前查询对象的类型 0英雄 1小兵

13. [%aim_type%]:当前查询目标对象的类型 0英雄 1小兵

14. [%this_level%]:当前查询对象的等级

15. [%aim_level%]:当前查询目标对象的等级

16. [%this_hp_pct%]:当前查询对象的HP百分比

17. [%aim_hp_pct%]:当前查询目标对象的HP百分比

18. [%this_mp_pct%]:当前查询对象的MP百分比

19. [%aim_mp_pct%]:当前查询目标对象的MP百分比

20. [%friends_num%]:我方剩余人数

21. [%enemy_num%]:敌方剩余人数

22. [%hit_enemy%]:判断当前命中的目标是否caster的敌人。敌方1 友方0

23. [%battle_res%]:当前当前战斗结果

24. [%skill_lv:SKILL_ID%]:查询当前source对象指定技能ID的等级,无则返回0

25. [%base_atk%]:当前技能等级所对应的基础物理攻击力

26. [%base_magic_atk%]:当前技能等级所对应的基础魔法攻击力

27. [%standard_magic_atk%]:当前技能等级所对应的魔法最终攻击力

28. [%this_buff:BUFF_ID%]:查询当前source对象指定BUFF_ID的当前层数

29. [%aim_buff:BUFF_ID%]:查询当前target对象指定BUFF_ID的当前层数

30. [%stat:STAT_FIELD%]:查询当前source指定属性字段的当前数值

31. [%aim_stat:STAT_FIELD%]:查询当前target对象指定属性字段的当前数值

32. [%this_weapon%]:当前查询source对象的武器类型

33. [%aim_weapon%]:当前查询target对象的武器类型

34. [%charge_val%]:本次伤害的蓄力值(0~100)

35. [%cmd_argval%]:当前命令行的参数值

36. [%cmd_argval_next%]:返回当前命令行参数值后立即加1

37. [%rpt_index%]:当前命令行所在循环的INDEX值

38. [%find_tag:TAGINFO%]:执行一次目标单位查找,TAGINFO为目标单位信息,参数格式见7.4章说明,当查询到合适目标时返回1否则返回0

39. [%add_find_tag:TAGINFO%]:从已查找单位列表中增加目标单位,始终返回1,TAGINFO同上

40. [%rm_find_tag:TAGINFO%]:从已查找单位列表中排除目标单位,始终返回1,TAGINFO同上

41. [%reset_find_list%]:重置当前查找列表,始终返回1

42. [%rnd_enum:PROB_A,RES_A:PROB_B,RES_B:PROB_C,RES_C[:...]%]:随机枚举值,根据所有项的概率分布返回其中一个项的RES值。比如[%rnd_enum:25,1:40,2:35,3%]表示有25%的概率返回”1”,40%的概率返回”2”,35%的概率返回”3”

43. [%dg_sp_state:ID%]:返回当前地城中ControlID为ID的刷新单位的当前状态 0:未刷新 1:已刷新 -1:已击败

44. [%dg_unitnum:TAG%]:返回当前地城中剩余未击败并且Tag为TAG的地城刷新单位的个数

45. [%fd_sum%]:当前查询source对象的友军倒下计数器值

46. [%ed_sum%]:当前查询source对象的敌军倒下计数器值

47. [%fd_mod:MOD_VAL%]:当前查询source对象的友军倒下计数器值与MOD_VAL取余后的值

48. [%ed_mod:MOD_VAL%]:当前查询source对象的敌军倒下计数器值与MOD_VAL取余后的值

49. [%dg_int_val:KEY%]:返回指定KEY的自定义地城整形字段的值

50. [%emitter_pos:ID,MIN-MAX%]:返回指定指定ID的发射器中心位置,距其中心MIN至MAX的一个随机位置,并记录入last_rnd_pos

51. [%unit_timer:UNIT_ID,TIMER_ID%]:返回指定UNIT_ID单位身上所附加的ID为TIMER_ID的计时器剩余时间

52. [%this_intvar:ID%]:返回当前查询source对象身上的自定义整形数值(技能指令set_unit_intvar设置)

53. [%aim_intvar:ID%]:返回当前查询target对象身上的自定义整形数值(技能指令set_unit_intvar设置)

54. [%defeat_hit%]:查询当前命令是否是在击杀单位指令中执行的并且目标单位已被击杀(0:否 1:是) 注意:只能在技能中的命中命令指令中生效

55. [%eft_count:TAG%]:查询当前场上指定TAG的特效体数量 注意:仅支持查询由caster本单位创建的特效体

56. [%this_id%]:当前查询对象的单位ID

57. [%aim_id%]:当前查询目标对象的单位ID

58. [%hit_dmg_val%]:查询当前施法中对目标造成的实际伤害或治疗的实际数值 注意:只能在命中指令中生效

59. [%stealth_hit%]:查询当前技能或伤害是否是在隐身状态下进行的 0否1是

60. [%hit_count%]:查询当前技能命中判定生效的次数

61.


伤害表达式格式

4. 伤害值表达式由形如 key1:value1;key2:value2;...keyN:valueN这样的格式键值组合组成。

伤害值表达式可通过“[&expression&]”的格式嵌入到一些数值表里(如BUFF列表的状态值等);

目前可支持的键值有:

a. type 伤害类型:0:普通近战攻击 1:普通远程攻击 2:技能伤害 3:治疗 4:回蓝

b. dmg 物理伤害数值,值为伤害值公式

c. t_dmg 真实伤害数值(所有治疗效果都为此值),值为伤害值公式

d. hit 命中参数(-1000~1000) 当不能闪避时为-1000

e. blk 被招架参数(-1000~1000) 当不能被招架时为-1000

f. cri 暴击参数(-1000~1000) 当不能暴击时为-1000

g. act 是否播放受击动作 1是 0否

h. eft 受击特效ID

i. trig 是否触发伤害效果(如反伤等)

j. attack_type 指定伤害的武器攻击类型

k. buff 受到该伤害时附带的BUFF效果, 格式为 BuffID,[time],[overlay],两个参数为可选参数,分别表示时间及层数

伤害值公式仅支持标准数学公式,包含以下运算符号:+-*/^%(),可嵌入一些预定义字段,所有预定义字段写在形如[%cmd%]的格式内,目前支持的预定义字段有:

[%rnd:min_val,max_val%]:随机一个大于等于min_val,小于等于max_val的整数

[%field%]:field表示任意一个定义在角色属性字段中的数值