diff --git a/lua/app/ui/common/cell/player_head_cell.lua b/lua/app/ui/common/cell/player_head_cell.lua index b272e289..1b53e178 100644 --- a/lua/app/ui/common/cell/player_head_cell.lua +++ b/lua/app/ui/common/cell/player_head_cell.lua @@ -17,6 +17,15 @@ function PlayerHeadCell:refresh(avatarId, frameId, showRp) showRp = DataManager.PlayerData:hasNewAvatar() or DataManager.PlayerData:hasNewFrame() end + -- 背景颜色 + local heroId = DataManager.PlayerData:getAvatarHeroId(avatarId) + if heroId then + local smallFrame = ModuleManager.HeroManager:getHeroSmallFrame(heroId) + if smallFrame then + self.baseObject:setSprite(GConst.ATLAS_PATH.ICON_HERO, smallFrame) + end + end + -- 头像 local avatarName = DataManager.PlayerData:getAvatarIconId(avatarId) if avatarName then diff --git a/lua/app/ui/player_info/avatar_cell.lua b/lua/app/ui/player_info/avatar_cell.lua index 1a6925c4..2333e65d 100644 --- a/lua/app/ui/player_info/avatar_cell.lua +++ b/lua/app/ui/player_info/avatar_cell.lua @@ -26,6 +26,15 @@ function AvatarCell:refresh(id, isSelect) self.baseObject:removeRedPoint() end + -- 背景 + local heroId = DataManager.PlayerData:getAvatarHeroId(self.id) + if heroId then + local smallFrame = ModuleManager.HeroManager:getHeroSmallFrame(heroId) + if smallFrame then + self.baseObject:setSprite(GConst.ATLAS_PATH.ICON_HERO, smallFrame) + end + end + self.select:setActive(isSelect) self.imgAvatar:setSprite(GConst.ATLAS_PATH.ICON_HERO, DataManager.PlayerData:getAvatarIconId(self.id)) self.lock:setActive(not DataManager.PlayerData:isAvatarUnlock(self.id)) diff --git a/lua/app/ui/player_info/player_info_ui.lua b/lua/app/ui/player_info/player_info_ui.lua index 1622d6d8..e1eefc7c 100644 --- a/lua/app/ui/player_info/player_info_ui.lua +++ b/lua/app/ui/player_info/player_info_ui.lua @@ -51,6 +51,7 @@ function PlayerInfoUI:onLoadRootComplete() self.btnUse = self.uiMap["player_info_ui.bg.btn_use"] self.txUse = self.uiMap["player_info_ui.bg.btn_use.tx_use"] self.btnClose = self.uiMap["player_info_ui.bg.btn_close"] + self.bgAvatar = self.uiMap["player_info_ui.bg.info.avatar"] self.curTag = TAG.AVATAR @@ -197,6 +198,13 @@ end -- 刷新头像和头像框 function PlayerInfoUI:refreshAvatarAndFrame() + local heroId = DataManager.PlayerData:getAvatarHeroId(self.selectAvatarId) + if heroId then + local smallFrame = ModuleManager.HeroManager:getHeroSmallFrame(heroId) + if smallFrame then + self.bgAvatar:setSprite(GConst.ATLAS_PATH.ICON_HERO, smallFrame) + end + end local avatarName = DataManager.PlayerData:getAvatarIconId(self.selectAvatarId) if avatarName then self.imgAvatar:setSprite(GConst.ATLAS_PATH.ICON_HERO, avatarName) diff --git a/lua/app/userdata/player/player_data.lua b/lua/app/userdata/player/player_data.lua index 1f83ae68..ced339f1 100644 --- a/lua/app/userdata/player/player_data.lua +++ b/lua/app/userdata/player/player_data.lua @@ -368,6 +368,14 @@ function PlayerData:getCanUnlockAvatarIds(heroId) return ids end +-- 获取头像对应的英雄id +function PlayerData:getAvatarHeroId(id) + local cfg = ConfigManager:getConfig("avatar")[id] + if cfg then + return cfg.hero + end +end + -- 头像框----------------------------------------------------------------------------------- -- 获取玩家当前使用的头像框