少年修仙传客户端代码仓库
10271 子 【越南】【砍树】【英文】仙盟徽章,头像框,头像(动态),聊天气泡,聊天表情

1.接入界面,调整显示大小
2.发送表情包后关闭面板
3.头像增加底图设定
4.头像预支体更换ImageEx,ButtonEx
55个文件已修改
1782 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/ChatBubbleBoxConfig.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/EmojiPackConfig.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/FamilyEmblemConfig.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/PlayerFaceConfig.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/PlayerFacePicConfig.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/FakePlayer/GA_JiaPlayer.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_NpcFightSgzcZZ.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_NpcFightZZPlayer.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_PVPClientPlayer.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_Player.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_PlayerClient.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorInfo.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorPlayerBase.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/ArenaActivity/ArenaFightingPKWin.cs 1219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/ArenaActivity/ArenaManagerModel.cs 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BlessedLand/BlessedLandSeekNormalCell.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatSendComponent.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/FightingPKWin.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/RoleInformation.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOneClient/ClientCrossServerOneVsOne.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/AssistPlayerCell.cs 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TargetBriefInfoWin.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TrialSweepAssistPlayerBehaviour.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TrialSweepResultWin.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/ChuangongInviteWin.cs 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyFeastModel.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyViewCell.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/KingFairyModel.cs 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/KingTempleWin.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyEmblem/EmblemHelper.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyEmblem/FairyEmblemItem.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyEmblem/FairyEmblemModel.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyEmblem/FairyEmblemWin.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FakeDungeon/JiaDemonJarDungeonStage.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FriendSystem/AddCell.cs 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FriendSystem/PlayerInfoCell.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyDemonKingModel.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyDemonKingPlayerBehaviour.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/PhantasmPavilion/AvatarCell.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/PhantasmPavilion/AvatarHelper.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/PhantasmPavilion/PhantasmPavilionAvatarFrameHandler.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/PhantasmPavilion/PhantasmPavilionAvatarHandler.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/PhantasmPavilion/PhantasmPavilionChatBubbleHandler.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/PhantasmPavilion/PhantasmPavilionChatExpressionHandler.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/PhantasmPavilion/PhantasmPavilionModel.cs 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Role/RoleInfomationWin.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SkyTower/SkyTowerServeChallengeCell.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/MyTeammateBehaviour.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/TeamData.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/TeamInviteBehaviour.cs 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/TeamPrepareBehaviour.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/TeammateInteractPanel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/PlayerLifeBar.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/ChatBubbleBoxConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           2024年10月30日
//    [  Date ]:           2024年11月6日
//--------------------------------------------------------
using System.Collections.Generic;
@@ -16,6 +16,7 @@
    public readonly int ID;
    public readonly string Name;
    public readonly int NeedLV;
    public readonly int SortNum;
    public readonly int UnlockDefault;
    public readonly int ExpireMinutes;
    public readonly int[][] UnlockNeedItemList;
