Ejemplo n.º 1
0
        public void DealWithTeamChange(QueueLogic _this,
                                       TeamChangedType type,
                                       QueueCharacter character,
                                       List <ulong> teamList,
                                       ulong characterId)
        {
            switch (type)
            {
            case TeamChangedType.Request:
                break;

            case TeamChangedType.AcceptRequest:
            case TeamChangedType.AcceptJoin:
                var queueCharacter = QueueManager.GetMatchingCharacter(characterId);
                if (queueCharacter != null && queueCharacter.result != null)
                {
                    return;
                }
                QueueManager.PushOneCharacter(characterId, character);
                break;

            case TeamChangedType.Leave:
            case TeamChangedType.Kick:
                if (character.result == null)
                {
                    QueueManager.Pop(characterId, eLeaveMatchingType.TeamChange);
                }
                break;

            case TeamChangedType.Disband:
                break;
            }
        }
Ejemplo n.º 2
0
 public override void DealWithTeamChange(TeamChangedType type,
                                         QueueCharacter character,
                                         List <ulong> teamList,
                                         ulong characterId)
 {
     mImpl.DealWithTeamChange(this, type, character, teamList, characterId);
 }
Ejemplo n.º 3
0
        public void RemoveFollowCharacter(FightQueueScene _this, QueueCharacter c)
        {
#if DEBUG
            PlayerLog.WriteLog((int)LogType.QueueMessage, "RemoveFollowCharacter(). c={0}, ids={1}", c.Guid,
                               c.mDatas.Select(d => d.Id).GetDataString());
#endif
            _this.FollowCharacters.Remove(c);
            foreach (var data in c.mDatas)
            {
                var id = data.Id;
                QueueSceneManager.characters.Remove(id);
                int state;
                if (_this.team1.TryGetValue(id, out state))
                {
                    _this.team1.Remove(id);
#if DEBUG
                    PlayerLog.WriteLog((int)LogType.QueueMessage, "RemoveFollowCharacter() team1.Remove id={0}", id);
#endif
                }
                else if (_this.team2.TryGetValue(id, out state))
                {
                    _this.team2.Remove(id);
#if DEBUG
                    PlayerLog.WriteLog((int)LogType.QueueMessage, "RemoveFollowCharacter() team2.Remove id={0}", id);
#endif
                }
                else
                {
                    Logger.Warn("FightMatchingScene LeaveScene cId={0},sceneGuid={1}", id, _this.mSceneGuid);
                }
            }
        }
Ejemplo n.º 4
0
 //通知队伍进行了某个排队
 private void SendTeamMatch(QueueCharacter character)
 {
     foreach (var data in character.mDatas)
     {
         SendTeamMemberMatch(data, character);
     }
 }
Ejemplo n.º 5
0
        public void DealWithTeamChange(ActivityFubenQueue _this,
                                       TeamChangedType type,
                                       QueueCharacter character,
                                       List <ulong> teamList,
                                       ulong characterId)
        {
            switch (type)
            {
            case TeamChangedType.Request:
                break;

            case TeamChangedType.AcceptRequest:
            case TeamChangedType.AcceptJoin:
            {
                var queueCharacter = QueueManager.GetMatchingCharacter(characterId);
                if (queueCharacter != null)
                {
                    if (queueCharacter.result == null)
                    {
                        QueueManager.Pop(characterId, eLeaveMatchingType.TeamChange);
                    }
                    else
                    {
                        return;
                    }
                }
                QueueManager.PushOneCharacter(characterId, character);
            }
            break;

            case TeamChangedType.Kick:
            case TeamChangedType.Leave:
            {
//characterId离队的情况
                if (character.result == null)
                {
                    var characterData = character.mDatas.Find(data => data.Id == characterId);
                    if (characterData != null)
                    {
                        character.mDatas.Remove(characterData);
                    }
                    else
                    {
                        Logger.Error("Can't find character data for character[{0}]", characterId);
                    }
                    QueueManager.Remove(characterId, eLeaveMatchingType.TeamChange);
                }
            }
            break;

            case TeamChangedType.Disband:
                break;
            }
        }
