Esempio n. 1
0
        public static void Handle_SlotControl(ClientConnection Client, PacketReader reader, byte last)
        {
            Account    User = Client.CurrentAccount;
            NormalRoom room = Rooms.NormalRoomList.Find(rm => rm.ID == User.CurrentRoomId);

            bool isRoomMaster = User.RoomPos == room.RoomMasterIndex;

            if (isRoomMaster && room.is8Player)
            {
                byte roompos = reader.ReadByte();
                bool isOff   = reader.ReadBoolean();

                //可用位置
                if (isOff)
                {
                    room.PosList.Remove(roompos);
                }
                else
                {
                    room.PosList.Add(roompos);
                }

                room.setPosWeight(roompos, isOff);
                room.setSlotCount((byte)(room.PosList.Count() + 1));

                foreach (Account RoomPlayer in room.Players)
                {
                    RoomPlayer.Connection.SendAsync(new GameRoom_ControlRoomPos(RoomPlayer, roompos, isOff, last));
                }
            }
        }