在你的代码中,保存复选框状态的位置主要在以下两个地方:
1. **在复选框的事件回调中保存**(第78-80行):
```lua
-- 保存复选框状态
for i = 1, 3 do
local checkBoxName = "CheckBox_"..i
GUI:CheckBox_addOnEvent(refined.ui[checkBoxName], function()
refined:saveCheckBoxState() -- 这里调用保存函数
end)
end
```
2. **在`saveCheckBoxState`函数中具体保存**(第127-145行):
```lua
function refined:saveCheckBoxState()
local pos = refined.currentEquipPos
if not refined.lockStatus[pos] then
refined.lockStatus[pos] = {0, 0, 0}
end
for i = 1, 3 do
local checkBoxName = "CheckBox_"..i
local isSelected = GUI:CheckBox_isSelected(refined.ui[checkBoxName])
-- 注意:CheckBox_isSelected返回true表示选中,false表示未选中
refined.lockStatus[pos][i] = isSelected and 1 or 0
end
SL:print("保存位置" .. pos .. "的复选框状态: " ..
tostring(refined.lockStatus[pos][1]) .. ", " ..
tostring(refined.lockStatus[pos][2]) .. ", " ..
tostring(refined.lockStatus[pos][3]))
end
```
这样每次用户点击复选框时,都会自动保存当前装备位置的锁定状态到`refined.lockStatus`表中。