Ejemplo n.º 6
0
        public void Pop(QueueLogic _this, QueueCharacter character, eLeaveMatchingType type)
        {
            _this.mCharacters.Remove(character);
#if DEBUG
            PlayerLog.WriteLog((int)LogType.QueueMessage, "Pop mCharacters.Remove c={0}, ids={1}, type={2}",
                               character.Guid, character.mDatas.Select(d => d.Id).GetDataString(), type);
#endif
            if (_this.mCharacters.Count == 0)
            {
                StopTrigger(_this);
            }
        }
Ejemplo n.º 7
0
        public void RemoveCharacterOne(FollowQueueResult _this, QueueCharacter character)
        {
            QueueResultBase.GetImpl().RemoveCharacterOne(_this, character);
            var scene = QueueSceneManager.GetCharacterScene(_this.Character.mDatas[0].Id);

            if (scene == null)
            {
                Logger.Error("In AllOK scene == null!!!");
                return;
            }
            scene.RemoveFollowCharacter(character);
        }
Ejemplo n.º 8
0
        //开始排队
        public ErrorCodes Push(int queueId, List <CharacterSimpleData> simpleDatas, MatchingResult result)
        {
            PlayerLog.WriteLog((int)LogType.QueueMessage, "Push character={0}", simpleDatas[0].Id);
            var tbQuene = Table.GetQueue(queueId);

            if (tbQuene == null)
            {
                return(ErrorCodes.Error_FubenID);
            }
            if (tbQuene.CountLimit > 0 && simpleDatas.Count > tbQuene.CountLimit)
            {
                return(ErrorCodes.Error_QueueCountMax);
            }
            var nowCharacter = GetMatchingCharacter(simpleDatas[0].Id);

            if (nowCharacter != null && nowCharacter.result != null)
            {
#if DEBUG
                PlayerLog.WriteLog((int)LogType.QueueMessage, "Push 1 id={0}, ids = {1}", nowCharacter.Guid,
                                   nowCharacter.mDatas.Select(d => d.Id).GetDataString());
#endif
                nowCharacter.result.MatchingBack(simpleDatas[0].Id, false);
            }
            else
            {
                foreach (var characterSimpleData in simpleDatas)
                {
                    if (QueueManager.Characters.ContainsKey(characterSimpleData.Id))
                    {
#if DEBUG
                        PlayerLog.WriteLog((int)LogType.QueueMessage, "Push 2 id={0}", characterSimpleData.Id);
#endif
                        QueueManager.Pop(characterSimpleData.Id, eLeaveMatchingType.PushCannel);
                    }
                }
            }
            var matching  = GetMatching(tbQuene);
            var character = new QueueCharacter(matching, simpleDatas);
            SendTeamMatch(character);
            foreach (var characterSimpleData in simpleDatas)
            {
#if DEBUG
                PlayerLog.WriteLog((int)LogType.QueueMessage, "Push().Matching Add character={0} c={1} ids={2}",
                                   characterSimpleData.Id, character.Guid, character.mDatas.Select(d => d.Id).GetDataString());
#endif
                QueueManager.Characters.Add(characterSimpleData.Id, character);
            }
            matching.PushBack(character);
            return(ErrorCodes.OK);
        }
Ejemplo n.º 9
0
        //通知某个队员,进行了某个排队
        private void SendTeamMemberMatch(CharacterSimpleData data, QueueCharacter character)
        {
            TeamCharacterProxy toCharacterProxy;

            if (TeamServer.Instance.ServerControl.Proxys.TryGetValue(data.Id, out toCharacterProxy))
            {
                var info = new QueueInfo();
                info.QueueId     = character.mLogic.mQueueId;
                info.NeedSeconds = character.mLogic.GetAverageTime();
                info.StartTime   = character.StartTime.ToBinary();

                var ChattoCharacterProxy = toCharacterProxy as TeamProxy;
                ChattoCharacterProxy.NotifyMatchingData(info);
            }
        }
