Exemple #1
0
        /// <summary>
        /// 将怪物信息添加到缓存中,同时从appear列表中移除
        /// </summary>
        /// <param name="player"></param>
        protected void AddMonsterToDisappear(WildMonsterInfo monster_info)
        {
            mAppearWildMonstersInfo.Remove(monster_info.UUID);

            // TODO 判断下最多可以缓存多少个player
            mDisappearWildMonstersInfo[monster_info.UUID] = monster_info;
        }
Exemple #2
0
        /// <summary>
        /// 根据id获取怪物信息
        /// </summary>
        /// <param name="uuid"></param>
        /// <param name="created_when_not_exist"></param>
        /// <returns></returns>
        public WildMonsterInfo GetWildMonsterInfo(uint uuid, bool created_when_not_exist)
        {
            WildMonsterInfo info = null;

            if (created_when_not_exist)
            {
                // 先找缓存中的,有的话直接把缓存中的放入appear列表,并返回
                if (mDisappearWildMonstersInfo.TryGetValue(uuid, out info))
                {
                    mAppearWildMonstersInfo[info.UUID] = info;
                    mDisappearWildMonstersInfo.Remove(info.UUID);
                    return(info);
                }
            }

            // 找appear中的,找不到则创建一个
            if (!mAppearWildMonstersInfo.TryGetValue(uuid, out info))
            {
                if (created_when_not_exist)
                {
                    info = CreateWildMonsterInfo(uuid);
                    mAppearWildMonstersInfo[uuid] = info;
                }

                return(info);
            }

            if (info == null)
            {
                GameDebug.LogError(string.Format("GetWildMonsterInfo({0}, {1})里找到的是null", uuid, created_when_not_exist));
            }

            return(info);
        }