Ejemplo n.º 1
0
        public static void Handle_ChangeMap(ClientConnection Client, PacketReader reader, byte last)
        {
            Account    User         = Client.CurrentAccount;
            NormalRoom room         = Rooms.GetRoom(User.CurrentRoomId);
            bool       isRoomMaster = User.RoomPos == room.RoomMasterIndex;

            if (isRoomMaster)
            {
                int mapid = reader.ReadLEInt32();
                if (!MapHolder.MapInfos.TryGetValue(mapid, out MapInfo mapinfo))
                {
                    Console.WriteLine("Unknown mapid: {0}", mapid);
                    return;
                }
                //room.MapNum = mapid;
                room.setMapNum(mapid);
                room.RuleType = mapinfo.RuleType;
                foreach (var RoomPlayer in room.PlayerList())
                {
                    RoomPlayer.Connection.SendAsync(new GameRoom_Hex("FF6405F70300000000000000000000", last));
                    RoomPlayer.Connection.SendAsync(new GameRoom_ChangeMap_FF6605(RoomPlayer, mapid, last));
                    RoomPlayer.Connection.SendAsync(new GameRoom_ChangeMap_FFEA02(RoomPlayer, mapid, last));
                }
            }
        }