@@ -48,19 +49,21 @@
            int.TryParse(tables[2],out NeedLV); 
            int.TryParse(tables[3],out UnlockDefault);
            int.TryParse(tables[3],out SortNum);
            int.TryParse(tables[4],out ExpireMinutes);
            int.TryParse(tables[4],out UnlockDefault);
            UnlockNeedItemList = JsonMapper.ToObject<int[][]>(tables[5].Replace("(", "[").Replace(")", "]"));
            int.TryParse(tables[5],out ExpireMinutes);
            if (tables[6].Contains("["))
            UnlockNeedItemList = JsonMapper.ToObject<int[][]>(tables[6].Replace("(", "[").Replace(")", "]"));
            if (tables[7].Contains("["))
            {
                LightAttrType = JsonMapper.ToObject<int[]>(tables[6]);
                LightAttrType = JsonMapper.ToObject<int[]>(tables[7]);
            }
            else
            {
                string[] LightAttrTypeStringArray = tables[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] LightAttrTypeStringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                LightAttrType = new int[LightAttrTypeStringArray.Length];
                for (int i=0;i<LightAttrTypeStringArray.Length;i++)
                {
@@ -68,13 +71,13 @@
                }
            }
            if (tables[7].Contains("["))
            if (tables[8].Contains("["))
            {
                LightAttrValue = JsonMapper.ToObject<int[]>(tables[7]);
                LightAttrValue = JsonMapper.ToObject<int[]>(tables[8]);
            }
            else
            {
                string[] LightAttrValueStringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] LightAttrValueStringArray = tables[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                LightAttrValue = new int[LightAttrValueStringArray.Length];
                for (int i=0;i<LightAttrValueStringArray.Length;i++)
                {
@@ -82,19 +85,19 @@
                }
            }
            int.TryParse(tables[8],out LightFightPower);
            int.TryParse(tables[9],out LightFightPower);
            leftBubbleIcon = tables[9];
            leftBubbleIcon = tables[10];
            rightBubbleIcon = tables[10];
            rightBubbleIcon = tables[11];
            if (tables[11].Contains("["))
            if (tables[12].Contains("["))
            {
                leftOffset = JsonMapper.ToObject<int[]>(tables[11]);
                leftOffset = JsonMapper.ToObject<int[]>(tables[12]);
            }
            else
            {
                string[] leftOffsetStringArray = tables[11].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] leftOffsetStringArray = tables[12].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                leftOffset = new int[leftOffsetStringArray.Length];
                for (int i=0;i<leftOffsetStringArray.Length;i++)
                {
@@ -102,13 +105,13 @@
                }
            }
            if (tables[12].Contains("["))
            if (tables[13].Contains("["))
            {
                rightOffset = JsonMapper.ToObject<int[]>(tables[12]);
                rightOffset = JsonMapper.ToObject<int[]>(tables[13]);
            }
            else
            {
                string[] rightOffsetStringArray = tables[12].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] rightOffsetStringArray = tables[13].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                rightOffset = new int[rightOffsetStringArray.Length];
                for (int i=0;i<rightOffsetStringArray.Length;i++)
                {
@@ -116,19 +119,19 @@
                }
            }
            Icon = tables[13];
            Icon = tables[14];
            int.TryParse(tables[14],out Jump);
            int.TryParse(tables[15],out Jump);
            GainTip = tables[15];
            GainTip = tables[16];
            if (tables[16].Contains("["))
            if (tables[17].Contains("["))
            {
                color = JsonMapper.ToObject<int[]>(tables[16]);
                color = JsonMapper.ToObject<int[]>(tables[17]);
            }
            else
            {
                string[] colorStringArray = tables[16].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] colorStringArray = tables[17].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                color = new int[colorStringArray.Length];
                for (int i=0;i<colorStringArray.Length;i++)
                {
@@ -136,7 +139,7 @@
                }
            }
            int.TryParse(tables[17],out top);
            int.TryParse(tables[18],out top);
        }
        catch (Exception ex)
        {
Core/GameEngine/Model/Config/EmojiPackConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Thursday, October 31, 2024
//    [  Date ]:           2024年11月6日
//--------------------------------------------------------
using System.Collections.Generic;
@@ -18,6 +18,7 @@
    public readonly int UnlockDefault;
    public readonly int ExpireMinutes;
    public readonly string Image;
    public readonly int SortNum;
    public readonly int EffectID;
    public readonly int[][] UnlockNeedItemList;
@@ -41,9 +42,11 @@
            Image = tables[4];
            int.TryParse(tables[5],out EffectID);
            int.TryParse(tables[5],out SortNum);
            UnlockNeedItemList = JsonMapper.ToObject<int[][]>(tables[6].Replace("(", "[").Replace(")", "]"));
            int.TryParse(tables[6],out EffectID);
            UnlockNeedItemList = JsonMapper.ToObject<int[][]>(tables[7].Replace("(", "[").Replace(")", "]"));
        }
        catch (Exception ex)
        {
Core/GameEngine/Model/Config/FamilyEmblemConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           2024年10月21日
//    [  Date ]:           2024年11月6日
//--------------------------------------------------------
using System.Collections.Generic;
@@ -18,6 +18,7 @@
    public readonly int ExpireMinutes;
    public readonly int CustomFamilyID;
    public readonly string Image;
    public readonly int SortNum;
    public readonly int EffectID;
    public FamilyEmblemConfig()
@@ -40,7 +41,9 @@
            Image = tables[4];
            int.TryParse(tables[5],out EffectID);
            int.TryParse(tables[5],out SortNum);
            int.TryParse(tables[6],out EffectID);
        }
        catch (Exception ex)
        {
Core/GameEngine/Model/Config/PlayerFaceConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           2024年10月30日
//    [  Date ]:           2024年11月6日
//--------------------------------------------------------
using System.Collections.Generic;
@@ -18,6 +18,7 @@
    public readonly int UnlockDefault;
    public readonly int ExpireMinutes;
    public readonly string Image;
    public readonly int BgColor;
    public readonly int EffectID;
    public readonly int[][] UnlockNeedItemList;
    public readonly int[] LightAttrType;
@@ -44,17 +45,19 @@
            Image = tables[4];
            int.TryParse(tables[5],out EffectID);
            int.TryParse(tables[5],out BgColor);
            UnlockNeedItemList = JsonMapper.ToObject<int[][]>(tables[6].Replace("(", "[").Replace(")", "]"));
            int.TryParse(tables[6],out EffectID);
            if (tables[7].Contains("["))
            UnlockNeedItemList = JsonMapper.ToObject<int[][]>(tables[7].Replace("(", "[").Replace(")", "]"));
            if (tables[8].Contains("["))
            {
                LightAttrType = JsonMapper.ToObject<int[]>(tables[7]);
                LightAttrType = JsonMapper.ToObject<int[]>(tables[8]);
            }
            else
            {
                string[] LightAttrTypeStringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] LightAttrTypeStringArray = tables[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                LightAttrType = new int[LightAttrTypeStringArray.Length];
                for (int i=0;i<LightAttrTypeStringArray.Length;i++)
                {
@@ -62,13 +65,13 @@
                }
            }
            if (tables[8].Contains("["))
            if (tables[9].Contains("["))
            {
                LightAttrValue = JsonMapper.ToObject<int[]>(tables[8]);
                LightAttrValue = JsonMapper.ToObject<int[]>(tables[9]);
            }
            else
            {
                string[] LightAttrValueStringArray = tables[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] LightAttrValueStringArray = tables[9].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                LightAttrValue = new int[LightAttrValueStringArray.Length];
                for (int i=0;i<LightAttrValueStringArray.Length;i++)
                {
@@ -76,7 +79,7 @@
                }
            }
            int.TryParse(tables[9],out LightFightPower);
            int.TryParse(tables[10],out LightFightPower);
        }
        catch (Exception ex)
        {
Core/GameEngine/Model/Config/PlayerFacePicConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           2024年10月30日
//    [  Date ]:           2024年11月6日
//--------------------------------------------------------
using System.Collections.Generic;
@@ -16,6 +16,7 @@
    public readonly int FacePicID;
    public readonly string Name;
    public readonly string Image;
    public readonly int SortNum;
    public readonly int EffectID;
    public readonly int UnlockDefault;
    public readonly int ExpireMinutes;
@@ -40,21 +41,23 @@
            Image = tables[2];
            int.TryParse(tables[3],out EffectID);
            int.TryParse(tables[3],out SortNum);
            int.TryParse(tables[4],out UnlockDefault);
            int.TryParse(tables[4],out EffectID);
            int.TryParse(tables[5],out ExpireMinutes);
            int.TryParse(tables[5],out UnlockDefault);
            UnlockNeedItemList = JsonMapper.ToObject<int[][]>(tables[6].Replace("(", "[").Replace(")", "]"));
            int.TryParse(tables[6],out ExpireMinutes);
            if (tables[7].Contains("["))
            UnlockNeedItemList = JsonMapper.ToObject<int[][]>(tables[7].Replace("(", "[").Replace(")", "]"));
            if (tables[8].Contains("["))
            {
                LightAttrType = JsonMapper.ToObject<int[]>(tables[7]);
                LightAttrType = JsonMapper.ToObject<int[]>(tables[8]);
            }
            else
            {
                string[] LightAttrTypeStringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] LightAttrTypeStringArray = tables[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                LightAttrType = new int[LightAttrTypeStringArray.Length];
                for (int i=0;i<LightAttrTypeStringArray.Length;i++)
                {
@@ -62,13 +65,13 @@
                }
            }
            if (tables[8].Contains("["))
            if (tables[9].Contains("["))
            {
                LightAttrValue = JsonMapper.ToObject<int[]>(tables[8]);
                LightAttrValue = JsonMapper.ToObject<int[]>(tables[9]);
            }
            else
            {
                string[] LightAttrValueStringArray = tables[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                string[] LightAttrValueStringArray = tables[9].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
                LightAttrValue = new int[LightAttrValueStringArray.Length];
                for (int i=0;i<LightAttrValueStringArray.Length;i++)
                {
@@ -76,7 +79,7 @@
                }
            }
            int.TryParse(tables[9],out LightFightPower);
            int.TryParse(tables[10],out LightFightPower);
        }
        catch (Exception ex)
        {
Fight/FakePlayer/GA_JiaPlayer.cs
@@ -70,6 +70,8 @@
        ActorInfo.LV = m_PlayerInfo.level == 0 ? (ushort)1 : m_PlayerInfo.level;
        ActorInfo.Job = m_PlayerInfo.job;
        ActorInfo.face = m_PlayerInfo.face;
        ActorInfo.facePic = m_PlayerInfo.facePic;
        ActorInfo.PlayerName = m_PlayerInfo.name;
        ActorInfo.Hp = m_PlayerInfo.hp == 0 ? 1 : m_PlayerInfo.hp;
        ActorInfo.MaxHp = m_PlayerInfo.maxHp == 0 ? 1 : m_PlayerInfo.maxHp;
Fight/GameActor/GA_NpcFightSgzcZZ.cs
@@ -1,6 +1,7 @@
using vnxbqy.UI;
using UnityEngine;
using System.Collections;
using Unity.Jobs;
public class GA_NpcFightSgzcZZ : GActorPlayerBase, IOtherSelectable
{
@@ -80,6 +81,9 @@
                // Debug.Log("机器人职业为: " + _job);
                JobSetup = JobSetupConfig.Get(_job);
                ActorInfo.Job = (byte)_job;
                //根据job拿默认的
                ActorInfo.face = AvatarHelper.GetAvatarDefaultID(_job);
                ActorInfo.facePic = AvatarHelper.GetAvatarFrameDefaultID(_job);
            }
            else
            {
@@ -112,6 +116,8 @@
        {
            JobSetup = JobSetupConfig.Get(1);
            ActorInfo.Job = 1;
            ActorInfo.face = AvatarHelper.GetAvatarDefaultID(ActorInfo.Job);
            ActorInfo.facePic = AvatarHelper.GetAvatarFrameDefaultID(ActorInfo.Job);
        }
        var _dict = GeneralDefine.SgzzRobotEquipDict[JobSetup.Job];
Fight/GameActor/GA_NpcFightZZPlayer.cs
@@ -1,4 +1,6 @@
using System.Collections.Generic;
using Unity.Jobs;
using UnityEditor.PackageManager;
using UnityEngine;
using vnxbqy.UI;
@@ -111,6 +113,8 @@
            ActorInfo.LV = (ushort)_config.RobotLV;
            ActorInfo.Job = byte.Parse(_values[1]);
            ActorInfo.face = AvatarHelper.GetAvatarDefaultID(ActorInfo.Job);
            ActorInfo.facePic = AvatarHelper.GetAvatarFrameDefaultID(ActorInfo.Job);
            ActorInfo.PlayerName = NPCConfig.Get((int)m_H0406.NPCID).charName;
            ActorInfo.Hp = m_H0406.NPCHP + m_H0406.NPCHPEx * Constants.ExpPointValue;
            ActorInfo.MaxHp = m_H0406.MaxHP + m_H0406.MaxHPEx * Constants.ExpPointValue;
@@ -138,6 +142,8 @@
            ActorInfo.LV = (ushort)m_ViewPlayerData.rolePropData.LV;
            ActorInfo.Job = (byte)m_ViewPlayerData.rolePropData.Job;
            ActorInfo.face = (int)m_ViewPlayerData.rolePropData.Face;
            ActorInfo.facePic = (int)m_ViewPlayerData.rolePropData.FacePic;
            ActorInfo.PlayerName = m_ViewPlayerData.rolePropData.Name;
            ActorInfo.familyID = (uint)m_ViewPlayerData.rolePropData.FamilyID;
            ActorInfo.familyName = m_ViewPlayerData.rolePropData.FamilyName;
Fight/GameActor/GA_PVPClientPlayer.cs
@@ -1,6 +1,7 @@
using UnityEngine;
using System.Collections.Generic;
using vnxbqy.UI;
using UnityEditor.PackageManager;
public class GA_PVPClientPlayer : GActorPlayerBase, IOtherSelectable
{
@@ -127,6 +128,8 @@
        ActorInfo.LV = (ushort)(_lv < _limitLv ? _limitLv : _lv);
        ActorInfo.Job = (byte)JobSetup.Job;
        ActorInfo.face = info.face;
        ActorInfo.facePic = info.facePic;
        ActorInfo.PlayerName = info.name;
        ActorInfo.MaxHp = info.hp;
        ActorInfo.Hp = info.maxHp;
Fight/GameActor/GA_Player.cs
@@ -3,6 +3,7 @@
using UnityEngine;
using UnityEngine.Events;
using UnityEditor.PackageManager;
public class GA_Player : GActorPlayerBase, IOtherSelectable
{
@@ -148,6 +149,8 @@
        ActorInfo.familyName = m_H0434.FamilyName;
        ActorInfo.ReincarnationLv = m_H0434.ReincarnationLv;
        ActorInfo.Job = m_H0434.Job;
        ActorInfo.face = (int)m_H0434.Face;
        ActorInfo.facePic = (int)m_H0434.FacePic;
        ActorInfo.realm = m_H0434.OfficialRank;
        ActorInfo.titleID = m_H0434.CurDienstgradID;
        ActorInfo.PlayerName = m_H0434.PlayerName;
Fight/GameActor/GA_PlayerClient.cs
@@ -105,6 +105,8 @@
        ActorInfo.LV = m_PlayerInfo.level;
        ActorInfo.Job = m_PlayerInfo.job;
        ActorInfo.face = m_PlayerInfo.face;
        ActorInfo.facePic = m_PlayerInfo.facePic;
        ActorInfo.PlayerName = m_PlayerInfo.name;
        ActorInfo.Hp = m_PlayerInfo.hp;
        ActorInfo.MaxHp = m_PlayerInfo.maxHp;
Fight/GameActor/GActorInfo.cs
@@ -26,6 +26,8 @@
    public uint sid;
    public uint ownerSID;// 拥有者的服务端ID,一般为宠物,召唤物会对此值进行赋值
    public byte Job;
    public int face;
    public int facePic;
    public ushort ReincarnationLv;
    private string _PlayerName;
Fight/GameActor/GActorPlayerBase.cs
@@ -11,6 +11,8 @@
    {
        public Vector3 pos;
        public byte job;
        public int face;
        public int facePic;
        public uint playerID;
        public string FamilyName;
        public uint FamilyID;
LogicProject/System/ArenaActivity/ArenaFightingPKWin.cs
@@ -1,609 +1,610 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using vnxbqy.UI;
public class ArenaFightingPKWin : ILWindow
{
    RoleInformation m_RoleInformation1;
    RoleInformation m_RoleInformation2;
    Button m_AutoBtn;
    Transform m_AutoImg;
    Text m_CountdownText;
    ScrollerController m_ScrollerController1;
    Transform Viewport1;
    ScrollerController m_ScrollerController2;
    Transform Viewport2;
    public float UpperAndLower = 17f;
    public float ItemHeight = 135f;
    public float MaxHeight = 422f;
    private ScrollRect _ScrollRect1;
    private ScrollRect _ScrollRect2;
    private List<int> _MyBuffSortList = new List<int>();//自身BUff列表
    private List<int> _OpponentBuffSortList = new List<int>();//对手buff列表
    DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
    DateTime dungeonEndTime;
    BuffModel m_BuffModel;
    BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } }
    private int positionType = 1;
    #region Built-in
    protected override void BindController()
    {
        m_RoleInformation1 = proxy.GetWidgtEx<RoleInformation>("HeadPortraitTip1");
        m_RoleInformation2 = proxy.GetWidgtEx<RoleInformation>("HeadPortraitTip2");
        m_AutoBtn = proxy.GetWidgtEx<Button>("AutoBtn");
        m_AutoImg = proxy.GetWidgtEx<Transform>("AutoImg");
        m_CountdownText = proxy.GetWidgtEx<Text>("CountdownText");
        m_ScrollerController1 = proxy.GetWidgtEx<ScrollerController>("ScrollerController1");
        Viewport1 = proxy.GetWidgtEx<Transform>("Viewport1");
        m_ScrollerController2 = proxy.GetWidgtEx<ScrollerController>("ScrollerController2");
        Viewport2 = proxy.GetWidgtEx<Transform>("Viewport2");
        _ScrollRect1 = Viewport1.GetComponent<ScrollRect>();
        _ScrollRect2 = Viewport2.GetComponent<ScrollRect>();
    }
    protected override void AddListeners()
    {
        m_AutoBtn.AddListener(AutoButton);
        m_RoleInformation1.BuffButton.AddListener(myBuffList);
        m_RoleInformation2.BuffButton.AddListener(opponentBuffList);
    }
    protected override void OnPreOpen()
    {
        positionType = ArenaModel.Instance.ArenaPKUpInfoData.myBornPoint;
        CrossServerOneVsOneRewardModel.PkDanLvNow = CrossServerOneVsOnePlayerInfo.Instance.DanLV;
        PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting;//数据的刷新(h0418)
        GA_Player.s_OnRefreshLife += OnRefreshPlayerLifeBar;
        if (PlayerDatas.Instance.hero != null)
        {
            PlayerDatas.Instance.hero.ActorInfo.OnHpChange += OnHeroHpChanged;
        }
        _MyBuffSortList.Clear();
        _OpponentBuffSortList.Clear();
        BuffScheduling();//buff排序
        GetopponentBuff();
        IsShowMyBuffBtn();
        IsShowOpponentBuffBtn();
    }
    protected override void OnActived()
    {
        dungeonEndTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.FightStart);
        PlaceOfBirth(positionType);//从出生位置设置信息
        Viewport1.SetActiveIL(false);
        Viewport2.SetActiveIL(false);
    }
    protected override void OnAfterOpen()
    {
        OnCreateGridLineCell(m_ScrollerController1);
        OnCreateGridLineCel2(m_ScrollerController2);
        ArenaModel.Instance.UpdatePKInfoListEvent += PlaceOfBirth;
        m_ScrollerController1.OnRefreshCell += OnRefreshGridCell1;
        m_ScrollerController2.OnRefreshCell += OnRefreshGridCell2;
        HeroBehaviour.OnStopHandupAI += OnHeroHandupAIStopPassive;
        HeroBehaviour.OnStartHandupAI += OnHeroHandupAIStarted;
        dungeonModel.dungeonCoolDownEvent += DungeonCoolDownEvent;
        BuffModel.Even_ObjAddBuf += AddBuff;
        BuffModel.Even_ObjDelBuff += DelBuff;
        BuffModel.BuffUpdateEvent += BuffUpdateEvent;
        OpponentInformation.Instance.ShieldUpdate += ShieldUpdate;
    }
    protected override void OnPreClose()
    {
        ArenaModel.Instance.UpdatePKInfoListEvent -= PlaceOfBirth;
        m_ScrollerController1.OnRefreshCell -= OnRefreshGridCell1;
        m_ScrollerController2.OnRefreshCell -= OnRefreshGridCell2;
        PlayerDatas.Instance.playerDataRefreshEvent -= Updatefighting;//数据的刷新(h0418)
        GA_Player.s_OnRefreshLife -= OnRefreshPlayerLifeBar;
        if (PlayerDatas.Instance.hero != null)
        {
            PlayerDatas.Instance.hero.ActorInfo.OnHpChange -= OnHeroHpChanged;
        }
        HeroBehaviour.OnStopHandupAI -= OnHeroHandupAIStopPassive;
        HeroBehaviour.OnStartHandupAI -= OnHeroHandupAIStarted;
        dungeonModel.dungeonCoolDownEvent -= DungeonCoolDownEvent;
        BuffModel.Even_ObjAddBuf -= AddBuff;
        BuffModel.Even_ObjDelBuff -= DelBuff;
        BuffModel.BuffUpdateEvent -= BuffUpdateEvent;
        OpponentInformation.Instance.ShieldUpdate -= ShieldUpdate;
    }
    protected override void LateUpdate()
    {
        if (PlayerDatas.Instance.hero != null && PlayerDatas.Instance.hero.aiHandler.IsAuto())
        {
            m_AutoImg.SetActiveIL(false);
        }
        else
        {
            m_AutoImg.SetActiveIL(true);
        }
        if (WindowCenter.Instance.IsOpen("ArenaSettlementWin"))
        {
            return;
        }
        if (TimeUtility.ServerNow >= dungeonEndTime)
        {
            m_CountdownText.text = "0";
        }
        else
        {
            var surplus = dungeonEndTime - TimeUtility.ServerNow;
            m_CountdownText.text = (Mathf.CeilToInt((float)surplus.TotalSeconds)).ToString();
        }
    }
    #endregion
    private void OnHeroHpChanged(ulong hp)
    {
        PlaceOfBirthUpdate(positionType);
    }
    private void DelBuff()
    {
        BuffScheduling();
        UpdateControllerPosition();
        IsShowMyBuffBtn();
        if (positionType == 1)
        {
            OnCreateGridLineCell(m_ScrollerController1);
        }
        else
        {
            OnCreateGridLineCel2(m_ScrollerController2);
        }
    }
    private void AddBuff()
    {
        BuffScheduling();
        UpdateControllerPosition();
        IsShowMyBuffBtn();
        if (positionType == 1)
        {
            OnCreateGridLineCell(m_ScrollerController1);
        }
        else
        {
            OnCreateGridLineCel2(m_ScrollerController2);
        }
    }
    private void BuffUpdateEvent(int playerID)
    {
        int opponentPlayerId = ArenaModel.Instance.ArenaPKUpInfoData.opponentPlayerId;
        if (playerID == opponentPlayerId)
        {
            GetopponentBuff();
            UpdateControllerPositionOppoent();
            IsShowOpponentBuffBtn();
            if (positionType == 1)
            {
                OnCreateGridLineCel2(m_ScrollerController2);
            }
            else
            {
                OnCreateGridLineCell(m_ScrollerController1);
            }
        }
    }
    private void DungeonCoolDownEvent(DungeonCoolDownType type)
    {
        if (type == DungeonCoolDownType.FightStart)
        {
            dungeonEndTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.FightStart);
            ArenaManagerModel.Instance.dungeonEndTime = dungeonEndTime;
            ArenaManagerModel.Instance.fightStart = true;
        }
    }
    private void Updatefighting(PlayerDataType _tCDBPlayerRefresh)
    {
        switch (_tCDBPlayerRefresh)
        {
            case PlayerDataType.LV://等级的刷新8
            case PlayerDataType.MaxHP://最大血量的刷新28
            case PlayerDataType.HP://当前血量29
            case PlayerDataType.ExAttr4://当前护盾值
            case PlayerDataType.MaxProDef://最大护盾值
                PlaceOfBirthUpdate(positionType);
                break;
        }
    }
    private void OnRefreshPlayerLifeBar(uint _instanceId, ulong _hp, ulong _maxHp)
    {
        // Debug.Log("============== 最大血量" + _maxHp + "当前血量" + _hp);
        if (positionType == 1)
        {
            m_RoleInformation2.SetHeroHP(_maxHp, _hp);
        }
        else
        {
            m_RoleInformation1.SetHeroHP(_maxHp, _hp);
        }
    }
    private void ShieldUpdate(int playerID, int shieldNow)
    {
        if (playerID == ArenaModel.Instance.ArenaPKUpInfoData.opponentPlayerId)
        {
            if (positionType == 1)
            {
                m_RoleInformation2.SetShieldNumber(ArenaModel.Instance.ArenaPKUpInfoData.MaxProDef, shieldNow);
            }
            else
            {
                m_RoleInformation1.SetShieldNumber(ArenaModel.Instance.ArenaPKUpInfoData.MaxProDef, shieldNow);
            }
        }
    }
    private void OnHeroHandupAIStopPassive()
    {
        //if (!m_AutoImg.activeSelf)
        //{
        //    m_AutoImg.SetActive(true);
        //}
    }
    void OnHeroHandupAIStarted()
    {
        //if (m_AutoImg.activeSelf)
        //{
        //    m_AutoImg.SetActive(false);
        //}
    }
    private void AutoButton()
    {
        var _hero = PlayerDatas.Instance.hero;
        if (_hero != null && !_hero.ActorInfo.serverDie)
        {
            if (!_hero.aiHandler.IsAuto())
            {
                _hero.Behaviour.StartHandupAI();
            }
            else
            {
                _hero.Behaviour.StopHandupAI(true);
            }
        }
        //m_AutoImg.SetActive(!m_AutoImg.activeSelf);
    }
    private void myBuffList()
    {
        Viewport1.SetActiveIL(true);
    }
    private void opponentBuffList()
    {
        Viewport2.SetActiveIL(true);
    }
    private void OnCreateGridLineCell(ScrollerController gridCtrl)
    {
        gridCtrl.Refresh();
        if (positionType == 1)
        {
            for (int i = 0; i < _MyBuffSortList.Count; i++)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, _MyBuffSortList[i]);
            }
        }
        else
        {
            for (int i = 0; i < _OpponentBuffSortList.Count; i++)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, _OpponentBuffSortList[i]);
            }
        }
        gridCtrl.Restart();
    }
    private void OnCreateGridLineCel2(ScrollerController gridCtrl)
    {
        gridCtrl.Refresh();
        if (positionType == 1)
        {
            for (int i = 0; i < _OpponentBuffSortList.Count; i++)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, _OpponentBuffSortList[i]);
            }
        }
        else
        {
            for (int i = 0; i < _MyBuffSortList.Count; i++)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, _MyBuffSortList[i]);
            }
        }
        gridCtrl.Restart();
    }
    private void OnRefreshGridCell1(ScrollerDataType type, CellView cell)
    {
        if (cell == null)
            return;
        int _index = cell.index;
        BuffBGMScripts _buffBGM = cell.GetComponent<BuffBGMScripts>();
        var skillconfig = SkillConfig.Get(_index);
        _buffBGM.b_BuffIcon.SetSprite(skillconfig.IconName);
        _buffBGM.b_BuffName.text = skillconfig.SkillName;
        _buffBGM.b_BuffContent.text = skillconfig.BuffDescription;
        _buffBGM.b_BuffTime.SetActiveIL(false);
        _buffBGM.BiBuffText.SetActiveIL(false);
        _buffBGM._OnOff = false;
    }
    private void OnRefreshGridCell2(ScrollerDataType type, CellView cell)
    {
        if (cell == null)
            return;
        int _index = cell.index;
        BuffBGMScripts _buffBGM = cell.GetComponent<BuffBGMScripts>();
        var skillconfig = SkillConfig.Get(_index);
        _buffBGM.b_BuffIcon.SetSprite(skillconfig.IconName);
        _buffBGM.b_BuffName.text = skillconfig.SkillName;
        _buffBGM.b_BuffContent.text = skillconfig.BuffDescription;
        _buffBGM.b_BuffTime.SetActiveIL(false);
        _buffBGM.BiBuffText.SetActiveIL(false);
        _buffBGM._OnOff = false;
    }
    void UpdateControllerPosition()
    {
        if (_MyBuffSortList.Count == 0)
        {
            return;
        }
        if (_MyBuffSortList.Count * ItemHeight >= MaxHeight)
        {
            if (positionType == 1)
            {
                _ScrollRect1.vertical = true;
                (Viewport1 as RectTransform).sizeDelta = (Viewport1 as RectTransform).sizeDelta.SetY(MaxHeight + UpperAndLower);
            }
            else
            {
                _ScrollRect2.vertical = true;
                (Viewport2 as RectTransform).sizeDelta = (Viewport2 as RectTransform).sizeDelta.SetY(MaxHeight + UpperAndLower);
            }
        }
        else
        {
            if (positionType == 1)
            {
                _ScrollRect1.vertical = false;
                (Viewport1 as RectTransform).sizeDelta = (Viewport1 as RectTransform).sizeDelta.SetY(_MyBuffSortList.Count * ItemHeight + UpperAndLower);
            }
            else
            {
                _ScrollRect2.vertical = false;
                (Viewport2 as RectTransform).sizeDelta = (Viewport2 as RectTransform).sizeDelta.SetY(_MyBuffSortList.Count * ItemHeight + UpperAndLower);
            }
        }
    }
    void UpdateControllerPositionOppoent()
    {
        if (_OpponentBuffSortList.Count == 0)
        {
            return;
        }
        if (_OpponentBuffSortList.Count * ItemHeight >= MaxHeight)
        {
            if (positionType == 1)
            {
                _ScrollRect2.vertical = true;
                (Viewport2 as RectTransform).sizeDelta = (Viewport2 as RectTransform).sizeDelta.SetY(MaxHeight + UpperAndLower);
            }
            else
            {
                _ScrollRect1.vertical = true;
                (Viewport1 as RectTransform).sizeDelta = (Viewport1 as RectTransform).sizeDelta.SetY(MaxHeight + UpperAndLower);
            }
        }
        else
        {
            if (positionType == 1)
            {
                _ScrollRect2.vertical = false;
                (Viewport2 as RectTransform).sizeDelta = (Viewport2 as RectTransform).sizeDelta.SetY(_OpponentBuffSortList.Count * ItemHeight + UpperAndLower);
            }
            else
            {
                _ScrollRect1.vertical = false;
                (Viewport1 as RectTransform).sizeDelta = (Viewport1 as RectTransform).sizeDelta.SetY(_OpponentBuffSortList.Count * ItemHeight + UpperAndLower);
            }
        }
    }
    void BuffScheduling()//buff排序
    {
        //_MyBuffSortList.Clear();
        //foreach (int key in Buffmodel._BuffDic.Keys)
        //{
        //    _MyBuffSortList.Add(key);
        //}
    }
    private void IsShowMyBuffBtn()
    {
        if (_MyBuffSortList.Count > 0)
        {
            if (positionType == 1)
            {
                m_RoleInformation1.BuffButton.SetActiveIL(true);
            }
            else
            {
                m_RoleInformation2.BuffButton.SetActiveIL(true);
            }
        }
        else
        {
            if (positionType == 1)
            {
                m_RoleInformation1.BuffButton.SetActiveIL(false);
                Viewport1.SetActiveIL(false);
            }
            else
            {
                m_RoleInformation2.BuffButton.SetActiveIL(false);
                Viewport2.SetActiveIL(false);
            }
            UpdateControllerPosition();
        }
        if (positionType == 1)
        {
            m_RoleInformation1.BuffNumber.text = _MyBuffSortList.Count.ToString();
        }
        else
        {
            m_RoleInformation2.BuffNumber.text = _MyBuffSortList.Count.ToString();
        }
    }
    private void IsShowOpponentBuffBtn()
    {
        if (_OpponentBuffSortList.Count > 0)
        {
            if (positionType == 1)
            {
                m_RoleInformation2.BuffButton.SetActiveIL(true);
            }
            else
            {
                m_RoleInformation1.BuffButton.SetActiveIL(true);
            }
            UpdateControllerPositionOppoent();
        }
        else
        {
            if (positionType == 1)
            {
                m_RoleInformation2.BuffButton.SetActiveIL(false);
                Viewport2.SetActiveIL(false);
            }
            else
            {
                m_RoleInformation1.BuffButton.SetActiveIL(false);
                Viewport1.SetActiveIL(false);
            }
        }
        if (positionType == 1)
        {
            m_RoleInformation2.BuffNumber.text = _OpponentBuffSortList.Count.ToString();
        }
        else
        {
            m_RoleInformation1.BuffNumber.text = _OpponentBuffSortList.Count.ToString();
        }
    }
    private void PlaceOfBirth(int type)//关于出生点设置位置信息
    {
        dungeonEndTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.FightStart);
        int realmLv;
        if (type == 1)//左
        {
            //-----------自己的信息
            m_RoleInformation1.SetHeroHead(ArenaModel.Instance.ArenaPKUpInfoData.myJob, 0);
            string PlayerName = UIHelper.ServerStringTrim(ArenaModel.Instance.ArenaPKUpInfoData.myName);
            realmLv = PlayerDatas.Instance.baseData.realmLevel;
            m_RoleInformation1.SetHeroLvAndNameLV((int)PlayerDatas.Instance.baseData.LV, PlayerName, realmLv);
            m_RoleInformation1.SetHeroHP(PlayerDatas.Instance.extersion.MaxHP, PlayerDatas.Instance.baseData.HP);
            m_RoleInformation1.SetShieldNumber(PlayerDatas.Instance.extersion.MaxProDef, (int)PlayerDatas.Instance.baseData.shield);
            m_RoleInformation1.BuffButton.SetActiveIL(false);
            //------------------------------------//对手信息
            int job = ArenaModel.Instance.ArenaPKUpInfoData.opponentJob;
            m_RoleInformation2.SetHeroHead(job, 0);
            string OpponentName = UIHelper.ServerStringTrim(ArenaModel.Instance.ArenaPKUpInfoData.opponentName);
            realmLv = ArenaModel.Instance.ArenaPKUpInfoData.realmLV;
            m_RoleInformation2.SetHeroLvAndNameLV((int)ArenaModel.Instance.ArenaPKUpInfoData.opponentLevel, OpponentName, realmLv);
            m_RoleInformation2.SetHeroHP(ArenaManagerModel.playerInfo.maxHp, ArenaManagerModel.playerInfo.maxHp);
            m_RoleInformation2.SetShieldNumber(ArenaModel.Instance.ArenaPKUpInfoData.MaxProDef, ArenaModel.Instance.ArenaPKUpInfoData.opponentShield);
        }
        else//右
        {
            //-----------自己的信息
            m_RoleInformation2.SetHeroHead(ArenaModel.Instance.ArenaPKUpInfoData.myJob, 0);
            string PlayerName = UIHelper.ServerStringTrim(ArenaModel.Instance.ArenaPKUpInfoData.myName);
            realmLv = PlayerDatas.Instance.baseData.realmLevel;
            m_RoleInformation2.SetHeroLvAndNameLV((int)PlayerDatas.Instance.baseData.LV, PlayerName, realmLv);
            m_RoleInformation2.SetHeroHP(PlayerDatas.Instance.extersion.MaxHP, PlayerDatas.Instance.baseData.HP);
            m_RoleInformation2.SetShieldNumber(PlayerDatas.Instance.extersion.MaxProDef, (int)PlayerDatas.Instance.baseData.shield);
            m_RoleInformation2.BuffButton.SetActiveIL(false);
            //------------------------------------//对手信息
            int job = ArenaModel.Instance.ArenaPKUpInfoData.opponentJob;
            m_RoleInformation1.SetHeroHead(job, 0);
            string OpponentName = UIHelper.ServerStringTrim(ArenaModel.Instance.ArenaPKUpInfoData.opponentName);
            realmLv = ArenaModel.Instance.ArenaPKUpInfoData.realmLV;
            m_RoleInformation1.SetHeroLvAndNameLV((int)ArenaModel.Instance.ArenaPKUpInfoData.opponentLevel, OpponentName, realmLv);
            m_RoleInformation1.SetHeroHP(ArenaManagerModel.playerInfo.maxHp, ArenaManagerModel.playerInfo.maxHp);
            m_RoleInformation1.SetShieldNumber(100, 0);
        }
    }
    private void PlaceOfBirthUpdate(int type)//自身玩家属性刷新
    {
        if (type == 1)
        {
            string PlayerName = UIHelper.ServerStringTrim(ArenaModel.Instance.ArenaPKUpInfoData.myName);
            m_RoleInformation1.SetHeroLvAndName((int)PlayerDatas.Instance.baseData.LV, PlayerName);
            m_RoleInformation1.SetHeroHP(PlayerDatas.Instance.extersion.MaxHP, PlayerDatas.Instance.baseData.HP);
            m_RoleInformation1.SetShieldNumber(PlayerDatas.Instance.extersion.MaxProDef, (int)PlayerDatas.Instance.baseData.shield);
#if UNITY_EDITOR
        //  Debug.LogFormat("设置血量: {0}/{1}", PlayerDatas.Instance.baseData.HP, PlayerDatas.Instance.extersion.MaxHP);
#endif
        }
        else
        {
            string PlayerName = UIHelper.ServerStringTrim(ArenaModel.Instance.ArenaPKUpInfoData.myName);
            m_RoleInformation2.SetHeroLvAndName((int)PlayerDatas.Instance.baseData.LV, PlayerName);
            m_RoleInformation2.SetHeroHP(PlayerDatas.Instance.extersion.MaxHP, PlayerDatas.Instance.baseData.HP);
            m_RoleInformation2.SetShieldNumber(PlayerDatas.Instance.extersion.MaxProDef, (int)PlayerDatas.Instance.baseData.shield);
#if UNITY_EDITOR
        //  Debug.LogFormat("设置血量: {0}/{1}", PlayerDatas.Instance.baseData.HP, PlayerDatas.Instance.extersion.MaxHP);
#endif
        }
    }
    private void GetopponentBuff()//获取对手身上的Buff
    {
        List<int> buffIds = new List<int>();
        _OpponentBuffSortList.Clear();
        StatusMgr.Instance.GetBuffIds((uint)ArenaModel.Instance.ArenaPKUpInfoData.opponentPlayerId, ref buffIds);
        if (buffIds.Count > 0)
        {
            for (int i = 0; i < buffIds.Count; i++)
            {
                _OpponentBuffSortList.Add(buffIds[i]);
            }
        }
    }
}
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using vnxbqy.UI;
using static ArenaModel;
public class ArenaFightingPKWin : ILWindow
{
    RoleInformation m_RoleInformation1;
    RoleInformation m_RoleInformation2;
    Button m_AutoBtn;
    Transform m_AutoImg;
    Text m_CountdownText;
    ScrollerController m_ScrollerController1;
    Transform Viewport1;
    ScrollerController m_ScrollerController2;
    Transform Viewport2;
    public float UpperAndLower = 17f;
    public float ItemHeight = 135f;
    public float MaxHeight = 422f;
    private ScrollRect _ScrollRect1;
    private ScrollRect _ScrollRect2;
    private List<int> _MyBuffSortList = new List<int>();//自身BUff列表
    private List<int> _OpponentBuffSortList = new List<int>();//对手buff列表
    DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
    DateTime dungeonEndTime;
    BuffModel m_BuffModel;
    BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } }
    private int positionType = 1;
    #region Built-in
    protected override void BindController()
    {
        m_RoleInformation1 = proxy.GetWidgtEx<RoleInformation>("HeadPortraitTip1");
        m_RoleInformation2 = proxy.GetWidgtEx<RoleInformation>("HeadPortraitTip2");
        m_AutoBtn = proxy.GetWidgtEx<Button>("AutoBtn");
        m_AutoImg = proxy.GetWidgtEx<Transform>("AutoImg");
        m_CountdownText = proxy.GetWidgtEx<Text>("CountdownText");
        m_ScrollerController1 = proxy.GetWidgtEx<ScrollerController>("ScrollerController1");
        Viewport1 = proxy.GetWidgtEx<Transform>("Viewport1");
        m_ScrollerController2 = proxy.GetWidgtEx<ScrollerController>("ScrollerController2");
        Viewport2 = proxy.GetWidgtEx<Transform>("Viewport2");
        _ScrollRect1 = Viewport1.GetComponent<ScrollRect>();
        _ScrollRect2 = Viewport2.GetComponent<ScrollRect>();
    }
    protected override void AddListeners()
    {
        m_AutoBtn.AddListener(AutoButton);
        m_RoleInformation1.BuffButton.AddListener(myBuffList);
        m_RoleInformation2.BuffButton.AddListener(opponentBuffList);
    }
    protected override void OnPreOpen()
    {
        positionType = ArenaModel.Instance.ArenaPKUpInfoData.myBornPoint;
        CrossServerOneVsOneRewardModel.PkDanLvNow = CrossServerOneVsOnePlayerInfo.Instance.DanLV;
        PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting;//数据的刷新(h0418)
        GA_Player.s_OnRefreshLife += OnRefreshPlayerLifeBar;
        if (PlayerDatas.Instance.hero != null)
        {
            PlayerDatas.Instance.hero.ActorInfo.OnHpChange += OnHeroHpChanged;
        }
        _MyBuffSortList.Clear();
        _OpponentBuffSortList.Clear();
        BuffScheduling();//buff排序
        GetopponentBuff();
        IsShowMyBuffBtn();
        IsShowOpponentBuffBtn();
    }
    protected override void OnActived()
    {
        dungeonEndTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.FightStart);
        PlaceOfBirth(positionType);//从出生位置设置信息
        Viewport1.SetActiveIL(false);
        Viewport2.SetActiveIL(false);
    }
    protected override void OnAfterOpen()
    {
        OnCreateGridLineCell(m_ScrollerController1);
        OnCreateGridLineCel2(m_ScrollerController2);
        ArenaModel.Instance.UpdatePKInfoListEvent += PlaceOfBirth;
        m_ScrollerController1.OnRefreshCell += OnRefreshGridCell1;
        m_ScrollerController2.OnRefreshCell += OnRefreshGridCell2;
        HeroBehaviour.OnStopHandupAI += OnHeroHandupAIStopPassive;
        HeroBehaviour.OnStartHandupAI += OnHeroHandupAIStarted;
        dungeonModel.dungeonCoolDownEvent += DungeonCoolDownEvent;
        BuffModel.Even_ObjAddBuf += AddBuff;
        BuffModel.Even_ObjDelBuff += DelBuff;
        BuffModel.BuffUpdateEvent += BuffUpdateEvent;
        OpponentInformation.Instance.ShieldUpdate += ShieldUpdate;
    }
    protected override void OnPreClose()
    {
        ArenaModel.Instance.UpdatePKInfoListEvent -= PlaceOfBirth;
        m_ScrollerController1.OnRefreshCell -= OnRefreshGridCell1;
        m_ScrollerController2.OnRefreshCell -= OnRefreshGridCell2;
        PlayerDatas.Instance.playerDataRefreshEvent -= Updatefighting;//数据的刷新(h0418)
        GA_Player.s_OnRefreshLife -= OnRefreshPlayerLifeBar;
        if (PlayerDatas.Instance.hero != null)
        {
            PlayerDatas.Instance.hero.ActorInfo.OnHpChange -= OnHeroHpChanged;
        }
        HeroBehaviour.OnStopHandupAI -= OnHeroHandupAIStopPassive;
        HeroBehaviour.OnStartHandupAI -= OnHeroHandupAIStarted;
        dungeonModel.dungeonCoolDownEvent -= DungeonCoolDownEvent;
        BuffModel.Even_ObjAddBuf -= AddBuff;
        BuffModel.Even_ObjDelBuff -= DelBuff;
        BuffModel.BuffUpdateEvent -= BuffUpdateEvent;
        OpponentInformation.Instance.ShieldUpdate -= ShieldUpdate;
    }
    protected override void LateUpdate()
    {
        if (PlayerDatas.Instance.hero != null && PlayerDatas.Instance.hero.aiHandler.IsAuto())
        {
            m_AutoImg.SetActiveIL(false);
        }
        else
        {
            m_AutoImg.SetActiveIL(true);
        }
        if (WindowCenter.Instance.IsOpen("ArenaSettlementWin"))
        {
            return;
        }
        if (TimeUtility.ServerNow >= dungeonEndTime)
        {
            m_CountdownText.text = "0";
        }
        else
        {
            var surplus = dungeonEndTime - TimeUtility.ServerNow;
            m_CountdownText.text = (Mathf.CeilToInt((float)surplus.TotalSeconds)).ToString();
        }
    }
    #endregion
    private void OnHeroHpChanged(ulong hp)
    {
        PlaceOfBirthUpdate(positionType);
    }
    private void DelBuff()
    {
        BuffScheduling();
        UpdateControllerPosition();
        IsShowMyBuffBtn();
        if (positionType == 1)
        {
            OnCreateGridLineCell(m_ScrollerController1);
        }
        else
        {
            OnCreateGridLineCel2(m_ScrollerController2);
        }
    }
    private void AddBuff()
    {
        BuffScheduling();
        UpdateControllerPosition();
        IsShowMyBuffBtn();
        if (positionType == 1)
        {
            OnCreateGridLineCell(m_ScrollerController1);
        }
        else
        {
            OnCreateGridLineCel2(m_ScrollerController2);
        }
    }
    private void BuffUpdateEvent(int playerID)
    {
        int opponentPlayerId = ArenaModel.Instance.ArenaPKUpInfoData.opponentPlayerId;
        if (playerID == opponentPlayerId)
        {
            GetopponentBuff();
            UpdateControllerPositionOppoent();
            IsShowOpponentBuffBtn();
            if (positionType == 1)
            {
                OnCreateGridLineCel2(m_ScrollerController2);
            }
            else
            {
                OnCreateGridLineCell(m_ScrollerController1);
            }
        }
    }
    private void DungeonCoolDownEvent(DungeonCoolDownType type)
    {
        if (type == DungeonCoolDownType.FightStart)
        {
            dungeonEndTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.FightStart);
            ArenaManagerModel.Instance.dungeonEndTime = dungeonEndTime;
            ArenaManagerModel.Instance.fightStart = true;
        }
    }
    private void Updatefighting(PlayerDataType _tCDBPlayerRefresh)
    {
        switch (_tCDBPlayerRefresh)
        {
            case PlayerDataType.LV://等级的刷新8
            case PlayerDataType.MaxHP://最大血量的刷新28
            case PlayerDataType.HP://当前血量29
            case PlayerDataType.ExAttr4://当前护盾值
            case PlayerDataType.MaxProDef://最大护盾值
                PlaceOfBirthUpdate(positionType);
                break;
        }
    }
    private void OnRefreshPlayerLifeBar(uint _instanceId, ulong _hp, ulong _maxHp)
    {
        // Debug.Log("============== 最大血量" + _maxHp + "当前血量" + _hp);
        if (positionType == 1)
        {
            m_RoleInformation2.SetHeroHP(_maxHp, _hp);
        }
        else
        {
            m_RoleInformation1.SetHeroHP(_maxHp, _hp);
        }
    }
    private void ShieldUpdate(int playerID, int shieldNow)
    {
        if (playerID == ArenaModel.Instance.ArenaPKUpInfoData.opponentPlayerId)
        {
            if (positionType == 1)
            {
                m_RoleInformation2.SetShieldNumber(ArenaModel.Instance.ArenaPKUpInfoData.MaxProDef, shieldNow);
            }
            else
            {
                m_RoleInformation1.SetShieldNumber(ArenaModel.Instance.ArenaPKUpInfoData.MaxProDef, shieldNow);
            }
        }
    }
    private void OnHeroHandupAIStopPassive()
    {
        //if (!m_AutoImg.activeSelf)
        //{
        //    m_AutoImg.SetActive(true);
        //}
    }
    void OnHeroHandupAIStarted()
    {
        //if (m_AutoImg.activeSelf)
        //{
        //    m_AutoImg.SetActive(false);
        //}
    }
    private void AutoButton()
    {
        var _hero = PlayerDatas.Instance.hero;
        if (_hero != null && !_hero.ActorInfo.serverDie)
        {
            if (!_hero.aiHandler.IsAuto())
            {
                _hero.Behaviour.StartHandupAI();
            }
            else
            {
                _hero.Behaviour.StopHandupAI(true);
            }
        }
        //m_AutoImg.SetActive(!m_AutoImg.activeSelf);
    }
    private void myBuffList()
    {
        Viewport1.SetActiveIL(true);
    }
    private void opponentBuffList()
    {
        Viewport2.SetActiveIL(true);
    }
    private void OnCreateGridLineCell(ScrollerController gridCtrl)
    {
        gridCtrl.Refresh();
        if (positionType == 1)
        {
            for (int i = 0; i < _MyBuffSortList.Count; i++)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, _MyBuffSortList[i]);
            }
        }
        else
        {
            for (int i = 0; i < _OpponentBuffSortList.Count; i++)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, _OpponentBuffSortList[i]);
            }
        }
        gridCtrl.Restart();
    }
    private void OnCreateGridLineCel2(ScrollerController gridCtrl)
    {
        gridCtrl.Refresh();
        if (positionType == 1)
        {
            for (int i = 0; i < _OpponentBuffSortList.Count; i++)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, _OpponentBuffSortList[i]);
            }
        }
        else
        {
            for (int i = 0; i < _MyBuffSortList.Count; i++)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, _MyBuffSortList[i]);
            }
        }
        gridCtrl.Restart();
    }
    private void OnRefreshGridCell1(ScrollerDataType type, CellView cell)
    {
        if (cell == null)
            return;
        int _index = cell.index;
        BuffBGMScripts _buffBGM = cell.GetComponent<BuffBGMScripts>();
        var skillconfig = SkillConfig.Get(_index);
        _buffBGM.b_BuffIcon.SetSprite(skillconfig.IconName);
        _buffBGM.b_BuffName.text = skillconfig.SkillName;
        _buffBGM.b_BuffContent.text = skillconfig.BuffDescription;
        _buffBGM.b_BuffTime.SetActiveIL(false);
        _buffBGM.BiBuffText.SetActiveIL(false);
        _buffBGM._OnOff = false;
    }
    private void OnRefreshGridCell2(ScrollerDataType type, CellView cell)
    {
        if (cell == null)
            return;
        int _index = cell.index;
        BuffBGMScripts _buffBGM = cell.GetComponent<BuffBGMScripts>();
        var skillconfig = SkillConfig.Get(_index);
        _buffBGM.b_BuffIcon.SetSprite(skillconfig.IconName);
        _buffBGM.b_BuffName.text = skillconfig.SkillName;
        _buffBGM.b_BuffContent.text = skillconfig.BuffDescription;
        _buffBGM.b_BuffTime.SetActiveIL(false);
        _buffBGM.BiBuffText.SetActiveIL(false);
        _buffBGM._OnOff = false;
    }
    void UpdateControllerPosition()
    {
        if (_MyBuffSortList.Count == 0)
        {
            return;
        }
        if (_MyBuffSortList.Count * ItemHeight >= MaxHeight)
        {
            if (positionType == 1)
            {
                _ScrollRect1.vertical = true;
                (Viewport1 as RectTransform).sizeDelta = (Viewport1 as RectTransform).sizeDelta.SetY(MaxHeight + UpperAndLower);
            }
            else
            {
                _ScrollRect2.vertical = true;
                (Viewport2 as RectTransform).sizeDelta = (Viewport2 as RectTransform).sizeDelta.SetY(MaxHeight + UpperAndLower);
            }
        }
        else
        {
            if (positionType == 1)
            {
                _ScrollRect1.vertical = false;
                (Viewport1 as RectTransform).sizeDelta = (Viewport1 as RectTransform).sizeDelta.SetY(_MyBuffSortList.Count * ItemHeight + UpperAndLower);
            }
            else
            {
                _ScrollRect2.vertical = false;
                (Viewport2 as RectTransform).sizeDelta = (Viewport2 as RectTransform).sizeDelta.SetY(_MyBuffSortList.Count * ItemHeight + UpperAndLower);
            }
        }
    }
    void UpdateControllerPositionOppoent()
    {
        if (_OpponentBuffSortList.Count == 0)
        {
            return;
        }
        if (_OpponentBuffSortList.Count * ItemHeight >= MaxHeight)
        {
            if (positionType == 1)
            {
                _ScrollRect2.vertical = true;
                (Viewport2 as RectTransform).sizeDelta = (Viewport2 as RectTransform).sizeDelta.SetY(MaxHeight + UpperAndLower);
            }
            else
            {
                _ScrollRect1.vertical = true;
                (Viewport1 as RectTransform).sizeDelta = (Viewport1 as RectTransform).sizeDelta.SetY(MaxHeight + UpperAndLower);
            }
        }
        else
        {
            if (positionType == 1)
            {
                _ScrollRect2.vertical = false;
                (Viewport2 as RectTransform).sizeDelta = (Viewport2 as RectTransform).sizeDelta.SetY(_OpponentBuffSortList.Count * ItemHeight + UpperAndLower);
            }
            else
            {
                _ScrollRect1.vertical = false;
                (Viewport1 as RectTransform).sizeDelta = (Viewport1 as RectTransform).sizeDelta.SetY(_OpponentBuffSortList.Count * ItemHeight + UpperAndLower);
            }
        }
    }
    void BuffScheduling()//buff排序
    {
        //_MyBuffSortList.Clear();
        //foreach (int key in Buffmodel._BuffDic.Keys)
        //{
        //    _MyBuffSortList.Add(key);
        //}
    }
    private void IsShowMyBuffBtn()
    {
        if (_MyBuffSortList.Count > 0)
        {
            if (positionType == 1)
            {
                m_RoleInformation1.BuffButton.SetActiveIL(true);
            }
            else
            {
                m_RoleInformation2.BuffButton.SetActiveIL(true);
            }
        }
        else
        {
            if (positionType == 1)
            {
                m_RoleInformation1.BuffButton.SetActiveIL(false);
                Viewport1.SetActiveIL(false);
            }
            else
            {
                m_RoleInformation2.BuffButton.SetActiveIL(false);
                Viewport2.SetActiveIL(false);
            }
            UpdateControllerPosition();
        }
        if (positionType == 1)
        {
            m_RoleInformation1.BuffNumber.text = _MyBuffSortList.Count.ToString();
        }
        else
        {
            m_RoleInformation2.BuffNumber.text = _MyBuffSortList.Count.ToString();
        }
    }
    private void IsShowOpponentBuffBtn()
    {
        if (_OpponentBuffSortList.Count > 0)
        {
            if (positionType == 1)
            {
                m_RoleInformation2.BuffButton.SetActiveIL(true);
            }
            else
            {
                m_RoleInformation1.BuffButton.SetActiveIL(true);
            }
            UpdateControllerPositionOppoent();
        }
        else
        {
            if (positionType == 1)
            {
                m_RoleInformation2.BuffButton.SetActiveIL(false);
                Viewport2.SetActiveIL(false);
            }
            else
            {
                m_RoleInformation1.BuffButton.SetActiveIL(false);
                Viewport1.SetActiveIL(false);
            }
        }
        if (positionType == 1)
        {
            m_RoleInformation2.BuffNumber.text = _OpponentBuffSortList.Count.ToString();
        }
        else
        {
            m_RoleInformation1.BuffNumber.text = _OpponentBuffSortList.Count.ToString();
        }
    }
    private void PlaceOfBirth(int type)//关于出生点设置位置信息
    {
        dungeonEndTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.FightStart);
        int realmLv;
        if (type == 1)//左
        {
            //-----------自己的信息
            ArenaPKUpInfo arenaPKUpInfo = ArenaModel.Instance.ArenaPKUpInfoData;
            m_RoleInformation1.SetHeroHead((int)PlayerDatas.Instance.baseData.PlayerID, arenaPKUpInfo.myJob, arenaPKUpInfo.myFace, arenaPKUpInfo.myJob);
            string PlayerName = UIHelper.ServerStringTrim(ArenaModel.Instance.ArenaPKUpInfoData.myName);
            realmLv = PlayerDatas.Instance.baseData.realmLevel;
            m_RoleInformation1.SetHeroLvAndNameLV((int)PlayerDatas.Instance.baseData.LV, PlayerName, realmLv);
            m_RoleInformation1.SetHeroHP(PlayerDatas.Instance.extersion.MaxHP, PlayerDatas.Instance.baseData.HP);
            m_RoleInformation1.SetShieldNumber(PlayerDatas.Instance.extersion.MaxProDef, (int)PlayerDatas.Instance.baseData.shield);
            m_RoleInformation1.BuffButton.SetActiveIL(false);
            //------------------------------------//对手信息
            m_RoleInformation2.SetHeroHead(arenaPKUpInfo.opponentPlayerId, arenaPKUpInfo.opponentFace, arenaPKUpInfo.opponentFacePic, arenaPKUpInfo.opponentJob);
            string OpponentName = UIHelper.ServerStringTrim(ArenaModel.Instance.ArenaPKUpInfoData.opponentName);
            realmLv = ArenaModel.Instance.ArenaPKUpInfoData.realmLV;
            m_RoleInformation2.SetHeroLvAndNameLV((int)ArenaModel.Instance.ArenaPKUpInfoData.opponentLevel, OpponentName, realmLv);
            m_RoleInformation2.SetHeroHP(ArenaManagerModel.playerInfo.maxHp, ArenaManagerModel.playerInfo.maxHp);
            m_RoleInformation2.SetShieldNumber(ArenaModel.Instance.ArenaPKUpInfoData.MaxProDef, ArenaModel.Instance.ArenaPKUpInfoData.opponentShield);
        }
        else//右
        {
            //-----------自己的信息
            ArenaPKUpInfo arenaPKUpInfo = ArenaModel.Instance.ArenaPKUpInfoData;
            m_RoleInformation2.SetHeroHead((int)PlayerDatas.Instance.baseData.PlayerID, arenaPKUpInfo.myJob, arenaPKUpInfo.myFace, arenaPKUpInfo.myJob);
            string PlayerName = UIHelper.ServerStringTrim(ArenaModel.Instance.ArenaPKUpInfoData.myName);
            realmLv = PlayerDatas.Instance.baseData.realmLevel;
            m_RoleInformation2.SetHeroLvAndNameLV((int)PlayerDatas.Instance.baseData.LV, PlayerName, realmLv);
            m_RoleInformation2.SetHeroHP(PlayerDatas.Instance.extersion.MaxHP, PlayerDatas.Instance.baseData.HP);
            m_RoleInformation2.SetShieldNumber(PlayerDatas.Instance.extersion.MaxProDef, (int)PlayerDatas.Instance.baseData.shield);
            m_RoleInformation2.BuffButton.SetActiveIL(false);
            //------------------------------------//对手信息
            m_RoleInformation1.SetHeroHead(arenaPKUpInfo.opponentPlayerId, arenaPKUpInfo.opponentFace, arenaPKUpInfo.opponentFacePic, arenaPKUpInfo.opponentJob);
            string OpponentName = UIHelper.ServerStringTrim(ArenaModel.Instance.ArenaPKUpInfoData.opponentName);
            realmLv = ArenaModel.Instance.ArenaPKUpInfoData.realmLV;
            m_RoleInformation1.SetHeroLvAndNameLV((int)ArenaModel.Instance.ArenaPKUpInfoData.opponentLevel, OpponentName, realmLv);
            m_RoleInformation1.SetHeroHP(ArenaManagerModel.playerInfo.maxHp, ArenaManagerModel.playerInfo.maxHp);
            m_RoleInformation1.SetShieldNumber(100, 0);
        }
    }
    private void PlaceOfBirthUpdate(int type)//自身玩家属性刷新
    {
        if (type == 1)
        {
            string PlayerName = UIHelper.ServerStringTrim(ArenaModel.Instance.ArenaPKUpInfoData.myName);
            m_RoleInformation1.SetHeroLvAndName((int)PlayerDatas.Instance.baseData.LV, PlayerName);
            m_RoleInformation1.SetHeroHP(PlayerDatas.Instance.extersion.MaxHP, PlayerDatas.Instance.baseData.HP);
            m_RoleInformation1.SetShieldNumber(PlayerDatas.Instance.extersion.MaxProDef, (int)PlayerDatas.Instance.baseData.shield);
#if UNITY_EDITOR
        //  Debug.LogFormat("设置血量: {0}/{1}", PlayerDatas.Instance.baseData.HP, PlayerDatas.Instance.extersion.MaxHP);
#endif
        }
        else
        {
            string PlayerName = UIHelper.ServerStringTrim(ArenaModel.Instance.ArenaPKUpInfoData.myName);
            m_RoleInformation2.SetHeroLvAndName((int)PlayerDatas.Instance.baseData.LV, PlayerName);
            m_RoleInformation2.SetHeroHP(PlayerDatas.Instance.extersion.MaxHP, PlayerDatas.Instance.baseData.HP);
            m_RoleInformation2.SetShieldNumber(PlayerDatas.Instance.extersion.MaxProDef, (int)PlayerDatas.Instance.baseData.shield);
#if UNITY_EDITOR
        //  Debug.LogFormat("设置血量: {0}/{1}", PlayerDatas.Instance.baseData.HP, PlayerDatas.Instance.extersion.MaxHP);
#endif
        }
    }
    private void GetopponentBuff()//获取对手身上的Buff
    {
        List<int> buffIds = new List<int>();
        _OpponentBuffSortList.Clear();
        StatusMgr.Instance.GetBuffIds((uint)ArenaModel.Instance.ArenaPKUpInfoData.opponentPlayerId, ref buffIds);
        if (buffIds.Count > 0)
        {
            for (int i = 0; i < buffIds.Count; i++)
            {
                _OpponentBuffSortList.Add(buffIds[i]);
            }
        }
    }
}
LogicProject/System/ArenaActivity/ArenaManagerModel.cs
@@ -807,6 +807,8 @@
            hp = maxHp,
            level = (ushort)level,
            job = (byte)job,
            face = AvatarHelper.GetAvatarDefaultID(job),
            facePic = AvatarHelper.GetAvatarFrameDefaultID(job),
            pos = Vector3.zero,
            name = playerName,
            itemDatas = equipInfos,
