Ejemplo n.º 1
0
        public async Task <bool> OnHandle(MessageContext context, CChangeTeamReqMessage message)
        {
            var session = context.GetSession <Session>();
            var plr     = session.Player;
            var room    = plr.Room;

            // No reason for gm mode to change teams
            // so just block it to make sure the clients dont break
            if (plr.IsInGMMode)
            {
                return(true);
            }

            var error = room.TeamManager.ChangeTeam(plr, message.Team);

            switch (error)
            {
            case TeamChangeError.Full:
                session.Send(new SChangeTeamFailAckMessage(ChangeTeamResult.Full));
                break;

            case TeamChangeError.PlayerIsReady:
                session.Send(new SChangeTeamFailAckMessage(ChangeTeamResult.AlreadyReady));
                break;
            }

            return(true);
        }
Ejemplo n.º 2
0
        public void CChangeTeamReq(GameSession session, CChangeTeamReqMessage message)
        {
            var plr = session.Player;

            try
            {
                plr.Room.TeamManager.ChangeTeam(plr, message.Team);
            }
            catch (RoomException ex)
            {
                Logger.ForAccount(plr)
                .Error(ex, "Failed to change team to {team}", message.Team);
            }
        }
Ejemplo n.º 3
0
        public void CChangeTeamReq(GameSession session, CChangeTeamReqMessage message)
        {
            var plr = session.Player;

            try
            {
                plr.Room.TeamManager.ChangeTeam(plr, message.Team);
            }
            catch (RoomException ex)
            {
                _logger.Error()
                .Account(plr)
                .Exception(ex).Message("Failed to change team to {0}", message.Team)
                .Write();
            }
        }