Ejemplo n.º 10
0
        //后续排入的某个玩家进入
        public void FollowCharacter(FightQueueScene _this, QueueCharacter c, int camp)
        {
            PlayerLog.WriteLog((int)LogType.QueueMessage, "FollowCharacter c={0}, ids={1}", c.Guid,
                               c.mDatas.Select(d => d.Id).GetDataString());
            var result = new FollowQueueResult(c.mLogic);

            result.PushOneCharacter(c);
            result.StartTrigger();
            c.mLogic.Pop(c, eLeaveMatchingType.InTemp);
            _this.FollowCharacters.Add(c);
            foreach (var data in c.mDatas)
            {
                InitCharacter(_this, data.Id, camp);
            }
        }
Ejemplo n.º 11
0
        //后续排队的人返回结果了
        public void FollowResult(FightQueueScene _this, QueueCharacter c, int result)
        {
            if (!_this.FollowCharacters.Contains(c))
            {
                Logger.Warn("FollowResult error! c={0},r={1}", c.Guid, result);
                return;
            }
            PlayerLog.WriteLog((int)LogType.QueueMessage, "FollowResult(). c={0}, ids={1}, result={2}", c.Guid,
                               c.mDatas.Select(d => d.Id).GetDataString(), result);
            _this.FollowCharacters.Remove(c);
            Stoptrigger(_this);
            if (result == 0)
            {
//拒绝了
                RemoveFollowCharacter(_this, c);
            }
            else
            {
//同意了
                _this.mStateCount += c.mDatas.Count;
                var tbQueue = Table.GetQueue(_this.QueueId);
                if (_this.mStateCount == tbQueue.CountLimit * 2)
                {
                    SetState(_this, SceneState.Full);
                }
                var charList = new List <ulong>();
                foreach (var data in c.mDatas)
                {
                    var id = data.Id;
                    charList.Add(id);
                    var camp = GetCharacterCamp(_this, id);
                    if (camp == -1)
                    {
                        Logger.Error("FollowResult camp error!c={0}", c);
                        return;
                    }
                    //把该玩家的排队队伍整理一下
                    QueueTeamManager.AutoEnterTeam(_this, id, camp);
                    CoroutineFactory.NewCoroutine(NotifyCharacterSceneCamp, _this, id, camp).MoveNext();
                }
                CoroutineFactory.NewCoroutine(NotifyCreateChangeSceneCoroutine, _this, charList, c.mDatas[0].ServerId)
                .MoveNext();
            }
        }
Ejemplo n.º 12
0
        public string GetLog(QueueCharacter _this)
        {
            var ccc   = "";
            var index = 0;

            foreach (var data in _this.mDatas)
            {
                if (index == 0)
                {
                    ccc = string.Format("[{0}", data.Id);
                }
                else
                {
                    ccc = string.Format("{0}|{1}", ccc, data.Id);
                }
            }
            ccc = string.Format("{0}]", ccc);
            return(ccc);
        }
Ejemplo n.º 13
0
        //排队结果,添加一个队伍的人,目前只有活动副本的预约要用这个函数
        public void PushOneCharacter(QueueResultBase _this, QueueCharacter queue)
        {
            queue.result = _this;
            foreach (var i in queue.mDatas)
            {
                if (_this.CharacterState.ContainsKey(i.Id))
                {
                    Logger.Error("result  PushCharacter Same C={0}", i.Id);
                    _this.CharacterState[i.Id] = 0;
                }
                else
                {
                    _this.CharacterState.Add(i.Id, 0);
                }
            }
            var teamList = new List <QueueCharacter>();

            teamList.Add(queue);
            _this.mTeamList.Add(teamList);
            _this.ServerId = queue.mDatas[0].ServerId;
        }