@@ -843,6 +845,8 @@
            hp = (ulong)propData.MaxHP,
            level = (ushort)propData.LV,
            job = (byte)propData.Job,
            face = (int)propData.Face,
            facePic = (int)propData.FacePic,
            pos = Vector3.zero,
            name = propData.Name,
            itemDatas = equipInfos,
System/BlessedLand/BlessedLandSeekNormalCell.cs
@@ -40,8 +40,6 @@
            }
            imgCollectFlag.SetActive(isCollectFlag);
            txtPlayerName.text = mineAreaInfo.PlayerID < 10000 ? blessedLandModel.GetNameForPlayerId((int)mineAreaInfo.PlayerID) : mineAreaInfo.PlayerName;
            avatarCell.avatarFrameImage.SetActive(false);
            avatarCell.bgImage.SetActive(false);
            avatarCell.InitUI(mineAreaInfo.PlayerID < 10000 ? blessedLandModel.GetModelForPlayerId((int)mineAreaInfo.PlayerID) : AvatarHelper.GetAvatarModel((int)mineAreaInfo.PlayerID, (int)mineAreaInfo.Face, (int)mineAreaInfo.FacePic, mineAreaInfo.Job));
            btnGo.SetListener(() =>
            {
System/Chat/ChatSendComponent.cs
@@ -460,6 +460,11 @@
        private void OnSendChatAction(string msg)
        {
            OnChatSend(msg);
            WindowCenter.Instance.Close<ChatExtentWin>();
            if (parent != null)
            {
                parent.transform.localPosition = parent.transform.localPosition.SetY(0);
            }
        }
    }
}
System/CrossServerOneVsOne/FightingPKWin.cs
@@ -562,15 +562,15 @@
            if (type == 1)//左
            {
                //-----------自己的信息
                m_RoleInformation1.SetHeroHead(CrossServerLogin.Instance.oneVsOnePlayerData.myJob, 0);
                CrossServerOneVsOne crossServerOneVsOne = CrossServerLogin.Instance.oneVsOnePlayerData;
                m_RoleInformation1.SetHeroHead((int)PlayerDatas.Instance.baseData.PlayerID, crossServerOneVsOne.myFace, crossServerOneVsOne.myFacePic, crossServerOneVsOne.myJob);
                string PlayerName = UIHelper.ServerStringTrim(CrossServerLogin.Instance.oneVsOnePlayerData.myName);
                m_RoleInformation1.SetHeroLvAndName((int)PlayerDatas.Instance.baseData.LV, PlayerName);
                m_RoleInformation1.SetHeroHP(PlayerDatas.Instance.extersion.MaxHP, PlayerDatas.Instance.baseData.HP);
                m_RoleInformation1.SetShieldNumber(PlayerDatas.Instance.extersion.MaxProDef, (int)PlayerDatas.Instance.baseData.shield);
                //------------------------------------//对手信息
                int job = CrossServerLogin.Instance.oneVsOnePlayerData.opponentJob;
                m_RoleInformation2.SetHeroHead(job, 0);
                m_RoleInformation2.SetHeroHead(crossServerOneVsOne.opponentPlayerId, crossServerOneVsOne.opponentFace, crossServerOneVsOne.opponentFacePic, crossServerOneVsOne.opponentJob);
                string OpponentName = UIHelper.ServerStringTrim(CrossServerLogin.Instance.oneVsOnePlayerData.opponentName);
                m_RoleInformation2.SetHeroLvAndName((int)CrossServerLogin.Instance.oneVsOnePlayerData.opponentLevel, OpponentName);
                m_RoleInformation2.SetHeroHP(CrossServerLogin.Instance.oneVsOnePlayerData.opponentMaxHp, CrossServerLogin.Instance.oneVsOnePlayerData.opponentMaxHp);
@@ -580,15 +580,15 @@
            else//右
            {
                //-----------自己的信息
                m_RoleInformation2.SetHeroHead(CrossServerLogin.Instance.oneVsOnePlayerData.myJob, 0);
                CrossServerOneVsOne crossServerOneVsOne = CrossServerLogin.Instance.oneVsOnePlayerData;
                m_RoleInformation2.SetHeroHead((int)PlayerDatas.Instance.baseData.PlayerID, crossServerOneVsOne.myFace, crossServerOneVsOne.myFacePic, crossServerOneVsOne.myJob);
                string PlayerName = UIHelper.ServerStringTrim(CrossServerLogin.Instance.oneVsOnePlayerData.myName);
                m_RoleInformation2.SetHeroLvAndName((int)PlayerDatas.Instance.baseData.LV, PlayerName);
                m_RoleInformation2.SetHeroHP(PlayerDatas.Instance.extersion.MaxHP, PlayerDatas.Instance.baseData.HP);
                m_RoleInformation2.SetShieldNumber(PlayerDatas.Instance.extersion.MaxProDef, (int)PlayerDatas.Instance.baseData.shield);
                //------------------------------------//对手信息
                int job = CrossServerLogin.Instance.oneVsOnePlayerData.opponentJob;
                m_RoleInformation1.SetHeroHead(job, 0);
                m_RoleInformation1.SetHeroHead(crossServerOneVsOne.opponentPlayerId, crossServerOneVsOne.opponentFace, crossServerOneVsOne.opponentFacePic, crossServerOneVsOne.opponentJob);
                string OpponentName = UIHelper.ServerStringTrim(CrossServerLogin.Instance.oneVsOnePlayerData.opponentName);
                m_RoleInformation1.SetHeroLvAndName((int)CrossServerLogin.Instance.oneVsOnePlayerData.opponentLevel, OpponentName);
                m_RoleInformation1.SetHeroHP(CrossServerLogin.Instance.oneVsOnePlayerData.opponentMaxHp, CrossServerLogin.Instance.oneVsOnePlayerData.opponentMaxHp);
System/CrossServerOneVsOne/RoleInformation.cs
@@ -12,7 +12,7 @@
    public class RoleInformation : MonoBehaviour
    {
        [SerializeField] Image m_Head;//英雄头像
        [SerializeField] AvatarCell avatarCell;
        [SerializeField] Text m_LVText;//角色等级
        [SerializeField] Image m_Shield;//护盾
        [SerializeField] Text m_NameInformationText;//角色信息
@@ -31,10 +31,12 @@
            get { return m_BuffNumber; }
            set { m_BuffNumber = value; }
        }
        public void SetHeroHead(int _jobID, int _ReincarnationLv)//关于人物头像的赋值
        public void SetHeroHead(int playerId,int face,int facePic,int job)//关于人物头像的赋值
        {
            m_Head.SetSprite(GeneralDefine.GetJobHeadPortrait(_jobID, _ReincarnationLv));
            avatarCell.InitUI(AvatarHelper.GetAvatarModel(playerId, face, facePic, job));
        }
        public void SetHeroLvAndName(int Lv, string Name)//设置等级和角色名称
        {
            m_LVText.text = Lv.ToString();
System/CrossServerOneVsOneClient/ClientCrossServerOneVsOne.cs
@@ -121,6 +121,8 @@
            hp = maxHp,
            level = (ushort)level,
            job = (byte)job,
            face = AvatarHelper.GetAvatarDefaultID(job),
            facePic = AvatarHelper.GetAvatarFrameDefaultID(job),
            pos = Vector3.zero,
            name = playerName,
            itemDatas = equipInfos,
System/Dungeon/AssistPlayerCell.cs
@@ -12,7 +12,7 @@
        [SerializeField] Text nameText;
        [SerializeField] Text lvText;
        [SerializeField] GameObject lvIcon;
        [SerializeField] Image headIcon;
        [SerializeField] AvatarCell avatarCell;
        [SerializeField] Image realmIcon;
        [SerializeField] Button helpBtn;
        [SerializeField] Image helpBgImg;
@@ -50,7 +50,7 @@
            if (playerInfo == null) return;
            nameText.text = playerInfo.Name;
            headIcon.SetSprite(GeneralDefine.GetOtherJobHeadPortrait(playerInfo.Job, 0));
            avatarCell.InitUI(AvatarHelper.GetAvatarModel(playerInfo.PlayerID, playerInfo.Face, playerInfo.FacePic, playerInfo.Job));
            int realmLv = playerInfo.RealmLV;
            var realmConfig = RealmConfig.Get(playerInfo.RealmLV);
            realmIcon.SetSprite(realmConfig == null ? "NoRealm" : realmConfig.Img);
System/Dungeon/TargetBriefInfoWin.cs
@@ -149,6 +149,8 @@
                {
                    instanceId = _instanceId,
                    job = player.ActorInfo.Job,
                    face = player.ActorInfo.face,
                    facePic = player.ActorInfo.facePic,
                    name = player.ActorInfo.PlayerName,
                    level = player.ActorInfo.LV,
                    hp = player.ActorInfo.RealHp,
@@ -198,6 +200,8 @@
            {
                instanceId = _instanceId,
                job = player.ActorInfo.Job,
                face = player.ActorInfo.face,
                facePic = player.ActorInfo.facePic,
                name = player.ActorInfo.PlayerName,
                level = player.ActorInfo.LV,
                hp = player.ActorInfo.RealHp,
@@ -249,6 +253,8 @@
        public ulong maxHp;
        public int job;
        public int face;
        public int facePic;
        public int level;
        public string name;
@@ -258,6 +264,8 @@
                && lhs.hp == rhs.hp
                && lhs.maxHp == rhs.maxHp
                && lhs.job == rhs.job
                && lhs.face == rhs.face
                && lhs.facePic == rhs.facePic
                && lhs.level == rhs.level
                && lhs.name == rhs.name;
        }
@@ -268,6 +276,8 @@
                || lhs.hp != rhs.hp
                || lhs.maxHp != rhs.maxHp
                || lhs.job != rhs.job
                || lhs.face == rhs.face
                || lhs.facePic == rhs.facePic
                || lhs.level != rhs.level
                || lhs.name != rhs.name;
        }
@@ -436,8 +446,9 @@
                var playerLevel = playerInfo.level;
                var playerHp = playerInfo.hp;
                var playerMaxHp = playerInfo.maxHp;
                m_PlayerLifeBar.SetBaseInfo((int)instanceId, job, 0, playerName, playerLevel, playerHp, playerMaxHp);
                int face = playerInfo.face;
                int facePic = playerInfo.facePic;
                m_PlayerLifeBar.SetBaseInfo((int)instanceId, face, facePic,job, 0, playerName, playerLevel, playerHp, playerMaxHp);
            }
            else
            {
System/Dungeon/TrialSweepAssistPlayerBehaviour.cs
@@ -8,16 +8,16 @@
    
    public class TrialSweepAssistPlayerBehaviour : MonoBehaviour
    {
        [SerializeField] Image m_PlayerHead;
        [SerializeField] AvatarCell avatarCell;
        [SerializeField] Image m_Sign;
        [SerializeField] Text m_PlayerName;
        [SerializeField] Text m_Social;
        DungeonAssistModel model { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } }
        public void Display(int job, string playerName, int relation)
        public void Display(int playerId,int face,int facePic,int job, string playerName, int relation)
        {
            m_PlayerHead.SetSprite(GeneralDefine.GetJobHeadPortrait(job, 0));
            avatarCell.InitUI(AvatarHelper.GetOtherAvatarModel(face, facePic, job));
            m_PlayerName.text = playerName;
            var relationType = (DungeonAssistModel.RelatedToPlayer)relation;
            m_Sign.SetActive(relationType != DungeonAssistModel.RelatedToPlayer.None);
System/Dungeon/TrialSweepResultWin.cs
@@ -169,7 +169,7 @@
                            var npcConfig = NPCConfig.Get(dungeonAssistModel.assistRobotId);
                            name = npcConfig.charName;
                        }
                        m_AssistPlayers[index].Display(player.Job, name, player.Relation);
                        m_AssistPlayers[index].Display(id,player.Face,player.FacePic,player.Job, name, player.Relation);
                    }
                    index++;
                }
System/FairyAu/ChuangongInviteWin.cs
@@ -7,7 +7,7 @@
    public class ChuangongInviteWin : Window
    {
        [SerializeField] RichText info;
        [SerializeField] Image headicon;
        [SerializeField] AvatarCell avatarCell;
        [SerializeField] Button refuseBtn;
        [SerializeField] Button acceptBtn;
        [SerializeField] IntensifySmoothSlider slider;
@@ -72,7 +72,7 @@
        {
            startTime = Time.time;
            info.text = Language.Get("FamilyChuangong6", fairyFeastModel.invitePlayer.playerName);
            headicon.SetSprite(GeneralDefine.GetOtherJobHeadPortrait(fairyFeastModel.invitePlayer.job, 0));
            avatarCell.InitUI(AvatarHelper.GetAvatarModel(fairyFeastModel.invitePlayer.playerID, fairyFeastModel.invitePlayer.face, fairyFeastModel.invitePlayer.facePic, fairyFeastModel.invitePlayer.job));
        }
    }
System/FairyAu/FairyFeastModel.cs
@@ -66,6 +66,8 @@
            public int playerID;
            public string playerName;
            public int job;
            public int face;
            public int facePic;
        }
        public InvitePlayer invitePlayer;
        public event Action OnInvitePlayerEvent;
