require("Base/BasePanel") local PlayerInfoPopup = Inherit(BasePanel) local this = PlayerInfoPopup local netserverName = nil local XiuXianSkillConfig = ConfigManager.GetConfig(ConfigName.XiuXianSkillConfig) local GemConfig = ConfigManager.GetConfig(ConfigName.GemConfig) local ItemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local ChangingCard = ConfigManager.GetConfig(ConfigName.ChangingCard) local isNpc = false--是否是机器人 local _ViewConfig = { [PLAYER_INFO_VIEW_TYPE.NORMAL] = { formationType = FormationTypeDef.FORMATION_NORMAL, tip = Language[10933], isAddFriend = true, btnType = { --{name = "举 报", func = 1}, {name = Language[11496], func = 2}, {name = Language[11497], func = 3}, } }, [PLAYER_INFO_VIEW_TYPE.BLACK_REMOVE] = { formationType = FormationTypeDef.FORMATION_NORMAL, tip = Language[10933], isAddFriend = true, btnType = { {name = Language[11498], func = 4}, } }, [PLAYER_INFO_VIEW_TYPE.GO_TO_BLACK] = { formationType = FormationTypeDef.FORMATION_NORMAL, tip = Language[10933], isAddFriend = true, btnType = { {name = Language[11499], func = 5}, } }, [PLAYER_INFO_VIEW_TYPE.ARENA] = { formationType = FormationTypeDef.FORMATION_ARENA_DEFEND, tip = Language[11500], isAddFriend = true, }, [PLAYER_INFO_VIEW_TYPE.TOP_MATCH] = { formationType = FormationTypeDef.ARENA_TOM_MATCH, tip = "巅峰赛阵容", isAddFriend = false, }, [PLAYER_INFO_VIEW_TYPE.MIND_DEMON] = { formationType = FormationTypeDef.MONSTER_CAMP_ATTACK, tip = Language[12306], isAddFriend = true, btnType = {} }, [PLAYER_INFO_VIEW_TYPE.TSLX] = { formationType = FormationTypeDef.FORMATION_TSLX, tip = "挑战阵容", isAddFriend = true, btnType = {} }, [PLAYER_INFO_VIEW_TYPE.JUPMSERVER] = { formationType = FormationTypeDef.JUMPSERVER_HIGHTLADDER, tip = "罗浮争锋阵容:", isAddFriend = false, btnType = { -- {name = "挑战", func = 6}, {name = "切磋", func = 6}, } }, [PLAYER_INFO_VIEW_TYPE.JUPMSERVER_NORMAL] = { formationType = FormationTypeDef.FORMATION_NORMAL, tip = Language[10933], isAddFriend = false, btnType = { {name = "切磋", func = 7}, } }, [PLAYER_INFO_VIEW_TYPE.QIJIESHILIAN] = { formationType = FormationTypeDef.FORMATION_QIJIESHILIAN, tip = "七界试炼阵容:", isAddFriend = false, btnType = { -- {name = "切磋", func = 7}, } }, [PLAYER_INFO_VIEW_TYPE.LINGMAIMIJING] = { formationType = FormationTypeDef.FORMATION_LINGMAIMIJING, tip = "灵脉秘境阵容:", isAddFriend = false, btnType = { {name = "切磋", func = 9}, {name = "挑战", func = 8}, {name = "调整编队", func = 8}, } }, } local InfoBtns = { [1] = { name = "紫府神印", gridName = "imprintInfo", func = function (data,obj) this.imprintInfoShow(data,obj) end }, [2] = { name = "身外化身", gridName = "huashenInfo", func = function (data,obj) this.huashenInfoShow(data,obj) end }, [3] = { name = "四象心法", gridName = "fourElementInfo", func = function (data,obj) this.fourElementInfoShow(data,obj) end }, [4] = { name = "命 格", gridName = "GemInfo", func = function (data,obj) this.GemInfoShow(data,obj) end }, [5] = { name = "坐 骑", gridName = "RideInfo", func = function (data,obj) this.RideInfoShow(data,obj) end }, [6] = { name = "礼 物", gridName = "giftInfo", func = function (data,obj) this.GiftInfoShow(data,obj) end }, } local curPlayerName = "" local _PlayerHead = nil --初始化组件(用于子类重写) function PlayerInfoPopup:InitComponent() this.spLoader = SpriteLoader.New() this.extraInfo = require("Modules/Popup/PlayerInfoPopup_extra") this.btnBack = Util.GetGameObject(self.transform, "btnClose") this.BgMask = Util.GetGameObject(self.transform, "BgMask") this.memHead = Util.GetGameObject(self.transform, "tipImage/panel/info/head") this.memName = Util.GetGameObject(self.transform, "tipImage/panel/info/name"):GetComponent("Text") this.memProfess = Util.GetGameObject(self.transform, "tipImage/panel/info/profess"):GetComponent("Text") this.addFriendBtn = Util.GetGameObject(self.transform, "tipImage/panel/info/btnAdd") this.addFriendBtnText = Util.GetGameObject(this.addFriendBtn, "text"):GetComponent("Text") this.starBox = Util.GetGameObject(self.transform, "tipImage/panel/info/starBox") this.star = Util.GetGameObject(self.transform, "tipImage/panel/info/starBox/star") this.titlePar = Util.GetGameObject(self.transform, "tipImage/panel/info/titlePar") this.memPower = Util.GetGameObject(self.transform, "tipImage/panel/defendbox/power"):GetComponent("Text") this.formationTip = Util.GetGameObject(self.transform, "tipImage/panel/defendbox/Image/tip"):GetComponent("Text") this.demonsHeroList=Util.GetGameObject(self.gameObject, "tipImage/panel/defendbox/demons") this.diffDemonsHeroList=Util.GetGameObject(self.gameObject, "tipImage/panel/defendbox/diffdemons") this.Demons = {} for i = 1, 6 do this.Demons[i] = {} this.Demons[i].go = Util.GetGameObject(self.gameObject, "tipImage/panel/defendbox/Demons/heroPro (" .. i .. ")") this.Demons[i].frameBtn =Util.GetGameObject(this.Demons[i].go, "frame") this.Demons[i].frame =this.Demons[i].frameBtn:GetComponent("Image") this.Demons[i].hero = Util.GetGameObject(this.Demons[i].go, "hero") this.Demons[i].starGrid = Util.GetGameObject(this.Demons[i].hero, "starGrid") this.Demons[i].proIcon = Util.GetGameObject(this.Demons[i].hero, "proIcon"):GetComponent("Image") this.Demons[i].levelText = Util.GetGameObject(this.Demons[i].hero, "lvbg/levelText"):GetComponent("Text") this.Demons[i].icon = Util.GetGameObject(this.Demons[i].hero, "icon"):GetComponent("Image") end Util.GetGameObject(self.transform, "tipImage/panel/pokemonInfo/Image/tip"):GetComponent("Text").text=Language[11501] this.Pokemons = {} for i = 1, 6 do table.insert(this.Pokemons, Util.GetGameObject(self.gameObject, "tipImage/panel/pokemonInfo/Demons/heroPro (" .. i .. ")")) end this.Weapons={} for i = 1, 6 do table.insert(this.Weapons, Util.GetGameObject(self.gameObject, "tipImage/panel/weaponInfo/Demons/heroPro (" .. i .. ")")) end this.newGems={} for i=1,16 do table.insert(this.newGems, Util.GetGameObject(self.gameObject, "tipImage/panel/InfoGrids/Bg/GemInfo/Grid/heroPro (" .. i .. ")")) end this.pokemonObj=Util.GetGameObject(self.transform, "tipImage/panel/pokemonInfo").gameObject this.weaponInfo=Util.GetGameObject(self.transform, "tipImage/panel/weaponInfo") this.newGemInfo=Util.GetGameObject(self.transform, "tipImage/panel/newGemInfo") this.newGemInfo:SetActive(false) --this.boxLine = Util.GetGameObject(self.transform, "tipImage/panel/defendbox/line") this.btnBox = Util.GetGameObject(self.transform, "tipImage/panel/box") -- this.bgImg= Util.GetGameObject(self.transform, "tipImage/tipImage"):GetComponent("RectTransform") this.btnList = {} this.btnList[1] = Util.GetGameObject(this.btnBox, "btn1") this.btnList[2] = Util.GetGameObject(this.btnBox, "btn2") this.btnList[3] = Util.GetGameObject(this.btnBox, "btn3") --神印信息 -- this.imprintObj = Util.GetGameObject(self.transform, "tipImage/panel/imprintInfo") -- this.imprintGrid = Util.GetGameObject(this.imprintObj, "Imprints") -- this.imprintPre = Util.GetGameObject(self.transform, "imprintPre") --所有信息Obj的PreList this.InfoBtns = Util.GetGameObject(self.transform, "tipImage/panel/InfoBtns") this.InfoBtnsGrid = Util.GetGameObject(this.InfoBtns, "Grid") this.InfoContentGrid = Util.GetGameObject(self.transform, "tipImage/panel/InfoGrids") this.InfoContent = Util.GetGameObject(this.InfoContentGrid, "Bg") this.infoBtnPre = Util.GetGameObject(self.transform, "btnPre")--按钮的Pre this.imprintPre = Util.GetGameObject(self.transform, "imprintPre")--神印的Pre this.emptyPre = Util.GetGameObject(self.transform, "emptyPre")--空的Pre this.InfoBtnsList = {} this.ItemPreList = {} this.ItemList = {} end --绑定事件(用于子类重写) function PlayerInfoPopup:BindEvent() Util.AddClick(this.btnBack, function() PlaySoundWithoutClick(SoundConfig.Sound_UICancel) this:ClosePanel() end) Util.AddClick(this.BgMask, function() PlaySoundWithoutClick(SoundConfig.Sound_UICancel) this:ClosePanel() end) Util.AddClick(this.addFriendBtn, function() if this.serverName and this.serverName ~= "" then PopupTipPanel.ShowTip("无法跨服添加好友") return end if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.GOODFRIEND) then PopupTipPanel.ShowTip(ActTimeCtrlManager.GetFuncTip(FUNCTION_OPEN_TYPE.GOODFRIEND)) return end if GoodFriendManager.IsInBlackList(this._PlayerId) then PopupTipPanel.ShowTip(Language[10814]) return end if this._PlayerId == PlayerManager.uid then PopupTipPanel.ShowTip(Language[10931]) return end if GoodFriendManager.IsMyFriend(this._PlayerId) then PopupTipPanel.ShowTip(Language[10932]) return end if this._PlayerData.isApplyed == 1 then PopupTipPanel.ShowTip(Language[10819]) return end GoodFriendManager.InviteFriendRequest(this._PlayerId, function() PopupTipPanel.ShowTip(Language[11502]) this._PlayerData.isApplyed = 1 this.RefreshFunction() end) end) end --添加事件监听(用于子类重写) function PlayerInfoPopup:AddListener() end --移除事件监听(用于子类重写) function PlayerInfoPopup:RemoveListener() end --界面打开时调用(用于子类重写) function PlayerInfoPopup:OnOpen(playerId, viewType,serverName,_otherdata) this._PlayerId = playerId this._ViewType = viewType or PLAYER_INFO_VIEW_TYPE.NORMAL this.serverName = serverName--跨服加的服务器数据 this.data = _otherdata isNpc = this._PlayerId <= 1000000 -- 界面类型修正 if this._ViewType == PLAYER_INFO_VIEW_TYPE.NORMAL and GoodFriendManager.IsInBlackList(this._PlayerId) then this._ViewType = PLAYER_INFO_VIEW_TYPE.GO_TO_BLACK end this._Config = _ViewConfig[this._ViewType] -- 注册按钮事件 this.btnFunc = { [1] = this.Report, [2] = this.AddToBlackList, [3] = this.BeatHim, [4] = this.RemoveFromBlackList, [5] = this.GoToBlack, [6] = this.JumpServerBattle, [7] = this.JumpServerBattle_NORMAL, [8] = this.LingMaiFormaion, [9] = this.LingMaiQieCuo, } end -- 设置界面类型 function PlayerInfoPopup:SetViewType(viewType) this._ViewType = viewType or PLAYER_INFO_VIEW_TYPE.NORMAL this._Config = _ViewConfig[this._ViewType] this:OnShow() end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function PlayerInfoPopup:OnShow() -- this.RefreshBtnShow() -- 请求数据 LogGreen("角色Id:"..tostring(this._PlayerId).." 编队Id:"..tostring(this._Config.formationType)) if this._PlayerId > 0 then--如果PlayerId > 0 说明是真人或者机器人,为0暂时为灵脉使用,直接是怪物组,数据需要自己拼接 netserverName = nil if this.serverName and this.serverName ~= "" then--and this.serverName ~= PlayerManager.serverInfo.name netserverName = 1 end this.curPlayerData = {} NetManager.RequestPlayerInfo(this._PlayerId, this._Config.formationType,netserverName,0, function(msg) -- 如果是好友更新好友数据 this.curPlayerData = msg.teamInfo curPlayerName = msg.teamInfo.name GoodFriendManager.UpdateFriendData(this._PlayerId, msg.teamInfo.level, JingJiShouWeiToEn(msg.teamInfo.name) , msg.teamInfo.head, msg.teamInfo.headFrame) this._PlayerData = msg.teamInfo this.RefreshPlayerInfo(msg.teamInfo) local teamInfo = msg.teamInfo.team this.FormationAdapter(teamInfo) -- this.RefreshFunction() this.RefreshBtnShow() end) else --目前只给灵脉,如果还有其他请写明备注 this.InfoBtns:SetActive(false) this.InfoContentGrid:SetActive(false) this.pokemonObj:SetActive(false) this.extraInfo.Init(this,this.data,_ViewConfig[this._ViewType]) end end -- 刷新基础信息显示 local titleLiveStr local titleLive function this.RefreshPlayerInfo(data) local curname = "" if data.serverName and data.serverName ~= "" then curname = data.serverName .. " " ..data.name elseif this.serverName and this.serverName ~= "" then curname = this.serverName .. " " ..data.name else curname = data.name end this.memName.text = PracticeManager.SetNameColor(curname,data.practiceLevel)--data.name if(data.guildName~="") then this.memProfess.text =Language[10633]..data.guildName--GUILD_GRANT_STR[data.position] else this.memProfess.text =Language[10633]..Language[10086] end -- 头像 if not _PlayerHead then _PlayerHead = SubUIManager.Open(SubUIConfig.PlayerHeadView, this.memHead.transform) end _PlayerHead:Reset() _PlayerHead:SetScale(Vector3.one * 0.85) _PlayerHead:SetHead(data.head) _PlayerHead:SetFrame(data.headFrame) _PlayerHead:SetLevel(data.level) _PlayerHead:SetLayer(this.sortingOrder) _PlayerHead:SetEffectScale(0.9) local title=data.userTitle if title and title>0 then this.titlePar:SetActive(true) if titleLive then SubUIManager.Close(titleLive) titleLive = nil end if not titleLive then titleLive = SubUIManager.Open(SubUIConfig.PlayerTitle, this.titlePar.transform) titleLive:SetShow(title, Vector3.New(0,0,0), 0.5, 0.03*20, this.sortingOrder) end else this.titlePar:SetActive(false) end end function this:OnSortingOrderChange() if _PlayerHead then _PlayerHead:SetLayer(self.sortingOrder) end for i, demon in ipairs(this.Demons) do Util.SetParticleSortLayer(demon.starGrid,self.sortingOrder + 1) end end -- 刷新功能区 function this.RefreshFunction() this.addFriendBtn:SetActive(false) this.starBox:SetActive(false) if this._ViewType == PLAYER_INFO_VIEW_TYPE.NORMAL or this._ViewType == PLAYER_INFO_VIEW_TYPE.MIND_DEMON then this.addFriendBtn:SetActive(true) local isSelf = this._PlayerId == PlayerManager.uid local isMyFriend = isSelf and true or GoodFriendManager.IsMyFriend(this._PlayerId) local isApplyed = this._PlayerData.isApplyed == 1 Util.SetGray(this.addFriendBtn, isMyFriend or isApplyed) this.addFriendBtnText.text = isApplyed and Language[10816] or Language[10937] end end -- 编队数据匹配 function this.FormationAdapter(teamInfo) --====================编队信息====================== this.formationTip.text = _ViewConfig[this._ViewType].tip -- 战斗力 this.memPower.text = teamInfo.totalForce for i, demon in ipairs(this.Demons) do demon.frame.sprite = this.spLoader:LoadSprite(GetQuantityImageByquality(1)) demon.hero:SetActive(false) demon.frame.transform:GetComponent("Button").enabled=false end --队伍阵容 for i, hero in ipairs(teamInfo.team) do local demonId = teamInfo.team[i].heroTid if demonId then this.Demons[hero.position].hero:SetActive(true) local star,starType = GetStarOrGodSoulLv(1,hero) local starSize = Vector2.New(35,35) local starScale = -8 if starType == 3 then starSize = Vector2.New(1,-15.65) starScale = -13 elseif starType == 2 then starSize = Vector2.New(60,57) end SetHeroStars(this.spLoader, this.Demons[hero.position].starGrid, star,starType,starSize,starScale) Util.SetParticleSortLayer(this.Demons[hero.position].starGrid,this.sortingOrder + 1) local heroConfig = ConfigManager.GetConfigData(ConfigName.HeroConfig, demonId) this.Demons[hero.position].proIcon.sprite = this.spLoader:LoadSprite(GetProStrImageByProNum(hero.propertyId)) this.Demons[hero.position].levelText.text = hero.level this.Demons[hero.position].frame.sprite = this.spLoader:LoadSprite(GetQuantityImageByquality(heroConfig.Quality, hero.star)) SetHeroIcon(this.spLoader, hero,this.Demons[hero.position].icon,heroConfig) SetHeroFlyEffect(this.Demons[hero.position].hero,this.spLoader,hero.star,this.sortingOrder+1,0.9,2) local heroData = {} local frameBtn=this.Demons[hero.position].frameBtn frameBtn.transform:GetComponent("Button").enabled=true if this._Config.formationType == FormationTypeDef.FORMATION_TSLX then Util.AddOnceClick(frameBtn, function() UIManager.OpenPanel(UIName.RoleGetInfoPopup,false,demonId,hero.star) end) else Util.AddOnceClick(frameBtn, function() if not hero.heroid or not heroConfig then return end NetManager.ViewHeroInfoRequest(this._PlayerId,hero.heroid,netserverName,this._Config.formationType,function(msg) heroData= GoodFriendManager.GetHeroDatas(msg.hero,msg.force,msg.SpecialEffects,msg.guildSkill) GoodFriendManager.InitEquipData(msg.equip,heroData)--HeroManager.GetSingleHeroData(heroData.dynamicId) LogError("msg.playerGiftLv==================="..msg.playerGiftLv) for k, v in pairs(heroData.potential) do v.giftLv= msg.playerGiftLv end UIManager.OpenPanel(UIName.RoleInfoPopup, heroData,true) end) end) end end end local len=#teamInfo.PokemonInfos -- LogError("长度:"..len) if len>0 then this.pokemonObj:SetActive(true) for i, demon in ipairs(this.Pokemons) do demon.gameObject:SetActive(false) Util.GetGameObject(demon, "frame"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetQuantityImageByquality(1)) Util.GetGameObject(demon, "hero"):SetActive(false) end else this.pokemonObj:SetActive(false) end --====================队伍灵兽信息====================== for i, hero in ipairs(teamInfo.PokemonInfos) do local demonId = teamInfo.PokemonInfos[i].heroTid this.Pokemons[i].gameObject:SetActive(true) if demonId then local heroGo = Util.GetGameObject(this.Pokemons[i], "hero") heroGo:SetActive(true) local starSize = Vector2.New(35,35) local star=hero.star local type=1 local starScale = -10 if star>5 then star=star+5 starSize = Vector2.New(0.8,-25) starScale=-20 type=3 else starScale=-15 end local grid=Util.GetGameObject(heroGo, "starGrid") SetHeroStars(this.spLoader, grid, star,type,starSize,starScale) --SetHeroStars(this.spLoader,grid ,star,type,starSize, starScale,Vector2.New(0.5,1)) Util.AddParticleSortLayer(Util.GetGameObject(heroGo, "starGrid"),this.sortingOrder + 1) local heroConfig = ConfigManager.GetConfigData(ConfigName.SpiritAnimal, demonId) Util.GetGameObject(heroGo, "lvbg/levelText"):GetComponent("Text").text = hero.level Util.GetGameObject(this.Pokemons[i], "frame"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetQuantityImageByquality(heroConfig.Quality)) Util.GetGameObject(heroGo, "icon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetResourcePath(heroConfig.Icon)) local frameBtn = Util.GetGameObject(this.Pokemons[i], "frame") local heroData = {} Util.AddOnceClick(frameBtn, function() local pokemonData={tempId=demonId,id=demonId,star=hero.star,level=hero.level} UIManager.OpenPanel(UIName.PokemonGetInfoPopup,true,pokemonData) end) end end --====================队伍神兵信息====================== local len2=#teamInfo.MagicSoldier -- LogError("长度:"..len) if len2>0 then this.weaponInfo:SetActive(true) for i, demon in ipairs(this.Weapons) do --demon.gameObject:SetActive(false) Util.GetGameObject(demon, "frame"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetQuantityImageByquality(1)) Util.GetGameObject(demon, "hero"):SetActive(false) end else this.weaponInfo:SetActive(false) end for i, hero in ipairs(teamInfo.MagicSoldier) do local demonId = teamInfo.MagicSoldier[i].heroTid --this.Weapons[].gameObject:SetActive(true) if demonId then LogError("hero.position=="..teamInfo.MagicSoldier[i].position) local heroGo = Util.GetGameObject(this.Weapons[hero.position], "hero") heroGo:SetActive(true) SetHeroStars(this.spLoader, Util.GetGameObject(heroGo, "starGrid"), hero.star,1) local heroConfig = ConfigManager.GetConfigData(ConfigName.ShenBing, demonId) Util.GetGameObject(heroGo, "lvbg/levelText"):GetComponent("Text").text = hero.level Util.GetGameObject(this.Weapons[hero.position], "frame"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetQuantityImageByquality(heroConfig.Quality)) Util.GetGameObject(heroGo, "icon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(GetResourcePath(heroConfig.Icon)) local frameBtn = Util.GetGameObject(this.Weapons[hero.position], "frame") local heroData = {} Util.AddOnceClick(frameBtn, function() local pokemonData={tempId=demonId,id=demonId,star=hero.star,level=hero.level} UIManager.OpenPanel(UIName.GodWeaponGetInfoPopup,true,pokemonData) end) end end --====================其他信息按钮显示====================== this.infoIndex = 0 for index, value in ipairs(InfoBtns) do LogError("teamInfo.giftEquipIds len============="..#teamInfo.giftEquipIds) --添加按钮 local item = this.InfoBtnsList[index] if not item then item = newObjToParent(this.infoBtnPre,this.InfoBtnsGrid.transform) this.InfoBtnsList[index] = item item.gameObject:SetActive(true) end local name = Util.GetGameObject(item,"btnName"):GetComponent("Text") name.text = value.name --判断按钮是否显示 if (index == 1 and teamInfo.sealShow and #teamInfo.sealShow > 0) or--神印 (index == 2 and teamInfo.transformationCardInfo and #teamInfo.transformationCardInfo > 0) or--身外化身 (index == 3 and teamInfo.sixiangxinfaInfo and #teamInfo.sixiangxinfaInfo > 0) or--四象心法 (index == 5 and teamInfo.userMountInfo and #teamInfo.userMountInfo > 0) then--坐骑 item.gameObject:SetActive(true) if this.infoIndex == 0 then this.infoIndex = index end elseif (index == 4 and teamInfo.gemNews and #teamInfo.gemNews > 0) then--命石 -- local num = 0 -- for i = 1, #teamInfo.gemNews do -- local data = teamInfo.gemNews[i] -- if data.itemId and data.itemId > 0 then -- num = num + 1 -- end -- end item.gameObject:SetActive(#teamInfo.gemNews> 0) if this.infoIndex == 0 then this.infoIndex = index end elseif (index == 6 and teamInfo.giftEquipIds and #teamInfo.giftEquipIds > 0) then item.gameObject:SetActive(#teamInfo.giftEquipIds> 0) if this.infoIndex == 0 then this.infoIndex = index end else item.gameObject:SetActive(false) end --添加点击事件 Util.AddOnceClick(item,function () this.infoIndex = index this.ShowInfos(teamInfo) end) end --初始化一次 if this.infoIndex == 0 then this.InfoBtns:SetActive(false) this.InfoContentGrid:SetActive(false) else this.InfoBtns:SetActive(true) this.InfoContentGrid:SetActive(true) this.ShowInfos(teamInfo) end end --选择展示下方框框中显示的内容 function this.ShowInfos(teamInfo) for index, value in ipairs(this.InfoBtnsList) do local img = value:GetComponent("Image") local text = Util.GetGameObject(value,"btnName"):GetComponent("Text") if this.infoIndex == index then img.sprite = this.spLoader:LoadSprite("s_shop_qieye_2") text.color = Color.New(253 / 255, 244 / 255, 214 / 255, 1) else img.sprite = this.spLoader:LoadSprite("s_shop_qieye_1") text.color = Color.New(181 / 255, 164 / 255, 129 / 255, 1) end Util.GetGameObject(this.InfoContent,InfoBtns[index].gridName):SetActive(false) end local MainContent = Util.GetGameObject(this.InfoContent,InfoBtns[this.infoIndex].gridName) local Grid = Util.GetGameObject(MainContent,"Grid") MainContent:SetActive(true) if not this.ItemPreList[this.infoIndex] then this.ItemPreList[this.infoIndex] = {} end for i = 1, #this.ItemPreList[this.infoIndex] do this.ItemPreList[this.infoIndex][i].gameObject:SetActive(false) end InfoBtns[this.infoIndex].func(teamInfo,Grid) end --===========================滑动条中的信息展示==================== --神印的 function this.imprintInfoShow(teamInfo,Grid) for i = 1, #teamInfo.sealShow do local item = this.ItemPreList[this.infoIndex][i] local value = teamInfo.sealShow[i] if not item then item = newObjToParent(this.imprintPre,Grid.transform) item:SetActive(true) this.ItemPreList[this.infoIndex][i] = item end item.gameObject:SetActive(true) local icon = Util.GetGameObject(item,"icon"):GetComponent("Image") icon.sprite = this.spLoader:LoadSprite(GetResourcePath(XiuXianSkillConfig[value.id].Icon)) Util.AddOnceClick(item.gameObject,function () UIManager.OpenPanel(UIName.GeneralInfoPopup,GENERALINFO_TYPE.Imprint,value.id,value.heroTId) end) end end --身外化身 function this.huashenInfoShow(teamInfo,Grid) -- for i = 1, #teamInfo.transformationCardInfo do -- local data = teamInfo.transformationCardInfo[i] -- LogGreen("身外化身卡 id:"..tostring(data.id).." 位置:"..tostring(data.index).." 状态:"..tostring(data.status)) -- end for i = 1, #teamInfo.transformationCardInfo do local item = this.ItemPreList[this.infoIndex][i] local value = teamInfo.transformationCardInfo[i] if not item then item = newObjToParent(this.emptyPre,Grid.transform) item:SetActive(true) this.ItemPreList[this.infoIndex][i] = item local itemview = SubUIManager.Open(SubUIConfig.ItemView, item.transform) this.ItemList[i] = itemview this.ItemList[i].transform:SetSiblingIndex(1) end this.ItemList[i]:OnOpen(false, {ChangingCard[value.id].CardId,0,0,value.level,value.star}, 1,false,false,false,this.sortingOrder) Util.GetGameObject(item,"Name"):GetComponent("Text").text = ItemConfig[ChangingCard[value.id].CardId].Name Util.GetGameObject(item,"lvbg/levelText"):GetComponent("Text").text = value.level Util.GetGameObject(item,"lvbg"):SetActive(true) local starGrid= Util.GetGameObject(item,"starGrid") starGrid.gameObject:SetActive(true) for i = 0, 5 do if i 0 then -- iconList[data.gridId][data.gridIndex]:GetComponent("Image").sprite = this.spLoader:LoadSprite(GetSpriteNameByItemId(data.itemId)) -- levelList[data.gridId][data.gridIndex]:GetComponent("Text").text = GemConfig[data.itemId].Level -- iconList[data.gridId][data.gridIndex]:SetActive(true) -- end -- end --队伍命石信息 local gems=teamInfo.gemNews if gems and #gems>0 then this.newGemInfo:SetActive(false) for i=1,16 do if gems[i] then this.newGems[i]:SetActive(true) local data=GemNewManager.ChangeOneGemData(gems[i]) Util.GetGameObject(this.newGems[i], "frame"):GetComponent("Image").sprite = this.spLoader:LoadSprite(data.frame) Util.GetGameObject(this.newGems[i], "hero/icon"):GetComponent("Image").sprite = this.spLoader:LoadSprite(data.icon) local frameBtn = Util.GetGameObject(this.newGems[i], "frame") local heroData = {} Util.AddOnceClick(frameBtn, function() UIManager.OpenPanel(UIName.RewardGemSingleShowPopup,data,3) end) else this.newGems[i]:SetActive(false) end end else this.newGemInfo:SetActive(false) end end --坐骑 function this.RideInfoShow(teamInfo,Grid) -- for i = 1, #teamInfo.userMountInfo do -- local data = teamInfo.userMountInfo[i] -- LogPink("坐骑 id:"..tostring(data.mountId).." 过期时间:"..tostring(data.overTime)) -- end for i = 1, #teamInfo.userMountInfo do local item = this.ItemPreList[this.infoIndex][i] local value = teamInfo.userMountInfo[i] if not item then item = SubUIManager.Open(SubUIConfig.ItemView, Grid.transform) this.ItemPreList[this.infoIndex][i] = item end item:OnOpen(false, {value.mountId,0}, 1,true,false,false,this.sortingOrder) item.gameObject:SetActive(true) end if #teamInfo.userMountInfo > 4 then -- Grid:GetComponent("HorizontalLayoutGroup").padding.left = 30 Grid:GetComponent("RectTransform").pivot = Vector2.New(0, 0.5) else -- Grid:GetComponent("HorizontalLayoutGroup").padding.left = -30 Grid:GetComponent("RectTransform").pivot = Vector2.New(0.5, 0.5) end end --礼物 function this.GiftInfoShow(teamInfo,Grid) for i = 1, #teamInfo.giftEquipIds do local item = this.ItemPreList[this.infoIndex][i] local value = teamInfo.giftEquipIds[i] if not item then item = SubUIManager.Open(SubUIConfig.ItemView, Grid.transform) this.ItemPreList[this.infoIndex][i] = item end item:OnOpen(false, {value,0}, 1,true,false,false,this.sortingOrder) item.gameObject:SetActive(true) end if #teamInfo.giftEquipIds > 4 then -- Grid:GetComponent("HorizontalLayoutGroup").padding.left = 30 Grid:GetComponent("RectTransform").pivot = Vector2.New(0, 0.5) else -- Grid:GetComponent("HorizontalLayoutGroup").padding.left = -30 Grid:GetComponent("RectTransform").pivot = Vector2.New(0.5, 0.5) end end --============================底部按钮显示=========================== function this.RefreshBtnShow() this.btnBox:SetActive(true) -- 按钮功能 local btnType = this._Config.btnType or {} for index, btn in ipairs(this.btnList) do btn:SetActive(btnType[index] ~= nil) if btnType[index] then Util.GetGameObject(btn, "Text"):GetComponent("Text").text = btnType[index].name Util.AddOnceClick(btn, function() local funcType = btnType[index].func if not this.btnFunc[funcType] then Log("方法不存在") return end this.btnFunc[funcType](btnType[index].param) end) end end -- 自己 if this._PlayerId == PlayerManager.uid or curPlayerName == Language[12230] then --this.boxLine:SetActive(false) this.btnBox:SetActive(false) this.addFriendBtn:SetActive(false) end -- 判断该界面类型是否有按钮显示 if not this._Config or not this._Config.btnType or isNpc then --this.boxLine:SetActive(false) this.btnBox:SetActive(false) this.addFriendBtn:SetActive(false) end this.addFriendBtn:SetActive(this._Config.isAddFriend) --一些按钮需要特殊显示 this.SpecialBtnShow() end --按钮特殊显示 function this.SpecialBtnShow() if this._ViewType == PLAYER_INFO_VIEW_TYPE.LINGMAIMIJING then this.btnBox:SetActive(true) local bool = this._PlayerId == PlayerManager.uid if UIManager.IsOpen(UIName.RankingSingleListPanel) then this.btnList[1]:SetActive(not bool) this.btnList[2]:SetActive(false) this.btnList[3]:SetActive(false) else this.btnList[1]:SetActive(not bool) this.btnList[2]:SetActive(not bool) this.btnList[3]:SetActive(bool) if LingMaiMiJingManager.myPlaceId ~= 0 and LingMaiMiJingManager.myPlaceId < this.data.Id then this.btnList[2]:SetActive(false) end end --临时修改如果灵脉已占领无法抢夺挑战 if this._PlayerId>0 then this.btnBox:SetActive(false) end end end ----=============================== 按钮事件================================== -- 举报 function this.Report() Log("举报") end -- 拉黑 function this.AddToBlackList() if this.serverName and this.serverName ~= "" then PopupTipPanel.ShowTip("无法跨服添加黑名单") return end if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.GOODFRIEND) then PopupTipPanel.ShowTip(Language[10828]) return end if table.nums(GoodFriendManager.blackFriendList) >= GoodFriendManager.blackFriendLimit then PopupTipPanel.ShowTip(Language[11503]) return end GoodFriendManager.RequestAddToBlackList(this._PlayerId, function() PopupTipPanel.ShowTip(Language[11504]) this:SetViewType(PLAYER_INFO_VIEW_TYPE.GO_TO_BLACK) end) end -- 移除黑名单 function this.RemoveFromBlackList() if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.GOODFRIEND) then PopupTipPanel.ShowTip(Language[10828]) return end GoodFriendManager.RequestDeleteFromBlackList(this._PlayerId, function() PopupTipPanel.ShowTip(Language[11505]) this:ClosePanel() end) end -- 移除黑名单 function this.GoToBlack() if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.GOODFRIEND) then PopupTipPanel.ShowTip(Language[10828]) return end this:ClosePanel() UIManager.OpenPanel(UIName.GoodFriendMainPanel, true, 4) end -- 打他 function this.BeatHim() this:ClosePanel() UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.PLAY, this._PlayerData) end -- 跨服天梯 function this.JumpServerBattle() this:ClosePanel() UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.JUMPSERVER_HIGHTLADDER,true, this._PlayerData) end -- 跨服天梯 function this.JumpServerBattle_NORMAL() this:ClosePanel() UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.PLAY, this._PlayerData,true) end --灵脉秘境 function this.LingMaiFormaion() if this.data.uid == PlayerManager.uid then this:ClosePanel() Log("调整编队") UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.LINGMAIMIJING, this.data) else LingMaiMiJingManager.CheckPrivilage(function () this:ClosePanel() Log("正常战斗") UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.LINGMAIMIJING, this.data) end) end end --灵脉秘境 function this.LingMaiQieCuo() this:ClosePanel() local sdata = {} sdata.uid = this._PlayerId sdata.name = this.curPlayerData.name sdata.head = this.curPlayerData.head sdata.headFrame = this.curPlayerData.headFrame UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.LINGMAIMIJING, sdata,true) end --=====================================按钮事件结束====================================== --界面关闭时调用(用于子类重写) function PlayerInfoPopup:OnClose() -- this.imprintObj:SetActive(false) JumpServerManager.SetCurPersonInfo(nil) if titleLive then SubUIManager.Close(titleLive) titleLive = nil end curPlayerData = {} end --界面销毁时调用(用于子类重写) function PlayerInfoPopup:OnDestroy() this.spLoader:Destroy() -- 头像 if _PlayerHead then _PlayerHead:Recycle() _PlayerHead = nil end titleLive = nil titleLiveStr = nil -- this.imprintItemList = {} this.InfoBtnsList = {} this.ItemPreList = {} this.Demons = {} if this.extraInfo then this.extraInfo.OnDestroy() end end return PlayerInfoPopup