-- 获取装备的damaged变量值
local damaged = getstr(itemObj, "damaged")
-- 如果damaged变量存在且值为"破损",则阻止穿戴
if damaged and damaged == "破损" then
sendmsg(actor, 9, "装备已破损无法穿戴!")
return false
end 没用还是可以穿戴上 什么原因
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-03-05 17:27:30 |
👁️ 阅读: 15
在 `takeonbeforeex` 触发中,`getstr` 函数的第一个参数需要是玩家对象(actor),而不是物品对象(itemObj)。要获取物品的保存型变量,正确的用法是 `getstr(actor, varName)`,其中 `actor` 是玩家对象。对于物品变量,`varName` 的格式需要是 `物品对象_变量名`。
以下是修正后的代码示例:
```lua
-- 穿戴任意装备前触发
function takeonbeforeex(actor, itemObj, pos)
-- 获取装备的damaged变量值,格式为:物品对象_变量名
local damaged = getstr(actor, itemObj .. "_damaged")
-- 如果damaged变量存在且值为"破损",则阻止穿戴
if damaged and damaged == "破损" then
sendmsg(actor, 9, "装备已破损无法穿戴!")
return false
end
return true
end
```
这样修改后,当装备的 `damaged` 变量值为“破损”时,就会正确阻止穿戴。
在 `takeonbeforeex` 触发中,`getstr` 函数的第一个参数需要是玩家对象(actor),而不是物品对象(itemObj)。要获取物品的保存型变量,正确的用法是 `getstr(actor, varName)`,其中 `actor` 是玩家对象。对于物品变量,`varName` 的格式需要是 `物品对象_变量名`。
以下是修正后的代码示例:
```lua
-- 穿戴任意装备前触发
function takeonbeforeex(actor, itemObj, pos)
-- 获取装备的damaged变量值,格式为:物品对象_变量名
local damaged = getstr(actor, itemObj .. "_damaged")
-- 如果damaged变量存在且值为"破损",则阻止穿戴
if damaged and damaged == "破损" then
sendmsg(actor, 9, "装备已破损无法穿戴!")
return false
end
return true
end
```
这样修改后,当装备的 `damaged` 变量值为“破损”时,就会正确阻止穿戴。
← 返回问答库