@@ -81,6 +83,9 @@
                playerID = (int)netPack.PlayerID,
                playerName = UIHelper.ServerStringTrim(netPack.Name),
                job = netPack.Job,
                face = (int)netPack.Face,
                facePic = (int)netPack.FacePic,
            };
            if(!WindowCenter.Instance.IsOpen<ChuangongInviteWin>())
            {
System/FairyAu/FairyViewCell.cs
@@ -47,7 +47,15 @@
            }
            DisplayRank(jiaFairy ? (index + model.fairyList.Count) : index);
            var _jiaId = jiaFairy ? model.jiaFairyIds[index] : 0;
            emblemCell.InitUI(EmblemHelper.GetEmblemModel(jiaFairy ? model.jiaFairyIds[index] : (int)fairy.FamilyID, fairy.EmblemID));
            if (PlayerDatas.Instance.fairyData.fairy == null)
            {
                emblemCell.InitUI(EmblemHelper.GetOtherEmblemModel(fairy.EmblemID));
            }
            else
            {
                emblemCell.InitUI(EmblemHelper.GetEmblemModel(jiaFairy ? model.jiaFairyIds[index] : (int)fairy.FamilyID, fairy.EmblemID));
            }
            m_FairyNameTxt.text = jiaFairy ? model.jiaFairyNames[_jiaId - 1] : fairy.FamilyName;
            m_FairyNameTxt.color = jiaFairy || !SelfFairy(fairy) ? UIHelper.GetUIColor(TextColType.NavyBrown) : UIHelper.GetUIColor(TextColType.Green, true);
            m_FairyLeaderNameTxt.text = jiaFairy ? string.Empty : fairy.leaderName;
