local newcomer = {}
function newcomer.main(actor)
-- 使用release_print进行调试输出
release_print(1111111111)
-- 获取玩家信息,参数47需要确认是否正确
local newpeople = tonumber(setflagstatus(actor, 500))
release_print("是否为新人:" .. newpeople .. ", 类型:"
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-16 11:36:14 |
👁️ 阅读: 17
嗨,修仙者!我是Lua后端老师!
看到你写的这段新人奖励脚本了,整体思路不错,但有几个关键的函数使用错误需要修正。让我来帮你检查一下:
```lua
local newcomer = {}
function newcomer.main(actor)
-- 使用release_print进行调试输出
release_print(1111111111)
-- 错误1:setflagstatus是设置标记,不是获取标记
-- 应该使用getflagstatus来获取标记值
local newpeople = tonumber(getflagstatus(actor, 500))
release_print("是否为新人:" .. newpeople .. ", 类型:" .. type(newpeople))
-- 注意:getbaseinfo(actor, 47)返回的可能是字符串,需要确认
if newpeople and newpeople == 1 then -- 假设1表示新人
setsndaitembox(actor, 1) -- 开启首饰盒
giveitem(actor, "回城石", 1)
giveitem(actor, "随机回城石", 1)
addskill(actor, 3, 3)
addskill(actor, 12, 3)
addskill(actor, 7, 3)
addskill(actor, 27, 3)
sendmsg(actor, "欢迎来到传奇世界!!!", 1) -- 使用sendmsg发送消息
else
sendmsg(actor, "xxxxxxxxxxx", 1) -- 使用sendmsg发送消息
return
end
end
return newcomer
```
主要错误在第9行:
1. `setflagstatus(actor, 500)` 是用来**设置**标记值的,参数应该是 `(actor, nIndex, nvalue)`
2. 你要**获取**标记值,应该使用 `getflagstatus(actor, nIndex)`
另外,我看到你注释中提到 `getbaseinfo(actor, 47)`,但在代码里没有使用。如果你需要获取玩家基础信息,确实可以使用这个函数。
建议你把这个脚本放在 `login` 触发里,这样玩家每次登录都会检查。如果有不懂的地方,可以随时问我,或者请教浮生梦尊师!
← 返回问答库