internal void DeleteUser(User user) { if (null != user) { //向游戏客户端广播玩家掉线消息 Msg_CRC_Exit bd = new Msg_CRC_Exit(); bd.role_id = user.RoleId; user.BroadCastMsgToRoom(bd); user.UserControlState = (int)UserControlState.Remove; if (null != user.Info) { //user.Info.Suicide(); } LogSys.Log(LOG_TYPE.DEBUG, "Room {0} User {1}({2}) deleted.", RoomID, user.Guid, user.GetKey()); } }
internal static void Execute(object msg, NetConnection conn, NetworkSystem networkSystem) { Msg_CRC_Exit targetmsg = msg as Msg_CRC_Exit; if (null == targetmsg) { return; } List <int> otherIds = networkSystem.Robot.OtherIds; otherIds.Remove(targetmsg.role_id); if (networkSystem.Robot.MyselfId == targetmsg.role_id) { networkSystem.QuitBattlePassive(); } }
internal void DropUser(User user) { //向游戏客户端广播玩家掉线消息 Msg_CRC_Exit bd = new Msg_CRC_Exit(); bd.role_id = user.RoleId; user.BroadCastMsgToRoom(bd); //向Lobby发送玩家掉线消息 Msg_RL_UserQuit.Builder uaqBuilder = Msg_RL_UserQuit.CreateBuilder(); uaqBuilder.SetRoomID(cur_room_id_); uaqBuilder.SetUserGuid(user.Guid); uaqBuilder.SetIsBattleEnd(false); connector_.SendMsgToLobby(uaqBuilder.Build()); //控制状态改为掉线 user.UserControlState = (int)UserControlState.UserDropped; if (null != user.Info) { // user.Info.Suicide(); } LogSys.Log(LOG_TYPE.DEBUG, "Room {0} User {1}({2}) dropped.", RoomID, user.Guid, user.GetKey()); }