lcy
8 天以前 485db99b5c51a971c173664cf6e808dc8424b0a0
Main/Core/GameEngine/Player/PlayerDatas.cs
@@ -14,7 +14,8 @@
    PlayerExtersionData m_Extersion = new PlayerExtersionData();
    public PlayerExtersionData extersion { get { return m_Extersion; } }
    // public PlayerFairyData fairyData = new PlayerFairyData();
    //仙盟
    public PlayerFairyData fairyData = new PlayerFairyData();
    // PlayerSkillDatas m_Skill = new PlayerSkillDatas();
    // public PlayerSkillDatas skill { get { return m_Skill; } }
@@ -37,77 +38,44 @@
    public event Action<long> spNewGetEvent;
    private Dictionary<PlayerDataType, ulong> PlayerDataDict = new Dictionary<PlayerDataType, ulong>();
    private Dictionary<PlayerDataType, long> PlayerDataDict = new Dictionary<PlayerDataType, long>();
    public void InitPlayerData(H0102_tagCDBPlayer data)
    {
        baseData.UpdateData(data);
        if (playerDataUpdateEvent != null)
        {
            playerDataUpdateEvent();
        }
    }
    public void UpdatePlayerData(/*HA112_tagMCDBPlayer data*/)
    {
        // baseData.UpdateData(data);
        // if (hero != null)
        // {
        //     hero.InitBornPos(baseData.PosX, baseData.PosY);
        //     CameraController.Instance.Apply();
        // }
        // if (playerDataUpdateEvent != null)
        // {
        //     playerDataUpdateEvent();
        // }
    }
    public void FightRefreshPlayerHp(ulong hp)
    {
        RefreshProperty(PlayerDataType.HP, (uint)(hp % Constants.ExpPointValue), (uint)(hp/Constants.ExpPointValue));
        baseData.UpdateData(data);
        if (playerDataUpdateEvent != null)
        {
            playerDataUpdateEvent();
        }
        if (playerDataRefreshEvent != null)
        {
            playerDataRefreshEvent(PlayerDataType.HP);
        }
    }
    public void RefreshPlayerData(H0418_tagObjInfoRefresh vNetData)
    {
        UpdatePlayerData(vNetData);
        //StoreModel.RefreshTCBPlayerData(vNetData);
        if (playerDataUpdateEvent != null)
        {
            playerDataUpdateEvent();
        }
    {
        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);
            }
    {
        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);
            }
        }
    }
@@ -138,7 +106,7 @@
            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);
                }
@@ -232,23 +200,26 @@
                break;
            case PlayerDataType.TeamLV:
                break;
            case PlayerDataType.UseHarmerCount:
                baseData.UseHarmerCount = value;
                break;
            case PlayerDataType.FightPower:
                baseData.FightPoint = value + valueEx * Constants.ExpPointValue;
                // TODO YYL
                // ModelCenter.Instance.GetModel<PlayerMainDate>().PowerAdd(baseData.FightPoint);
                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>");
                    }
                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;
@@ -263,10 +234,10 @@
                extersion.luckValue = (int)value;
                break;
            case PlayerDataType.ExAttr1:
                baseData.ExAttr1 = value;
                baseData.ExAttr1 = Math.Max((int)value, 10100); //新号初始处理
                break;
            case PlayerDataType.ExAttr2:
                baseData.teamAutoOperateFlag = value;
                baseData.ExAttr2 = Math.Max((int)value, 10101); //新号初始处理
                break;
            case PlayerDataType.ExAttr3:
                baseData.dungeonLineId = (int)value % 1000;
@@ -275,7 +246,7 @@
            case PlayerDataType.ExAttr4:
                baseData.shield = value;
                break;
            case PlayerDataType.Faction:
                baseData.faction = value;
                break;
@@ -449,7 +420,7 @@
            case PlayerDataType.CDBPlayerRefresh_TalentPoint:
                extersion.talentPoint = (int)value;
                break;
            case PlayerDataType.CDBPlayerRefresh_SoulDust:
                extersion.soulDust = value;
                break;
@@ -549,13 +520,19 @@
            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 ulong GetPlayerDataByType(PlayerDataType type)
    public long GetPlayerDataByType(PlayerDataType type)
    {
        ulong value = 0;
        long value = 0;
        PlayerDataDict.TryGetValue(type, out value);
        return value;
    }
@@ -637,8 +614,8 @@
    }
    public void RequestWorldTick()
    {
        CA102_tagCMWorldTick _proto = new CA102_tagCMWorldTick();
    {
        CA102_tagCMWorldTick _proto = new CA102_tagCMWorldTick();
        GameNetSystem.Instance.SendInfo(_proto);
    }