put this in your room.cs
works 100%Code:public void RollerProcess(RoomItem Item, RoomUser User) { try { Thread.Sleep(2000); int nextx = Item.SquareInFront.x; int nexty = Item.SquareInFront.y; double Zro; if (ValidTile(nextx, nexty)) { Zro = GetRollerCoord(nextx, nexty); /*HasRolling.Add(User.HabboId); User.SetRot(Item.Rot); User.MoveTo(nextx, nexty); User.Z = Zro;*/ ServerMessage mMessage = new ServerMessage(230); mMessage.AppendInt32(User.X); mMessage.AppendInt32(User.Y); mMessage.AppendInt32(nextx); mMessage.AppendInt32(nexty); mMessage.AppendInt32(0); mMessage.AppendUInt(Item.Id); mMessage.AppendInt32(2); mMessage.AppendInt32(User.VirtualId); mMessage.AppendStringWithBreak(User.Z.ToString().Replace(',', '.')); mMessage.AppendStringWithBreak(Zro.ToString().Replace(',', '.')); Pathfinder Pathfinder = new Pathfinder(this, User); User.GoalX = nextx; User.GoalY = nexty; User.Z = Zro; User.Path.Clear(); User.Path = Pathfinder.FindPath(); if (User.Path.Count > 1) { User.PathStep = 1; User.IsWalking = true; User.PathRecalcNeeded = false; } else { User.PathRecalcNeeded = false; User.Path.Clear(); } int k = (User.Path.Count - User.PathStep) - 1; Coord NextStep = User.Path[k]; User.PathStep++; User.RemoveStatus("mv"); User.SetStep = true; User.SetX = nextx; User.SetY = nexty; User.SetZ = Zro; SendMessage(mMessage); } } catch { } } public double GetRollerCoord(int nextx, int nexty) { using (TimedLock.Lock(this.Items)) { foreach (RoomItem I in Items) { if (I.X == nextx && I.Y == nexty) { return I.TotalHeight; } } } return 0; }
credits to me





