Beispiel #1
0
        /// <summary>
        /// 查找经验
        /// </summary>
        /// <param name="taskID"></param>
        /// <returns></returns>
        public long FindExperience(GameClient client, int taskID)
        {
            long experience = -1;

            lock (_ExperienceDict)
            {
                if (_ExperienceDict.TryGetValue(taskID, out experience))
                {
                    if (experience < 0)
                    {
                        //从lua脚本计算
                        experience = CalcLuaScript(client, taskID, null, "ExpLua");
                    }

                    return(experience);
                }
            }

            SystemXmlItem systemTask = null;

            if (!GameManager.SystemTasksMgr.SystemXmlItemDict.TryGetValue(taskID, out systemTask))
            {
                return(experience);
            }

            experience = systemTask.GetLongValue("Experienceaward");
            lock (_ExperienceDict)
            {
                _ExperienceDict[taskID] = experience;
            }

            if (experience < 0)
            {
                //从lua脚本计算
                experience = CalcLuaScript(client, taskID, systemTask, "ExpLua");
            }

            return(experience);
        }
Beispiel #2
0
        public long FindExperience(GameClient client, int taskID)
        {
            long experience = -1L;

            lock (this._ExperienceDict)
            {
                if (this._ExperienceDict.TryGetValue(taskID, out experience))
                {
                    if (experience < 0L)
                    {
                        experience = this.CalcLuaScript(client, taskID, null, "ExpLua");
                    }
                    return(experience);
                }
            }
            SystemXmlItem systemTask = null;
            long          result;

            if (!GameManager.SystemTasksMgr.SystemXmlItemDict.TryGetValue(taskID, out systemTask))
            {
                result = experience;
            }
            else
            {
                experience = systemTask.GetLongValue("Experienceaward");
                lock (this._ExperienceDict)
                {
                    this._ExperienceDict[taskID] = experience;
                }
                if (experience < 0L)
                {
                    experience = this.CalcLuaScript(client, taskID, systemTask, "ExpLua");
                }
                result = experience;
            }
            return(result);
        }