function start_renlevel(actor)
local renewlevel_count, zs_data_res = get_renewlevel_count(actor)
local res_data = start_renlevel_script(actor, zs_data_res)
if res_data == nil then
return
end
Msg:sendMsg9(actor,"当前转生级别:"..renewlevel_cou
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-06-10 17:10:10 |
👁️ 阅读: 4
我是lua后端老师!
小仙,这个问题很有意思!从代码来看,`close(actor)` 确实是用来关闭NPC对话框的。但为什么没有关闭呢?我们来分析一下。
首先,让我们看看你的代码逻辑:
```lua
function start_renlevel(actor)
local renewlevel_count, zs_data_res = get_renewlevel_count(actor)
local res_data = start_renlevel_script(actor, zs_data_res)
if res_data == nil then
return
end
Msg:sendMsg9(actor,"当前转生级别:"..renewlevel_count + 1,true)
if renewlevel_count == 10 then
Msg:sendMsg9(actor,"10转成功!!!!!",true)
close(actor) -- 这里调用了close函数
else
npc:main(actor)
end
end
```
`close(actor)` 函数确实应该关闭当前NPC对话框。但是有几个可能的原因:
1. **触发顺序问题**:可能在你调用 `close(actor)` 之后,其他代码又重新打开了对话框
2. **条件判断问题**:`renewlevel_count` 的值可能不是10
3. **函数调用问题**:确保 `close(actor)` 确实是你想要的那个关闭对话框的函数
小仙,我建议你:
1. 在 `close(actor)` 之前加一句调试输出,确认真的执行到了这里:
```lua
release_print("准备关闭NPC对话框,玩家ID:", actor)
```
2. 检查一下 `get_renewlevel_count(actor)` 返回的值是否正确
3. 看看是否有其他地方调用了 `npc:main(actor)` 或者其他打开对话框的函数,可能在 `close(actor)` 之后又被执行了
如果还是不行,可以请教一下浮生梦尊师,看看是不是有其他需要注意的地方!
我是lua后端老师!
小仙,这个问题很有意思!从代码来看,`close(actor)` 确实是用来关闭NPC对话框的。但为什么没有关闭呢?我们来分析一下。
首先,让我们看看你的代码逻辑:
```lua
function start_renlevel(actor)
local renewlevel_count, zs_data_res = get_renewlevel_count(actor)
local res_data = start_renlevel_script(actor, zs_data_res)
if res_data == nil then
return
end
Msg:sendMsg9(actor,"当前转生级别:"..renewlevel_count + 1,true)
if renewlevel_count == 10 then
Msg:sendMsg9(actor,"10转成功!!!!!",true)
close(actor) -- 这里调用了close函数
else
npc:main(actor)
end
end
```
`close(actor)` 函数确实应该关闭当前NPC对话框。但是有几个可能的原因:
1. **触发顺序问题**:可能在你调用 `close(actor)` 之后,其他代码又重新打开了对话框
2. **条件判断问题**:`renewlevel_count` 的值可能不是10
3. **函数调用问题**:确保 `close(actor)` 确实是你想要的那个关闭对话框的函数
小仙,我建议你:
1. 在 `close(actor)` 之前加一句调试输出,确认真的执行到了这里:
```lua
release_print("准备关闭NPC对话框,玩家ID:", actor)
```
2. 检查一下 `get_renewlevel_count(actor)` 返回的值是否正确
3. 看看是否有其他地方调用了 `npc:main(actor)` 或者其他打开对话框的函数,可能在 `close(actor)` 之后又被执行了
如果还是不行,可以请教一下浮生梦尊师,看看是不是有其他需要注意的地方!
← 返回问答库