Exemple #1
0
        private void ClearScene()
        {
            AtlasSpriteManager.Instance.ClearCache();
            CoreEntry.gSceneMgr.ClearPools(MapMgr.Instance.GetCurSceneID());
            CoreEntry.gObjPoolMgr.ReleaseObjectPool();
            CoreEntry.gGameObjPoolMgr.ClearPool();
            FlyAttrManager.CloseAllFlyAttr();

            CoreEntry.gResLoader.ClearPrefabs();

            bool  cache = true;
            Scene cur   = SceneManager.GetActiveScene();

            if (cur.name.Equals("RoleUI"))
            {
                cache = false;
            }
            LoadModule.Instance.Clear(cache);
        }
Exemple #2
0
        /// <summary>
        /// 更新属性。
        /// </summary>
        /// <param name="attrs">属性列表。</param>
        public virtual void OnUpdateAttr(List <MsgData_sClientAttr> attrs)
        {
            //Debug.Log("OnUpdateAttr 0");
            //用于判断血量或战力是否发生变化
            long   oldhp          = mBasicAttr.CurHP;
            long   oldmaxhp       = mBasicAttr.MaxHP;
            long   oldpower       = mBasicAttr.Power;
            double fOldPower      = mBasicAttr.GetBasicAttrValue((int)BasicAttrEnum.Power);
            int    oldlevel       = mBasicAttr.Level;
            long   oldExp         = mBasicAttr.Exp;
            bool   currencychange = false;
            int    oldJingJieLv   = mBasicAttr.JingJieLevel;
            long   oldJingJieExp  = mBasicAttr.JingJieExp;
            int    oldVip         = mBasicAttr.VIPLevel;

            double[] oldattr = mInit ? FlyAttrManager.GetShowAttr(mBasicAttr.Attrs) : null;     //没进场不飘字
            for (int i = 0; i < attrs.Count; ++i)
            {
                MsgData_sClientAttr ca   = attrs[i];
                BasicAttrEnum       type = BaseAttr.GetBasicAttrTypeFromStatType(ca.AttrType);
                if (type != BasicAttrEnum.Unkonw)
                {
                    mBasicAttr.SetBasicAttrValue((int)type, ca.AttrValue);
                    continue;
                }
                int currencytype = CurrencyType.GetCurrencyTypeFromStatType(ca.AttrType);
                if (currencytype != -1)
                {
                    SetCurrency(currencytype, (long)ca.AttrValue);
                    currencychange = true;
                    if (currencytype == CurrencyType.CURRENCY_TYPE_UNBIND_MONEY)
                    {
                        Account.Instance.isRecharging = false; //充值钻石完成
                    }
                    continue;
                }
            }
            if (oldVip != mBasicAttr.VIPLevel)
            {
                if (CoreEntry.gActorMgr.MainPlayer != null)
                {
                    if (CoreEntry.gActorMgr.MainPlayer.mBaseAttr != null)
                    {
                        CoreEntry.gActorMgr.MainPlayer.mBaseAttr.VIPLevel = mBasicAttr.VIPLevel;
                        CoreEntry.gActorMgr.MainPlayer.Health.OnLordChange();
                    }
                }
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_PLAYER_VIP, EventParameter.Get());
                //Debug.Log("OnUpdateAttr 1");
            }
            if (oldhp != mBasicAttr.CurHP || oldmaxhp != mBasicAttr.MaxHP)
            {
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_PLAYER_HP, EventParameter.Get());
                //Debug.Log("OnUpdateAttr 2");
            }
            if (oldpower != mBasicAttr.Power)
            {
                long powerDiff    = (long)(mBasicAttr.GetBasicAttrValue((int)BasicAttrEnum.Power) - fOldPower);
                long powerDiffInt = mBasicAttr.Power - oldpower;
                oldpower = oldpower - (powerDiff - powerDiffInt);
                EventParameter ep = EventParameter.Get();
                ep.longParameter  = oldpower;
                ep.longParameter1 = mBasicAttr.Power;
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_PLAYER_POWER, ep);
                Debug.Log("OnUpdateAttr 3");
            }
            if (oldlevel != mBasicAttr.Level)
            {
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_PLAYER_INFO, EventParameter.Get());
                //Debug.Log("OnUpdateAttr 4");
                if (oldlevel != 0)
                {
                    CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_PLAYER_LV, EventParameter.Get(oldlevel));
                    //Debug.Log("OnUpdateAttr 5");
                }
            }
            if (currencychange)
            {
                //注意,大量丢金币变化通知,卡CPU
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_PLAYER_CURRENCY, EventParameter.Get());
                //Debug.Log("OnUpdateAttr 6");
            }
            if (oldlevel != mBasicAttr.Level || oldExp != mBasicAttr.Exp)
            {
                EventParameter parameter = EventParameter.Get();
                parameter.intParameter  = oldlevel;
                parameter.longParameter = oldExp;
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_PLAYER_EXP, parameter);
                //Debug.Log("OnUpdateAttr 7");
            }
            if (oldJingJieLv != mBasicAttr.JingJieLevel)
            {
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_PLAYER_JINGJIE_LV, EventParameter.Get(oldJingJieLv));
                //Debug.Log("OnUpdateAttr 8");
            }
            if (oldJingJieLv != mBasicAttr.JingJieLevel || oldJingJieExp != mBasicAttr.JingJieExp)
            {
                EventParameter parameter = EventParameter.Get();
                parameter.intParameter  = oldJingJieLv;
                parameter.longParameter = oldJingJieExp;
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_PALYER_JINGJIE_EXP, parameter);
                //Debug.Log("OnUpdateAttr 9");
            }
            if (oldattr != null)
            {
                double[]       newattr = FlyAttrManager.GetShowAttr(mBasicAttr.Attrs);
                EventParameter ep      = EventParameter.Get();
                ep.objParameter  = oldattr;
                ep.objParameter1 = newattr;
                CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_FLY_ATTR, ep);
                //Debug.Log("OnUpdateAttr 10");
            }
        }
Exemple #3
0
 public override void InitializeSrv()
 {
     flyAttr = this;
     CoreEntry.gEventMgr.AddListener(GameEvent.GE_FLY_ATTR, OnGameEventAttrChange);
 }