internal List<RoomItem> RemoveAllFurniture(GameClient Session) { List<RoomItem> ReturnList = new List<RoomItem>(); foreach (RoomItem Item in mFloorItems.Values.ToArray()) { Item.Interactor.OnRemove(Session, Item); ServerMessage Message = new ServerMessage(94); Message.AppendRawUInt(Item.Id); Message.AppendStringWithBreak(""); Message.AppendBoolean(false); room.SendMessage(Message); //mFloorItems.Remove(Item.Id); ReturnList.Add(Item); } foreach (RoomItem Item in mWallItems.Values.ToArray()) { Item.Interactor.OnRemove(Session, Item); ServerMessage Message = new ServerMessage(84); Message.AppendRawUInt(Item.Id); Message.AppendStringWithBreak(""); Message.AppendBoolean(false); room.SendMessage(Message); //mWallItems.Remove(Item.Id); ReturnList.Add(Item); } mWallItems.Clear(); mFloorItems.Clear(); mRemovedItems.Clear(); mMovedItems.Clear(); mAddedItems.Clear(); mRollers.QueueDelegate(new onCycleDoneDelegate(ClearRollers)); using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("DELETE FROM items_rooms WHERE room_id = " + room.RoomId); } room.GetGameMap().GenerateMaps(); room.GetRoomUserManager().UpdateUserStatusses(); if (room.GotWired()) { room.GetWiredHandler().OnPickall(); } return ReturnList; }
private void RemoveRoomItem(RoomItem Item) { if (Item.IsWallItem) { ServerMessage Message = new ServerMessage(84); Message.AppendRawUInt(Item.Id); Message.AppendStringWithBreak(""); Message.AppendBoolean(false); room.SendMessage(Message); } else if (Item.IsFloorItem) { ServerMessage Message = new ServerMessage(94); Message.AppendRawUInt(Item.Id); Message.AppendStringWithBreak(""); Message.AppendBoolean(false); room.SendMessage(Message); } if (Item.IsWallItem) mWallItems.Remove(Item.Id); else { room.GetGameMap().RemoveFromMap(Item); mFloorItems.Remove(Item.Id); } RemoveItem(Item); room.GetRoomUserManager().UpdateUserStatusses(); if (WiredHandler.TypeIsWire(Item.GetBaseItem().InteractionType)) { room.GetWiredHandler().RemoveWiredItem(Item.Coordinate); } }
internal void MoveWallItem() { Room Room = PiciEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (Room == null || !Room.CheckRights(Session)) { return; } uint itemID = Request.PopWiredUInt(); string wallPositionData = Request.PopFixedString(); RoomItem Item = Room.GetRoomItemHandler().GetItem(itemID); if (Item == null) return; try { WallCoordinate coordinate = new WallCoordinate(":" + wallPositionData.Split(':')[1]); Item.wallCoord = coordinate; } catch { Response.Init(516); Response.Append(11); SendResponse(); return; } Room.GetRoomItemHandler().UpdateItem(Item); ServerMessage LeaveMessage = new ServerMessage(84); LeaveMessage.AppendRawUInt(Item.Id); LeaveMessage.Append(string.Empty); LeaveMessage.AppendBoolean(false); Room.SendMessage(LeaveMessage); ServerMessage Message = new ServerMessage(83); Item.Serialize(Message); Room.SendMessage(Message); }