public void parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo().LoadingRoom <= 0) { return; } RoomData Data = UberEnvironment.GetGame().GetRoomManager().GenerateRoomData(Session.GetHabbo().LoadingRoom); if (Data == null) { return; } if (Data.Model == null) { Session.SendNotif("Sorry, model data is missing from this room and therefore cannot be loaded."); Session.SendPacket(new ServerPacket(18)); Session.ClearRoomLoading(); return; } Session.SendPacket(Data.Model.SerializeHeightmap()); Session.SendPacket(Data.Model.SerializeRelativeHeightmap()); }
public void parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo().LoadingRoom <= 0 || !Session.GetHabbo().LoadingChecksPassed) { return; } Room Room = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().LoadingRoom); if (Room == null) { return; } Session.ClearRoomLoading(); ServerPacket packet = new ServerPacket(30); if (Room.Model.StaticFurniMap != "") { packet.AppendStringWithBreak(Room.Model.StaticFurniMap); } else { packet.AppendInt32(0); } Session.SendPacket(packet); if (Room.Type == "private") { List<RoomItem> FloorItems = Room.FloorItems; List<RoomItem> WallItems = Room.WallItems; ServerPacket _packet = new ServerPacket(32); _packet.AppendInt32(FloorItems.Count); foreach (RoomItem Item in FloorItems) { Item.Serialize(_packet); } Session.SendPacket(_packet); ServerPacket pak = new ServerPacket(45); pak.AppendInt32(WallItems.Count); foreach (RoomItem Item in WallItems) { Item.Serialize(pak); } Session.SendPacket(pak); } Room.AddUserToRoom(Session, Session.GetHabbo().SpectatorMode); List<RoomUser> UsersToDisplay = new List<RoomUser>(); foreach (RoomUser User in Room.UserList) { if (User.IsSpectator) { continue; } UsersToDisplay.Add(User); } ServerPacket _pak = new ServerPacket(28); _pak.AppendInt32(UsersToDisplay.Count); foreach (RoomUser User in UsersToDisplay) { User.Serialize(_pak); } Session.SendPacket(_pak); //GXI ServerPacket p472 = new ServerPacket(472); p472.AppendBoolean(Room.Hidewall); Session.SendPacket(p472); if (Room.Type == "public") { ServerPacket p471 = new ServerPacket(471); p471.AppendBoolean(false); p471.AppendStringWithBreak(Room.ModelName); p471.AppendBoolean(false); Session.SendPacket(p471); } else if (Room.Type == "private") { ServerPacket p471 = new ServerPacket(471); p471.AppendBoolean(true); p471.AppendUInt(Room.RoomId); if (Room.CheckRights(Session, true)) { p471.AppendBoolean(true); } else { p471.AppendBoolean(false); } Session.SendPacket(p471); ServerPacket p454 = new ServerPacket(454); p454.AppendInt32(1); p454.AppendUInt(Room.RoomId); p454.AppendInt32(0); p454.AppendStringWithBreak(Room.Name); p454.AppendStringWithBreak(Room.Owner); p454.AppendInt32(Room.State); p454.AppendInt32(0); p454.AppendInt32(25); p454.AppendStringWithBreak(Room.Description); p454.AppendInt32(0); p454.AppendInt32(1); p454.AppendInt32(8228); p454.AppendInt32(Room.Category); p454.AppendStringWithBreak(""); p454.AppendInt32(Room.TagCount); foreach (string Tag in Room.Tags) { p454.AppendStringWithBreak(Tag); } Room.Icon.Serialize(p454); p454.AppendBoolean(false); Session.SendPacket(p454); } ServerPacket Updates = Room.SerializeStatusUpdates(true); if (Updates != null) { Session.SendPacket(Updates); } foreach (RoomUser User in Room.UserList) { if (User.IsSpectator) { continue; } if (User.IsDancing) { ServerPacket p480 = new ServerPacket(480); p480.AppendInt32(User.VirtualId); p480.AppendInt32(User.DanceId); Session.SendPacket(p480); } if (User.IsAsleep) { ServerPacket p486 = new ServerPacket(486); p486.AppendInt32(User.VirtualId); p486.AppendBoolean(true); Session.SendPacket(p486); } if (User.CarryItemID > 0 && User.CarryTimer > 0) { ServerPacket p482 = new ServerPacket(482); p482.AppendInt32(User.VirtualId); p482.AppendInt32(User.CarryTimer); Session.SendPacket(p482); } if (!User.IsBot) { if (User.GetClient().GetHabbo() != null && User.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent() != null && User.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().CurrentEffect >= 1) { ServerPacket p485 = new ServerPacket(485); p485.AppendInt32(User.VirtualId); p485.AppendInt32(User.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().CurrentEffect); Session.SendPacket(p485); } } } }