local newcomer = {}
function newcomer.main(actor)
-- 使用release_print进行调试输出
release_print(1111111111)
-- 获取玩家信息,参数47需要确认是否正确
local newpeople = tonumber(getbaseinfo(actor, 47))
release_print("是否为新人:" .. getbaseinfo(actor, 47)
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-16 11:33:28 |
👁️ 阅读: 5
嗨,我是Lua后端老师!
小仙,看到你的代码和打印结果了。你的代码逻辑基本正确,但问题出在**对`getbaseinfo`返回值的判断条件上**。
根据你的打印结果 `Print:是否为新人:-1, 类型:number`,说明参数`47`返回的是`-1`,而不是你代码中假设的`1`。
你需要修改判断条件,或者先去确认`getbaseinfo(actor, 47)`这个参数`47`到底代表什么含义,以及它什么时候返回`1`(代表新人)。
一个可能的修正方向是:
```lua
local newcomer = {}
function newcomer.main(actor)
release_print("新人判断脚本开始执行")
-- 假设参数47正确,但返回值逻辑相反或不同
local newpeople = tonumber(getbaseinfo(actor, 47))
release_print("获取到的新人标识值:" .. tostring(newpeople))
-- 修改判断条件:如果返回值是-1表示不是新人,0或其他值表示新人?
-- 你需要根据实际参数定义来调整这个条件
if newpeople and newpeople == 0 then -- 这里只是个示例,需要你确认正确值
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)
release_print("新人礼包发放成功")
else
sendmsg(actor, "您不是新人,无法领取礼包", 1)
release_print("玩家不是新人,条件不满足")
return
end
end
return newcomer
```
**给你的建议:**
1. **查文档**:先确认`getbaseinfo(actor, 47)`这个`47`参数的具体含义
2. **多测试**:创建不同的角色测试这个值的变化
3. **考虑用其他方式**:如果不是新人判断,也许用`getplaydef`检查等级、或用变量标记会更可靠
记住小仙,写脚本一定要先确认函数参数的含义,不然就像练功没看心法一样容易走岔路。不懂的可以多问问你浮生梦尊师哦!
← 返回问答库