Ejemplo n.º 14
0
        public void Construct(QueueCharacter _this, QueueLogic logic, List <CharacterSimpleData> datas)
        {
            _this.mDatas    = datas;
            _this.mLogic    = logic;
            _this.Guid      = QueueCharacter.NextId++;
            _this.StartTime = DateTime.Now;
            PlayerLog.WriteLog((int)LogType.QueueMessage, "Construct Guid={0}, ids={1}", _this.Guid,
                               datas.Select(d => d.Id).GetDataString());
#if DEBUG
            var matchs = QueueManager.Matchings.Values;
            foreach (var match in matchs)
            {
                var f = match.mCharacters.Find(c => c.mDatas[0].Id == datas[0].Id);
                if (f != null)
                {
                    PlayerLog.WriteLog((int)LogType.QueueLog,
                                       "Duplicate queue, queueId0 = {0}, team0 = {1}, queueId1 = {2}, team1 = {3}", _this.Guid,
                                       datas.Select(d => d.Id).GetDataString(), f.Guid, f.mDatas.Select(d => d.Id).GetDataString());
                }
            }
#endif
        }
Ejemplo n.º 15
0
        public void PushFront(QueueLogic _this, QueueCharacter queueC)
        {
            if (_this.mCharacters.Count == 0)
            {
                _this.StartTrigger();
            }
            PlayerLog.WriteLog((int)LogType.QueueMessage, "PushFront  queueC={1},character={0}", queueC.mDatas[0].Id,
                               queueC.Guid);
            queueC.result = null;
#if DEBUG
            foreach (var data in queueC.mDatas)
            {
                var t = QueueManager.GetMatchingCharacter(data.Id);
                if (t == null)
                {
                    PlayerLog.WriteLog((ulong)LogType.QueueMessage, "PushFront t == null!! c = {0} ids = {1}",
                                       queueC.Guid, queueC.mDatas.Select(d => d.Id).GetDataString());
                }
            }
            foreach (var queueCharacter in _this.mCharacters)
            {
                foreach (var datas in queueCharacter.mDatas)
                {
                    foreach (var data in queueC.mDatas)
                    {
                        if (datas.Id == data.Id)
                        {
                            PlayerLog.WriteLog((ulong)LogType.QueueMessage,
                                               "PushFront datas.Id == data.Id!! c = {0} ids = {1}",
                                               queueC.Guid, queueC.mDatas.Select(d => d.Id).GetDataString());
                        }
                    }
                }
            }
#endif
            PlayerLog.WriteLog((int)LogType.QueueMessage, "PushFront mCharacters.Insert c={0}, ids={1}", queueC.Guid,
                               queueC.mDatas.Select(d => d.Id).GetDataString());
            _this.mCharacters.Insert(0, queueC);
        }
Ejemplo n.º 16
0
        private void RemoveCharacter(QueueResultBase _this, QueueCharacter character)
        {
#if DEBUG
            PlayerLog.WriteLog((int)LogType.QueueMessage, "RemoveCharacter c={0}, ids={1}", character.Guid,
                               character.mDatas.Select(c => c.Id).GetDataString());
#endif
            foreach (var data in character.mDatas)
            {
                _this.CharacterState.Remove(data.Id);
            }
            var isRemove = false;
            foreach (var team in _this.mTeamList) //所有队伍 -》临时队伍
            {
                foreach (var c in team)           //临时队伍-》单独排队
                {
                    if (character == c)
                    {
                        team.Remove(c);
                        c.result = null;
                        isRemove = true;
                        break;
                    }
                    if (c.mDatas[0].Id == character.mDatas[0].Id)
                    {
                        PlayerLog.WriteLog((int)LogType.QueueLog, "RemoveCharacter  Error not Same in={0},for={1}",
                                           character.Guid, c.Guid);
                    }
                }
                if (isRemove)
                {
                    break;
                }
            }
            if (!isRemove)
            {
                PlayerLog.WriteLog((int)LogType.QueueLog, "RemoveCharacter  Error c={0},n={1}",
                                   character.mDatas[0].Id, character.mDatas.Count);
            }
        }
