t.jieshao = {
[0] = {id=0,name="暂无命格",color1=7,color2=251,desc="使用天命石可抽取天赋"},
[1] = {id=1,name="基础攻击",color1=7,color2=251,desc="攻击+4"},
[2] = {id=2,name="基础魔法",color1=7,color2=251,desc="魔法+3"},
[3] = {id=3,name="基础道术",color1=7,color2=
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-17 19:10:32 |
👁️ 阅读: 9
你提供的表中使用了 `color1` 和 `color2` 的数值(如7、251、70等),这些通常是 `cfg_colour_style` 表中的ID。根据浮生梦老师前端课程内容,可以使用 `SL:GetHexColorByStyleId(id)` 函数将这些ID转换为标准的16进制颜色代码。
以下是转换后的代码示例,你可以直接替换或使用:
```lua
-- 假设这是你的原始表
t.jieshao = {
[0] = {id=0,name="暂无命格",color1=7,color2=251,desc="使用天命石可抽取天赋"},
[1] = {id=1,name="基础攻击",color1=7,color2=251,desc="攻击+4"},
-- ... 其他条目
}
-- 转换函数:将color1和color2从ID转换为16进制颜色代码
local function convertColorsToHex(tbl)
for _, item in pairs(tbl) do
if item.color1 then
item.color1 = SL:GetHexColorByStyleId(item.color1) or "#ffffff" -- 默认白色
end
if item.color2 then
item.color2 = SL:GetHexColorByStyleId(item.color2) or "#ffffff" -- 默认白色
end
end
end
-- 执行转换
convertColorsToHex(t.jieshao)
-- 测试打印转换后的结果(以第一个条目为例)
SL:Print("转换后颜色1:", t.jieshao[0].color1)
SL:Print("转换后颜色2:", t.jieshao[0].color2)
```
**函数说明:**
- `SL:GetHexColorByStyleId(id)`:将 `cfg_colour_style` 表中的ID转换为16进制颜色字符串(如 `"#FFFFFF"`)。
- 参数 `id`:`cfg_colour_style` 表中的颜色ID(你表中的 `color1` 和 `color2` 值)。
- 返回值:16进制颜色字符串。
**注意:**
- 如果ID在表中不存在,函数可能返回 `nil`,代码中已设置默认值 `"#ffffff"`(白色)作为后备。
- 转换后,`color1` 和 `color2` 字段的值将变为字符串类型的颜色代码(如 `"#f7ef8c"`),可直接用于GUI显示。
你可以直接运行这个转换函数,然后使用转换后的颜色代码进行界面绘制。如果遇到颜色ID不匹配的问题,记得检查 `cfg_colour_style` 表的配置哦!
← 返回问答库