local qiyifahshi = {}
function qiyifahshi.main(param1, param2, param3, param4)
lib:Require(param1, function(state)
if state then
if param1 then
qiyifahshi.parent = lib:openwin(param1, nil, true, param4) or {}
你的代码中获取U32值的问题在于使用了错误的函数。根据浮生梦老师的前端课程内容,获取服务端变量应该使用 `SL:GetMetaValue` 而不是 `lib:getstr`。
修改后的代码应该是这样的:
```lua
-- 错误的写法:
-- local var = tonumber(lib:getstr("U32") or 0)
-- 正确的写法:
local var = tonumber(SL:GetMetaValue("U32") or 0)
```
另外,你的判断逻辑也存在一些矛盾:
1. 第20行:`if var>=10 then` 判断是否达到10个
2. 第38行:`if GUI:Win_IsNotNull(ui.Button_3) and not isCompleted and var >= 20 then` 这里又判断是否达到20个
这会导致逻辑混乱。Button_3的点击事件只有在`var >= 20`时才会注册,但你的UI显示逻辑是基于`var >= 10`的。
建议统一标准,比如都使用10个作为条件:
```lua
-- 修改第38行为:
if GUI:Win_IsNotNull(ui.Button_3) and not isCompleted and var >= 10 then
GUI:addOnClickEvent(ui.Button_3, function()
-- 点击事件代码
end)
end
```
还有个小问题,第6行的事件回调中判断条件应该用括号明确优先级:
```lua
if data.key == "U32" or data.key == "U33" then
-- 应该改为:
if (data.key == "U32") or (data.key == "U33") then
```
这些修改应该能解决你的问题。如果还有其他疑问,可以继续问我!