Exemplo n.º 1
0
 public ErrorCodes OnPlayerApplyMissionReward(int allianceId, ulong charId, int missionId, int score, int add, FieldRankBaseData data)
 {
     return(mImpl.OnPlayerApplyMissionReward(this, allianceId, charId, missionId, score, add, data));
 }
Exemplo n.º 2
0
 public int OnPlayerCollectLode(ulong characterId, int allianceId, int sceneId, int lodeId, int add, FieldRankBaseData data)
 {
     return(mImpl.OnPlayerCollectLode(this, characterId, allianceId, sceneId, lodeId, add, data));
 }
Exemplo n.º 3
0
        public ErrorCodes OnPlayerApplyMissionReward(LodeManager _this, int allianceId, ulong charId, int missionId, int meritPoint, int add, FieldRankBaseData data)
        {
            if (_this.mDbData.ActivityInfo.ActivityStatus == 0)
            {
                return(ErrorCodes.Error_ActivityOver);
            }
            var tb = Table.GetObjectTable(missionId);

            if (allianceId > 0)
            {
                var alliance = ServerAllianceManager.GetAllianceById(allianceId);
                if (alliance == null)
                {
                    return(ErrorCodes.Error_CharacterNoAlliance);
                }
                if (tb.TaskType == 1)
                {
                    ErrorCodes err = CheckAllianceMission(_this, alliance, missionId);
                    if (err != ErrorCodes.OK)
                    {
                        return(err);
                    }
                }

                //if (meritPoint > 0)
                //{
                //    var member = alliance.Dad.GetCharacterData(charId);
                //    if (member != null)
                //    {
                //        member.MeritPoint += meritPoint;
                //    }
                //}
            }

            OnPlayerAddScore(_this, charId, allianceId, add, data);

            return(ErrorCodes.OK);
        }
Exemplo n.º 4
0
        public void OnPlayerAddScore(LodeManager _this, ulong charId, int allianceId, int add, FieldRankBaseData data)
        {
            if (_this.mDbData.ActivityInfo.ActivityStatus == 1)
            {
                var          idx = _this.mDbData.ActivityInfo.PlayerTaskList.FindIndex(o => { return(o.guid == charId); });
                DBPlayerTask db  = null;
                if (idx >= 0)
                {
                    db = _this.mDbData.ActivityInfo.PlayerTaskList[idx];
                    _this.mDbData.ActivityInfo.PlayerTaskList.RemoveAt(idx);
                }
                if (db == null)
                {
                    db = new DBPlayerTask();
                }
                db.fight = data.FightPoint;
                db.guid  = data.Guid;
                db.name  = data.Name;
                db.role  = data.TypeId;
                db.level = data.Level;
                db.score = data.Score;

                idx = _this.mDbData.ActivityInfo.PlayerTaskList.FindIndex(o => { return(o.score < db.score); });
                if (idx >= 0)
                {
                    _this.mDbData.ActivityInfo.PlayerTaskList.Insert(idx, db);
                }
                else if (_this.mDbData.ActivityInfo.PlayerTaskList.Count < 50)
                {
                    _this.mDbData.ActivityInfo.PlayerTaskList.Add(db);
                }
                if (_this.mDbData.ActivityInfo.PlayerTaskList.Count > 50)
                {
                    _this.mDbData.ActivityInfo.PlayerTaskList.RemoveAt(50);
                }
            }
            //玩家在公会内的贡献
            if (allianceId > 0)
            {
                OnAllianceAddScore(_this, allianceId, add);
            }
            _this.bDirty = true;
        }
Exemplo n.º 5
0
        public int OnPlayerCollectLode(LodeManager _this, ulong characterId, int allianceId, int sceneId, int lodeId, int add, FieldRankBaseData data)
        {
            var tb = Table.GetLode(lodeId);

            if (tb == null)
            {
                return((int)(ErrorCodes.Error_Lode_ErrorId));
            }
            DBSceneLode l;

            if (false == _this.mDbData.SceneLodeList.TryGetValue(sceneId, out l))
            {
                return((int)(ErrorCodes.Error_Lode_ErrorId));
            }
            DBLode dbLode;

            if (false == l.LodeList.TryGetValue(lodeId, out dbLode))
            {
                return((int)(ErrorCodes.Error_Lode_ErrorId));
            }
            System.DateTime startTime = DataTimeExtension.EpochStart; // 当地时区
            var             now       = DateTime.Now;

            if (dbLode.Times <= 0)
            {
                DateTime dt = startTime.AddSeconds(dbLode.UpdateTime);
                if (dt > DateTime.Now)
                {
                    return((int)(ErrorCodes.Error_Lode_Collect_ErrorTimes));
                }
                else
                {
                    dbLode.UpdateTime = 0;
                    dbLode.Times      = tb.CanCollectNum;
                }
            }
            if (--dbLode.Times == 0)
            {
                dbLode.UpdateTime = (long)(now.AddSeconds(tb.LodeRefreshTime) - startTime).TotalSeconds;
            }

            _this.bDirty = true;
            OnAllianceEvent(_this, allianceId, eCollectCount);
            if (add > 0)
            {
                //OnAllianceAddScore(_this,alliance:)
                OnPlayerAddScore(_this, characterId, allianceId, add, data);
            }
            return((int)ErrorCodes.OK);
        }
Exemplo n.º 6
0
        public int OnPlayerCollectLode(int serverId, ulong characterId, int allianceId, int sceneId, int lodeId, int add, FieldRankBaseData data)
        {
            LodeManager mgr = GetLodeManager(serverId);

            if (mgr == null)
            {
                return((int)ErrorCodes.Unknow);
            }

            return(mgr.OnPlayerCollectLode(characterId, allianceId, sceneId, lodeId, add, data));
        }