Ejemplo n.º 17
0
        //新增至某队首
        public ErrorCodes PushFront(QueueCharacter character)
        {
            var tbQuene = Table.GetQueue(character.mLogic.mQueueId);

            if (tbQuene == null)
            {
                return(ErrorCodes.Error_FubenID);
            }
            var matching = GetMatching(tbQuene);

            foreach (var characterSimpleData in character.mDatas)
            {
#if DEBUG
                PlayerLog.WriteLog((int)LogType.QueueMessage,
                                   "In PushFront(). Matching Add ccharacter={0} c={1} ids={2}", characterSimpleData.Id, character.Guid,
                                   character.mDatas.Select(d => d.Id).GetDataString());
#endif
                QueueManager.Characters.Add(characterSimpleData.Id, character);
            }
            matching.PushFront(character);
            //PushLog();
            return(ErrorCodes.OK);
        }
Ejemplo n.º 18
0
        public void PushBack(QueueLogic _this, QueueCharacter queueC)
        {
            if (_this.mCharacters.Count == 0)
            {
                _this.StartTrigger();
            }
#if DEBUG
            foreach (var data in queueC.mDatas)
            {
                var t = QueueManager.GetMatchingCharacter(data.Id);
                if (t == null)
                {
                    PlayerLog.WriteLog((ulong)LogType.QueueMessage, "PushBack t == null!! c = {0} ids = {1}",
                                       queueC.Guid, queueC.mDatas.Select(d => d.Id).GetDataString());
                }
            }
            foreach (var queueCharacter in _this.mCharacters)
            {
                foreach (var datas in queueCharacter.mDatas)
                {
                    foreach (var data in queueC.mDatas)
                    {
                        if (datas.Id == data.Id)
                        {
                            PlayerLog.WriteLog((ulong)LogType.QueueMessage,
                                               "PushBack datas.Id == data.Id!! c = {0} ids = {1}",
                                               queueC.Guid, queueC.mDatas.Select(d => d.Id).GetDataString());
                        }
                    }
                }
            }
#endif
            PlayerLog.WriteLog((int)LogType.QueueMessage, "PushBack mCharacters.Add c={0}, ids={1}", queueC.Guid,
                               queueC.mDatas.Select(d => d.Id).GetDataString());
            _this.mCharacters.Add(queueC);
        }
