示例#1
0
 public override bool TakeAction()
 {
     if (!PVPLogic.StopSingleMatch(m_UserId))
     {
         ErrorCode = (int)ErrorType.CannotStopMatching;
         ErrorInfo = "You have already matched";
         return(false);
     }
     return(true);
 }
示例#2
0
 public override bool TakeAction()
 {
     if (!PVPLogic.IsOpen(m_UserId))
     {
         ErrorCode = (int)ErrorType.ActivityNotOpenNow;
         ErrorInfo = "Single pvp is not open now";
         return(false);
     }
     PVPLogic.StartSingleMatch(m_UserId);
     return(true);
 }
示例#3
0
 protected override void OnDisconnected(GameSession session)
 {
     if (session.UserId != 0)
     {
         PlayerLogic p = new PlayerLogic();
         p.SetUser(session.UserId);
         p.OffLine();
         PVPLogic.StopSingleMatch(session.UserId);
         PlayerArenaLogic pa = new PlayerArenaLogic();
         pa.SetUser(session.UserId);
         if (pa.MyArena.EnemyId > 0)
         {
             int token;
             pa.EndBattle(pa.MyArena.EnemyId, false, false, out token);
         }
     }
     base.OnDisconnected(session);
     TraceLog.ReleaseWrite("Client '{0}' disconnect OK.", session.RemoteAddress);
 }
示例#4
0
        public override bool TakeAction()
        {
            PlayerSinglePvpLogic psp = new PlayerSinglePvpLogic();

            psp.SetUser(m_UserId);
            var rank = RankingFactory.Get <SinglePvpRankUser>("SinglePvpRanking").Find(u => u.UserId == m_UserId);

            if (rank == null)
            {
                m_ResponsePacket.Score = 0;
                m_ResponsePacket.Rank  = -1;
            }
            else
            {
                m_ResponsePacket.Score = rank.Score;
                m_ResponsePacket.Rank  = rank.RankId;
            }
            m_ResponsePacket.ChallengeCount = psp.MyPvp.RemainingCount;
            m_ResponsePacket.Season         = PVPLogic.GetSeasonId();
            return(true);
        }