根据浮生梦老师前端课程内容,套装属性的tips显示逻辑分为新套装系统和老套装系统两种处理方式。
**新套装系统**:
当服务端配置 `SuitCalType` 为1时,使用新套装系统。系统会从物品数据中获取 `suitid` 字段,通过"#"分割后逐个创建套装面板:
```lua
local suitCalType = SL:GetMetaValue("GAME_DATA", "SuitCalType") or 0
local suitSwitch = tonumber(suitCalType) == 1
if suitSwitch then
local suitids = itemData.suitid
if not ItemTips._diff and suitids and string.len(suitids) > 0 then
local suitArry = string.split(suitids, "#")
for k, v in pairs(suitArry) do
local id = v and tonumber(v)
if id then
ItemTips.GetNewSuitPanel(id, itemData)
end
end
end
end
```
**老套装系统**:
当服务端配置 `SuitCalType` 不为1时,使用老套装系统。系统会根据物品名称从服务端获取套装配置:
```lua
local suitNameConfig = SL:GetMetaValue("SUIT_CONFIG", itemData.originName or itemData.Name)
if suitNameConfig then
table.sort(suitNameConfig, function(a, b)
return a.Idx < b.Idx
end)
for k, v in pairs(suitNameConfig) do
ItemTips.GetSuitPanel(v, itemData, k)
end
end
```
**隐藏套装tips配置**:
可以通过服务端配置 `hideSuitTips` 来控制是否显示套装tips:
```lua
local IsHideSuitTips = (tonumber(SL:GetMetaValue("GAME_DATA", "hideSuitTips")) or 0) == 1
if not IsHideSuitTips then
-- 显示套装逻辑
end
```
代码位置:ItemTips模块的套装显示处理函数中,具体在创建物品面板后的套装属性展示部分。