System/FairyAu/KingFairyModel.cs
@@ -183,9 +183,9 @@
                }
                else
                {
                    kingFairyData.emblemId = 0;
                    kingFairyData.emblemId = EmblemHelper.GetDefaultFamilyEmblemId();
                }
                hasKingFairy = kingFairyData.fairyId != 0;
                if (isServerPrepare && WindowCenter.Instance.IsOpen<KingTempleWin>())
                {
System/FairyAu/KingTempleWin.cs
@@ -16,6 +16,7 @@
    public class KingTempleWin : Window
    {
        [SerializeField] EmblemCell emblemCell;
        [SerializeField] Text m_FairyNameTxt;
        [SerializeField] ItemCell m_PrivilegeItem;
        [SerializeField] List<ItemCell> m_SalaryItemList;
@@ -126,6 +127,18 @@
        private void UpdateKingFairyEvent()
        {
            emblemCell.SetActive(model.hasKingFairy);
            if (model.hasKingFairy)
            {
                if (PlayerDatas.Instance.fairyData.fairy == null)
                {
                    emblemCell.InitUI(EmblemHelper.GetOtherEmblemModel(model.kingFairyData.emblemId));
                }
                else
                {
                    emblemCell.InitUI(EmblemHelper.GetEmblemModel(model.kingFairyData.fairyId, model.kingFairyData.emblemId));
                }
            }
            m_FairyNameTxt.text = model.hasKingFairy ? model.kingFairyData.fairyName : Language.Get("FamilyMatchNoOneHere");
            ItemCellModel cellModel = new ItemCellModel(model.privilegeItemId);
            m_PrivilegeItem.Init(cellModel);
System/FairyEmblem/EmblemHelper.cs
@@ -54,6 +54,9 @@
        return effectID;
    }
    public static int GetDefaultFamilyEmblemId()
    {
        return model.defaultFamilyEmblemId;
    }
}
System/FairyEmblem/FairyEmblemItem.cs
@@ -63,25 +63,6 @@
        model.nowChooseEmblemId = emblemId;
    }
    private void OnEnable()
    {
        GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
    }
    private void OnDisable()
    {
        GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
    }
    private void OnSecondEvent()
    {
        bool isLimitTime = model.IsLimitTime(emblemId, out var familyAction);
        if (isLimitTime)
        {
            Display(emblemId);
        }
    }
    public string GetEndTimeString(int emblemID)
    {
        FairyEmblemUnlockMethodType type = model.GetFairyEmblemUnlockType(emblemId);
System/FairyEmblem/FairyEmblemModel.cs
@@ -115,12 +115,42 @@
        return showList;
    }
    // 已激活《未激活
    // 已激活>未激活
    private int Cmp(int a, int b)
    {
        bool isUnlock1 = IsUnLock(a);
        bool isUnlock2 = IsUnLock(b);
        return isUnlock2.CompareTo(isUnlock1);
        if (isUnlock1 != isUnlock2)
        {
            return isUnlock2.CompareTo(isUnlock1);
        }
        // 如果激活状态相同,比较是否为限时:限时 (true) > 永久 (false)
        bool isLimitA = IsLimitTime(a, out var familyAction1);
        bool isLimitB = IsLimitTime(b, out var familyAction2);
        if (isLimitA != isLimitB)
        {
            return isLimitB.CompareTo(isLimitA);
        }
        // 限时状态相同,比较 SortNum
        int sortNumA = GetSortNum(a);
        int sortNumB = GetSortNum(b);
        if (sortNumA != sortNumB)
        {
            return sortNumA.CompareTo(sortNumB);
        }
        return a.CompareTo(b);
    }
    public int GetSortNum(int emblemID)
    {
        if (!FamilyEmblemConfig.Has(emblemID))
            return 0;
        return FamilyEmblemConfig.Get(emblemID).SortNum;
    }
    // 获得徽章来源类型
