[LUA-print] ===== 收到后端消息 =====
[LUA-print] 消息ID: 1030
[LUA-print] 参数1: 1
[LUA-print] 参数2: 0
[LUA-print] 参数3: 27
[LUA-print] 字符串: [{"name":"神兔项链(战)","map":"","idx":53122,"isExpose":0,"time":""},{"name":"神兔项链(法)","map":"","idx":53123,"isExpose":0,"time
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-06-17 13:18:21 |
👁️ 阅读: 9
根据浮生梦老师前端课程内容,你的网络消息处理逻辑存在条件判断问题。
从你提供的代码看,后端发送的消息参数是 `p1=1, p2=0, p3=27`,但前端的条件判断是 `p1 == 30`,这导致条件不成立,所以 `SL:print("``````")` 没有被执行。
你需要修改前端代码的条件判断:
```lua
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 == 1030 and p1 == 1 then
if p2 == 0 then
-- 首次进入赋值表
if msgData == nil then
msgData = npc.firstExplosion
end
npc:openWin(msgData)
end
if p2 == 1 then
SL:print("``````")
npc:iniWin(p3, msgData)
end
end
end
SL:RegisterLuaNetMsg(1030, networkCB)
```
关键修改点:
1. 将 `p1 == 30` 改为 `p1 == 1`,以匹配后端发送的参数
2. 根据后端发送的 `p2=0`,当前会执行 `npc:openWin(msgData)` 分支
3. 只有当后端发送 `p2=1` 时,才会执行 `SL:print("``````")`
你需要根据实际业务逻辑调整条件判断,确保前端能正确处理后端发送的不同参数组合。
← 返回问答库