function fentian.upmain()
if not fentian.parent or not fentian.parent._ui then
return
end
local ui = fentian.parent._ui
local cfg = fentian.parent.cfg
if not cfg then
return
end
local var = tonum
你的代码逻辑需要调整一下,根据浮生梦老师前端课程内容,处理图片显示的逻辑应该放在获取 `next_level` 之后,并且要符合你新描述的区间规则。
这里有几个关键点需要修改:
1. **区间规则**:你描述的区间(1-7、8-14等)和之前代码中的 `breakpoints`(7, 14...)是**端点**,不是**显示值**。你需要根据区间映射到对应的图片编号(10, 20...100)。
2. **图片路径逻辑**:原来的 `next_level` 直接用于拼接图片路径,现在需要根据 `var`(当前U13值)所在的区间,重新计算一个用于显示图片的等级 `pic_level`。
以下是修改后的 `fentian.upmain()` 函数中关于图片显示的部分:
```lua
function fentian.upmain()
-- ... [前面的代码保持不变,直到获取 var 和计算 next_level] ...
local var = tonumber(SL:GetMetaValue("SERVER_VALUE", "U13") or 0)
SL:Print("获取当前焚天等级 var =", var)
-- ... [中间计算 max_level, next_level 的代码保持不变] ...
-- 根据 var 的值确定要显示的图片等级 (pic_level)
local pic_level = 0
if var >= 1 and var <= 7 then
pic_level = 10
elseif var >= 8 and var <= 14 then
pic_level = 20
elseif var >= 15 and var <= 21 then
pic_level = 30
elseif var >= 22 and var <= 28 then
pic_level = 40
elseif var >= 29 and var <= 35 then
pic_level = 50
elseif var >= 36 and var <= 42 then
pic_level = 60
elseif var >= 43 and var <= 49 then
pic_level = 70
elseif var >= 50 and var <= 56 then
pic_level = 80
elseif var >= 57 and var <= 63 then
pic_level = 90
elseif var >= 64 and var <= 77 then -- 注意这里包含了 64-70 和 71-77 两个区间,都显示100.png
pic_level = 100
else
-- 如果 var 不在上述区间,可以设置一个默认图片,或者用 next_level 兜底(但需限制<=77)
pic_level = (next_level <= 77) and next_level or 77
end
-- 显示当前图片 (使用 pic_level)
if GUI:Win_IsNotNull(ui.Image_4) then
-- 确保 pic_level 在合理范围内,然后拼接路径
if pic_level > 100 then pic_level = 100 end
if pic_level < 10 then pic_level = 10 end
GUI:Image_loadTexture(ui.Image_4, "res/yidalu/fentian2.0/xin/".. pic_level ..".png")
end
-- ... [函数后面的其他代码] ...
end
```
**修改说明:**
* 新增了 `pic_level` 变量,专门用于决定显示哪张图片。
* 使用一系列 `if...elseif` 语句,根据 `var`(当前U13值)落在哪个区间,为 `pic_level` 赋值(10, 20, ... 100)。
* 在调用 `GUI:Image_loadTexture` 时,使用 `pic_level` 来拼接图片路径。
* 增加了对 `pic_level` 范围的简单保护,防止意外值导致路径错误。
**注意:**
* `GUI:Win_IsNotNull` 是判断控件是否有效的正确方法。
* `GUI:Image_loadTexture` 函数用于动态加载并设置图片控件的纹理。
这样修改后,图片的显示就会严格按照你描述的区间规则来进行了。