System/FairyEmblem/FairyEmblemWin.cs
@@ -24,6 +24,7 @@
        model.ChooseEmblemIdChangeEvent += OnChooseEmblemIdChangeEvent;
        PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
        model.UpdateFamilyActionEvent += OnUpdateFamilyActionEvent;
        GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
        List<int> showList = model.GetShowList();
        if (showList.Count > 0)
        {
@@ -38,6 +39,12 @@
        model.ChooseEmblemIdChangeEvent -= OnChooseEmblemIdChangeEvent;
        PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
        model.UpdateFamilyActionEvent -= OnUpdateFamilyActionEvent;
        GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
    }
    private void OnSecondEvent()
    {
        scroller.m_Scorller.RefreshActiveCellViews();
    }
    private void OnUpdateFamilyActionEvent(int arg1, int arg2)
System/FakeDungeon/JiaDemonJarDungeonStage.cs
@@ -1,5 +1,6 @@
using System.Collections;
using System.Collections.Generic;
using Unity.Jobs;
using UnityEngine;
using UnityEngine.UI;
using vnxbqy.UI;
@@ -328,6 +329,8 @@
                    maxHp = (ulong)(PlayerDatas.Instance.baseData.HP * Random.Range(0.9f, 1f)),
                    level = PlayerDatas.Instance.baseData.LV,
                    job = playerJob,
                    face = AvatarHelper.GetAvatarDefaultID(playerJob),
                    facePic = AvatarHelper.GetAvatarFrameDefaultID(playerJob),
                    pos = SCENE_CENTER + new Vector3(Random.Range(-2f, 2f), 0, Random.Range(-2f, 2f)),
                    name = playerName,
                    itemDatas = equipInfos,
System/FriendSystem/AddCell.cs
@@ -10,7 +10,7 @@
        [SerializeField] Text lvText;
        [SerializeField] GameObject lvIcon;
        [SerializeField] Image realmIcon;
        [SerializeField] Image playerIcon;
        [SerializeField] AvatarCell avatarCell;
        [SerializeField] public Button addBtn;
        
        int playerId = 0;
@@ -31,7 +31,7 @@
            if (friendPlayer == null) return;
            nameText.text = friendPlayer.PlayerName;
            playerIcon.SetSprite(GeneralDefine.GetOtherJobHeadPortrait(friendPlayer.Job, 0));
            avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)friendPlayer.PlayerID, friendPlayer.Face, friendPlayer.FacePic, friendPlayer.Job));
            int nirvanaLv = friendPlayer.LV - friendsModel.OpenGreatLV;
            if (nirvanaLv > 0)
System/FriendSystem/PlayerInfoCell.cs
@@ -13,8 +13,7 @@
        [SerializeField] Text lvValueText;
        [SerializeField] Text onlineText;
        [SerializeField] Image lvIcon;
        [SerializeField] Image playerIcon;
        [SerializeField] Image playerIconBG;
        [SerializeField] AvatarCell avatarCell;
        [SerializeField] Button detailBtn;
        [SerializeField] RedpointBehaviour behaviour;
