hch
2025-07-30 bae41593e19d32046f77ed1f036089e015380b99
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; } }
@@ -40,74 +41,41 @@
    private Dictionary<PlayerDataType, ulong> PlayerDataDict = new Dictionary<PlayerDataType, ulong>();
    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);
                }
@@ -234,21 +202,20 @@
                break;
            case PlayerDataType.FightPower:
                baseData.FightPoint = value + valueEx * Constants.ExpPointValue;
                // TODO YYL
                // ModelCenter.Instance.GetModel<PlayerMainDate>().PowerAdd(baseData.FightPoint);
                PlayerMainDate.Instance.PowerAdd(baseData.FightPoint);
                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;
@@ -275,7 +242,7 @@
            case PlayerDataType.ExAttr4:
                baseData.shield = value;
                break;
            case PlayerDataType.Faction:
                baseData.faction = value;
                break;
@@ -449,7 +416,7 @@
            case PlayerDataType.CDBPlayerRefresh_TalentPoint:
                extersion.talentPoint = (int)value;
                break;
            case PlayerDataType.CDBPlayerRefresh_SoulDust:
                extersion.soulDust = value;
                break;
@@ -549,6 +516,12 @@
            case PlayerDataType.default10:
                baseData.leaveFamilyTime = (int)value;
                break;
            case PlayerDataType.Face:
                baseData.face = (int)value;
                break;
            case PlayerDataType.FacePic:
                baseData.facePic = (int)value;
                break;
        }
    }
@@ -637,8 +610,8 @@
    }
    public void RequestWorldTick()
    {
        CA102_tagCMWorldTick _proto = new CA102_tagCMWorldTick();
    {
        CA102_tagCMWorldTick _proto = new CA102_tagCMWorldTick();
        GameNetSystem.Instance.SendInfo(_proto);
    }