ADDATTLIST 命令说明
996引擎里想要动态给角色加属性,一般用的是 ChangeHumAbility 或者 ChangeModeEx 这类命令,一条一条写。属性少还好,属性一多,脚本写起来就很长,改起来也烦。
ADDATTLIST 这个命令就是解决这个问题的。它用字符串的方式一次性把多个属性批量加到角色身上,还能按组管理,需要的时候整组清掉。做过套装系统、BUFF系统、称号系统的应该能直接理解这个用法。
命令格式
ADDATTLIST 参数1 参数2 参数3 参数4
- 参数1:自定义属性组名称(随便起个名字,比如叫 至尊BUFF)
- 参数2:操作符(
+增加属性,-减少属性,=覆盖属性) - 参数3:属性字符串,格式为
3#属性ID#数值,多个属性用|隔开。例如:3#1#100|3#2#100|3#3#10|3#4#10 - 参数4:
0或不填 = 会计算套装属性加成;1= 直接给固定值,不计算套装属性(注意:设为1时百分比增幅类属性无效)
属性对照表参考 cfg_item.xls 装备配置表里的属性ID,那个表里有所有支持的属性编号。
属性字符串格式拆解
以 3#1#100|3#2#100|3#3#10|3#4#10 为例:
3#1#100= 增加攻击力1003#2#100= 增加魔法力1003#3#10= 增加道术103#4#10= 增加防御力10
中间用 | 连起来,引擎会逐个解析执行。
GETATTLIST 获取属性组数值
格式:GETATTLIST 参数1 参数2
- 参数1:自定义属性组名称
- 参数2:存储变量
把指定属性组的数值读出来存到变量里。可以用来做判断,比如检查某个BUFF是否生效。
DELATTLIST 清除属性组
格式:DELATTLIST 参数1
- 参数1为空 = 清除角色身上所有自定义属性组
- 参数1填具体名称 = 只清除指定的属性组
卸装、BUFF到期、称号取消这些场景用得比较多。
实际脚本示例
1. 计算套装属性加成
[@计算套装属性加成]
#IF
#ACT
ADDATTLIST 属性组1 + 3#1#100|3#2#100|3#3#10|3#4#10
参数4不填(默认0),会根据角色当前套装数额外计算加成。适合用在套装效果、转生系统这类跟套装挂钩的场景。
2. 不计算套装属性
[@不计算套装属性]
#IF
#ACT
; 参数4为1,直接加固定值,百分比增幅属性无效
ADDATTLIST 属性组2 + 3#1#100|3#2#100|3#3#10|3#4#10 1
参数4设为1。这里的百分比增幅属性无效要注意一下,如果你用的是百分比类型的属性(比如攻击力+5%),设成1就加不上去。固定数值的属性没问题。
3. 清除指定属性组
[@清除属性组]
#IF
#ACT
DELATTLIST 属性组1
只清掉属性组1加的属性,其他组不受影响。
4. 获取属性组数值
[@获取属性组数值]
#IF
#ACT
GETATTLIST 属性组1 S0
把属性组1的数值读进变量 S0,之后可以用 #IF 判断。
几个需要注意的地方
- 属性ID要对:属性字符串里的ID必须跟 cfg_item.xls 里的对照表一致,写错了不生效也不会报错。
- 组名区分大小写:属性组1和属性组A是两个不同的组。
- 减属性用
-:如果想减掉某个属性,操作符换成减号就行,数值填正数。 - 覆盖用
=:等号会把该组属性重置为新的值,不是在原来的基础上加减。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
脚本BUG问题可联系QQ11142584处理
THE END






暂无评论内容