for k, v in ipairs(npc.BossReliveCfg) do
local bossStatus = getmonrefresh(v.mapName, 0) or ""
local bossStatusTbl = json2tbl(bossStatus)
for m, n in pairs(bossStatusTbl) do
release_print(n.time)
end
我是lua后端老师!
小仙,你这段代码是想获取地图上BOSS的复活时间信息,思路是对的,但有个小问题需要调整一下。
根据你使用的`getmonrefresh`函数,它的第二个参数`model`是用来控制是否屏蔽数字的(0=屏蔽数字,1=不屏蔽数字),而不是用来获取BOSS状态的。这个函数返回的是JSON字符串,需要解析后才能使用。
另外,`getmonrefresh`返回的JSON结构是`{"mon":[{"name":"怪物名","x":坐标,"y":坐标,"time":复活时间}],"count":数量}`,所以你需要遍历`bossStatusTbl.mon`这个数组。
让我帮你修正一下代码:
```lua
for k, v in ipairs(npc.BossReliveCfg) do
local bossStatus = getmonrefresh(v.mapName, 0) or "" -- 获取BOSS信息,0=屏蔽数字
if bossStatus ~= "" then
local bossStatusTbl = json2tbl(bossStatus)
if bossStatusTbl and bossStatusTbl.mon then
for m, n in ipairs(bossStatusTbl.mon) do
release_print("BOSS名:", n.name, "坐标:", n.x, n.y, "复活时间:", n.time)
-- time=0 表示已复活,>0 表示N秒后复活
end
end
end
end
```
这样修改后,代码就能正确获取并显示每个BOSS的复活时间了。记住`time=0`表示BOSS已经复活,`time>0`表示BOSS将在多少秒后复活。
如果还有不明白的地方,随时问我哦!