local moshen = {}
function moshen.main(param1, param2, param3, param4)
lib:Require(param1, function(state)
if state then
if param1 then
moshen.parent = lib:openwin(param1, nil, true, param4) or {}
根据你的需求,需要在`moshen.upmain()`函数中添加对`LoadingBar_1`的处理逻辑。你需要根据`var1`的值来设置进度条的百分比和最大值。
```lua
function moshen.upmain()
-- ... 前面代码保持不变 ...
local var = tonumber(SL:GetMetaValue("SERVER_VALUE", "U44")) or 0
SL:Print("获取当前U44值 var =", var)
local var1 = tonumber(SL:GetMetaValue("SERVER_VALUE", "U45")) or 0
SL:Print("获取当前U45值 var1 =", var1)
-- 检查是否已满级
if var >= #cfg then
lib:msg("魔神已满级!")
if GUI:Win_IsNotNull(ui["Button_1"]) then
GUI:setTouchEnabled(ui["Button_1"], false)
end
return
end
-- 设置LoadingBar_1的逻辑
if GUI:Win_IsNotNull(ui["LoadingBar_1"]) then
-- 定义满值对应的阶段
local maxValues = {1000, 3000, 4000, 8000, 16000, 32000}
-- 根据var1确定当前阶段
local currentMax = 1000 -- 默认值
for _, value in ipairs(maxValues) do
if var1 >= value then
currentMax = value
else
break
end
end
-- 计算百分比
local percent = 0
if currentMax > 0 then
percent = (var1 / currentMax) * 100
if percent > 100 then
percent = 100
end
end
-- 设置进度条百分比
GUI:LoadingBar_setPercent(ui["LoadingBar_1"], percent)
-- 可以添加文字显示当前进度
if GUI:Win_IsNotNull(ui["Text_Progress"]) then
GUI:Text_setString(ui["Text_Progress"], string.format("%d/%d", var1, currentMax))
end
SL:Print(string.format("LoadingBar_1: var1=%d, 当前阶段最大值=%d, 百分比=%.1f%%", var1, currentMax, percent))
end
-- ... 后面代码保持不变 ...
end
```
这个逻辑会根据`var1`的值自动判断当前处于哪个阶段(1000、3000、4000、8000、16000、32000),然后计算对应的百分比。比如:
- 当`var1=500`时,百分比是50%(500/1000)
- 当`var1=1500`时,百分比是50%(1500/3000)
- 当`var1=4000`时,百分比是100%(4000/4000)
这样你的进度条就能正确显示各个阶段的进度了。记得在UI中要有`LoadingBar_1`这个控件。