SL:print("打开Boss刷新界面")
local npc = {}
npc.BossReliveCfg = {
[1] = {
monsterName = "牛魔王",
mapName = "牛魔寺庙",
reliveTime = 120
},
[2] = {
monsterName = "黑狐",
mapName = "狐月山",
reliveTime = 120
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-16 02:08:59 |
👁️ 阅读: 9
SL:print("打开Boss刷新界面")
local npc = {}
npc.BossReliveCfg = {
[1] = {
monsterName = "牛魔王",
mapName = "牛魔寺庙",
reliveTime = 120
},
[2] = {
monsterName = "黑狐",
mapName = "狐月山",
reliveTime = 120
},
[3] = {
monsterName = "赤狐",
mapName = "赤狐圣地",
reliveTime = 120
},
[4] = {
monsterName = "素狐",
mapName = "素狐秘境",
reliveTime = 120
},
[5] = {
monsterName = "电僵尸",
mapName = "石墓七层",
reliveTime = 120
},
[6] = {
monsterName = "火龙神",
mapName = "盟重土城",
reliveTime = 120
},
[7] = {
monsterName = "月灵",
mapName = "月灵神殿",
reliveTime = 120
},
[8] = {
monsterName = "毒卫",
mapName = "毒蛇山谷",
reliveTime = 120
},
[9] = {
monsterName = "月之精灵",
mapName = "月光森林",
reliveTime = 120
},
[10] = {
monsterName = "火蜥蜴",
mapName = "火龙洞窟",
reliveTime = 120
},
[11] = {
monsterName = "巨斧赤狐皇",
mapName = "盟重土城",
reliveTime = 120
},
[12] = {
monsterName = "白虎",
mapName = "白虎圣殿",
reliveTime = 120
},
[13] = {
monsterName = "白虎1",
mapName = "上古白虎坛",
reliveTime = 120
},
[14] = {
monsterName = "狂热火蜥蜴",
mapName = "熔岩地狱",
reliveTime = 120
},
[15] = {
monsterName = "火龙卫士",
mapName = "火龙神殿",
reliveTime = 120
},
[16] = {
monsterName = "白虎",
mapName = "蛮荒古地",
reliveTime = 120
},
[17] = {
monsterName = "恶魔蜘蛛",
mapName = "恶魔巢穴",
reliveTime = 120
},
[18] = {
monsterName = "巨镰蜘蛛",
mapName = "蜘蛛魔窟",
reliveTime = 120
},
[19] = {
monsterName = "金杖蜘蛛",
mapName = "赤月峡谷",
reliveTime = 120
},
[20] = {
monsterName = "绿魔蜘蛛",
mapName = "绿魔禁地",
reliveTime = 120
},
[21] = {
monsterName = "变异蛇王",
mapName = "蛇王巢穴",
reliveTime = 120
},
[22] = {
monsterName = "圣殿卫士",
mapName = "皇家圣殿",
reliveTime = 120
},
[23] = {
monsterName = "巨斧赤狐皇",
mapName = "测试地图",
reliveTime = 1
},
[24] = {
monsterName = "火龙神",
mapName = "盟重土城",
reliveTime = 120
},
[25] = {
monsterName = "火龙神",
mapName = "测试地图",
reliveTime = 1
},
}
local function networkCB(msgID, p1, p2, p3, msgData)
SL:print("===== 收到后端消息 =====")
SL:print("消息ID: " .. tostring(msgID))
SL:print("参数1: " .. tostring(p1))
SL:print("参数2: " .. tostring(p2))
SL:print("参数3: " .. tostring(p3))
SL:print("字符串: " .. tostring(msgData))
SL:print("=======================")
if msgID == 1024 then
if p2 == 0 and p3 == 0 then
npc:openWin(msgData)
end
end
end
SL:RegisterLuaNetMsg(1024, networkCB)
function npc:openWin(msgData)
-- 创建父窗口
local win_Boss = GUI:Win_Create("win_Boss", 0, 0, 0, 0, false, false, true, false, false, false, 1)
GUI:LoadExport(win_Boss, "Boss")
npc.ui = GUI:ui_delegate(win_Boss)
GUI:addOnClickEvent(npc.ui.esc, function()
GUI:Win_Close(win_Boss)
end)
-- 解析后端数据
local bossStatus = SL:JsonDecode(msgData, true)
for k, v in ipairs(npc.BossReliveCfg) do
-- 创建Boss项面板
local panel1 = "Panel1_"..k
local panel_First = GUI:Layout_Create(npc.ui.ListView_1, panel1, 0, 370, 750, 40, false)
-- Boss名称
local text1 = "Text1_"..k
local textName_x = (120 - string.len(v.monsterName) * 6) * 0.5
local text_Name = GUI:Text_Create(panel_First, text1, textName_x, 6, 16, "#00B100", v.monsterName)
GUI:Text_setFontName(text_Name, "ZiHunJianQiShouShu/ZiHunJianQiShouShu(ShangYongXuShouQuan)-2.ttf")
GUI:Text_enableOutline(text_Name, "#000000", 1)
-- Boss地图名称
local text2 = "Text2_"..k
local textMap_x = (750 - string.len(v.mapName) * 6) * 0.5
local text_name = GUI:Text_Create(panel_First, text2, textMap_x, 6, 16, "#d90031", v.mapName)
GUI:Text_setFontName(text_name, "ZiHunJianQiShouShu/ZiHunJianQiShouShu(ShangYongXuShouQuan)-2.ttf")
GUI:Text_enableOutline(text_name, "#000000", 1)
-- Boss复活时间
local text3 = "Text3_"..k
local textTime_x = (1350 - string.len("已刷新") * 4) * 0.5
-- 检查后端返回的状态
local statusText = "已刷新"
local statusColor = "#0000e7"
if bossStatus and bossStatus[k] then
local bossData = bossStatus[k]
if bossData.time and bossData.time > 0 then
statusText = tostring(bossData.time)
end
end
local text_Time = GUI:Text_Create(panel_First, text3, textTime_x, 6, 16, statusColor, statusText)
GUI:Text_setFontName(text_Time, "ZiHunJianQiShouShu/ZiHunJianQiShouShu(ShangYongXuShouQuan)-2.ttf")
GUI:Text_enableOutline(text_Time, "#000000", 1)
-- 如果有时长,设置倒计时
if statusText ~= "已刷新" then
GUI:Text_COUNTDOWN(text_Time, tonumber(statusText), function(data)
SL:print("倒计时结束: " .. tostring(data))
end, 0)
end
end
end
← 返回问答库