for x, y in pairs(EquipPos) do
refined.lockStatus[x] = {0, 0, 0} -- 默认复选框状态
local buttonName = "but_"..x
GUI:addOnClickEvent(refined.ui[buttonName], function()
refined.currentEquipPos = x
refined:cre
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-22 13:59:48 |
👁️ 阅读: 11
你的代码中 `lockJson` 是在复选框点击事件的回调函数里定义的局部变量,作用域仅限于那个内层函数,所以外层发送消息时 `lockJson` 是 `nil`。
根据浮生梦老师前端课程内容,正确的做法是:在点击“放入装备”按钮时,先收集当前所有复选框的最新状态,生成 `lockJson`,然后再发送。
修改后的代码结构如下:
```lua
for x, y in pairs(EquipPos) do
refined.lockStatus[x] = {0, 0, 0} -- 默认复选框状态
local buttonName = "but_"..x
GUI:addOnClickEvent(refined.ui[buttonName], function()
refined.currentEquipPos = x
refined:createHighLight(refined.ui[buttonName], x)
-- 在发送前,实时获取当前三个复选框的状态
local lockData = {}
for i = 1, 3 do
local lockState = "CheckBox_"..i
local isSelected = GUI:CheckBox_isSelected(refined.ui[lockState])
if isSelected == true then
lockData[i] = 1
else
lockData[i] = 0
end
end
local lockJson = SL:JsonEncode(lockData)
SL:SendLuaNetMsg(2013, 13, 0, x, lockJson) -- 放入装备
end)
end
```
**关键点:**
1. 将生成 `lockJson` 的逻辑移到“放入装备”按钮的点击事件里
2. 每次点击按钮时,都重新获取复选框的实时状态
3. 确保 `lockJson` 在调用 `SL:SendLuaNetMsg` 时已经生成
这样就能正确地将锁定状态作为JSON字符串传递到后端了。
你的代码中 `lockJson` 是在复选框点击事件的回调函数里定义的局部变量,作用域仅限于那个内层函数,所以外层发送消息时 `lockJson` 是 `nil`。
根据浮生梦老师前端课程内容,正确的做法是:在点击“放入装备”按钮时,先收集当前所有复选框的最新状态,生成 `lockJson`,然后再发送。
修改后的代码结构如下:
```lua
for x, y in pairs(EquipPos) do
refined.lockStatus[x] = {0, 0, 0} -- 默认复选框状态
local buttonName = "but_"..x
GUI:addOnClickEvent(refined.ui[buttonName], function()
refined.currentEquipPos = x
refined:createHighLight(refined.ui[buttonName], x)
-- 在发送前,实时获取当前三个复选框的状态
local lockData = {}
for i = 1, 3 do
local lockState = "CheckBox_"..i
local isSelected = GUI:CheckBox_isSelected(refined.ui[lockState])
if isSelected == true then
lockData[i] = 1
else
lockData[i] = 0
end
end
local lockJson = SL:JsonEncode(lockData)
SL:SendLuaNetMsg(2013, 13, 0, x, lockJson) -- 放入装备
end)
end
```
**关键点:**
1. 将生成 `lockJson` 的逻辑移到“放入装备”按钮的点击事件里
2. 每次点击按钮时,都重新获取复选框的实时状态
3. 确保 `lockJson` 在调用 `SL:SendLuaNetMsg` 时已经生成
这样就能正确地将锁定状态作为JSON字符串传递到后端了。
← 返回问答库