Ejemplo n.º 19
0
        //把一个新的characterId 加入到 character 里
        private IEnumerator PushOneCharacterCoroutine(Coroutine co, ulong characterId, QueueCharacter character)
        {
            if (character.result != null)
            {
                yield break;
            }
            PlayerLog.WriteLog((int)LogType.QueueMessage, "PushOnCharacter character={0}", characterId);

            //在线检查
            if (!TeamServer.Instance.ServerControl.Proxys.ContainsKey(characterId))
            {
                Logger.Error("PushOneCharacterCoroutine(), character {0} not online", characterId);
                yield break;
            }
            //检查进入条件
            if (QueueManager.Characters.ContainsKey(characterId))
            {
                Logger.Error("PushOneCharacterCoroutine(), character {0} already in queue", characterId);
                yield break;
            }
            //确定玩家的进入条件满足
            var tbQueue     = character.mLogic.tbQueue;
            var logicResult = TeamServer.Instance.LogicAgent.CheckCharacterInFuben(characterId, tbQueue.Param);

            yield return(logicResult.SendAndWaitUntilDone(co));

            if (logicResult.State != MessageState.Reply)
            {
                Logger.Error(
                    "PushOneCharacterCoroutine(), CheckCharacterInFuben not replied! character = {0},fubenid = {1}",
                    characterId, tbQueue.Id);
                yield break;
            }
            if (logicResult.ErrorCode != (int)ErrorCodes.OK)
            {
                Logger.Debug("PushOneCharacterCoroutine(), character {0} already in queue", characterId);
                yield break;
            }
            //从scene获取simpledata
            var dbSceneSimple = TeamServer.Instance.SceneAgent.GetSceneSimpleData(characterId, 0);

            yield return(dbSceneSimple.SendAndWaitUntilDone(co));

            if (dbSceneSimple.State != MessageState.Reply)
            {
                Logger.Error("PushOnCharacter Error! GetSceneSimpleData not replied! Id = {0}", characterId);
                yield break;
            }
            if (dbSceneSimple.ErrorCode != (int)ErrorCodes.OK)
            {
                Logger.Error("PushOnCharacter Error! GetSceneSimpleData return with err = {0}", dbSceneSimple.ErrorCode);
                yield break;
            }
            var data = new CharacterSimpleData
            {
                Id         = dbSceneSimple.Response.Id,
                TypeId     = dbSceneSimple.Response.TypeId,
                Name       = dbSceneSimple.Response.Name,
                SceneId    = dbSceneSimple.Response.SceneId,
                FightPoint = dbSceneSimple.Response.FightPoint,
                Level      = dbSceneSimple.Response.Level,
                Ladder     = dbSceneSimple.Response.Ladder,
                ServerId   = dbSceneSimple.Response.ServerId
            };

            if (character.result != null)
            {
                yield break;
            }
            character.mDatas.Add(data);
            SendTeamMemberMatch(data, character);
#if DEBUG
            PlayerLog.WriteLog((int)LogType.QueueMessage, "PushOneCharacterCoroutine().Matching Add c={0}, ids={1}",
                               character.Guid, character.mDatas.Select(d => d.Id).GetDataString());
#endif
            QueueManager.Characters.Add(characterId, character);
        }
Ejemplo n.º 20
0
 public override void PushOneCharacter(QueueCharacter queue)
 {
     mImpl.PushOneCharacter(this, queue);
 }
Ejemplo n.º 21
0
 //把一个新的characterId 加入到 character 里
 public void PushOneCharacter(ulong characterId, QueueCharacter character)
 {
     CoroutineFactory.NewCoroutine(PushOneCharacterCoroutine, characterId, character).MoveNext();
 }
Ejemplo n.º 22
0
 //排队结果,移除一个人
 public override void RemoveCharacterOne(QueueCharacter character)
 {
     mImpl.RemoveCharacterOne(this, character);
 }
Ejemplo n.º 23
0
 public void PushOneCharacter(QueueResult _this, QueueCharacter queue)
 {
     QueueResultBase.GetImpl().PushOneCharacter(_this, queue);
 }
