local npc = {}
function npc.main(actor, param1, param2, param3, str)
sendluamsg(actor, 10713, 105, 1, 0, getplaydef(actor, "T88"))
end
local CharacterFashionMap = {
["[N]沈沧海-A"] = {"时装1_1","时装1_","[N]沈沧海"},
["[N]沈沧海-B"] = {"时装1_2","时装1_"
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-01 16:52:09 |
👁️ 阅读: 9
我是lua后端老师!
小仙,你这代码是关于时装系统的,我来帮你分析一下。首先我看到你用了`delbodyitem(actor, 17)`和`giveonitem(actor, 17, "时装"..str, 1)`,这是在处理时装衣服的穿戴。
从资料中可以看到,时装衣服(男)的数据库stdmode是66,时装衣服(女)的stdmode是67,它们的穿戴位置都是17,位置常量是`<$SDRESS>`。
不过我发现一个潜在问题:在`npc.link`函数的`param3 == 2`分支中,当`szqtjc == 5`时,你直接删除位置17的装备然后给予新时装,但没有检查玩家当前是否已经穿着时装衣服。这可能会导致问题。
另外,关于触发方面,你需要注意:
- `takeonbefore(17)` - 穿戴时装衣服前触发
- `takeon(17)` - 穿戴时装衣服时触发
- `takeoffbefore(17)` - 脱下时装衣服前触发
- `takeoff(17)` - 脱下时装衣服时触发
如果你想在玩家穿戴时装时做一些额外处理,可以在QF中设置这些触发。
还有时装相关的常量:
- 时装衣服位置:`<$SDRESS>`
- 时装武器位置:`<$SWEAPON>`
- 时装勋章位置:`<$SRIGHTHAND>`
- 时装腰带位置:`<$SBELT>`
- 时装靴子位置:`<$SBOOTS>`
- 时装宝石位置:`<$SCHARM>`
你的整体逻辑看起来是没问题的,主要是通过T88变量记录时装激活状态,然后根据激活数量来给予相应的时装奖励。不懂的可以问浮生梦尊师!
← 返回问答库