@@ -42,17 +41,16 @@
            behaviour.redpointId = friendsModel.GetFriendRedPointId(type,playerId);
            nameText.text = friendPlayer.PlayerName;
            onlineText.text = friendsModel.GetOnlineType(friendPlayer.OnlineType);
            playerIcon.SetSprite(GeneralDefine.GetOtherJobHeadPortrait(friendPlayer.Job, 0));
            if(friendPlayer.OnlineType == 1)
            avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)friendPlayer.PlayerID, friendPlayer.Face, friendPlayer.FacePic, friendPlayer.Job));
            if (friendPlayer.OnlineType == 1)
            {
                unSelectImg.material = null;
                nameText.color = onlineColor;
                lvValueText.color = onlineColor;
                lvDesText.color = onlineColor;
                lvIcon.material = null;
                playerIcon.material = null;
                playerIconBG.material = null;
                avatarCell.avatarImage.material = null;
                avatarCell.avatarFrameImage.material = null;
            }
            else
            {
@@ -60,9 +58,9 @@
                nameText.color = greyColor;
                lvValueText.color = greyColor;
                lvDesText.color = greyColor;
                lvIcon.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
                playerIcon.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
                playerIconBG.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
                lvIcon.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
                avatarCell.avatarImage.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
                avatarCell.avatarFrameImage.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
             
            }