Ejemplo n.º 24
0
        public void Tick(FightQueue _this)
        {
            var needCount  = _this.tbQueue.CountLimit;
            var needCount1 = _this.tbQueue.CountLimit;
            var needCount2 = _this.tbQueue.CountLimit;

            var noFullSceneList = QueueSceneManager.GetQueueNotFullList(_this.mQueueId);

            foreach (var nofullscene in noFullSceneList)
            {
                needCount1 = needCount - nofullscene.team1.Count;
                needCount2 = needCount - nofullscene.team2.Count;
                if (needCount1 == needCount2)
                {
                    //两边要同时进人
                    if (needCount2 < 1)
                    {
                        continue;
                    }
                    //找人
                    {
                        QueueCharacter gotoTeam1 = null;
                        foreach (var mCharacter in _this.mCharacters)
                        {
                            if (mCharacter.mDatas.Count > needCount1)
                            {
                                continue;
                            }
                            if (gotoTeam1 == null)
                            {
                                gotoTeam1 = mCharacter;
                            }
                            else if (mCharacter.mDatas.Count == gotoTeam1.mDatas.Count)
                            {
                                nofullscene.FollowCharacter(gotoTeam1, 0);
                                nofullscene.FollowCharacter(mCharacter, 1);
                                return;
                            }
                        }
                    }
                }
                else
                {
                    //少的一边先进
                    var diff = Math.Abs(needCount1 - needCount2);
                    foreach (var mCharacter in _this.mCharacters)
                    {
                        if (diff >= mCharacter.mDatas.Count)
                        {
                            if (needCount1 > needCount2)
                            {
                                nofullscene.FollowCharacter(mCharacter, 0);
                                return;
                            }
                            nofullscene.FollowCharacter(mCharacter, 1);
                            return;
                        }
                    }
                }
            }


            needCount1 = needCount;
            needCount2 = needCount;
            _this.tempTeam1.Clear();
            _this.tempTeam2.Clear();
            var isCanOver1 = false;
            var isCanOver2 = false;

            foreach (var mCharacter in _this.mCharacters)
            {
                if (mCharacter.mDatas.Count <= needCount1)
                {
                    _this.tempTeam1.Add(mCharacter);
                    needCount1 -= mCharacter.mDatas.Count;
                    if (needCount1 == 0)
                    {
                        isCanOver1 = true;
                        if (isCanOver2)
                        {
                            break;
                        }
                    }
                }
                else if (mCharacter.mDatas.Count <= needCount2)
                {
                    _this.tempTeam2.Add(mCharacter);
                    needCount2 -= mCharacter.mDatas.Count;
                    if (needCount2 == 0)
                    {
                        isCanOver2 = true;
                        if (isCanOver1)
                        {
                            break;
                        }
                    }
                }
            }
            if (isCanOver1 && isCanOver2)
            {
                _this.MatchOver();
            }

            // 如果已经很长时间没有匹配到人了,把这些人降级
            {
                if (_this.NextQueue != null)
                {
                    List <QueueCharacter> removes = new List <QueueCharacter>();
                    foreach (var character in _this.mCharacters)
                    {
                        if ((DateTime.Now - character.StartTime).Seconds > _this.tbQueue.WaitTime)
                        {
                            removes.Add(character);
                            //_this.Pop内会执行mCharacters.Remove(character),导致移除
                            //character.mLogic = _this.NextQueue;
                            //character.StartTime = DateTime.Now;
                            //_this.Pop(character, eLeaveMatchingType.MoveDown);
                            //_this.NextQueue.PushBack(character);
                        }
                    }
                    foreach (var queueCharacter in removes)
                    {
                        queueCharacter.mLogic    = _this.NextQueue;
                        queueCharacter.StartTime = DateTime.Now;
                        _this.Pop(queueCharacter, eLeaveMatchingType.MoveDown);
                        _this.NextQueue.PushBack(queueCharacter);
                    }
                }
            }
        }
Ejemplo n.º 25
0
 //排队结果,移除一个人
 public virtual void RemoveCharacterOne(QueueCharacter character)
 {
     mImpl.RemoveCharacterOne(this, character);
 }
Ejemplo n.º 26
0
 //新增至某队首
 public static ErrorCodes PushFront(QueueCharacter character)
 {
     return(mStaticImpl.PushFront(character));
 }
Ejemplo n.º 27
0
 //排队结果,移除一个人
 public void RemoveCharacterOne(QueueResultBase _this, QueueCharacter character)
 {
     RemoveCharacter(_this, character);
 }
Ejemplo n.º 28
0
 public void RemoveCharacterOne(QueueResult _this, QueueCharacter character)
 {
     QueueResultBase.GetImpl().RemoveCharacterOne(_this, character);
     _this.PushFront(eLeaveMatchingType.OtherRefuse);
 }
Ejemplo n.º 29
0
 //把一个新的characterId 加入到 character 里
 public static void PushOneCharacter(ulong characterId, QueueCharacter character)
 {
     mStaticImpl.PushOneCharacter(characterId, character);
 }
Ejemplo n.º 30
0
 //排队结果,添加一个队伍的人,目前只有活动副本的预约要用这个函数
 public virtual void PushOneCharacter(QueueCharacter queue)
 {
     mImpl.PushOneCharacter(this, queue);
 }