public override void OnPlace(GameClient session, RoomItem item) { item.GetRoom().GetRoomItemHandler().HopperCount++; using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) { queryReactor.SetQuery("INSERT INTO items_hopper (hopper_id, room_id) VALUES (@hopperid, @roomid);"); queryReactor.AddParameter("hopperid", item.Id); queryReactor.AddParameter("roomid", item.RoomId); queryReactor.RunQuery(); } if (item.InteractingUser == 0u) return; RoomUser roomUserByHabbo = item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(item.InteractingUser); if (roomUserByHabbo != null) { roomUserByHabbo.ClearMovement(); roomUserByHabbo.AllowOverride = false; roomUserByHabbo.CanWalk = true; } item.InteractingUser = 0u; }
public override void OnTrigger(GameClient session, RoomItem item, int request, bool hasRights) { RoomUser roomUser = null; if (session != null) roomUser = item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Id); if (roomUser == null) return; if (Gamemap.TilesTouching(item.X, item.Y, roomUser.X, roomUser.Y)) { var num = item.GetBaseItem().Modes - 1; int num2, num3; int.TryParse(item.ExtraData, out num2); if (num2 <= 0) num3 = 1; else { if (num2 >= num) num3 = 0; else num3 = num2 + 1; } item.ExtraData = num3.ToString(); item.UpdateState(); item.GetRoom().GetWiredHandler().ExecuteWired(Interaction.TriggerStateChanged, roomUser, item); return; } roomUser.MoveTo(item.SquareInFront); }
public override void OnWiredTrigger(RoomItem item) { uint num = item.GetBaseItem().Modes - 1; if (num <= 0) item.UpdateState(false, true); int num2; int.TryParse(item.ExtraData, out num2); int num3; if (num2 <= 0) num3 = 1; else { if (num2 >= num) num3 = 0; else num3 = num2 + 1; } if (num3 == 0 && !item.GetRoom().GetGameMap().ItemCanBePlacedHere(item.X, item.Y)) return; item.ExtraData = num3.ToString(); item.UpdateState(); item.GetRoom().GetGameMap().UpdateMapForItem(item); }
public override void OnTrigger(GameClient session, RoomItem item, int request, bool hasRights) { if (session == null) return; RoomUser user = item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Id); if (user == null) return; if (user.Coordinate != item.SquareInFront && user.CanWalk) { user.MoveTo(item.SquareInFront); return; } if (!item.GetRoom().GetGameMap().CanWalk(item.SquareBehind.X, item.SquareBehind.Y, user.AllowOverride)) return; if (item.InteractingUser == 0) { item.InteractingUser = user.HabboId; user.CanWalk = false; if (user.IsWalking && (user.GoalX != item.SquareInFront.X || user.GoalY != item.SquareInFront.Y)) user.ClearMovement(); user.AllowOverride = true; user.MoveTo(item.Coordinate); item.ReqUpdate(4, true); } }
public void OnTrigger(GameClient session, RoomItem item, int request, bool hasRights) { if (!hasRights) return; switch (request) { case -1: // Open interface break; default: if (item.ExtraData == "1") { item.GetRoom().GetRoomMusicController().Stop(); item.ExtraData = "0"; } else { item.GetRoom().GetRoomMusicController().Start(); item.ExtraData = "1"; } item.UpdateState(); item.GetRoom().GetRoomMusicController().BroadcastCurrentSongData(item.GetRoom()); break; } }
public void OnPlace(GameClients.GameClient Session, RoomItem Item) { Item.GetRoom().GetRoomItemHandler().HopperCount++; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("INSERT INTO items_hopper (hopper_id, room_id) VALUES (@hopperid, @roomid);"); dbClient.addParameter("hopperid", Item.Id); dbClient.addParameter("roomid", Item.RoomId); dbClient.runQuery(); } if (Item.InteractingUser != 0) { RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser); if (User != null) { User.ClearMovement(true); User.AllowOverride = false; User.CanWalk = true; } Item.InteractingUser = 0; } }
public override void OnPlace(GameClient session, RoomItem item) { item.ExtraData = "0"; if (item.InteractingUser != 0u) { var roomUserByHabbo = item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(item.InteractingUser); if (roomUserByHabbo != null) { roomUserByHabbo.ClearMovement(); roomUserByHabbo.AllowOverride = false; roomUserByHabbo.CanWalk = true; } item.InteractingUser = 0u; } if (item.InteractingUser2 == 0u) return; var roomUserByHabbo2 = item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(item.InteractingUser2); if (roomUserByHabbo2 != null) { roomUserByHabbo2.ClearMovement(); roomUserByHabbo2.AllowOverride = false; roomUserByHabbo2.CanWalk = true; } item.InteractingUser2 = 0u; }
public void OnTrigger(GameClient session, RoomItem item, int request, bool hasRights) { if (item == null || item.GetRoom() == null || session == null || session.GetHabbo() == null) { return; } RoomUser roomUserByHabbo = item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Id); if (roomUserByHabbo == null) { return; } if(roomUserByHabbo.Coordinate == item.Coordinate || roomUserByHabbo.Coordinate == item.SquareInFront) { if(item.InteractingUser != 0) { return; } item.InteractingUser = roomUserByHabbo.GetClient().GetHabbo().Id; } else if (roomUserByHabbo.CanWalk) { roomUserByHabbo.MoveTo(item.SquareInFront); } }
public void OnTrigger(GameClient Session, RoomItem Item, int Request, bool HasRights) { if (Item == null || Item.GetRoom() == null || Session == null || Session.GetHabbo() == null) { return; } RoomUser roomUserByHabbo = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (roomUserByHabbo == null) { return; } if (!(roomUserByHabbo.Coordinate == Item.Coordinate) && !(roomUserByHabbo.Coordinate == Item.SquareInFront)) { if (roomUserByHabbo.CanWalk) { roomUserByHabbo.MoveTo(Item.SquareInFront); } return; } if (Item.InteractingUser != 0u) { return; } roomUserByHabbo.TeleDelay = 2; Item.InteractingUser = roomUserByHabbo.GetClient().GetHabbo().Id; }
public void OnPlace(GameClient Session, RoomItem Item) { Item.ExtraData = "0"; if (Item.InteractingUser != 0u) { RoomUser roomUserByHabbo = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser); if (roomUserByHabbo != null) { roomUserByHabbo.ClearMovement(true); roomUserByHabbo.AllowOverride = false; roomUserByHabbo.CanWalk = true; } Item.InteractingUser = 0u; } if (Item.InteractingUser2 != 0u) { RoomUser roomUserByHabbo2 = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser2); if (roomUserByHabbo2 != null) { roomUserByHabbo2.ClearMovement(true); roomUserByHabbo2.AllowOverride = false; roomUserByHabbo2.CanWalk = true; } Item.InteractingUser2 = 0u; } }
void IFurniTrigger.OnRemove(GameClient Session, RoomItem Item) { Item.ExtraData = "0"; if (Item.InteractingUser != 0) { RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser); if (User != null) { User.UnlockWalking(); } Item.InteractingUser = 0; } if (Item.InteractingUser2 != 0) { RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser2); if (User != null) { User.UnlockWalking(); } Item.InteractingUser2 = 0; } //Item.GetRoom().RegenerateUserMatrix(); }
void IFurniTrigger.OnPlace(GameClient Session, RoomItem Item) { Item.ExtraData = "0"; if (Item.InteractingUser != 0) { RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser); if (User != null) { User.ClearMovement(true); User.AllowOverride = false; User.CanWalk = true; } Item.InteractingUser = 0; } if (Item.InteractingUser2 != 0) { RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser2); if (User != null) { User.ClearMovement(true); User.AllowOverride = false; User.CanWalk = true; } Item.InteractingUser2 = 0; } //Item.GetRoom().RegenerateUserMatrix(); }
public void OnPlace(GameClient Session, RoomItem Item) { checked { Item.GetRoom().GetRoomItemHandler().HopperCount++; using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor()) { queryreactor.setQuery("INSERT INTO items_hopper (hopper_id, room_id) VALUES (@hopperid, @roomid);"); queryreactor.addParameter("hopperid", Item.Id); queryreactor.addParameter("roomid", Item.RoomId); queryreactor.runQuery(); } if (Item.InteractingUser != 0u) { RoomUser roomUserByHabbo = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser); if (roomUserByHabbo != null) { roomUserByHabbo.ClearMovement(true); roomUserByHabbo.AllowOverride = false; roomUserByHabbo.CanWalk = true; } Item.InteractingUser = 0u; } } }
public void OnRemove(GameClients.GameClient Session, RoomItem Item) { Item.ExtraData = "0"; if (Item.InteractingUser != 0) { RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser); if (User != null) { User.UnlockWalking(); } Item.InteractingUser = 0; } if (Item.InteractingUser2 != 0) { RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser2); if (User != null) { User.UnlockWalking(); } Item.InteractingUser2 = 0; } }
public override void OnPlace(GameClient session, RoomItem item) { item.ExtraData = "0"; if (item.InteractingUser != 0) { RoomUser user = item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(item.InteractingUser); if (user != null) { user.ClearMovement(); user.AllowOverride = false; user.CanWalk = true; } item.InteractingUser = 0; } if (item.InteractingUser2 != 0) { RoomUser user = item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(item.InteractingUser2); if (user != null) { user.ClearMovement(); user.AllowOverride = false; user.CanWalk = true; } item.InteractingUser2 = 0; } }
public void OnPlace(GameClients.GameClient Session, RoomItem Item) { Item.ExtraData = "0"; if (Item.InteractingUser != 0) { RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser); if (User != null) { User.ClearMovement(true); User.AllowOverride = false; User.CanWalk = true; } Item.InteractingUser = 0; } if (Item.InteractingUser2 != 0) { RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Item.InteractingUser2); if (User != null) { User.ClearMovement(true); User.AllowOverride = false; User.CanWalk = true; } Item.InteractingUser2 = 0; } }
public override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights) { RoomUser User = Item.GetRoom().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } if (Item.GetRoom().TilesTouching(Item.X, Item.Y, User.X, User.Y)) { if (Item.ExtraData != "-1") { if (Request == -1) { Item.ExtraData = "0"; Item.UpdateState(); } else { Item.ExtraData = "-1"; Item.UpdateState(false, true); Item.ReqUpdate(4); } } } else { User.MoveTo(Item.SquareInFront); } }
public void OnTrigger(GameClients.GameClient Session, RoomItem Item, int Request, bool HasRights) { if (Item == null || Item.GetRoom() == null || Session == null || Session.GetHabbo() == null) return; RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } // Alright. But is this user in the right position? if (User.Coordinate == Item.Coordinate || User.Coordinate == Item.SquareInFront) { // Fine. But is this tele even free? if (Item.InteractingUser != 0) { return; } User.TeleDelay = 2; Item.InteractingUser = User.GetClient().GetHabbo().Id; } else if (User.CanWalk) { User.MoveTo(Item.SquareInFront); } }
public override void OnWiredTrigger(RoomItem item) { if (item.OnCannonActing) return; item.OnCannonActing = true; var coords = new HashSet<Point>(); var itemX = item.X; var itemY = item.Y; switch (item.Rot) { case 0: // TESTEADO OK var startingcoordX = itemX - 1; for (var i = startingcoordX; i > 0; i--) coords.Add(new Point(i, itemY)); break; case 4: // TESTEADO OK var startingcoordX2 = itemX + 2; var mapsizeX = item.GetRoom().GetGameMap().Model.MapSizeX; for (var i = startingcoordX2; i < mapsizeX; i++) coords.Add(new Point(i, itemY)); break; case 2: // TESTEADO OK var startingcoordY = itemY - 1; for (var i = startingcoordY; i > 0; i--) coords.Add(new Point(itemX, i)); break; case 6: // OK! var startingcoordY2 = itemY + 2; var mapsizeY = item.GetRoom().GetGameMap().Model.MapSizeY; for (var i = startingcoordY2; i < mapsizeY; i++) coords.Add(new Point(itemX, i)); break; } item.ExtraData = (item.ExtraData == "0") ? "1" : "0"; item.UpdateState(); _mItem = item; _mCoords = coords; var explodeTimer = new Timer(1350); explodeTimer.Elapsed += ExplodeAndKick; explodeTimer.Enabled = true; }
public void OnTrigger(GameClient session, RoomItem item, int request, bool hasRights) { if (!hasRights) { return; } int result; if (!int.TryParse(item.ExtraData, out result)) { item.ExtraData = "0"; result = 0; } if (request == 0 && result == 0) { result = 30; } else { switch (request) { case 2: if (item.GetRoom().GetBanzai().IsBanzaiActive && item.PendingReset && result > 0) { result = 0; item.PendingReset = false; } else { result = result >= 30 ? (result != 30 ? (result != 60 ? (result != 120 ? (result != 180 ? (result != 300 ? 0 : 600) : 300) : 180) : 120) : 60) : 30; item.UpdateNeeded = false; } break; case 0: case 1: if (!item.GetRoom().GetBanzai().IsBanzaiActive) { item.UpdateNeeded = !item.UpdateNeeded; if (item.UpdateNeeded) { item.GetRoom().GetBanzai().BanzaiStart(); } item.PendingReset = true; } else { item.UpdateNeeded = !item.UpdateNeeded; if (item.UpdateNeeded) { item.GetRoom().GetBanzai().BanzaiEnd(); } item.PendingReset = true; } break; } } item.ExtraData = Convert.ToString(result); item.UpdateState(); }
public void OnTrigger(GameClients.GameClient Session, RoomItem Item, int Request, bool HasRights) { if (Session == null) return; RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } if (!((Math.Abs((int)(User.X - Item.GetX)) >= 2) || (Math.Abs((int)(User.Y - Item.GetY)) >= 2))) { User.SetRot(Rotation.Calculate(User.X, User.Y, Item.GetX, Item.GetY), false); if (User.RotBody % 2 != 0) { User.MoveTo(Item.GetX + 1, Item.GetY); return; } Room Room = Item.GetRoom(); Point NewPoint = new Point(0, 0); if (User.RotBody == 4) { NewPoint = new Point(Item.GetX, Item.GetY + 1); } if (User.RotBody == 0) { NewPoint = new Point(Item.GetX, Item.GetY - 1); } if (User.RotBody == 6) { NewPoint = new Point(Item.GetX - 1, Item.GetY); } if (User.RotBody == 2) { NewPoint = new Point(Item.GetX + 1, Item.GetY); } if (Room.GetGameMap().ValidTile(NewPoint.X, NewPoint.Y) && Room.GetGameMap().itemCanBePlacedHere(NewPoint.X, NewPoint.Y) && Room.GetGameMap().CanRollItemHere(NewPoint.X, NewPoint.Y)) { Double NewZ = Item.GetRoom().GetGameMap().SqAbsoluteHeight(NewPoint.X, NewPoint.Y); ServerMessage mMessage = new ServerMessage(); mMessage.Init(Outgoing.ObjectOnRoller); // Cf mMessage.AppendInt32(Item.GetX); mMessage.AppendInt32(Item.GetY); mMessage.AppendInt32(NewPoint.X); mMessage.AppendInt32(NewPoint.Y); mMessage.AppendInt32(1); mMessage.AppendInt32(Item.Id); mMessage.AppendString(Item.GetZ.ToString().Replace(',', '.')); mMessage.AppendString(NewZ.ToString().Replace(',', '.')); mMessage.AppendInt32(0); Room.SendMessage(mMessage); Item.GetRoom().GetRoomItemHandler().SetFloorItem(User.GetClient(), Item, NewPoint.X, NewPoint.Y, Item.Rot, false, false, false); } } else { User.MoveTo(Item.GetX + 1, Item.GetY); } }
public void OnRemove(GameClient session, RoomItem item) { if (item.GetRoom().GetRoomMusicController().IsPlaying) { item.GetRoom().GetRoomMusicController().Stop(); item.GetRoom().GetRoomMusicController().BroadcastCurrentSongData(session.GetHabbo().CurrentRoom); } item.GetRoom().GetRoomMusicController().Reset(); }
public void OnTrigger(GameClient Session, RoomItem Item, int Request, bool HasRights) { if (Session == null) { return; } RoomUser roomUserByHabbo = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (Item.InteractingUser2 != roomUserByHabbo.UserID) { Item.InteractingUser2 = roomUserByHabbo.UserID; } if (roomUserByHabbo == null) { return; } if (roomUserByHabbo.Coordinate != Item.SquareInFront && roomUserByHabbo.CanWalk) { roomUserByHabbo.MoveTo(Item.SquareInFront); return; } if (!Item.GetRoom().GetGameMap().ValidTile(Item.SquareBehind.X, Item.SquareBehind.Y) || !Item.GetRoom().GetGameMap().CanWalk(Item.SquareBehind.X, Item.SquareBehind.Y, false, 0u) || !Item.GetRoom().GetGameMap().SquareIsOpen(Item.SquareBehind.X, Item.SquareBehind.Y, false)) { return; } checked { if (roomUserByHabbo.LastInteraction - MercuryEnvironment.GetUnixTimestamp() < 0 && roomUserByHabbo.InteractingGate && roomUserByHabbo.GateId == Item.Id) { roomUserByHabbo.InteractingGate = false; roomUserByHabbo.GateId = 0u; } { if (!Item.GetRoom().GetGameMap().CanWalk(Item.SquareBehind.X, Item.SquareBehind.Y, roomUserByHabbo.AllowOverride, 0u)) { return; } if (Item.InteractingUser == 0u) { roomUserByHabbo.InteractingGate = true; roomUserByHabbo.GateId = Item.Id; Item.InteractingUser = roomUserByHabbo.HabboId; roomUserByHabbo.CanWalk = false; if (roomUserByHabbo.IsWalking && (roomUserByHabbo.GoalX != Item.SquareInFront.X || roomUserByHabbo.GoalY != Item.SquareInFront.Y)) { roomUserByHabbo.ClearMovement(true); } roomUserByHabbo.InteractingGate = false; roomUserByHabbo.GateId = 0u; return; } return; } } }
void IFurniTrigger.OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights) { if (!UserHasRights) { return; } int oldValue = 0; if (!string.IsNullOrEmpty(Item.ExtraData)) { try { oldValue = int.Parse(Item.ExtraData); } catch { } } if (Request == 2) { if (Item.pendingReset && oldValue > 0) { oldValue = 0; Item.pendingReset = false; } else { oldValue = oldValue + 60; Item.UpdateNeeded = false; } } else if (Request == 1) { if (!Item.GetRoom().GetBanzai().isBanzaiActive) { Item.UpdateNeeded = !Item.UpdateNeeded; if (Item.UpdateNeeded) { //Console.WriteLine("Game started"); Item.GetRoom().GetBanzai().BanzaiStart(); } Item.pendingReset = true; } } Item.ExtraData = oldValue.ToString(); Item.UpdateState(); }
public void OnWiredTrigger(RoomItem Item) { if (!Item.GetRoom().GetBanzai().isBanzaiActive) { Item.UpdateNeeded = !Item.UpdateNeeded; if (Item.UpdateNeeded) Item.GetRoom().GetBanzai().BanzaiStart(); Item.pendingReset = true; } Item.UpdateNeeded = !Item.UpdateNeeded; if (Item.UpdateNeeded) Item.GetRoom().GetBanzai().BanzaiEnd(); Item.pendingReset = true; }
public void OnWiredTrigger(RoomItem item) { if (item.ExtraData == "1") { item.GetRoom().GetRoomMusicController().Stop(); item.ExtraData = "0"; } else { item.GetRoom().GetRoomMusicController().Start(); item.ExtraData = "1"; } item.UpdateState(); }
void IFurniTrigger.OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights) { if (Item.ExtraData == "1") { Item.GetRoom().GetRoomMusicController().Stop(); Item.ExtraData = "0"; } else { Item.GetRoom().GetRoomMusicController().Start(); Item.ExtraData = "1"; } Item.UpdateState(); }
void IFurniTrigger.OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights) { if (Session == null) return; RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } if (User.Coordinate != Item.SquareInFront && User.CanWalk) { User.MoveTo(Item.SquareInFront); return; } if (!Item.GetRoom().GetGameMap().CanWalk(Item.SquareBehind.X, Item.SquareBehind.Y, User.AllowOverride)) { return; } string[] extraData = Item.ExtraData.Split(':'); uint groupID = TextHandling.ParseUInt32(extraData[0]); GroupData group = ButterflyEnvironment.GetGame().GetGroupManager().GetGroup(groupID); if (group == null || !group.IsMember(Session.GetHabbo().Id)) return; if (Item.InteractingUser == 0) { Item.InteractingUser = User.HabboId; User.CanWalk = false; if (User.IsWalking && (User.GoalX != Item.SquareInFront.X || User.GoalY != Item.SquareInFront.Y)) { User.ClearMovement(true); } SetExtraData("1", Item); Item.UpdateState(); User.AllowOverride = true; User.MoveTo(Item.Coordinate); Item.ReqUpdate(4, true); } }
public void OnTrigger(GameClient Session, RoomItem Item, int Request, bool HasRights) { checked { int num = Item.GetBaseItem().Modes - 1; if (Session == null || !HasRights || num <= 0 || Item.GetBaseItem().InteractionType == InteractionType.pinata) { return; } CyberEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.FURNI_SWITCH, 0u); int num2 = 0; int.TryParse(Item.ExtraData, out num2); int num3; if (num2 <= 0) { num3 = 1; } else { if (num2 >= num) { num3 = 0; } else { num3 = num2 + 1; } } Item.ExtraData = num3.ToString(); Item.UpdateState(); Item.GetRoom().GetWiredHandler().ExecuteWired(WiredItemType.TriggerToggleFurni, new object[] { Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id), Item }); if (Item.GetBaseItem().StackMultipler) { Room room = Item.GetRoom(); foreach (RoomUser current in room.GetRoomUserManager().UserList.Values) { if (current.Statusses.ContainsKey("sit")) { room.GetRoomUserManager().UpdateUserStatus(current, true); } } } } }
void IFurniTrigger.OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights) { if (Session == null) return; RoomUser interactingUser = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); Point userCoord = interactingUser.Coordinate; Point ballCoord = Item.Coordinate; int differenceX = userCoord.X - ballCoord.X; int differenceY = userCoord.Y - ballCoord.Y; if (differenceX <= 1 && differenceX >= -1 && differenceY <= 1 && differenceY >= -1) { differenceX = differenceX * 2; differenceY = differenceY * 2; int newX = Item.GetX + differenceX; int newY = Item.GetY + differenceY; Item.GetRoom().GetSoccer().MoveBall(Item, Session, newX, newY); interactingUser.MoveTo(ballCoord); } else //if (differenceX == 2 || differenceY == 2 || differenceY == - 2 || differenceX == -2) { Item.interactingBallUser = Session.GetHabbo().Id; differenceX = differenceX * (-1); differenceY = differenceY * (-1); if (differenceX > 1) differenceX = 1; else if (differenceX < -1) differenceX = -1; if (differenceY > 1) differenceY = 1; else if (differenceY < -1) differenceY = -1; int newX = Item.GetX + differenceX; int newY = Item.GetY + differenceY; interactingUser.MoveTo(new Point(newX, newY)); } }
public override void OnUserWalk(GameClient session, RoomItem item, RoomUser user) { if (item?.GetRoom() == null || session?.GetHabbo() == null) { return; } RoomUser roomUserByHabbo = item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Id); if (roomUserByHabbo == null) { return; } if (!(roomUserByHabbo.Coordinate == item.Coordinate) && !(roomUserByHabbo.Coordinate == item.SquareInFront)) { roomUserByHabbo.MoveTo(item.SquareInFront); return; } if (item.InteractingUser != 0) { return; } item.InteractingUser = roomUserByHabbo.GetClient().GetHabbo().Id; }
public override void OnTrigger(GameClient session, RoomItem item, int request, bool hasRights) { if (item?.GetRoom() == null || session?.GetHabbo() == null) { return; } RoomUser user = item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Id); if (user != null) { if (user.Coordinate == item.Coordinate || user.Coordinate == item.SquareInFront) { if (item.InteractingUser != 0) { return; } item.InteractingUser = user.GetClient().GetHabbo().Id; } else if (user.CanWalk) { user.MoveTo(item.SquareInFront); } } }
public override void OnTrigger(GameClient session, RoomItem item, int request, bool hasRights) { if (item?.GetRoom() == null || session == null || session.GetHabbo() == null) { return; } RoomUser roomUserByHabbo = item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Id); if (roomUserByHabbo == null) { return; } if (!(roomUserByHabbo.Coordinate == item.Coordinate) && !(roomUserByHabbo.Coordinate == item.SquareInFront)) { if (roomUserByHabbo.CanWalk) { roomUserByHabbo.MoveTo(item.SquareInFront); } return; } if (item.InteractingUser != 0u) { return; } roomUserByHabbo.TeleDelay = 2; item.InteractingUser = roomUserByHabbo.GetClient().GetHabbo().Id; }
public static void SaveWired(GameClient session, RoomItem item, ClientMessage request) { if (item == null || !item.IsWired) { return; } Room room = item.GetRoom(); WiredHandler wiredHandler = room?.GetWiredHandler(); if (wiredHandler == null) { return; } switch (item.GetBaseItem().InteractionType) { case Interaction.TriggerTimer: { request.GetInteger(); IWiredItem wired = wiredHandler.GetWired(item); int delay = request.GetInteger() * 500; wired.Delay = delay; wiredHandler.ReloadWired(wired); break; } case Interaction.TriggerRoomEnter: { request.GetInteger(); string otherString = request.GetString(); IWiredItem wired = wiredHandler.GetWired(item); wired.OtherString = otherString; wiredHandler.ReloadWired(wired); break; } case Interaction.TriggerLongRepeater: { request.GetInteger(); int delay = request.GetInteger() * 5000; IWiredItem wired2 = wiredHandler.GetWired(item); wired2.Delay = delay; wiredHandler.ReloadWired(wired2); break; } case Interaction.TriggerRepeater: { request.GetInteger(); int delay = request.GetInteger() * 500; IWiredItem wired2 = wiredHandler.GetWired(item); wired2.Delay = delay; wiredHandler.ReloadWired(wired2); break; } case Interaction.TriggerOnUserSay: { request.GetInteger(); int num = request.GetInteger(); string otherString2 = request.GetString(); IWiredItem wired3 = wiredHandler.GetWired(item); wired3.OtherString = otherString2; wired3.OtherBool = num == 1; wiredHandler.ReloadWired(wired3); break; } case Interaction.TriggerStateChanged: { request.GetInteger(); request.GetString(); List <RoomItem> furniItems = GetFurniItems(request, room); int num2 = request.GetInteger(); IWiredItem wired4 = wiredHandler.GetWired(item); wired4.Delay = num2 * 500; wired4.Items = furniItems; wiredHandler.ReloadWired(wired4); break; } case Interaction.TriggerWalkOnFurni: case Interaction.ActionChase: case Interaction.ActionResetTimer: { request.GetInteger(); request.GetString(); List <RoomItem> furniItems2 = GetFurniItems(request, room); int num3 = request.GetInteger(); IWiredItem wired5 = wiredHandler.GetWired(item); wired5.Delay = num3 * 500; wired5.Items = furniItems2; wiredHandler.ReloadWired(wired5); break; } case Interaction.TriggerWalkOffFurni: { request.GetInteger(); request.GetString(); List <RoomItem> furniItems3 = GetFurniItems(request, room); int num4 = request.GetInteger(); IWiredItem wired6 = wiredHandler.GetWired(item); wired6.Delay = num4 * 500; wired6.Items = furniItems3; wiredHandler.ReloadWired(wired6); break; } case Interaction.ActionMoveRotate: case Interaction.ActionMoveToDir: { request.GetInteger(); int dir = request.GetInteger(); int rot = request.GetInteger(); request.GetString(); List <RoomItem> furniItems4 = GetFurniItems(request, room); int delay = request.GetInteger(); IWiredItem wired7 = wiredHandler.GetWired(item); wired7.Items = furniItems4; wired7.Delay = delay * 500; wired7.OtherString = $"{dir};{rot}"; wiredHandler.ReloadWired(wired7); break; } case Interaction.ActionShowMessage: case Interaction.ActionKickUser: { request.GetInteger(); string otherString3 = request.GetString(); IWiredItem wired8 = wiredHandler.GetWired(item); wired8.OtherString = otherString3; wiredHandler.ReloadWired(wired8); break; } case Interaction.ActionTeleportTo: { request.GetInteger(); request.GetString(); List <RoomItem> furniItems5 = GetFurniItems(request, room); int num8 = request.GetInteger(); IWiredItem wired9 = wiredHandler.GetWired(item); wired9.Items = furniItems5; wired9.Delay = num8 * 500; wiredHandler.ReloadWired(wired9); break; } case Interaction.ActionToggleState: { request.GetInteger(); request.GetString(); List <RoomItem> furniItems6 = GetFurniItems(request, room); int num9 = request.GetInteger(); IWiredItem wired10 = wiredHandler.GetWired(item); wired10.Items = furniItems6; wired10.Delay = num9 * 500; wiredHandler.ReloadWired(wired10); break; } case Interaction.ActionGiveReward: { if (!session.GetHabbo().HasFuse("fuse_use_superwired")) { return; } request.GetInteger(); int often = request.GetInteger(); bool unique = request.GetIntegerAsBool(); int limit = request.GetInteger(); request.GetInteger(); string extrainfo = request.GetString(); List <RoomItem> furniItems7 = GetFurniItems(request, room); IWiredItem wired11 = wiredHandler.GetWired(item); wired11.Items = furniItems7; wired11.Delay = 0; wired11.OtherBool = unique; wired11.OtherString = extrainfo; wired11.OtherExtraString = often.ToString(); wired11.OtherExtraString2 = limit.ToString(); wiredHandler.ReloadWired(wired11); break; } case Interaction.ActionMuteUser: { request.GetInteger(); int minutes = request.GetInteger() * 500; string message = request.GetString(); List <RoomItem> furniItems7 = GetFurniItems(request, room); IWiredItem wired11 = wiredHandler.GetWired(item); wired11.Items = furniItems7; wired11.Delay = minutes; wired11.OtherBool = false; wired11.OtherString = message; wiredHandler.ReloadWired(wired11); break; } case Interaction.TriggerScoreAchieved: { request.GetInteger(); int pointsRequired = request.GetInteger(); IWiredItem wired11 = wiredHandler.GetWired(item); wired11.Delay = 0; wired11.OtherString = pointsRequired.ToString(); wiredHandler.ReloadWired(wired11); break; } case Interaction.ConditionItemsMatches: case Interaction.ConditionItemsDontMatch: case Interaction.ActionPosReset: { request.GetInteger(); bool actualExtraData = request.GetIntegerAsBool(); bool actualRot = request.GetIntegerAsBool(); bool actualPosition = request.GetIntegerAsBool(); string booleans = $"{actualExtraData},{actualRot},{actualPosition}".ToLower(); request.GetString(); List <RoomItem> items = GetFurniItems(request, room); int delay = request.GetInteger() * 500; IWiredItem wiry = wiredHandler.GetWired(item); string dataToSave = string.Empty; string extraStringForWi = string.Empty; foreach (RoomItem aItem in items) { if (aItem.GetBaseItem().InteractionType == Interaction.Dice) { // Why have a RETURN here? dataToSave += string.Format("0|0|0|0,0,0", aItem.Id, aItem.ExtraData, aItem.Rot, aItem.X, aItem.Y, aItem.Z); extraStringForWi += $"{aItem.Id},{(actualExtraData ? aItem.ExtraData : "N")},{(actualRot ? aItem.Rot.ToString() : "N")},{(actualPosition ? aItem.X.ToString() : "N")},{(actualPosition ? aItem.Y.ToString() : "N")}"; return; } dataToSave += $"{aItem.Id}|{aItem.ExtraData}|{aItem.Rot}|{aItem.X},{aItem.Y},{aItem.Z}"; extraStringForWi += $"{aItem.Id},{(actualExtraData ? aItem.ExtraData : "N")},{(actualRot ? aItem.Rot.ToString() : "N")},{(actualPosition ? aItem.X.ToString() : "N")},{(actualPosition ? aItem.Y.ToString() : "N")}"; if (aItem == items.Last()) { continue; } dataToSave += "/"; extraStringForWi += ";"; } wiry.Items = items; wiry.Delay = delay; wiry.OtherBool = true; wiry.OtherString = booleans; wiry.OtherExtraString = dataToSave; wiry.OtherExtraString2 = extraStringForWi; wiredHandler.ReloadWired(wiry); break; } case Interaction.ConditionGroupMember: case Interaction.ConditionNotGroupMember: case Interaction.TriggerCollision: { break; } case Interaction.ConditionHowManyUsersInRoom: case Interaction.ConditionNegativeHowManyUsers: { request.GetInteger(); int minimum = request.GetInteger(); int maximum = request.GetInteger(); string ei = $"{minimum},{maximum}"; IWiredItem wired12 = wiredHandler.GetWired(item); wired12.Items = new List <RoomItem>(); wired12.OtherString = ei; wiredHandler.ReloadWired(wired12); break; } case Interaction.ConditionUserNotWearingEffect: case Interaction.ConditionUserWearingEffect: { request.GetInteger(); int effect = request.GetInteger(); IWiredItem wired12 = wiredHandler.GetWired(item); wired12.Items = new List <RoomItem>(); wired12.OtherString = effect.ToString(); wiredHandler.ReloadWired(wired12); break; } case Interaction.ConditionUserWearingBadge: case Interaction.ConditionUserNotWearingBadge: case Interaction.ConditionUserHasFurni: { request.GetInteger(); string badge = request.GetString(); IWiredItem wired12 = wiredHandler.GetWired(item); wired12.Items = new List <RoomItem>(); wired12.OtherString = badge; wiredHandler.ReloadWired(wired12); break; } case Interaction.ConditionDateRangeActive: { request.GetInteger(); int startDate = request.GetInteger(); int endDate = request.GetInteger(); IWiredItem wired12 = wiredHandler.GetWired(item); wired12.Items = new List <RoomItem>(); wired12.OtherString = $"{startDate},{endDate}"; if (startDate == 0) { wired12.OtherString = string.Empty; session.SendNotif(Yupi.GetLanguage().GetVar("user_wired_con_date_range")); } wiredHandler.ReloadWired(wired12); break; } case Interaction.ConditionFurnisHaveUsers: case Interaction.ConditionTriggerOnFurni: case Interaction.ConditionFurniTypeMatches: case Interaction.ConditionFurnisHaveNotUsers: case Interaction.ConditionTriggererNotOnFurni: case Interaction.ConditionFurniTypeDontMatch: { request.GetInteger(); request.GetString(); List <RoomItem> furniItems = GetFurniItems(request, room); IWiredItem wired12 = wiredHandler.GetWired(item); wired12.Items = furniItems; wiredHandler.ReloadWired(wired12); break; } case Interaction.ConditionFurniHasFurni: case Interaction.ConditionFurniHasNotFurni: { request.GetInteger(); bool allItems = request.GetIntegerAsBool(); request.GetString(); List <RoomItem> furniItems = GetFurniItems(request, room); IWiredItem wired = wiredHandler.GetWired(item); wired.OtherBool = allItems; wired.Items = furniItems; wiredHandler.ReloadWired(wired); break; } case Interaction.ActionGiveScore: { request.GetInteger(); int scoreToGive = request.GetInteger(); int maxTimesPerGame = request.GetInteger(); string newExtraInfo = $"{scoreToGive},{maxTimesPerGame}"; List <RoomItem> furniItems8 = GetFurniItems(request, room); IWiredItem wired12 = wiredHandler.GetWired(item); wired12.Items = furniItems8; wired12.OtherString = newExtraInfo; wiredHandler.ReloadWired(wired12); break; } case Interaction.ActionJoinTeam: { request.GetInteger(); int team = request.GetInteger(); IWiredItem wired = wiredHandler.GetWired(item); wired.Delay = team * 500; wiredHandler.ReloadWired(wired); break; } case Interaction.ActionBotTalk: { request.GetInteger(); bool type = request.GetIntegerAsBool(); string[] data = request.GetString().Split((char)9); IWiredItem wired = wiredHandler.GetWired(item); wired.OtherBool = type; wired.OtherString = data[0]; wired.OtherExtraString = data[1]; wiredHandler.ReloadWired(wired); break; } case Interaction.ActionBotClothes: { request.GetInteger(); string[] data = request.GetString().Split((char)9); IWiredItem wired = wiredHandler.GetWired(item); wired.OtherString = data[0]; wired.OtherExtraString = data[1]; wiredHandler.ReloadWired(wired); break; } case Interaction.ActionBotTeleport: { request.GetInteger(); string botName = request.GetString(); List <RoomItem> furniItems = GetFurniItems(request, room); IWiredItem wired = wiredHandler.GetWired(item); wired.Items = furniItems; wired.OtherString = botName; wiredHandler.ReloadWired(wired); break; } case Interaction.ActionBotGiveHanditem: { request.GetInteger(); int handitem = request.GetInteger(); string botName = request.GetString(); IWiredItem wired = wiredHandler.GetWired(item); wired.OtherString = botName; wired.Delay = handitem * 500; wiredHandler.ReloadWired(wired); break; } case Interaction.ActionBotMove: { request.GetInteger(); string botName = request.GetString(); List <RoomItem> furniItems = GetFurniItems(request, room); IWiredItem wired = wiredHandler.GetWired(item); wired.Items = furniItems; wired.OtherString = botName; wiredHandler.ReloadWired(wired); break; } case Interaction.ActionCallStacks: { request.GetInteger(); request.GetString(); List <RoomItem> furniItems = GetFurniItems(request, room); IWiredItem wired = wiredHandler.GetWired(item); int num = request.GetInteger(); wired.Items = furniItems; wired.Delay = num * 500; wiredHandler.ReloadWired(wired); break; } case Interaction.ActionBotTalkToAvatar: { request.GetInteger(); bool type = request.GetIntegerAsBool(); string[] data = request.GetString().Split((char)9); IWiredItem wired = wiredHandler.GetWired(item); wired.OtherBool = type; wired.OtherString = data[0]; wired.OtherExtraString = data[1]; wiredHandler.ReloadWired(wired); break; } case Interaction.ConditionTimeMoreThan: case Interaction.ConditionTimeLessThan: { request.GetInteger(); int time = request.GetInteger(); IWiredItem wired12 = wiredHandler.GetWired(item); Console.WriteLine(time); wired12.Delay = time * 500; wiredHandler.ReloadWired(wired12); break; } case Interaction.ConditionUserHasHanditem: { request.GetInteger(); int handitem = request.GetInteger(); IWiredItem wired = wiredHandler.GetWired(item); wired.Delay = handitem * 500; wiredHandler.ReloadWired(wired); break; } } session.SendMessage(new ServerMessage(LibraryParser.OutgoingRequest("SaveWiredMessageComposer"))); }
public override void OnTrigger(GameClient session, RoomItem item, int request, bool hasRights) { if (session == null) { return; } RoomUser roomUserByHabbo = item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Id); if (roomUserByHabbo == null) { return; } if (PathFinder.GetDistance(roomUserByHabbo.X, roomUserByHabbo.Y, item.X, item.Y) > 1) { roomUserByHabbo.MoveTo(item.X + 1, item.Y); } if (Math.Abs(roomUserByHabbo.X - item.X) < 2 && Math.Abs(roomUserByHabbo.Y - item.Y) < 2) { roomUserByHabbo.SetRot( PathFinder.CalculateRotation(roomUserByHabbo.X, roomUserByHabbo.Y, item.X, item.Y), false); Room room = item.GetRoom(); Point point = new Point(0, 0); switch (roomUserByHabbo.RotBody) { case 4: point = new Point(item.X, item.Y + 1); break; case 0: point = new Point(item.X, item.Y - 1); break; case 6: point = new Point(item.X - 1, item.Y); break; default: if (roomUserByHabbo.RotBody != 2) { return; } point = new Point(item.X + 1, item.Y); break; } if (!room.GetGameMap().ValidTile2(point.X, point.Y)) { return; } List <RoomItem> coordinatedItems = room.GetGameMap().GetCoordinatedItems(point); if (coordinatedItems.Any(i => !i.GetBaseItem().Stackable)) { return; } double num = item.GetRoom().GetGameMap().SqAbsoluteHeight(point.X, point.Y); ServerMessage serverMessage = new ServerMessage(); serverMessage.Init(LibraryParser.OutgoingRequest("ItemAnimationMessageComposer")); serverMessage.AppendInteger(item.X); serverMessage.AppendInteger(item.Y); serverMessage.AppendInteger(point.X); serverMessage.AppendInteger(point.Y); serverMessage.AppendInteger(1); serverMessage.AppendInteger(item.Id); serverMessage.AppendString(item.Z.ToString(Yupi.CultureInfo)); serverMessage.AppendString(num.ToString(Yupi.CultureInfo)); serverMessage.AppendInteger(0); room.SendMessage(serverMessage); item.GetRoom() .GetRoomItemHandler() .SetFloorItem(roomUserByHabbo.GetClient(), item, point.X, point.Y, item.Rot, false, false, false); } }