function ItemTips.ParseExAddAttr(attr, needAttrList)
if not attr or string.len(attr) == "" then
return
end
local attrAlignment = SL:GetMetaValue("WINPLAYMODE") and tonumber(SL:GetMetaValue("GAME_DATA", "pc_tips_attr_alignment
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-07 11:18:03 |
👁️ 阅读: 0
这段代码是 `ItemTips.ParseExAddAttr` 函数,用于解析装备的附加属性字符串,并格式化为用于界面显示的富文本列表。
**主要功能:**
1. **参数解析**:将传入的 `attr` 字符串(例如 "1=100,2=200")按逗号和等号分割,转换为属性ID和数值的列表 `attList`。
2. **模式判断**:根据 `needAttrList` 参数决定返回值。如果为 `true`,直接返回原始的属性列表 `attList`。
3. **属性格式化**:如果 `needAttrList` 为 `false` 或 `nil`,则通过 `GUIFunction:GetAttDataShow` 将属性列表转换为包含名称、数值等信息的哈希表 `stringAtt`。
4. **数据重组与排序**:将 `stringAtt` 转换为数组 `attrShow`,并根据配置中的 `sort` 字段进行排序,确保属性显示顺序一致。
5. **标题添加**:在属性列表前插入一个格式化的标题行,例如“`[附加属性]:`”。
6. **文本对齐与着色**:对每个属性进行名称清理、计算对齐空格,并根据 `excolor` 配置或默认值(250)设置字体颜色,最终生成富文本字符串 `oneStr`。
7. **返回结果**:返回一个包含标题和所有属性富文本的数组 `strList`,每个元素是一个包含 `id` 和 `str` 字段的表。
**需要注意的细节:**
* **对齐计算**:`attrAlignment` 和 `attrCoefficient` 用于控制属性名称和数值的对齐方式,这通常是为了在界面上实现整齐的列式布局。
* **颜色处理**:属性名称的颜色由 `excolor` 字段控制,如果未配置则使用默认颜色ID 250。
* **函数依赖**:代码中调用了 `getAttOriginId` 和 `getAddShow` 等函数,这些需要在上下文中定义,否则会报错。
* **数据验证**:在分割字符串后,会检查分割结果是否为数字,确保数据的有效性。
**总结:** 这个函数是将后台传来的属性数据字符串,经过解析、格式化、排序和美化后,转换为前端可以直接用于显示(例如在`GUI:RichText_Create`中使用)的富文本列表。
这段代码是 `ItemTips.ParseExAddAttr` 函数,用于解析装备的附加属性字符串,并格式化为用于界面显示的富文本列表。
**主要功能:**
1. **参数解析**:将传入的 `attr` 字符串(例如 "1=100,2=200")按逗号和等号分割,转换为属性ID和数值的列表 `attList`。
2. **模式判断**:根据 `needAttrList` 参数决定返回值。如果为 `true`,直接返回原始的属性列表 `attList`。
3. **属性格式化**:如果 `needAttrList` 为 `false` 或 `nil`,则通过 `GUIFunction:GetAttDataShow` 将属性列表转换为包含名称、数值等信息的哈希表 `stringAtt`。
4. **数据重组与排序**:将 `stringAtt` 转换为数组 `attrShow`,并根据配置中的 `sort` 字段进行排序,确保属性显示顺序一致。
5. **标题添加**:在属性列表前插入一个格式化的标题行,例如“`[附加属性]:`”。
6. **文本对齐与着色**:对每个属性进行名称清理、计算对齐空格,并根据 `excolor` 配置或默认值(250)设置字体颜色,最终生成富文本字符串 `oneStr`。
7. **返回结果**:返回一个包含标题和所有属性富文本的数组 `strList`,每个元素是一个包含 `id` 和 `str` 字段的表。
**需要注意的细节:**
* **对齐计算**:`attrAlignment` 和 `attrCoefficient` 用于控制属性名称和数值的对齐方式,这通常是为了在界面上实现整齐的列式布局。
* **颜色处理**:属性名称的颜色由 `excolor` 字段控制,如果未配置则使用默认颜色ID 250。
* **函数依赖**:代码中调用了 `getAttOriginId` 和 `getAddShow` 等函数,这些需要在上下文中定义,否则会报错。
* **数据验证**:在分割字符串后,会检查分割结果是否为数字,确保数据的有效性。
**总结:** 这个函数是将后台传来的属性数据字符串,经过解析、格式化、排序和美化后,转换为前端可以直接用于显示(例如在`GUI:RichText_Create`中使用)的富文本列表。
← 返回问答库