详细介绍一下
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-06-08 18:24:46 |
👁️ 阅读: 27
我是lua后端老师!
`getitemaddvalue` 是996引擎中用于获取物品附加属性值的核心函数,与 `setitemaddvalue` 配合使用。
```lua
-- 函数格式
getitemaddvalue(actor, item, type, position, model)
-- 参数说明:
-- actor: 玩家对象(字符串ID)
-- item: 物品对象
-- type: 类型(1, 2, 3)
-- position: 位置索引
-- model: 当type=1时,0=附加属性;1=基础属性+附加属性(引擎64_23.10.24新增)
-- 返回值:对应位置的属性值,如果物品对象获取失败返回-1
```
**type=1 对应位置定义(范围:0~49):**
0. AC(防御)
1. MAC(魔防)
2. DC(攻击)
3. MC(魔法)
4. SC(道术)
5. 幸运
6. 准确
7. 敏捷
8. 攻击速度
9. 魔法躲避
10. 毒物躲避
11. 体力恢复
12. 魔法恢复
13. 中毒恢复
15. 沙巴克武器升级标记
19. 是否有自定义名称
20. 物理伤害减少
21. 魔法伤害减少
22. 忽视目标防御
23. 所有伤害反弹
24. 人物体力增加
25. 人物魔力增加
26. 增加目标爆率
27. 神 圣
28. 强 度
29. 诅 咒
30. 暴击率
31. 暴击伤害
32. 攻击伤害
33. 神秘装备是否被穿戴过(祝福罐、聚灵珠等表示是否重置当前持久为0)
34~39. 宠物相关
40~44. 脚本使用
45. 投保次数
46. 限时道具激活方式
47~48. 背包特效与装备内观特效
49. 拍卖行相关
**type=2 对应位置定义(范围:0~19):**
0. 记录剩余时间(秒),到期自动销毁(仅对穿着装备/称号有效)
1. 物品规则(位运算):
- 1: 禁止扔
- 2: 禁止交易
- 4: 禁止存
- 8: 禁止修
- 16: 禁止出售
- 32: 禁止爆出
- 64: 丢弃消失
- 128: 死亡必爆
- 256: 禁止拍卖
- 512: 禁止挑战
- 1024: 爆出消失
2. 物品名字颜色
3. 装备升级次数或星星数量
4~6. 装备初始时附带的特殊属性(Word+Word,共6个)
7~17. 引擎使用
18. 装备自定义属性标记(1代表有自定义属性)
19. 装备标记(脚本使用,32个标记,位运算,注意使用无符号转换)
**type=3 对应位置定义(范围:0~31):**
装备标记(脚本使用,32个标记)。
**注意:** 设置时只识别二进制最低位。例如:设置值=5(二进制101)时,只取最低位1,相当于设置值=1。
**示例用法:**
```lua
local player = "玩家ID"
local weapon = linkbodyitem(player, 1) -- 获取武器对象
if weapon then
-- 获取武器的攻击力(type=1, position=2)
local dcValue = getitemaddvalue(player, weapon, 1, 2, 0)
release_print("武器攻击力附加值为:" .. tostring(dcValue))
-- 获取物品规则标记
local ruleFlag = getitemaddvalue(player, weapon, 2, 1, 0)
if bit.band(ruleFlag, 1) == 1 then
release_print("该武器禁止丢弃")
end
else
release_print("未找到武器")
end
```
**重要提示:**
- 使用前请确保物品对象有效(通过 `linkbodyitem`、`linkpickupitem` 等获取)。
- 对于 type=3 的标记操作,建议配合位运算函数(如 `bit.band`、`bit.bor`)使用。
- 获取属性后通常需要根据业务逻辑处理,如判断装备是否可交易、计算总属性等。
如果还有不明白的地方,随时问我哦小仙!
← 返回问答库