public override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRight) { if (UserHasRight) { if (this.Modes == 0) { Item.UpdateState(false, true); } int num = 0; int num2 = 0; if (Item.ExtraData.Length > 0) { num = int.Parse(Item.ExtraData); } if (num <= 0) { num2 = 1; } else { if (num >= this.Modes) { num2 = 0; } else { num2 = num + 1; } } if (num2 == 0) { if (Item.GetRoom().method_97(Item.GetX, Item.GetY)) { return; } Dictionary<int, AffectedTile> dictionary = Item.GetRoom().GetAffectedTiles(Item.GetBaseItem().Length, Item.GetBaseItem().Width, Item.GetX, Item.GetY, Item.Rot); if (dictionary == null) { dictionary = new Dictionary<int, AffectedTile>(); } foreach (AffectedTile current in dictionary.Values) { if (Item.GetRoom().method_97(current.X, current.Y)) { return; } } } Item.ExtraData = num2.ToString(); Item.UpdateState(); Item.GetRoom().GenerateMaps(); } }
public override void OnRemove(GameClient Session, RoomItem Item) { RoomMusicController roomMusicController = PhoenixEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId).GetRoomMusicController(); roomMusicController.Stop(); roomMusicController.UnLinkRoomOutputItem(); Item.UpdateState(true, true); }
public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_0, bool bool_0) { if (RoomItem_0.ExtraData != "-1") { RoomItem_0.ExtraData = "-1"; RoomItem_0.UpdateState(false, true); RoomItem_0.ReqUpdate(3); } }
public override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRight) { if (UserHasRight && Item.ExtraData == "0") { Item.ExtraData = "1"; Item.UpdateState(false, true); Item.ReqUpdate(4); } }
public override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRight) { if (UserHasRight && Item.ExtraData != "-1") { Item.ExtraData = "-1"; Item.UpdateState(); Item.ReqUpdate(10); } }
public override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRight) { RoomUser @class = null; if (Session != null) { @class = Item.GetRoom().GetRoomUserByHabbo(Session.GetHabbo().Id); if (@class == null) { return; } } if (Session == null || Item.GetRoom().method_99(Item.GetX, Item.GetY, @class.X, @class.Y)) { if (Item.ExtraData != "-1") { if (Request == -1) { Item.ExtraData = "0"; Item.UpdateState(); } else { Item.InteractingUser = @class.HabboId; Item.ExtraData = "-1"; Item.UpdateState(false, true); Item.ReqUpdate(4); } } } else { if (Session != null && @class != null && @class.CanWalk) { try { @class.MoveTo(Item.SquareInFront); } catch { } } } }
public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_0, bool bool_0) { if (bool_0) { int num = 0; if (RoomItem_0.ExtraData.Length > 0) { num = int.Parse(RoomItem_0.ExtraData); } if (int_0 == 0) { if (num <= -1) { num = 0; } else { if (num >= 0) { num = -1; } } } else { if (int_0 >= 1) { if (int_0 == 1) { num--; if (num < 0) { num = 0; } } else { if (int_0 == 2) { num++; if (num >= 100) { num = 0; } } } } } RoomItem_0.ExtraData = num.ToString(); RoomItem_0.UpdateState(); } }
public override void OnTrigger(GameClient Session, RoomItem RoomItem_0, int int_0, bool bool_0) { if (RoomItem_0.ExtraData != "1" && RoomItem_0.GetBaseItem().VendingIds.Count >= 1 && RoomItem_0.InteractingUser == 0u) { if (Session != null) { RoomUser @class = RoomItem_0.GetRoom().GetRoomUserByHabbo(Session.GetHabbo().Id); if (@class == null) { return; } if (!RoomItem_0.GetRoom().method_99(@class.X, @class.Y, RoomItem_0.GetX, RoomItem_0.GetY)) { if ([email protected]) { return; } try { @class.MoveTo(RoomItem_0.SquareInFront); return; } catch { return; } } RoomItem_0.InteractingUser = Session.GetHabbo().Id; @class.CanWalk = false; @class.ClearMovement(true); @class.SetRot(Rotation.Calculate(@class.X, @class.Y, RoomItem_0.GetX, RoomItem_0.GetY)); } RoomItem_0.ReqUpdate(2); RoomItem_0.ExtraData = "1"; RoomItem_0.UpdateState(false, true); } }
internal void ProcessUpdates() { this.UpdateCounter--; if (this.UpdateCounter <= 0) { this.UpdateNeeded = false; this.UpdateCounter = 0; if (this.TimerRunning && this.int_0 > 0) { this.int_0 += 500; this.GetRoom().int_13 += 500; this.UpdateNeeded = true; if (this.int_0 > SongManager.GetSong(Convert.ToInt32(this.ExtraData)).Length) { ServerMessage Message = new ServerMessage(327); Message.AppendInt32(7); Message.AppendInt32(6); Message.AppendInt32(7); Message.AppendInt32(0); Message.AppendInt32(0); this.GetRoom().SendMessage(Message, null); this.int_0 = 1; this.GetRoom().int_13 = 0; } } else { string text = this.GetBaseItem().InteractionType.ToLower(); switch (text) { case "onewaygate": { RoomUser roomUserByHabbo = null; if (this.InteractingUser > 0) { roomUserByHabbo = this.GetRoom().GetRoomUserByHabbo(this.InteractingUser); } if (roomUserByHabbo != null && roomUserByHabbo.X == this.mX && roomUserByHabbo.Y == this.mY && this.Extra1 != "tried") { this.ExtraData = "1"; this.Extra1 = "tried"; roomUserByHabbo.UnlockWalking(); roomUserByHabbo.MoveTo(this.SquareBehind); this.ReqUpdate(0); this.UpdateState(false, true); } else { if ((roomUserByHabbo != null && (roomUserByHabbo.Coordinate != this.SquareBehind)) || this.Extra1 == "tried") { this.Extra1 = ""; this.ExtraData = "0"; this.InteractingUser = 0; this.UpdateState(false, true); this.GetRoom().GenerateMaps(); } else { if (this.ExtraData == "1") { this.ExtraData = "0"; this.UpdateState(false, true); } } } if (roomUserByHabbo == null) { this.InteractingUser = 0u; } break; } case "teleport": { bool flag = false; bool flag2 = false; if (this.InteractingUser > 0u) { RoomUser roomUserByHabbo = this.GetRoom().GetRoomUserByHabbo(this.InteractingUser); if (roomUserByHabbo != null) { if (!(roomUserByHabbo.Coordinate == this.Coordinate)) { roomUserByHabbo.AllowOverride = false; if (roomUserByHabbo.TeleDelay == -1) { roomUserByHabbo.TeleDelay = 1; } if (TeleHandler.IsTeleLinked(this.Id)) { flag2 = true; if (roomUserByHabbo.TeleDelay == 0) { uint num2 = TeleHandler.GetLinkedTele(this.Id); uint num3 = TeleHandler.GetTeleRoomId(num2); if (num3 == this.RoomId) { RoomItem class2 = this.GetRoom().GetItem(num2); if (class2 == null) { roomUserByHabbo.UnlockWalking(); } else { roomUserByHabbo.SetPos(class2.GetX, class2.GetY, class2.GetZ); roomUserByHabbo.SetRot(class2.Rot); class2.ExtraData = "2"; class2.UpdateState(false, true); class2.InteractingUser2 = this.InteractingUser; } } else { if (!roomUserByHabbo.IsBot) { PhoenixEnvironment.GetGame().GetRoomManager().method_5(new TeleUserData(roomUserByHabbo.GetClient().GetMessageHandler(), roomUserByHabbo.GetClient().GetHabbo(), num3, num2)); } } this.InteractingUser = 0u; } else { roomUserByHabbo.TeleDelay--; } } else { roomUserByHabbo.UnlockWalking(); this.InteractingUser = 0u; roomUserByHabbo.MoveTo(this.SquareInFront); } } else { if ((roomUserByHabbo.Coordinate == this.SquareInFront) && roomUserByHabbo.Item == this) { roomUserByHabbo.AllowOverride = true; flag = true; if (roomUserByHabbo.IsWalking && (roomUserByHabbo.GoalX != this.mX || roomUserByHabbo.GoalY != this.mY)) { roomUserByHabbo.ClearMovement(true); } roomUserByHabbo.CanWalk = false; roomUserByHabbo.AllowOverride = true; roomUserByHabbo.MoveTo(this.Coordinate); } else { this.InteractingUser = 0u; } } } else { this.InteractingUser = 0u; } } if (this.InteractingUser2 > 0u) { RoomUser user2 = this.GetRoom().GetRoomUserByHabbo(this.InteractingUser2); if (user2 != null) { flag = true; user2.UnlockWalking(); if (user2.Coordinate == this.Coordinate) { user2.MoveTo(this.SquareInFront); } } this.InteractingUser2 = 0u; } if (flag) { if (this.ExtraData != "1") { this.ExtraData = "1"; this.UpdateState(false, true); } } else { if (flag2) { if (this.ExtraData != "2") { this.ExtraData = "2"; this.UpdateState(false, true); } } else { if (this.ExtraData != "0") { this.ExtraData = "0"; this.UpdateState(false, true); } } } this.ReqUpdate(1); break; } case "bottle": { int num = PhoenixEnvironment.GetRandomNumber(0, 7); this.ExtraData = num.ToString(); this.UpdateState(); break; } case "dice": try { RoomUser @class = this.GetRoom().GetRoomUserByHabbo(this.InteractingUser); if (@class.GetClient().GetHabbo().Rigger > 0) { this.ExtraData = @class.GetClient().GetHabbo().Rigger.ToString(); @class.GetClient().GetHabbo().Rigger = 0; } else { int num = PhoenixEnvironment.GetRandomNumber(1, 6); this.ExtraData = num.ToString(); } } catch { int num = PhoenixEnvironment.GetRandomNumber(1, 6); this.ExtraData = num.ToString(); } this.UpdateState(); break; case "habbowheel": { int num = PhoenixEnvironment.GetRandomNumber(1, 10); this.ExtraData = num.ToString(); this.UpdateState(); break; } case "loveshuffler": if (this.ExtraData == "0") { int num = PhoenixEnvironment.GetRandomNumber(1, 4); this.ExtraData = num.ToString(); this.ReqUpdate(20); } else { if (this.ExtraData != "-1") { this.ExtraData = "-1"; } } this.UpdateState(false, true); break; case "alert": if (this.ExtraData == "1") { this.ExtraData = "0"; this.UpdateState(false, true); } break; case "vendingmachine": if (this.ExtraData == "1") { RoomUser @class = this.GetRoom().GetRoomUserByHabbo(this.InteractingUser); if (@class != null) { @class.UnlockWalking(); int int_ = this.GetBaseItem().VendingIds[PhoenixEnvironment.GetRandomNumber(0, this.GetBaseItem().VendingIds.Count - 1)]; @class.CarryItem(int_); } this.InteractingUser = 0u; this.ExtraData = "0"; this.UpdateState(false, true); } break; case "wf_trg_onsay": case "wf_trg_enterroom": case "wf_trg_furnistate": case "wf_trg_onfurni": case "wf_trg_offfurni": case "wf_trg_gameend": case "wf_trg_gamestart": case "wf_trg_attime": case "wf_trg_atscore": case "wf_act_saymsg": case "wf_act_togglefurni": case "wf_act_givepoints": case "wf_act_moverotate": case "wf_act_matchfurni": case "wf_act_give_phx": case "wf_cnd_trggrer_on_frn": case "wf_cnd_furnis_hv_avtrs": case "wf_cnd_has_furni_on": case "wf_cnd_phx": case "bb_teleport": if (this.ExtraData == "1") { this.ExtraData = "0"; this.UpdateState(false, true); } break; case "wf_trg_timer": if (this.ExtraData == "1") { this.ExtraData = "0"; this.UpdateState(false, true); } if (this.Extra1.Length > 0) { this.GetRoom().method_15(this); this.ReqUpdate(Convert.ToInt32(Convert.ToDouble(this.Extra1) * 2.0)); } break; case "wf_act_moveuser": if (this.dictionary_1.Count > 0 && this.GetRoom().UserList != null) { int num4 = 0; RoomUser[] RoomUser_ = this.GetRoom().UserList; for (int i = 0; i < RoomUser_.Length; i++) { RoomUser class4 = RoomUser_[i]; if (class4 != null) { if (class4.IsBot) { this.dictionary_1.Remove(class4); } if (this.dictionary_1.ContainsKey(class4)) { if (this.dictionary_1[class4] > 0) { if (this.dictionary_1[class4] == 10 && !class4.IsBot) { class4.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().ApplyEffect(4, true); } Dictionary <RoomUser, int> dictionary; RoomUser key; (dictionary = this.dictionary_1)[key = class4] = dictionary[key] - 1; num4++; } else { this.dictionary_1.Remove(class4); class4.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().ApplyEffect(0, true); } } } } if (num4 > 0) { this.ReqUpdate(0); } else { this.dictionary_1.Clear(); } } break; case "counter": if (this.TimerRunning && this.Extra1 != "1") { this.ExtraData = Convert.ToString(Convert.ToInt32(this.ExtraData) - 1); if (Convert.ToInt32(this.ExtraData) <= 0) { this.ExtraData = "0"; this.TimerRunning = false; this.GetRoom().method_89(0, this, true); } this.UpdateState(true, true); this.GetRoom().method_16((double)Convert.ToInt32(this.ExtraData)); this.Extra1 = "1"; this.ReqUpdate(1); } else { if (this.TimerRunning) { this.GetRoom().method_16((double)Convert.ToInt32(this.ExtraData) - 0.5); this.Extra1 = "0"; this.ReqUpdate(1); } } break; } } } }
public override void OnPlace(GameClient Session, RoomItem RoomItem_0) { RoomItem_0.ExtraData = "0"; RoomItem_0.UpdateState(true, false); }
public override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRight) { if (UserHasRight) { int num = 0; if (Item.ExtraData.Length > 0) { num = int.Parse(Item.ExtraData); } if (Request == 0) { if (num <= -1) { num = 0; } else { if (num >= 0) { num = -1; } } } else { if (Request >= 1) { if (Request == 1) { if (!Item.TimerRunning) { Item.TimerRunning = true; Item.ReqUpdate(1); if (Session != null) { RoomUser RoomUser_ = Session.GetHabbo().CurrentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id); Item.GetRoom().method_14(RoomUser_); } } else { Item.TimerRunning = false; } } else { if (Request == 2) { num += 60; if (num >= 600) { num = 0; } } } } } Item.ExtraData = num.ToString(); Item.UpdateState(true, true); } }
public void method_91(RoomItem RoomItem_0, RoomUser RoomUser_1) { RoomItem_0.ExtraData = "1"; RoomItem_0.UpdateState(false, true); RoomItem_0.ReqUpdate(1); List<RoomItem> list = new List<RoomItem>(); RoomUser_1.ClearMovement(true); foreach (RoomItem @class in this.Hashtable_0.Values) { if (@class != RoomItem_0 && !(@class.GetBaseItem().InteractionType.ToLower() != "bb_teleport")) { list.Add(@class); } } if (list.Count > 0) { Random random = new Random((int)PhoenixEnvironment.GetUnixTimestamp() * (int)RoomUser_1.HabboId); int index = random.Next(0, list.Count); list[index].ExtraData = "1"; list[index].UpdateState(false, true); list[index].ReqUpdate(1); this.byte_0[RoomUser_1.X, RoomUser_1.Y] = 1; this.byte_0[list[index].GetX, list[index].GetY] = 1; RoomUser_1.SetPos(list[index].GetX, list[index].GetY, list[index].GetZ); RoomUser_1.UpdateNeeded = true; } }
public bool method_21(RoomUser RoomUser_1, RoomItem RoomItem_0, string string_10) { bool result; try { if (this.bool_6 || this.bool_7) { result = false; } else { bool flag = false; int num = 0; int num2 = 0; bool flag2 = false; string text = RoomItem_0.GetBaseItem().InteractionType.ToLower(); switch (text) { case "wf_trg_onsay": if (string_10.Contains(RoomItem_0.Extra1.ToLower())) { flag = true; } break; case "wf_trg_enterroom": if (RoomItem_0.Extra1 == "" || RoomItem_0.Extra1 == RoomUser_1.GetClient().GetHabbo().Username) { flag = true; } break; case "wf_trg_furnistate": if (RoomItem_0.Extra2.Length > 0) { string[] collection = RoomItem_0.Extra2.Split(new char[] { ',' }); List<string> list = new List<string>(collection); foreach (string current in list) { if (current == string_10) { flag = true; } } } break; case "wf_trg_onfurni": if (RoomItem_0.Extra2.Length > 0) { string[] collection = RoomItem_0.Extra2.Split(new char[] { ',' }); List<string> list = new List<string>(collection); List<string> list2 = list; foreach (string current in list) { if (!(current != string_10)) { RoomItem @class = this.GetItem(Convert.ToUInt32(string_10)); if (@class != null) { flag = true; } else { list2.Remove(current); } } } RoomItem_0.Extra2 = string.Join(",", list2.ToArray()); } break; case "wf_trg_offfurni": if (RoomItem_0.Extra2.Length > 0) { string[] collection = RoomItem_0.Extra2.Split(new char[] { ',' }); List<string> list = new List<string>(collection); List<string> list2 = list; foreach (string current in list) { if (!(current != string_10)) { RoomItem @class = this.GetItem(Convert.ToUInt32(string_10)); if (@class != null) { flag = true; } else { list2.Remove(current); } } } RoomItem_0.Extra2 = string.Join(",", list2.ToArray()); } break; case "wf_trg_gameend": if (string_10 == "GameEnded") { flag = true; } break; case "wf_trg_gamestart": if (string_10 == "GameBegun") { flag = true; } break; case "wf_trg_timer": if (string_10 == "Timer") { flag = true; } break; case "wf_trg_attime": if (string_10 == "AtTime") { flag = true; } break; case "wf_trg_atscore": if (string_10 == "TheScore") { flag = true; } break; } try { List<RoomItem> list3 = this.method_93(RoomItem_0.GetX, RoomItem_0.GetY); if (list3 == null) { result = false; return result; } foreach (RoomItem current2 in list3) { text = current2.GetBaseItem().InteractionType.ToLower(); if (text != null) { int num4; if (!(text == "wf_cnd_phx")) { if (!(text == "wf_cnd_trggrer_on_frn")) { string[] collection; List<string> list; List<RoomItem> list4; if (!(text == "wf_cnd_furnis_hv_avtrs")) { if (!(text == "wf_cnd_has_furni_on")) { continue; } num4 = num2; num++; current2.ExtraData = "1"; current2.UpdateState(false, true); current2.ReqUpdate(1); current2.method_10(); if (current2.Extra2.Length <= 0) { continue; } collection = current2.Extra2.Split(new char[] { ',' }); list = new List<string>(collection); list4 = new List<RoomItem>(); foreach (string current3 in list) { list4.Add(this.GetItem(Convert.ToUInt32(current3))); } using (List<RoomItem>.Enumerator enumerator3 = list4.GetEnumerator()) { while (enumerator3.MoveNext()) { RoomItem current4 = enumerator3.Current; if (current4 != null) { Dictionary<int, AffectedTile> dictionary = current4.GetAffectedTiles; if (dictionary == null) { dictionary = new Dictionary<int, AffectedTile>(); } List<RoomItem> list5 = new List<RoomItem>(this.method_45(current4.GetX, current4.GetY)); if (list5.Count > 1 && num4 + 1 != num2) { num2++; break; } foreach (AffectedTile current5 in dictionary.Values) { list5 = new List<RoomItem>(this.method_45(current5.X, current5.Y)); if (list5.Count > 1 && num4 + 1 != num2) { num2++; break; } } } } continue; } } num++; current2.ExtraData = "1"; current2.UpdateState(false, true); current2.ReqUpdate(1); current2.method_10(); if (current2.Extra2.Length <= 0) { continue; } collection = current2.Extra2.Split(new char[] { ',' }); list = new List<string>(collection); list4 = new List<RoomItem>(); foreach (string current3 in list) { list4.Add(this.GetItem(Convert.ToUInt32(current3))); } bool flag3 = true; foreach (RoomItem current4 in list4) { if (current4 != null) { bool flag4 = false; Dictionary<int, AffectedTile> dictionary = current4.GetAffectedTiles; if (dictionary == null) { dictionary = new Dictionary<int, AffectedTile>(); } if (this.SquareHasUsers(current4.GetX, current4.GetY)) { flag4 = true; } foreach (AffectedTile current5 in dictionary.Values) { if (this.SquareHasUsers(current5.X, current5.Y)) { flag4 = true; break; } } if (!flag4) { flag3 = false; } } } if (flag3) { num2++; continue; } continue; } else { num4 = num2; num++; current2.ExtraData = "1"; current2.UpdateState(false, true); current2.ReqUpdate(1); current2.method_10(); if (current2.Extra2.Length <= 0) { continue; } string[] collection = current2.Extra2.Split(new char[] { ',' }); List<string> list = new List<string>(collection); List<RoomItem> list4 = new List<RoomItem>(); foreach (string current3 in list) { list4.Add(this.GetItem(Convert.ToUInt32(current3))); } if (RoomUser_1 == null) { continue; } using (List<RoomItem>.Enumerator enumerator3 = list4.GetEnumerator()) { while (enumerator3.MoveNext()) { RoomItem current4 = enumerator3.Current; if (current4 != null) { Dictionary<int, AffectedTile> dictionary = current4.GetAffectedTiles; if (dictionary == null) { dictionary = new Dictionary<int, AffectedTile>(); } if (RoomUser_1.X == current4.GetX && RoomUser_1.Y == current4.GetY && num4 + 1 != num2) { num2++; break; } foreach (AffectedTile current5 in dictionary.Values) { if (RoomUser_1.X == current5.X && RoomUser_1.Y == current5.Y && num4 + 1 != num2) { num2++; break; } } } } continue; } } } num4 = num2; num++; current2.ExtraData = "1"; current2.UpdateState(false, true); current2.ReqUpdate(1); if (current2.Extra1.Length > 0) { string string_11 = current2.Extra1.Split(new char[] { ':' })[0].ToLower(); string string_12 = current2.Extra1.Split(new char[] { ':' })[1]; if (RoomUser_1 != null) { if (!RoomUser_1.IsBot && this.IsPhxMagicAllowed(RoomUser_1, string_11, string_12)) { num2++; } } else { RoomUser[] array = this.UserList; for (int i = 0; i < array.Length; i++) { RoomUser class2 = array[i]; if (class2 != null && !class2.IsBot && this.IsPhxMagicAllowed(class2, string_11, string_12) && num4 + 1 != num2) { num2++; break; } } } } } } if (num != num2) { result = false; return result; } } catch { } if (flag && num == num2) { RoomItem_0.ExtraData = "1"; RoomItem_0.UpdateState(false, true); RoomItem_0.ReqUpdate(1); List<RoomItem> list6 = this.method_93(RoomItem_0.GetX, RoomItem_0.GetY); if (list6 == null) { result = false; return result; } bool flag5 = false; foreach (RoomItem current2 in list6) { if (current2.GetBaseItem().InteractionType.ToLower() == "wf_xtra_random") { flag5 = true; break; } } if (flag5) { List<RoomItem> list7 = new List<RoomItem>(); Random random = new Random(); while (list6.Count != 0) { int index = random.Next(0, list6.Count); list7.Add(list6[index]); list6.RemoveAt(index); } list6 = list7; } foreach (RoomItem current2 in list6) { if (flag5 && flag2) { break; } text = current2.GetBaseItem().InteractionType.ToLower(); switch (text) { case "wf_act_give_phx": current2.ExtraData = "1"; current2.UpdateState(false, true); current2.ReqUpdate(1); if (current2.Extra1.Length > 0) { string string_11 = current2.Extra1.Split(new char[] { ':' })[0].ToLower(); string string_12 = current2.Extra1.Split(new char[] { ':' })[1]; if (RoomUser_1 != null) { if (!RoomUser_1.IsBot) { this.RunPhxMagic(RoomUser_1, string_11, string_12); } } else { RoomUser[] array = this.UserList; for (int i = 0; i < array.Length; i++) { RoomUser class2 = array[i]; if (class2 != null && !class2.IsBot) { this.RunPhxMagic(class2, string_11, string_12); } } } flag2 = true; } break; case "wf_act_saymsg": current2.ExtraData = "1"; current2.UpdateState(false, true); current2.ReqUpdate(1); if (current2.Extra1.Length > 0) { string text2 = current2.Extra1; text2 = ChatCommandHandler.ApplyWordFilter(text2); if (text2.Length > 100) { text2 = text2.Substring(0, 100); } if (RoomUser_1 != null) { if (!RoomUser_1.IsBot) { RoomUser_1.GetClient().GetHabbo().Sendselfwhisper(text2); } } else { RoomUser[] array = this.UserList; for (int i = 0; i < array.Length; i++) { RoomUser class2 = array[i]; if (class2 != null && !class2.IsBot) { class2.GetClient().GetHabbo().Sendselfwhisper(text2); } } } flag2 = true; } break; case "wf_act_moveuser": current2.ExtraData = "1"; current2.UpdateState(false, true); current2.ReqUpdate(1); current2.method_10(); if (current2.Extra2.Length > 0) { string[] collection = current2.Extra2.Split(new char[] { ',' }); List<string> list = new List<string>(collection); Random random2 = new Random(); int num5 = random2.Next(0, list.Count - 1); RoomItem class3 = this.GetItem(Convert.ToUInt32(list[num5])); if (class3 != null) { if (RoomUser_1 != null) { this.byte_0[RoomUser_1.X, RoomUser_1.Y] = 1; this.byte_0[RoomUser_1.SetX, RoomUser_1.SetY] = 1; this.byte_0[class3.GetX, class3.GetY] = 1; RoomUser_1.IsWalking = false; RoomUser_1.SetX = class3.GetX; RoomUser_1.SetY = class3.GetY; RoomUser_1.SetZ = class3.GetZ; RoomUser_1.SetPos(class3.GetX, class3.GetY, class3.GetZ); RoomUser_1.UpdateNeeded = true; if (!current2.dictionary_1.ContainsKey(RoomUser_1)) { current2.dictionary_1.Add(RoomUser_1, 10); } if (RoomUser_1.Riding != null) { RoomUser_1.Riding.Rider = null; RoomUser_1.Target = null; RoomUser_1.Riding = null; } this.UpdateUserStatus(RoomUser_1, true, false); } else { RoomUser[] array = this.UserList; for (int i = 0; i < array.Length; i++) { RoomUser class2 = array[i]; if (class2 != null) { this.byte_0[class2.X, class2.Y] = 1; this.byte_0[class3.GetX, class3.GetY] = 1; class2.SetPos(class3.GetX, class3.GetY, class3.GetZ); class2.UpdateNeeded = true; if (!current2.dictionary_1.ContainsKey(class2)) { current2.dictionary_1.Add(class2, 10); } } } } flag2 = true; } } break; case "wf_act_togglefurni": current2.ExtraData = "1"; current2.UpdateState(false, true); current2.ReqUpdate(1); if (current2.Extra2.Length > 0) { string[] collection = current2.Extra2.Split(new char[] { ',' }); IEnumerable<string> enumerable = new List<string>(collection); List<string> list2 = enumerable.ToList<string>(); foreach (string current in enumerable) { RoomItem class3 = this.GetItem(Convert.ToUInt32(current)); if (class3 != null) { class3.Interactor.OnTrigger(null, class3, 0, true); } else { list2.Remove(current); } } flag2 = true; } break; case "wf_act_givepoints": current2.ExtraData = "1"; current2.UpdateState(false, true); current2.ReqUpdate(1); if (RoomUser_1 != null && current2.Extra1.Length > 0) { this.method_88(RoomUser_1.int_14 + 2, Convert.ToInt32(current2.Extra1), current2); flag2 = true; } break; case "wf_act_moverotate": current2.ExtraData = "1"; current2.UpdateState(false, true); current2.ReqUpdate(1); current2.method_9(); if (current2.Extra3.Length > 0) { string[] collection = current2.Extra3.Split(new char[] { ',' }); IEnumerable<string> enumerable2 = new List<string>(collection); foreach (string current in enumerable2) { RoomItem class3 = this.GetItem(Convert.ToUInt32(current)); if (class3 != null) { if (current2.Extra1 != "0" && current2.Extra1 != "") { Coord gstruct1_ = class3.SquareInFront; int num5 = 0; int num6 = 0; int num7 = 0; if (current2.Extra1 == "1") { Random random3 = new Random(); num5 = random3.Next(1, 5); } else { if (current2.Extra1 == "2") { Random random3 = new Random(); num6 = random3.Next(1, 3); } else { if (current2.Extra1 == "3") { Random random3 = new Random(); num7 = random3.Next(1, 3); } } } if (current2.Extra1 == "4" || num5 == 1 || num7 == 1) { gstruct1_ = class3.method_1(4); } else { if (current2.Extra1 == "5" || num5 == 2 || num6 == 1) { gstruct1_ = class3.method_1(6); } else { if (current2.Extra1 == "6" || num5 == 3 || num7 == 2) { gstruct1_ = class3.method_1(0); } else { if (current2.Extra1 == "7" || num5 == 4 || num6 == 2) { gstruct1_ = class3.method_1(2); } } } } if (this.method_37(gstruct1_.X, gstruct1_.Y, true, true, false, true, false) && class3.GetBaseItem().InteractionType != "wf_trg_timer") { this.method_41(class3, gstruct1_, current2.Id, class3.GetZ); } } if (current2.Extra2.Length > 0 && current2.Extra2 != "0" && current2.Extra2 != "") { int num5 = 0; if (current2.Extra2 == "1") { num5 = class3.Rot + 2; if (num5 > 6) { num5 = 0; } } else { if (current2.Extra2 == "2") { num5 = class3.Rot - 2; if (num5 < 0) { num5 = 6; } } else { if (current2.Extra2 == "3") { Random random3 = new Random(); num5 = random3.Next(1, 5); if (num5 == 1) { num5 = 0; } else { if (num5 == 2) { num5 = 2; } else { if (num5 == 3) { num5 = 4; } else { if (num5 == 4) { num5 = 6; } } } } } } } if (current2.GetRoom().method_79(null, class3, class3.GetX, class3.GetY, num5, false, true, false)) { flag2 = true; } } } } flag2 = true; } break; case "wf_act_matchfurni": current2.ExtraData = "1"; current2.UpdateState(false, true); current2.ReqUpdate(1); current2.method_9(); if (current2.Extra3.Length > 0 && current2.Extra1.Length > 0) { string[] collection = current2.Extra3.Split(new char[] { ',' }); IEnumerable<string> enumerable = new List<string>(collection); string[] collection2 = current2.Extra1.Split(new char[] { ';' }); List<string> list8 = new List<string>(collection2); int num8 = 0; foreach (string current in enumerable) { RoomItem class3 = this.GetItem(Convert.ToUInt32(current)); if (class3 != null && !(class3.GetBaseItem().InteractionType.ToLower() == "dice")) { string[] collection3 = list8[num8].Split(new char[] { ',' }); List<string> list9 = new List<string>(collection3); bool flag6 = false; bool flag7 = false; if (current2.Extra2 != "" && class3 != null) { int int_ = class3.GetX; int int_2 = class3.GetY; if (current2.Extra2.StartsWith("I")) { class3.ExtraData = list9[4]; flag7 = true; } if (current2.Extra2.Substring(1, 1) == "I") { class3.Rot = Convert.ToInt32(list9[3]); flag6 = true; } if (current2.Extra2.EndsWith("I")) { int_ = Convert.ToInt32(list9[0]); int_2 = Convert.ToInt32(list9[1]); flag6 = true; } if (flag6) { this.method_40(class3, int_, int_2, current2.Id, class3.GetZ); } if (flag7) { class3.UpdateState(false, true); } this.GenerateMaps(); } num8++; } } } flag2 = true; break; } } } result = flag2; } } catch { result = false; } return result; }
public override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRight) { if (this.Modes != 0 && (UserHasRight || Item.GetBaseItem().InteractionType.ToLower() == "switch")) { if (Item.GetBaseItem().InteractionType.ToLower() == "switch" && Session != null) { RoomUser @class = Session.GetHabbo().CurrentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id); if (@class.Coordinate.X - Item.SquareInFront.X > 1 || @class.Coordinate.Y - Item.SquareInFront.Y > 1) { if (@class.CanWalk) { @class.MoveTo(Item.Coordinate); return; } return; } } int num = 0; if (Item.ExtraData.Length > 0) { num = int.Parse(Item.ExtraData); } int num2; if (num <= 0) { num2 = 1; } else { if (num >= this.Modes) { num2 = 0; } else { num2 = num + 1; } } if (Item.GetBaseItem().Name.Contains("jukebox")) { ServerMessage Message = new ServerMessage(327u); if (num2 == 1) { Message.AppendInt32(7); Message.AppendInt32(6); Message.AppendInt32(7); Message.AppendInt32(0); Message.AppendInt32(0); Item.int_0 = 1; Item.TimerRunning = true; Item.UpdateNeeded = true; } else { Message.AppendInt32(-1); Message.AppendInt32(-1); Message.AppendInt32(-1); Message.AppendInt32(-1); Message.AppendInt32(0); Item.int_0 = 0; Item.TimerRunning = false; Item.GetRoom().int_13 = 0; } Item.GetRoom().SendMessage(Message, null); } double double_ = Item.TotalHeight; Item.ExtraData = num2.ToString(); Item.UpdateState(); if (double_ != Item.TotalHeight) { Dictionary<int, AffectedTile> dictionary = Item.GetAffectedTiles; if (dictionary == null) { dictionary = new Dictionary<int, AffectedTile>(); } Item.GetRoom().UpdateUserStatus(Item.GetRoom().GetUserForSquare(Item.GetX, Item.GetY), true, false); foreach (AffectedTile current in dictionary.Values) { Item.GetRoom().UpdateUserStatus(Item.GetRoom().GetUserForSquare(current.X, current.Y), true, false); } } if (Session != null) { RoomUser RoomUser_ = Session.GetHabbo().CurrentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id); Item.GetRoom().method_10(RoomUser_, Item); } } }