Don't look at it if you are new with uberemu/uberdb!
In /HabboHotel/Items/RoomItem.cs search for:
After add:PHP Code:case "scoreboard":
return new InteractorScoreboard();
In /HabboHotel/Items/FurniInteractor.cs search for:PHP Code:case "puzzlebox":
return new InteractorPuzzleBox();
After add:PHP Code:using Uber.HabboHotel.Rooms;
Search for:PHP Code:using Uber.Messages;
Before add:PHP Code:class InteractorScoreboard : FurniInteractor
Now add into the sql a new 'interaction_type' called: puzzleboxPHP Code:class InteractorPuzzleBox : FurniInteractor
{
public override void OnPlace(GameClient Session, RoomItem Item) { }
public override void OnRemove(GameClient Session, RoomItem Item) { }
public override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
{
RoomUser User = Item.GetRoom().GetRoomUserByHabbo(Session.GetHabbo().Id);
Coord ItemCoordx1 = new Coord(Item.Coordinate.x + 1, Item.Coordinate.y);
Coord ItemCoordx2 = new Coord(Item.Coordinate.x - 1, Item.Coordinate.y);
Coord ItemCoordy1 = new Coord(Item.Coordinate.x, Item.Coordinate.y + 1);
Coord ItemCoordy2 = new Coord(Item.Coordinate.x, Item.Coordinate.y - 1);
if (User == null)
{
return;
}
if (User.Coordinate != ItemCoordx1 && User.Coordinate != ItemCoordx2 && User.Coordinate != ItemCoordy1 && User.Coordinate != ItemCoordy2)
{
if (User.CanWalk)
{
User.MoveTo(Item.SquareInFront);
return;
}
}
else
{
int NewX = Item.Coordinate.x;
int NewY = Item.Coordinate.y;
if (User.Coordinate == ItemCoordx1)
{
NewX = Item.Coordinate.x - 1;
NewY = Item.Coordinate.y;
}
else if (User.Coordinate == ItemCoordx2)
{
NewX = Item.Coordinate.x + 1;
NewY = Item.Coordinate.y;
}
else if (User.Coordinate == ItemCoordy1)
{
NewX = Item.Coordinate.x;
NewY = Item.Coordinate.y - 1;
}
else if (User.Coordinate == ItemCoordy2)
{
NewX = Item.Coordinate.x;
NewY = Item.Coordinate.y + 1;
}
if (Item.GetRoom().ValidTile(NewX, NewY))
{
Double NewZ = Item.GetRoom().SqAbsoluteHeight(NewX, NewY);
ServerMessage Message = new ServerMessage(230);
Message.AppendInt32(Item.Coordinate.x);
Message.AppendInt32(Item.Coordinate.y);
Message.AppendInt32(NewX);
Message.AppendInt32(NewY);
Message.AppendInt32(1);
Message.AppendUInt(Item.Id);
Message.AppendByte(2);
Message.AppendStringWithBreak(NewZ.ToString());
Message.AppendString("M");
Item.GetRoom().SendMessage(Message);
Item.GetRoom().SetFloorItem(User.GetClient(), Item, NewX, NewY, Item.Rot, false);
}
}
}
}
And add the furniture:
Last thing todo is just add the furniture to a catalog_item and after to catalog_page,.. and done ;DPHP Code:INSERT INTO `furniture` (`id`, `public_name`, `item_name`, `type`, `width`, `length`, `stack_height`, `can_stack`, `can_sit`, `is_walkable`, `sprite_id`, `allow_recycle`, `allow_trade`, `allow_marketplace_sell`, `allow_gift`, `allow_inventory_stack`, `interaction_type`, `interaction_modes_count`, `vending_ids`, `foot_figure`) VALUES
(79357958, 'Puzzle Box', 'wf_box', 's', 1, 1, 1, '1', '0', '0', 3853, '1', '1', '1', '1', '1', 'puzzlebox', 1, '0', '');
Images/SWF:
http://forum.ragezone.com/f353/puzzl...s-swfs-734053/
Screenshot:
Video:
YouTube - UberEmu - PuzzleBox!
Credits:
TopErwin - Making this whole code ;d







