local attrDescs = GUIFunction:GetParseItemDesc(suitConfig.equipAttStr)
if attrDescs and attrDescs.desc and next(attrDescs.desc) then --这里不支持top bottom
for i, v in pairs(attrDescs.desc) do
if v.text then
index = index + 1
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-07 17:20:57 |
👁️ 阅读: 0
根据你的需求,这里需要根据`meetCount`的值来判断并替换颜色代码。以下是修改后的代码:
```lua
local attrDescs = GUIFunction:GetParseItemDesc(suitConfig.equipAttStr)
if attrDescs and attrDescs.desc and next(attrDescs.desc) then
for i, v in pairs(attrDescs.desc) do
if v.text then
-- 根据meetCount判断并替换颜色
local processedText = v.text
if meetCount < 2 then
processedText = string.gsub(processedText, "<2/FCOLOR=250>", "<2/FCOLOR=13>")
processedText = string.gsub(processedText, "<//FCOLOR=251>", "<//FCOLOR=13>")
processedText = string.gsub(processedText, "<7/FCOLOR=250>", "<7/FCOLOR=13>")
processedText = string.gsub(processedText, "</FCOLOR=251>", "</FCOLOR=13>")
processedText = string.gsub(processedText, "<32/FCOLOR=251>", "<32/FCOLOR=13>")
elseif meetCount < 4 then
processedText = string.gsub(processedText, "<4/FCOLOR=250>", "<4/FCOLOR=13>")
processedText = string.gsub(processedText, "<//FCOLOR=251>", "<//FCOLOR=13>")
processedText = string.gsub(processedText, "<7/FCOLOR=250>", "<7/FCOLOR=13>")
processedText = string.gsub(processedText, "</FCOLOR=251>", "</FCOLOR=13>")
processedText = string.gsub(processedText, "<45/FCOLOR=251>", "<45/FCOLOR=13>")
elseif meetCount < 6 then
processedText = string.gsub(processedText, "<6/FCOLOR=250>", "<6/FCOLOR=13>")
processedText = string.gsub(processedText, "<//FCOLOR=251>", "<//FCOLOR=13>")
processedText = string.gsub(processedText, "<7/FCOLOR=250>", "<7/FCOLOR=13>")
processedText = string.gsub(processedText, "</FCOLOR=251>", "</FCOLOR=13>")
processedText = string.gsub(processedText, "<2/FCOLOR=251>", "<2/FCOLOR=13>")
processedText = string.gsub(processedText, "<5/FCOLOR=251>", "<5/FCOLOR=13>")
processedText = string.gsub(processedText, "<0/FCOLOR=251>", "<0/FCOLOR=13>")
elseif meetCount < 7 then
processedText = string.gsub(processedText, "<7/FCOLOR=250>", "<7/FCOLOR=13>")
processedText = string.gsub(processedText, "<//FCOLOR=251>", "<//FCOLOR=13>")
processedText = string.gsub(processedText, "<7/FCOLOR=250>", "<7/FCOLOR=13>")
processedText = string.gsub(processedText, "</FCOLOR=251>", "</FCOLOR=13>")
processedText = string.gsub(processedText, "<4/FCOLOR=251>", "<4/FCOLOR=13>")
processedText = string.gsub(processedText, "<%/FCOLOR=251>", "<%/FCOLOR=13>")
end
index = index + 1
local label_posName = GUI:RichTextFCOLOR_Create(panel, "desc_text_" .. index, 0, 0, processedText or "", suitWidth - 20, _setFontSize or _DefaultFSize, SL:GetColorByStyleId(255), vspace, nil, fontPath)
GUI:setAnchorPoint(label_posName, 0, 0)
GUI:setTag(label_posName, index)
local size = GUI:getContentSize(label_posName)
heights[index] = size.height + interval
richWidth = math.max(richWidth, size.width)
elseif v.res then
index = index + 1
local img = ItemTips.GetNodeImage(panel, v, index)
if img then
GUI:setTag(img, index)
local size = GUI:getContentSize(img)
heights[index] = size.height + interval
richWidth = math.max(richWidth, size.width)
end
end
end
end
```
注意:
1. 使用`if elseif`结构按照`meetCount`的值进行判断
2. 每个条件块内使用`string.gsub`替换对应的颜色代码(250/251替换为13)
3. 保留了原有的创建富文本的逻辑
4. 处理后的文本存储在`processedText`变量中传递给创建函数
这样就能根据不同的`meetCount`值显示不同的颜色效果了。
根据你的需求,这里需要根据`meetCount`的值来判断并替换颜色代码。以下是修改后的代码:
```lua
local attrDescs = GUIFunction:GetParseItemDesc(suitConfig.equipAttStr)
if attrDescs and attrDescs.desc and next(attrDescs.desc) then
for i, v in pairs(attrDescs.desc) do
if v.text then
-- 根据meetCount判断并替换颜色
local processedText = v.text
if meetCount < 2 then
processedText = string.gsub(processedText, "<2/FCOLOR=250>", "<2/FCOLOR=13>")
processedText = string.gsub(processedText, "<//FCOLOR=251>", "<//FCOLOR=13>")
processedText = string.gsub(processedText, "<7/FCOLOR=250>", "<7/FCOLOR=13>")
processedText = string.gsub(processedText, "</FCOLOR=251>", "</FCOLOR=13>")
processedText = string.gsub(processedText, "<32/FCOLOR=251>", "<32/FCOLOR=13>")
elseif meetCount < 4 then
processedText = string.gsub(processedText, "<4/FCOLOR=250>", "<4/FCOLOR=13>")
processedText = string.gsub(processedText, "<//FCOLOR=251>", "<//FCOLOR=13>")
processedText = string.gsub(processedText, "<7/FCOLOR=250>", "<7/FCOLOR=13>")
processedText = string.gsub(processedText, "</FCOLOR=251>", "</FCOLOR=13>")
processedText = string.gsub(processedText, "<45/FCOLOR=251>", "<45/FCOLOR=13>")
elseif meetCount < 6 then
processedText = string.gsub(processedText, "<6/FCOLOR=250>", "<6/FCOLOR=13>")
processedText = string.gsub(processedText, "<//FCOLOR=251>", "<//FCOLOR=13>")
processedText = string.gsub(processedText, "<7/FCOLOR=250>", "<7/FCOLOR=13>")
processedText = string.gsub(processedText, "</FCOLOR=251>", "</FCOLOR=13>")
processedText = string.gsub(processedText, "<2/FCOLOR=251>", "<2/FCOLOR=13>")
processedText = string.gsub(processedText, "<5/FCOLOR=251>", "<5/FCOLOR=13>")
processedText = string.gsub(processedText, "<0/FCOLOR=251>", "<0/FCOLOR=13>")
elseif meetCount < 7 then
processedText = string.gsub(processedText, "<7/FCOLOR=250>", "<7/FCOLOR=13>")
processedText = string.gsub(processedText, "<//FCOLOR=251>", "<//FCOLOR=13>")
processedText = string.gsub(processedText, "<7/FCOLOR=250>", "<7/FCOLOR=13>")
processedText = string.gsub(processedText, "</FCOLOR=251>", "</FCOLOR=13>")
processedText = string.gsub(processedText, "<4/FCOLOR=251>", "<4/FCOLOR=13>")
processedText = string.gsub(processedText, "<%/FCOLOR=251>", "<%/FCOLOR=13>")
end
index = index + 1
local label_posName = GUI:RichTextFCOLOR_Create(panel, "desc_text_" .. index, 0, 0, processedText or "", suitWidth - 20, _setFontSize or _DefaultFSize, SL:GetColorByStyleId(255), vspace, nil, fontPath)
GUI:setAnchorPoint(label_posName, 0, 0)
GUI:setTag(label_posName, index)
local size = GUI:getContentSize(label_posName)
heights[index] = size.height + interval
richWidth = math.max(richWidth, size.width)
elseif v.res then
index = index + 1
local img = ItemTips.GetNodeImage(panel, v, index)
if img then
GUI:setTag(img, index)
local size = GUI:getContentSize(img)
heights[index] = size.height + interval
richWidth = math.max(richWidth, size.width)
end
end
end
end
```
注意:
1. 使用`if elseif`结构按照`meetCount`的值进行判断
2. 每个条件块内使用`string.gsub`替换对应的颜色代码(250/251替换为13)
3. 保留了原有的创建富文本的逻辑
4. 处理后的文本存储在`processedText`变量中传递给创建函数
这样就能根据不同的`meetCount`值显示不同的颜色效果了。
← 返回问答库