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 {}
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-20 13:39:54 |
👁️ 阅读: 6
根据你的代码逻辑,`LoadingBar_1`的进度计算是基于`var1`(从服务端获取的U45值)和一个固定的满值1000来计算的:
```lua
local percent1 = (1000 - var1) / 1000 * 100
GUI:LoadingBar_setPercent(ui["LoadingBar_1"], percent1)
```
这里的问题是,你现在的满值会随着等级提升而变化(1000→3000→4000→8000→16000→32000),但代码中仍然使用固定的1000作为分母。
你需要根据当前等级动态调整满值。根据你的描述,满值变化规则是:
- 第1阶段:1000
- 第2阶段:3000
- 第3阶段:4000
- 第4阶段:8000
- 第5阶段:16000
- 第6阶段:32000
修改你的进度计算逻辑:
```lua
-- 根据当前等级确定满值
local function getMaxValueByLevel(level)
local maxValues = {
1000, -- 等级1
3000, -- 等级2
4000, -- 等级3
8000, -- 等级4
16000, -- 等级5
32000 -- 等级6
}
-- 如果等级超出表格,使用最后一个值
if level > #maxValues then
return maxValues[#maxValues]
end
return maxValues[level] or 1000
end
-- 在upmain函数中计算进度
local currentLevel = var + 1 -- 当前等级
local maxValue = getMaxValueByLevel(currentLevel)
local percent1 = (maxValue - var1) / maxValue * 100
-- 确保进度在0-100之间
if percent1 < 0 then percent1 = 0 end
if percent1 > 100 then percent1 = 100 end
if GUI:Win_IsNotNull(ui["LoadingBar_1"]) then
GUI:LoadingBar_setPercent(ui["LoadingBar_1"], percent1)
end
```
这样修改后,`LoadingBar_1`的进度会根据当前等级对应的满值正确显示。当`var1`达到当前等级的满值时,进度条会显示100%,归零后进入下一等级,使用新的满值计算进度。
注意:你需要确保`var`(U44值)能正确反映当前处于哪个阶段(0对应第一阶段,1对应第二阶段,以此类推)。
根据你的代码逻辑,`LoadingBar_1`的进度计算是基于`var1`(从服务端获取的U45值)和一个固定的满值1000来计算的:
```lua
local percent1 = (1000 - var1) / 1000 * 100
GUI:LoadingBar_setPercent(ui["LoadingBar_1"], percent1)
```
这里的问题是,你现在的满值会随着等级提升而变化(1000→3000→4000→8000→16000→32000),但代码中仍然使用固定的1000作为分母。
你需要根据当前等级动态调整满值。根据你的描述,满值变化规则是:
- 第1阶段:1000
- 第2阶段:3000
- 第3阶段:4000
- 第4阶段:8000
- 第5阶段:16000
- 第6阶段:32000
修改你的进度计算逻辑:
```lua
-- 根据当前等级确定满值
local function getMaxValueByLevel(level)
local maxValues = {
1000, -- 等级1
3000, -- 等级2
4000, -- 等级3
8000, -- 等级4
16000, -- 等级5
32000 -- 等级6
}
-- 如果等级超出表格,使用最后一个值
if level > #maxValues then
return maxValues[#maxValues]
end
return maxValues[level] or 1000
end
-- 在upmain函数中计算进度
local currentLevel = var + 1 -- 当前等级
local maxValue = getMaxValueByLevel(currentLevel)
local percent1 = (maxValue - var1) / maxValue * 100
-- 确保进度在0-100之间
if percent1 < 0 then percent1 = 0 end
if percent1 > 100 then percent1 = 100 end
if GUI:Win_IsNotNull(ui["LoadingBar_1"]) then
GUI:LoadingBar_setPercent(ui["LoadingBar_1"], percent1)
end
```
这样修改后,`LoadingBar_1`的进度会根据当前等级对应的满值正确显示。当`var1`达到当前等级的满值时,进度条会显示100%,归零后进入下一等级,使用新的满值计算进度。
注意:你需要确保`var`(U44值)能正确反映当前处于哪个阶段(0对应第一阶段,1对应第二阶段,以此类推)。
← 返回问答库