示例#1
0
 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());
     }
 }
示例#2
0
    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();
        }
    }
示例#3
0
        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());
        }