using UnityEngine; 
 | 
using System.Collections.Generic; 
 | 
using System; 
 | 
using LitJson; 
 | 
  
 | 
  
 | 
public class PlayerDatas : Singleton<PlayerDatas> 
 | 
{ 
 | 
    public uint PlayerId { get { return baseData.PlayerID; } } 
 | 
  
 | 
    PlayerBaseData m_Base = new PlayerBaseData(); 
 | 
    public PlayerBaseData baseData { get { return m_Base; } } 
 | 
  
 | 
    PlayerExtersionData m_Extersion = new PlayerExtersionData(); 
 | 
    public PlayerExtersionData extersion { get { return m_Extersion; } } 
 | 
  
 | 
    //仙盟 
 | 
    public PlayerFairyData fairyData = new PlayerFairyData(); 
 | 
  
 | 
    // PlayerSkillDatas m_Skill = new PlayerSkillDatas(); 
 | 
    // public PlayerSkillDatas skill { get { return m_Skill; } } 
 | 
    // PlayerMethodData method { get { return ModelCenter.Instance.GetModel<PlayerMethodData>(); } } 
 | 
    // StoreModel StoreModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } } 
 | 
    // DungeonAssistModel assistModel { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } } 
 | 
  
 | 
    public int totalExpRate { get; set; } 
 | 
    public uint worldLv { get; private set; } 
 | 
    public uint worldExpRate { get; private set; } 
 | 
    public List<uint> maliciousAtkPlayer = new List<uint>();// 发动恶意攻击的玩家列表 
 | 
    private int m_Tick; 
 | 
    public uint changeLV = 0; //当前升x级 
 | 
  
 | 
    public event Action worldLevelUpdateEvent; 
 | 
  
 | 
    public event Action playerDataUpdateEvent;    // 无区别更新,慎用 
 | 
    public event Action<PlayerDataType> playerDataRefreshEvent; 
 | 
    public event Action<PlayerDataType, int> attributePromoteEvent; 
 | 
    public event Action<long> spNewGetEvent; 
 | 
  
 | 
  
 | 
    private Dictionary<PlayerDataType, long> PlayerDataDict = new Dictionary<PlayerDataType, long>(); 
 | 
  
 | 
    public void InitPlayerData(H0102_tagCDBPlayer data) 
 | 
    { 
 | 
        baseData.UpdateData(data); 
 | 
        if (playerDataUpdateEvent != null) 
 | 
        { 
 | 
            playerDataUpdateEvent(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public void RefreshPlayerData(H0418_tagObjInfoRefresh vNetData) 
 | 
    { 
 | 
        UpdatePlayerData(vNetData); 
 | 
        //StoreModel.RefreshTCBPlayerData(vNetData); 
 | 
  
 | 
    } 
 | 
  
 | 
  
 | 
    private void UpdatePlayerData(H0418_tagObjInfoRefresh vNetData) 
 | 
    { 
 | 
        if (baseData != null && vNetData.ObjID == baseData.PlayerID) 
 | 
        { 
 | 
            RefreshProperty((PlayerDataType)vNetData.RefreshType, vNetData.Value, vNetData.ValueEx); 
 | 
  
 | 
            if (PlayerDataDict.ContainsKey((PlayerDataType)vNetData.RefreshType)) 
 | 
            { 
 | 
                PlayerDataDict[(PlayerDataType)vNetData.RefreshType] = vNetData.Value + vNetData.ValueEx * Constants.ExpPointValue; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                PlayerDataDict.Add((PlayerDataType)vNetData.RefreshType, vNetData.Value + vNetData.ValueEx * Constants.ExpPointValue); 
 | 
            } 
 | 
  
 | 
            if (playerDataRefreshEvent != null) 
 | 
            { 
 | 
                playerDataRefreshEvent((PlayerDataType)vNetData.RefreshType); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public void RefreshProperty(PlayerDataType _type, uint value, uint valueEx) 
 | 
    { 
 | 
        switch (_type) 
 | 
        { 
 | 
            case PlayerDataType.AccountID: 
 | 
                baseData.AccID = value.ToString(); 
 | 
                break; 
 | 
            case PlayerDataType.PlayerID: 
 | 
                baseData.PlayerID = value; 
 | 
                break; 
 | 
            case PlayerDataType.Job: 
 | 
                baseData.Job = (byte)value; 
 | 
                break; 
 | 
            case PlayerDataType.LV: 
 | 
                changeLV = value - baseData.LV; 
 | 
                baseData.LV = (ushort)value; 
 | 
                if (changeLV > 0) 
 | 
                { 
 | 
                    SDKUtils.Instance.RoleLevelUp(); 
 | 
                } 
 | 
                break; 
 | 
            case PlayerDataType.TotalExp: 
 | 
                baseData.TotalExp = value; 
 | 
                break; 
 | 
            case PlayerDataType.Family: 
 | 
                baseData.FamilyId = value; 
 | 
  
 | 
                // if (LocalSave.GetInt("FimilyReport" + PlayerDatas.Instance.baseData.PlayerID) == 0) 
 | 
                // { 
 | 
                //     SDKUtils.Instance.TraceEvent("joinalliance", "", false); 
 | 
                //     LocalSave.SetInt("FimilyReport" + PlayerDatas.Instance.baseData.PlayerID, 1); 
 | 
                // } 
 | 
                break; 
 | 
            case PlayerDataType.Gold: 
 | 
                baseData.diamond = value; 
 | 
                break; 
 | 
            case PlayerDataType.GoldPaper: 
 | 
                baseData.bindDiamond = value; 
 | 
                break; 
 | 
            case PlayerDataType.Silver: 
 | 
                baseData.copper = value; 
 | 
                break; 
 | 
            case PlayerDataType.MapID: 
 | 
                baseData.MapID = (ushort)value; 
 | 
                break; 
 | 
            case PlayerDataType.PosX: 
 | 
                baseData.PosX = (ushort)value;//角色坐标x 
 | 
                break; 
 | 
            case PlayerDataType.PosY: 
 | 
                baseData.PosY = (ushort)value;//角色坐标y 
 | 
                break; 
 | 
            case PlayerDataType.ExpRate: 
 | 
                extersion.ExpRate = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.DEF: 
 | 
                extersion.DEF = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.FreePoint: 
 | 
                baseData.FreePoint = value; 
 | 
                break; 
 | 
            case PlayerDataType.FreeSkillPoint: 
 | 
                baseData.FreeSkillPoint = value; 
 | 
                break; 
 | 
            case PlayerDataType.STR: 
 | 
                baseData.STR = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.PNE: 
 | 
                baseData.PNE = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.PHY: 
 | 
                baseData.PHY = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CON: 
 | 
                baseData.CON = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.MINATK: 
 | 
                extersion.MINATK = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.MAXATK: 
 | 
                extersion.MAXATK = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.HIT: 
 | 
                extersion.HIT = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.REALATK: 
 | 
                extersion.realATK = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.REALDEF: 
 | 
                extersion.realDEF = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.Miss: 
 | 
                extersion.Miss = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.SuperHit: 
 | 
                extersion.SuperHit = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.NameColor: 
 | 
            case PlayerDataType.AtkInterval: 
 | 
                extersion.AtkInterval = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.Speed: 
 | 
                extersion.Speed = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.SuperHitRate: 
 | 
                extersion.SuperHitRate = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.PickupDist: 
 | 
                extersion.PickupDist = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.FBID: 
 | 
                baseData.FBID = (byte)value; 
 | 
                break; 
 | 
            case PlayerDataType.RealMapID: 
 | 
                extersion.RealMapID = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.GMLevel: 
 | 
                baseData.GMLevel = (byte)value; 
 | 
                break; 
 | 
            case PlayerDataType.TeamID: 
 | 
                break; 
 | 
            case PlayerDataType.TeamLV: 
 | 
                break; 
 | 
            case PlayerDataType.UseHarmerCount: 
 | 
                baseData.UseHarmerCount = value; 
 | 
                break; 
 | 
            case PlayerDataType.FightPower: 
 | 
                PlayerMainDate.Instance.prowNum = baseData.FightPower; 
 | 
                baseData.FightPower = value + valueEx * Constants.ExpPointValue; 
 | 
                PlayerMainDate.Instance.PowerAdd(baseData.FightPower); 
 | 
                break; 
 | 
            case PlayerDataType.Tick: 
 | 
#if UNITY_EDITOR 
 | 
                Debug.LogFormat("---- 收到服务端Tick: {0}", value); 
 | 
                if (extersion.Tick != 0) 
 | 
                { 
 | 
                    uint _curWorldTick = GetWorldTick(); 
 | 
                    uint _diffValue = value > _curWorldTick ? value - _curWorldTick : _curWorldTick - value; 
 | 
                    Debug.LogFormat(" |-------- 当前客户端Tick: {0}, 差异: {1}", _curWorldTick, _diffValue); 
 | 
                    if (_diffValue > 5000) 
 | 
                    { 
 | 
                        Debug.LogFormat(" |-------- <color=red>收到服务端WorldTick与当前的客户端Tick差异超过5秒</color>"); 
 | 
                    } 
 | 
                } 
 | 
#endif 
 | 
                extersion.Tick = value; 
 | 
                m_Tick = Environment.TickCount; 
 | 
  
 | 
                break; 
 | 
            case PlayerDataType.EquipShowSwitch: 
 | 
                baseData.equipShowSwitch = value; 
 | 
  
 | 
                break; 
 | 
            case PlayerDataType.LuckValue: 
 | 
                extersion.luckValue = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.ExAttr1: 
 | 
                baseData.ExAttr1 = Math.Max((int)value, 10100); //新号初始处理 
 | 
                break; 
 | 
            case PlayerDataType.ExAttr2: 
 | 
                baseData.ExAttr2 = Math.Max((int)value, 10101); //新号初始处理 
 | 
                break; 
 | 
            case PlayerDataType.ExAttr3: 
 | 
                baseData.dungeonLineId = (int)value % 1000; 
 | 
                baseData.dungeonMapId = (int)value / 1000; 
 | 
                break; 
 | 
            case PlayerDataType.ExAttr4: 
 | 
                baseData.shield = value; 
 | 
                break; 
 | 
  
 | 
            case PlayerDataType.Faction: 
 | 
                baseData.faction = value; 
 | 
                break; 
 | 
            case PlayerDataType.RealmLevel: 
 | 
                baseData.realmLevel = (byte)value; 
 | 
                break; 
 | 
            case PlayerDataType.ChangeCoinPointTotal: 
 | 
                baseData.coinPointTotal = value; 
 | 
                break; 
 | 
            case PlayerDataType.VIPLv: 
 | 
                baseData.VIPLv = (byte)value; 
 | 
                break; 
 | 
            case PlayerDataType.ExAttr6: 
 | 
                baseData.copperExtend = value; 
 | 
                break; 
 | 
            case PlayerDataType.ExAttr10: 
 | 
                baseData.bubbleId = value; 
 | 
                break; 
 | 
            case PlayerDataType.ExAttr11: 
 | 
                baseData.ExAttr11 = value; 
 | 
                break; 
 | 
            case PlayerDataType.ExAttr13: 
 | 
                baseData.ServerGroupId = value; 
 | 
                break; 
 | 
            case PlayerDataType.BattleValEx1: 
 | 
                extersion.battleValEx1 = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.BattleValEx3: 
 | 
                extersion.battleValEx3 = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.DamageReduceRate: 
 | 
                extersion.damageReduceRate = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.LuckyHitRate: 
 | 
                extersion.luckHitRate = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.LuckyHitVal: 
 | 
                extersion.luckHitVal = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.ExpPoint: 
 | 
                baseData.ExpPoint = value; 
 | 
                break; 
 | 
            case PlayerDataType.Rune: 
 | 
                extersion.runeChip = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.RuneSplinters: 
 | 
                extersion.runeEssence = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.SuperHitReduce: 
 | 
                extersion.SuperHitReduce = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.LuckyHitRateReduce: 
 | 
                extersion.LuckyHitRateReduce = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.SkillAtkRateReduce: 
 | 
                extersion.skillAtkRateReduce = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.SkillAtkRate: 
 | 
                extersion.SkillAtkRate = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.DamagePVP: 
 | 
                extersion.DamagePVP = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.HPRestorePer: 
 | 
                extersion.HPRestorePer = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.DamageBackRate: 
 | 
                extersion.DamageBackRate = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.SpeedValue: 
 | 
                extersion.SpeedValue = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.PetDamPer: 
 | 
                extersion.PetDamPer = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.IgnoreDefRate: 
 | 
                extersion.IgnoreDefRate = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.IgnoreDefRateReduce: 
 | 
                extersion.IgnoreDefRateReduce = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.DamChanceDef: 
 | 
                extersion.DamChanceDef = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.BleedDamage: 
 | 
                extersion.BleedDamage = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.BattleValEx2: 
 | 
                extersion.BattleValEx2 = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.FaintRate: 
 | 
                extersion.FaintRate = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.FaintDefRate: 
 | 
                extersion.FaintDefRate = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.FinalHurt: 
 | 
                extersion.FinalHurt = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.FinalHurtReduce: 
 | 
                extersion.FinalHurtReduce = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.DamagePerPVP: 
 | 
                extersion.DamagePerPVP = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.DamagePerPVPReduce: 
 | 
                extersion.DamagePerPVPReduce = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.ComboDamPer: 
 | 
                extersion.ComboDamPer = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.MaxProDef: 
 | 
                extersion.MaxProDef = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.ComboDamRate: 
 | 
                extersion.ComboDamPerRate = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.RealmPoint: 
 | 
                extersion.realmPoint = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.MagicEssence: 
 | 
                extersion.magicEssence = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.PlayerPKState: 
 | 
                extersion.pkState = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.IsAttackBossState: 
 | 
                extersion.bossState = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.BasicsMinimum: 
 | 
                baseData.BasicsMinimum = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.BasicsMaxAttack: 
 | 
                baseData.BasicsMaxAttack = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.BasicsLife: 
 | 
                baseData.BasicsLife = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.BasicsDefense: 
 | 
                baseData.BasicsDefense = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.BasicsScoreAHit: 
 | 
                baseData.BasicsScoreAHit = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.BasicsDodge: 
 | 
                baseData.BasicsDodge = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.OnlyFinalHurt: 
 | 
                extersion.OnlyFinalHurt = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_NPCHurtAddPer: 
 | 
                extersion.NpcHurtAddPer = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.FunalHurtPer: 
 | 
                extersion.FunalHurtPer = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_ForbidenTalk: 
 | 
                extersion.forbidenTalk = (int)value; 
 | 
                //与服务端约定 0 单角色解封 1 单角色禁言,2设备禁言,3设备解封 
 | 
                if (value == 2) 
 | 
                { 
 | 
                    LocalSave.SetBool("ServerForbidenChatDevice1", true); 
 | 
                } 
 | 
                else if (value == 3) 
 | 
                { 
 | 
                    //任意账号解封 
 | 
                    LocalSave.SetBool("ServerForbidenChatDevice1", false); 
 | 
                } 
 | 
                //ModelCenter.Instance.GetModel<ChatCenter>().ServerForbidenChat(extersion.forbidenTalk == 1); 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_TalentPoint: 
 | 
                extersion.talentPoint = (int)value; 
 | 
                break; 
 | 
  
 | 
            case PlayerDataType.CDBPlayerRefresh_SoulDust: 
 | 
                extersion.soulDust = value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SoulSplinters: 
 | 
                extersion.soulSplinters = value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SoulCore: 
 | 
                extersion.soulCore = value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_Honor: 
 | 
                extersion.honorValue = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_ZhuxianRate: 
 | 
                baseData.ExAttr16 = value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_Mater: 
 | 
                baseData.mater = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_Wood: 
 | 
                baseData.wood = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_Water: 
 | 
                baseData.water = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_Fire: 
 | 
                baseData.fire = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_Earth: 
 | 
                baseData.earth = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_NormalHurt: 
 | 
                baseData.NormalHurt = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_NormalHurtPer: 
 | 
                baseData.NormalHurtPer = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_FabaoHurt: 
 | 
                baseData.FabaoHurt = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_FabaoHurtPer: 
 | 
                baseData.FabaoHurtPer = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SuperHitRateReduce: 
 | 
                baseData.reduceCrit = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_LuckyHitReduce: 
 | 
                baseData.reduceHeartHurt = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_FinalHurtReducePer: 
 | 
                baseData.reduceFinalHurt = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillAddPerA: 
 | 
                baseData.skillAddPerA = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillAddPerB: 
 | 
                baseData.skillAddPerB = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillAddPerC: 
 | 
                baseData.skillAddPerC = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillAddPerD: 
 | 
                baseData.skillAddPerD = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillAddPerE: 
 | 
                baseData.skillAddPerE = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillAddPerF: 
 | 
                baseData.skillAddPerF = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillAddPerG: 
 | 
                baseData.skillAddPerG = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillReducePerA: 
 | 
                baseData.skillReducePerA = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillReducePerB: 
 | 
                baseData.skillReducePerB = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillReducePerC: 
 | 
                baseData.skillReducePerC = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillReducePerD: 
 | 
                baseData.skillReducePerD = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillReducePerE: 
 | 
                baseData.skillReducePerE = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillReducePerF: 
 | 
                baseData.skillReducePerF = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.CDBPlayerRefresh_SkillReducePerG: 
 | 
                baseData.skillReducePerG = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.ExAttr12: 
 | 
                baseData.leaveGuildInfo = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.default9: 
 | 
                baseData.mapRealmSelect = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.default10: 
 | 
                baseData.leaveFamilyTime = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.Face: 
 | 
                baseData.face = (int)value; 
 | 
                break; 
 | 
            case PlayerDataType.FacePic: 
 | 
                baseData.facePic = (int)value; 
 | 
                break; 
 | 
  
 | 
        } 
 | 
    } 
 | 
  
 | 
    public long GetPlayerDataByType(PlayerDataType type) 
 | 
    { 
 | 
        long value = 0; 
 | 
        PlayerDataDict.TryGetValue(type, out value); 
 | 
        return value; 
 | 
    } 
 | 
  
 | 
    public void ClearPlayerData() 
 | 
    { 
 | 
        PlayerDataDict.Clear(); 
 | 
    } 
 | 
  
 | 
    public void OnRefreshWorldLV(uint worldLv, uint worldExpRate) 
 | 
    { 
 | 
        this.worldLv = worldLv; 
 | 
        this.worldExpRate = worldExpRate; 
 | 
        if (worldLevelUpdateEvent != null) 
 | 
        { 
 | 
            worldLevelUpdateEvent(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public void OnRecv_SwitchAttackMode(byte attackMode) 
 | 
    { 
 | 
        // baseData.AttackMode = attackMode; 
 | 
        // if (OnSwitchAttackMode != null) 
 | 
        // { 
 | 
        //     OnSwitchAttackMode((E_AttackMode)attackMode); 
 | 
        // } 
 | 
  
 | 
        // if (hero == null) 
 | 
        // { 
 | 
        //     return; 
 | 
        // } 
 | 
  
 | 
        // ReCheckAttackTarget(); 
 | 
    } 
 | 
  
 | 
    public void ReCheckAttackTarget(/*GA_Player _player = null*/) 
 | 
    { 
 | 
        // if (hero == null) 
 | 
        // { 
 | 
        //     return; 
 | 
        // } 
 | 
  
 | 
        // if (_player == null) 
 | 
        // { 
 | 
        //     _player = hero.SelectTarget as GA_Player; 
 | 
        // } 
 | 
  
 | 
        // if (_player != null) 
 | 
        // { 
 | 
        //     if (_player.CanAtked()) 
 | 
        //     { 
 | 
        //         SelectionManager.Request(SelectionManager.E_Type.Red, _player); 
 | 
        //     } 
 | 
        //     else 
 | 
        //     { 
 | 
        //         SelectionManager.Request(SelectionManager.E_Type.Green, _player); 
 | 
  
 | 
        //         if (hero.aiHandler.IsAuto()) 
 | 
        //         { 
 | 
        //             hero.LockTarget = null; 
 | 
        //         } 
 | 
        //         else if (hero.aiHandler.currentType == E_HeroAIType.KillUntilDie) 
 | 
        //         { 
 | 
        //             hero.Behaviour.StopKillUntilDieAI(); 
 | 
        //         } 
 | 
        //     } 
 | 
        // } 
 | 
  
 | 
        // hero.SwitchTarget(); 
 | 
    } 
 | 
  
 | 
    /// <summary> 
 | 
    /// 是否是装备, 这里的装备指的是: 武器, 帽子, 衣服, 下装, 鞋子, 腰带 
 | 
    /// </summary> 
 | 
    /// <returns></returns> 
 | 
    public bool IsEquip(ItemType itemType) 
 | 
    { 
 | 
        return itemType >= ItemType.Equip_Weapon && itemType <= ItemType.Equip_Shoes; 
 | 
    } 
 | 
  
 | 
    public void RequestWorldTick() 
 | 
    { 
 | 
        CA102_tagCMWorldTick _proto = new CA102_tagCMWorldTick(); 
 | 
        GameNetSystem.Instance.SendInfo(_proto); 
 | 
    } 
 | 
  
 | 
    public void ClearTick() 
 | 
    { 
 | 
        extersion.Tick = 0; 
 | 
    } 
 | 
  
 | 
    public bool IsTickVaild() 
 | 
    { 
 | 
        return extersion.Tick != 0; 
 | 
    } 
 | 
  
 | 
    public uint GetWorldTick() 
 | 
    { 
 | 
        int _currentTick = Environment.TickCount - m_Tick; 
 | 
        return extersion.Tick + (uint)_currentTick; 
 | 
    } 
 | 
  
 | 
} 
 |