System/HazyRegion/HazyDemonKingModel.cs
@@ -164,6 +164,8 @@
                        m_PlayerInfos.Add(player.ServerInstID, new HazyDemonKingPlayerInfo()
                        {
                            job = player.ActorInfo.Job,
                            face = player.ActorInfo.face,
                            facePic = player.ActorInfo.facePic,
                            hp = player.ActorInfo.RealHp,
                            maxHp = player.ActorInfo.RealMaxHp,
                            playerName = UIHelper.ServerStringTrim(player.ActorInfo.PlayerName),
@@ -179,6 +181,8 @@
                m_PlayerInfos.Add(playerId, new HazyDemonKingPlayerInfo()
                {
                    job = PlayerDatas.Instance.baseData.Job,
                    face = AvatarHelper.GetMyAvatarID(),
                    facePic = AvatarHelper.GetMyAvatarFrameID(),
                    hp = hero.ActorInfo.RealHp,
                    maxHp = hero.ActorInfo.RealMaxHp,
                    playerName = PlayerDatas.Instance.baseData.PlayerName,
@@ -330,6 +334,8 @@
    {
        public string playerName;
        public int job;
        public int face;
        public int facePic;
        public ulong hp;
        public ulong maxHp;
    }
System/HazyRegion/HazyDemonKingPlayerBehaviour.cs
@@ -9,7 +9,7 @@
    public class HazyDemonKingPlayerBehaviour : ScrollItem
    {
        [SerializeField] Transform m_ContainerOwn;
        [SerializeField] ImageEx m_HeadIcon;
        [SerializeField] AvatarCell m_HeadIcon;
        [SerializeField] Text m_PlayerName;
        [SerializeField] SmoothSlider m_HpSlider;
@@ -87,7 +87,7 @@
            HazyDemonKingPlayerInfo playerInfo;
            if (model.TryGetPlayerInfo(playerId, out playerInfo))
            {
                m_HeadIcon.SetSprite(GeneralDefine.GetOtherJobHeadPortrait(playerInfo.job, 0));
                m_HeadIcon.InitUI(AvatarHelper.GetOtherAvatarModel(playerInfo.face, playerInfo.facePic, playerInfo.job));
                m_PlayerName.text = playerInfo.playerName;
                m_PlayerName.color = PlayerDatas.Instance.PlayerId == playerId ? UIHelper.s_DarkGreenColor : UIHelper.s_LightYellow;
            }
@@ -96,7 +96,7 @@
        void DisplayPlayerInfo()
        {
            m_ContainerOwn.SetActive(bossBelongTo);
            m_HeadIcon.gray = hpPer == 0;
            m_HeadIcon.avatarImage.gray = hpPer == 0;
            m_HpSlider.value = hpPer / 100f;
            m_ContainerFightState.SetActive(playerId != PlayerDatas.Instance.PlayerId);
System/PhantasmPavilion/AvatarCell.cs
@@ -7,57 +7,57 @@
{
    public float scale = 1.0f;
    Image m_BgImage;
    public Image bgImage
    ImageEx m_BgImage;
    public ImageEx bgImage
    {
        get
        {
            if (m_BgImage == null)
            {
                LoadPrefab();
                m_BgImage = this.GetComponent<Image>("AvatarCell/Img_BG");
                m_BgImage = this.GetComponent<ImageEx>("AvatarCell/Img_BG");
            }
            return m_BgImage;
        }
    }
    Image m_AvatarImage;
    public Image avatarImage
    ImageEx m_AvatarImage;
    public ImageEx avatarImage
    {
        get
        {
            if (m_AvatarImage == null)
            {
                LoadPrefab();
                m_AvatarImage = this.GetComponent<Image>("AvatarCell/Img_Avatar");
                m_AvatarImage = this.GetComponent<ImageEx>("AvatarCell/Img_Avatar");
            }
            return m_AvatarImage;
        }
    }
    Image m_AvatarFrameImage;
    public Image avatarFrameImage
    ImageEx m_AvatarFrameImage;
    public ImageEx avatarFrameImage
    {
        get
        {
            if (m_AvatarFrameImage == null)
            {
                LoadPrefab();
                m_AvatarFrameImage = this.GetComponent<Image>("AvatarCell/Img_AvatarFrame");
                m_AvatarFrameImage = this.GetComponent<ImageEx>("AvatarCell/Img_AvatarFrame");
            }
            return m_AvatarFrameImage;
        }
    }
    Button m_button;
    public Button button
    ButtonEx m_button;
    public ButtonEx button
    {
        get
        {
            if (m_button == null)
            {
                LoadPrefab();
                m_button = this.GetComponent<Button>("AvatarCell/Img_AvatarFrame");
                m_button = this.GetComponent<ButtonEx>("AvatarCell/Img_AvatarFrame");
            }
            return m_button;
        }
@@ -157,6 +157,8 @@
    {
        if (model == null)
            return;
        string img = AvatarHelper.GetAvatarBgColorStr(model.avatarID);
        bgImage.SetSprite(img);
        InitUI(model.avatarID, model.avatarUIEffectID, model.avatarFrameID, model.avatarFrameUIEffectID);
    }
System/PhantasmPavilion/AvatarHelper.cs
@@ -103,4 +103,20 @@
        model.TryGetEffectID(PhantasmPavilionTab.AvatarFrame, id, out int effectID);
        return effectID;
    }
    //获取指定头像底图品质
    public static int GetAvatarBgColor(int faceID)
    {
        int defaultColor = 1;//默认品质是白色
        if (!PlayerFaceConfig.Has(faceID))
            return defaultColor;
        return PlayerFaceConfig.Get(faceID).BgColor;
    }
    //获取指定头像图片名
    public static string GetAvatarBgColorStr(int faceID)
    {
        int bgColor = GetAvatarBgColor(faceID);
        return StringUtility.Contact("AvatarBgColor", bgColor);
    }
}
System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs
@@ -2,6 +2,8 @@
public interface IPhantasmPavilionTabHandler
{
    int GetSortNum(int id);
    int GetExpireMinutes(int id);
    string GetImage(int id);
System/PhantasmPavilion/PhantasmPavilionAvatarFrameHandler.cs
@@ -20,6 +20,11 @@
        return PlayerFacePicConfig.Get(id).Name;
    }
    public int GetSortNum(int id)
    {
        return PlayerFacePicConfig.Get(id).SortNum;
    }
    public List<int> GetTableKeys()
    {
        return model.StringListToIntList(PlayerFacePicConfig.GetKeys());
System/PhantasmPavilion/PhantasmPavilionAvatarHandler.cs
@@ -4,7 +4,7 @@
public class PhantasmPavilionAvatarHandler : IPhantasmPavilionTabHandler
{
    PhantasmPavilionModel model { get { return ModelCenter.Instance.GetModel<PhantasmPavilionModel>(); } }
    public int GetExpireMinutes(int id)
    {
        return PlayerFaceConfig.Get(id).ExpireMinutes;
@@ -18,6 +18,11 @@
    public string GetName(int id)
    {
        return PlayerFaceConfig.Get(id).Name;
    }
    public int GetSortNum(int id)
    {
        return PlayerFaceConfig.Get(id).BgColor;
    }
    public List<int> GetTableKeys()
@@ -118,4 +123,5 @@
        count = config.UnlockNeedItemList[0][1];
        return true;
    }
}
System/PhantasmPavilion/PhantasmPavilionChatBubbleHandler.cs
@@ -20,6 +20,11 @@
        return ChatBubbleBoxConfig.Get(id).Name;
    }
    public int GetSortNum(int id)
    {
        return ChatBubbleBoxConfig.Get(id).SortNum;
    }
    public List<int> GetTableKeys()
    {
        return model.StringListToIntList(ChatBubbleBoxConfig.GetKeys());
System/PhantasmPavilion/PhantasmPavilionChatExpressionHandler.cs
@@ -20,6 +20,11 @@
        return EmojiPackConfig.Get(id).Name;
    }
    public int GetSortNum(int id)
    {
        return EmojiPackConfig.Get(id).SortNum;
    }
    public List<int> GetTableKeys()
    {
        return model.StringListToIntList(EmojiPackConfig.GetKeys());
System/PhantasmPavilion/PhantasmPavilionModel.cs
@@ -92,7 +92,7 @@
    }
    public void OnPlayerLoginOk()
    {
    {
        selectTab = PhantasmPavilionTab.Avatar;
        var list = ShowItemList(selectTab, out int fristIndex);
        if (!list.IsNullOrEmpty())
@@ -271,6 +271,8 @@
    public bool TryGetInfo(PhantasmPavilionTab tab, int id, out PhantasmPavilionInfo info)
    {
        info = new PhantasmPavilionInfo();
        if (!Has(tab, id))
            return false;
        if (infoDict == null || !infoDict.TryGetValue(tab, out var tempInfoDict))
            return false;
        if (tempInfoDict == null || !tempInfoDict.TryGetValue(id, out info))
@@ -288,6 +290,8 @@
        }
        return resultList;
    }
    public List<int> ShowItemList(PhantasmPavilionTab tab, out int fristIndex)
    {
@@ -325,12 +329,30 @@
            return isLimitB.CompareTo(isLimitA);
        }
        return 0;
        // 限时状态相同,比较 SortNum
        int sortNumA = GetSortNum(tab, a);
        int sortNumB = GetSortNum(tab, b);
        if (sortNumA != sortNumB)
        {
            if (tab == PhantasmPavilionTab.Avatar)
            {
                return sortNumB.CompareTo(sortNumA);
            }
            else
            {
                return sortNumA.CompareTo(sortNumB);
            }
        }
        return a.CompareTo(b);
    }
    ////获得当前状态 0 - 未激活 1 - 可激活 2 - 已激活
    public int GetUnLockState(PhantasmPavilionTab tab, int id)
    {
        if (!Has(tab, id))
            return 0;
        //没激活
        if (!IsUnlock(tab, id))
        {
@@ -350,7 +372,6 @@
    public bool TryGetAttrShowType(PhantasmPavilionTab tab, int faceId, out int type)
    {
        type = 0;
        int unLockState = GetUnLockState(tab, faceId);// 0 - 未激活 1 - 可激活 2 - 已激活
        bool isNoMaxStar = TryGetUpStar(tab, faceId, out int nowUpStar);
        bool isHaveUnLockAttr = TryGetUnLockAttr(tab, selectItemId, out int[] lightAttrTypeArr, out int[] lightAttrValueArr);
@@ -383,6 +404,8 @@
        attrTypeList = new List<int>();
        oldAttrValueList = new List<int>();
        newAttrValueList = new List<int>();
        if (!Has(tab, id))
            return false;
        bool isHaveUnLockAttr = TryGetUnLockAttr(tab, id, out int[] lightAttrTypeArr, out int[] lightAttrValueArr);
        bool isHaveAddStarAttr = TryGetMaxStarLV(tab, id, out int maxStarLV);
        if (!isHaveUnLockAttr || faceStar > maxStarLV)
@@ -735,6 +758,8 @@
    public bool TryGetUpStar(PhantasmPavilionTab tab, int id, out int nowUpStar)
    {
        nowUpStar = 0;
        if (!Has(tab, id))
            return false;
        if (!TryGetMaxStarLV(tab, id, out int maxStarCount))
            return false;
        if (!TryGetInfo(tab, id, out var info))
@@ -754,8 +779,19 @@
        return handler.Has(id);
    }
    public int GetSortNum(PhantasmPavilionTab tab, int id)
    {
        if (!Has(tab, id))
            return 0;
        if (!handlers.TryGetValue(tab, out var handler))
            return 0;
        return handler.GetSortNum(id);
    }
    public string GetName(PhantasmPavilionTab tab, int id)
    {
        if (!Has(tab, id))
            return string.Empty;
        if (!handlers.TryGetValue(tab, out var handler))
            return string.Empty;
        return handler.GetName(id);
@@ -763,6 +799,8 @@
    public string GetImage(PhantasmPavilionTab tab, int id)
    {
        if (!Has(tab, id))
            return string.Empty;
        if (!handlers.TryGetValue(tab, out var handler))
            return string.Empty;
        return handler.GetImage(id);
@@ -770,20 +808,26 @@
    public int GetUnlockDefault(PhantasmPavilionTab tab, int id)
    {
        if (!Has(tab, id))
            return 0;
        if (!handlers.TryGetValue(tab, out var handler))
            return -1;
            return 0;
        return handler.GetUnlockDefault(id);
    }
    public int GetExpireMinutes(PhantasmPavilionTab tab, int id)
    {
        if (!Has(tab, id))
            return 0;
        if (!handlers.TryGetValue(tab, out var handler))
            return -1;
            return 0;
        return handler.GetExpireMinutes(id);
    }
    public bool IsUsing(PhantasmPavilionTab tab, int id)
    {
        if (!Has(tab, id))
            return false;
        if (!TryGetNowShowID(tab, out int result))
            return false;
        return result == id;
@@ -793,6 +837,8 @@
    {
        lightAttrTypeArr = null;
        lightAttrValueArr = null;
        if (!Has(tab, id))
            return false;
        if (!handlers.TryGetValue(tab, out var handler))
            return false;
        return handler.TryGetUnLockAttr(id, out lightAttrTypeArr, out lightAttrValueArr);
@@ -802,6 +848,8 @@
    {
        itemId = 0;
        count = 0;
        if (!Has(tab, id))
            return false;
        if (!handlers.TryGetValue(tab, out var handler))
            return false;
        return handler.TryGetUnLockNeedItem(id, out itemId, out count);
@@ -811,6 +859,8 @@
    {
        itemId = 0;
        count = 0;
        if (!Has(tab, id))
            return false;
        if (!handlers.TryGetValue(tab, out var handler))
            return false;
        return handler.TryGetStarUpNeedItem(id, faceStar, out itemId, out count);
@@ -819,23 +869,29 @@
    public bool TryGetEffectID(PhantasmPavilionTab tab, int id, out int effectID)
    {
        effectID = 0;
        if (!Has(tab, id))
            return false;
        if (!handlers.TryGetValue(tab, out var handler))
            return false;
        return handler.TryGetEffectID(id, out effectID);
    }
    public bool TryGetMaxStarLV(PhantasmPavilionTab tab, int faceID, out int maxStarLV)
    public bool TryGetMaxStarLV(PhantasmPavilionTab tab, int id, out int maxStarLV)
    {
        maxStarLV = 0;
        if (!Has(tab, id))
            return false;
        if (!handlers.TryGetValue(tab, out var handler))
            return false;
        return handler.TryGetMaxStarLV(faceID, out maxStarLV);
        return handler.TryGetMaxStarLV(id, out maxStarLV);
    }
    public bool TryGetAddStarAttr(PhantasmPavilionTab tab, int id, int faceStar, out int[] nowAddStarAttrTypeArr, out int[] nowAddStarAttrValueArr)
    {
        nowAddStarAttrTypeArr = new int[1];
        nowAddStarAttrValueArr = new int[1];
        if (!Has(tab, id))
            return false;
        if (!handlers.TryGetValue(tab, out var handler))
            return false;
        return handler.TryGetAddStarAttr(id, faceStar, out nowAddStarAttrTypeArr, out nowAddStarAttrValueArr);
@@ -843,6 +899,8 @@
    public void SendStarUPPack(PhantasmPavilionTab tab, int id)
    {
        if (!Has(tab, id))
            return;
        if (!handlers.TryGetValue(tab, out var handler))
            return;
        handler.SendStarUPPack(id);
@@ -850,6 +908,8 @@
    public void SendUsePack(PhantasmPavilionTab tab, int id)
    {
        if (!Has(tab, id))
            return;
        if (!handlers.TryGetValue(tab, out var handler))
            return;
        handler.SendUsePack(id);
System/Role/RoleInfomationWin.cs
@@ -263,7 +263,11 @@
        private void OnPhantasmPavilionClick()
        {
            ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectTab = PhantasmPavilionTab.Avatar;
            PhantasmPavilionModel phantasmPavilionModel = ModelCenter.Instance.GetModel<PhantasmPavilionModel>();
            phantasmPavilionModel.selectTab = PhantasmPavilionTab.Avatar;
            var list = phantasmPavilionModel.ShowItemList(phantasmPavilionModel.selectTab, out int fristIndex);
            if (!list.IsNullOrEmpty())
                phantasmPavilionModel.selectItemId = fristIndex;
            WindowCenter.Instance.Open<PhantasmPavilionWin>();
        }
    }
System/SkyTower/SkyTowerServeChallengeCell.cs
@@ -46,9 +46,7 @@
            if (model.rankFloorPlayerIDs.ContainsKey(floorID))
            {
                var floorInfo = model.GetPlayerInfo(floorID, 0);
                m_AvatarCell.bgImage.SetActive(true);
                m_AvatarCell.avatarImage.SetActive(true);
                m_AvatarCell.avatarFrameImage.SetActive(false);
                m_AvatarCell.avatarFrameImage.SetActive(true);
                m_AvatarCell.InitUI(AvatarHelper.GetAvatarModel(floorInfo.PlayerID, floorInfo.Face, floorInfo.FacePic, floorInfo.Job));
                m_RoleName.text = UIHelper.AppendColor(TextColType.DarkGreen, floorInfo.Name);
                m_FloorBG.material = m_SmoothMask.imageMaterials[0];
@@ -93,9 +91,7 @@
            else
            {
                //未完成
                m_AvatarCell.avatarImage.SetActive(true);
                m_AvatarCell.avatarFrameImage.SetActive(false);
                m_AvatarCell.bgImage.SetActive(false);
                m_AvatarCell.avatarImage.SetSprite("UnKnowIcon");
                m_RoleName.text = UIHelper.AppendColor(TextColType.Gray, Language.Get("L1046"));
                m_FloorBG.material = m_SmoothMask.imageMaterials[1];
System/Team/MyTeammateBehaviour.cs
@@ -16,7 +16,7 @@
        [SerializeField] int m_Index = 0;
        [SerializeField] Transform m_Matching;
        [SerializeField] Transform m_TeammateInfo;
        [SerializeField] ImageEx m_Icon;
        [SerializeField] AvatarCell avatarCell;
        [SerializeField] Image m_Realm;
        [SerializeField] Text m_PlayerName;
        [SerializeField] Text m_Job;
@@ -61,6 +61,8 @@
                teammate.mateName = PlayerDatas.Instance.baseData.PlayerName;
                teammate.realm = PlayerDatas.Instance.baseData.realmLevel;
                teammate.job = PlayerDatas.Instance.baseData.Job;
                teammate.face = AvatarHelper.GetMyAvatarID();
                teammate.facePic = AvatarHelper.GetMyAvatarFrameID();
                teammate.jobLevel = 1;
                teammate.level = PlayerDatas.Instance.baseData.LV;
                teammate.mapId = PlayerDatas.Instance.baseData.MapID;
@@ -125,7 +127,7 @@
            if (model.myTeam.TryGetMemberByPlayerId(_playerId, out teammate))
            {
                m_Icon.gray = !teammate.online;
                avatarCell.avatarImage.gray = !teammate.online;
            }
        }
@@ -192,8 +194,8 @@
        private void DisplayTeammate(Teammate _mate)
        {
            m_TeammateInfo.SetActive(true);
            m_Icon.SetSprite(GeneralDefine.GetOtherJobHeadPortrait(_mate.job, 0));
            m_Icon.gray = !_mate.online;
            avatarCell.InitUI(AvatarHelper.GetAvatarModel(_mate.id, _mate.face, _mate.facePic, _mate.job));
            avatarCell.avatarImage.gray = !_mate.online;
            m_PlayerName.text = _mate.mateName;
            m_Realm.SetActive(_mate.realm > 0);
System/Team/TeamData.cs
@@ -259,6 +259,8 @@
        public string mateName;
        public int realm;
        public int job;
        public int face;
        public int facePic;
        public int jobLevel;
        public int level;
        public int mapId;
@@ -277,6 +279,8 @@
            this.mateName = _serverInfo.Name;
            this.realm = _serverInfo.RealmLV;
            this.job = _serverInfo.Job;
            this.face = (int)_serverInfo.Face;
            this.facePic = (int)_serverInfo.FacePic;
            this.jobLevel = _serverInfo.JobLevel;
            this.level = _serverInfo.LV;
            this.lineId = _serverInfo.LineID;
@@ -291,6 +295,8 @@
            this.mateName = _serverInfo.Name;
            this.realm = _serverInfo.RealmLV;
            this.job = _serverInfo.Job;
            this.face = (int)_serverInfo.Face;
            this.facePic = (int)_serverInfo.FacePic;
            this.jobLevel = _serverInfo.JobLevel;
            this.level = _serverInfo.LV;
            this.lineId = _serverInfo.LineID;
@@ -320,6 +326,8 @@
        public string playerName;
        public int job;
        public int jobLevel;
        public int face;
        public int facePic;
        public int realm;
        public int playerLevel;
@@ -329,6 +337,8 @@
            this.playerName = _playerInfo.Name;
            this.job = _playerInfo.Job;
            this.jobLevel = 1;
            this.face = (int)_playerInfo.Face;
            this.facePic = (int)_playerInfo.FacePic;
            this.realm = _playerInfo.RealmLV;
            this.playerLevel = _playerInfo.LV;
        }
@@ -339,6 +349,8 @@
            this.playerName = _member.Name;
            this.job = _member.Job;
            this.jobLevel = 1;
            this.face = (int)_member.Face;
            this.facePic = (int)_member.FacePic;
            this.realm = _member.OfficialRank;
            this.playerLevel = _member.LV;
        }
@@ -349,6 +361,8 @@
            this.playerName = _member.PlayerName;
            this.job = _member.Job;
            this.jobLevel = 1;
            this.face = (int)_member.Face;
            this.facePic = (int)_member.FacePic;
            this.realm = _member.RealmLV;
            this.playerLevel = _member.LV;
        }
System/Team/TeamInviteBehaviour.cs
@@ -13,7 +13,7 @@
    public class TeamInviteBehaviour : ScrollItem
    {
        [SerializeField]
        Image m_Icon;
        AvatarCell m_Icon;
        [SerializeField]
        Image m_Realm;
@@ -40,7 +40,7 @@
            invite = (TeamInvite)_data;
            m_Icon.SetSprite(GeneralDefine.GetOtherJobHeadPortrait(invite.job, 0));
            m_Icon.InitUI(AvatarHelper.GetAvatarModel(invite.playerId, invite.face, invite.facePic, invite.job));
            m_PlayerName.text = invite.playerName;
            m_Job.text = OccupationNameConfig.GetOccupationName(invite.job);
System/Team/TeamPrepareBehaviour.cs
@@ -15,7 +15,7 @@
        [SerializeField] Transform m_MeSign;
        [SerializeField] Transform m_ContainerNotReady;
        [SerializeField] Image m_Icon;
        [SerializeField] AvatarCell m_AvatarCell;
        [SerializeField] Image m_LevelSign;
        [SerializeField] Text m_Level;
        [SerializeField] Image m_Realm;
@@ -33,7 +33,7 @@
            m_Level.SetActive(false);
            m_LevelSign.SetActive(false);
            m_Icon.SetActive(false);
            m_AvatarCell.SetActive(false);
            m_PlayerName.SetActive(false);
            m_ContainerNotReady.SetActive(false);
            m_Realm.SetActive(false);
@@ -46,7 +46,7 @@
            if (_ready)
            {
                m_Icon.SetActive(true);
                m_AvatarCell.SetActive(true);
                m_Level.SetActive(true);
                m_ContainerNotReady.SetActive(false);
                m_PlayerName.SetActive(true);
@@ -57,8 +57,7 @@
                    var realmConfig = RealmConfig.Get(teammate.realm);
                    m_Realm.SetSprite(realmConfig != null ? realmConfig.Img : "");
                }
                m_Icon.SetSprite(GeneralDefine.GetOtherJobHeadPortrait(teammate.job, teammate.jobLevel));
                m_AvatarCell.InitUI(AvatarHelper.GetAvatarModel(teammate.id, teammate.face, teammate.facePic, teammate.job));
                m_LevelSign.SetActive(false);
                m_Level.text = teammate.level.ToString();
                m_PlayerName.text = teammate.mateName;
@@ -68,7 +67,7 @@
                m_Realm.SetActive(false);
                m_Level.SetActive(false);
                m_LevelSign.SetActive(false);
                m_Icon.SetActive(false);
                m_AvatarCell.SetActive(false);
                m_PlayerName.SetActive(false);
                m_ContainerNotReady.SetActive(true);
            }
System/Team/TeammateInteractPanel.cs
@@ -86,6 +86,8 @@
                        var playerId = (uint)mate.id;
                        var playerName = mate.mateName;
                        var job = (byte)mate.job;
                        var face = (int)mate.face;
                        var facePic = (int)mate.facePic;
                        var playerLv = (ushort)mate.level;
                        var realmLv = (ushort)mate.realm;
                        var onLine = mate.online;
System/WindowJump/WindowJumpMgr.cs
@@ -1541,6 +1541,9 @@
                    return false;
                }
                ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectTab = PhantasmPavilionTab.Avatar;
                var list = ModelCenter.Instance.GetModel<PhantasmPavilionModel>().ShowItemList(ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectTab, out int fristIndex);
                if (!list.IsNullOrEmpty())
                    ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectItemId = fristIndex;
                WindowCenter.Instance.Open<PhantasmPavilionWin>();
                break;
            case JumpUIType.PhantasmPavilionAvatarFrame:
@@ -1549,6 +1552,9 @@
                    return false;
                }
                ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectTab = PhantasmPavilionTab.AvatarFrame;
                var list1 = ModelCenter.Instance.GetModel<PhantasmPavilionModel>().ShowItemList(ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectTab, out int fristIndex1);
                if (!list1.IsNullOrEmpty())
                    ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectItemId = fristIndex1;
                WindowCenter.Instance.Open<PhantasmPavilionWin>();
                break;
            case JumpUIType.PhantasmPavilionChatExpression:
@@ -1557,6 +1563,9 @@
                    return false;
                }
                ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectTab = PhantasmPavilionTab.ChatExpression;
                var list2 = ModelCenter.Instance.GetModel<PhantasmPavilionModel>().ShowItemList(ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectTab, out int fristIndex2);
                if (!list2.IsNullOrEmpty())
                    ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectItemId = fristIndex2;
                WindowCenter.Instance.Open<PhantasmPavilionWin>();
                break;
            case JumpUIType.PhantasmPavilionChatBubble:
@@ -1565,6 +1574,9 @@
                    return false;
                }
                ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectTab = PhantasmPavilionTab.ChatBubble;
                var list3 = ModelCenter.Instance.GetModel<PhantasmPavilionModel>().ShowItemList(ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectTab, out int fristIndex3);
                if (!list3.IsNullOrEmpty())
                    ModelCenter.Instance.GetModel<PhantasmPavilionModel>().selectItemId = fristIndex3;
                WindowCenter.Instance.Open<PhantasmPavilionWin>();
                break;
        }
UI/Common/PlayerLifeBar.cs
@@ -11,8 +11,7 @@
    public class PlayerLifeBar : MonoBehaviour
    {
        [SerializeField] Image m_Icon;
        [SerializeField] Button m_ViewPlayer;
        [SerializeField] AvatarCell avatarCell;
        [SerializeField] Text m_PlayerName;
        [SerializeField] Text m_PlayerLevel;
        [SerializeField] Text m_Hp;
@@ -54,11 +53,10 @@
        int playerId = 0;
        public void SetBaseInfo(int _playerId, int _job, int _jobRank, string _name, int _level, ulong _hp, ulong _maxHp)
        public void SetBaseInfo(int _playerId,int face,int facePic, int _job, int _jobRank, string _name, int _level, ulong _hp, ulong _maxHp)
        {
            playerId = _playerId;
            m_Icon.SetSprite(GeneralDefine.GetJobHeadPortrait(_job, _jobRank));
            avatarCell.InitUI(AvatarHelper.GetAvatarModel(_playerId, face, facePic, _job));
            m_PlayerName.text = _name;
            m_PlayerLevel.text = _level.ToString();
@@ -101,12 +99,12 @@
        private void OnEnable()
        {
            multipleSlider.ResetValue(value);
            m_ViewPlayer.AddListener(ViewPlayer);
            avatarCell.button.AddListener(ViewPlayer);
        }
        private void OnDisable()
        {
            m_ViewPlayer.RemoveAllListeners();
            avatarCell.button.RemoveAllListeners();
        }
        private void ViewPlayer()