function ItemTips.main(data)
ItemTips.GetEquipTips(data)
end
function ItemTips.GetEquipTips(data)
local itemData = data.itemData or (data.typeId and SL:GetMetaValue("ITEM_DATA", data.typeId))
local diffEquips = GUIFunction:GetDiffEquip(i
通过 `GUIFunction:GetDiffEquip(itemData, from == ItemFrom.HERO_BAG)` 获取的是一个**装备对比数组**。
这个数组包含了与传入的 `itemData`(当前查看的装备)进行对比的、玩家身上已穿戴的装备数据。具体来说:
1. **数组内容**:
- `diffEquips[1]`:通常是对比的第一件装备(例如主装备或主要对比项)。
- `diffEquips[2]`:通常是对比的第二件装备(例如备用装备或次要对比项,如果存在)。
2. **使用场景**:
当玩家在背包(`ItemFrom.BAG`)、英雄背包(`ItemFrom.HERO_BAG`)或自动交易行(`ItemFrom.AUTO_TRADE`)中查看一件装备时,如果系统设置允许(`SETTING_VALUE` 36号配置为1),就会调用此函数获取身上可对比的装备,用于在Tips面板中并排显示属性对比。
3. **后续处理**:
获取到 `diffEquips` 后,代码会检查数组是否有效且长度大于0,然后分别创建对比面板:
```lua
if diffEquips and #diffEquips > 0 then
if diffEquips[1] then
ItemTips.CreateEquipPanel(dData, diffEquips[1], false, panelIndex)
end
if diffEquips[2] then
ItemTips.CreateEquipPanel(dData, diffEquips[2], false, panelIndex)
end
end
```
简单来说,`diffEquips` 就是身上穿的、用来和当前查看装备做属性对比的那一或两件装备的数据列表。