private void OnTeamLeave(NetConnection <NetSession> sender, TeamLeaveRequest request) { Character character = sender.Session.Character; Log.InfoFormat("OnTeamLeav:: charactor:{0} TeamId:{1}", character.Id, request.TeamId); sender.Session.Response.teamLeave = new TeamLeaveResponse(); sender.Session.Response.teamLeave.Result = Result.Success; sender.Session.Response.teamLeave.characterId = request.characterId; sender.SendResponse(); }
private void OnTeamLeave(NetConnection <NetSession> sender, TeamLeaveRequest message) { Character character = sender.Session.Character; Log.InfoFormat("OnTeamLeave: :character:{0} TeamID:{1}:{2}", character.Id, message.TeamId, message.CharacterId); sender.Session.Response.teamLeave = new TeamLeaveResponse(); sender.Session.Response.teamLeave.Result = Result.Success; sender.Session.Response.teamLeave.CharacterId = message.CharacterId; character.Team.Leave(character); sender.SendResponse(); }
private void OnTeamLeave(NetConnection <NetSession> sender, TeamLeaveRequest message) { sender.Session.Response.teamLeave = new TeamLeaveResponse(); Log.Info($"OnTeamLequestRequest ID:{message.characterId}"); try { //如果没有队伍 if (sender.Session.Character.team == null) { throw new NoTeamException(); } //如果是自己退队 if (sender.Session.Character.Id == message.characterId) { TeamManager.Instance.RemoveTeamMember(sender.Session.Character); } //如果是队长踢人 else { //如果不是队长 if (sender.Session.Character.team.Leader != sender.Session.Character) { throw new NotLeaderException(); } //如果没有这个玩家 NetConnection <NetSession> session; if (!SessionManager.Instance.GetSession(message.characterId, out session)) { throw new NoSessionException(); } //如果队里没有这个人 if (!sender.Session.Character.team.HasMember(session.Session.Character)) { throw new NoMemberException(); } TeamManager.Instance.RemoveTeamMember(session.Session.Character); MessageService.Instance.SendUpdate(session); } } catch (Exception e) { sender.Session.Response.teamLeave.Result = Result.Failed; sender.Session.Response.teamLeave.Errormsg = e.Message; } sender.SendResponse(); }