public static void SaveWired(GameClient Session, RoomItem Item, ClientMessage Request) { if (!Item.IsWired) { return; } Room Room = Item.GetRoom(); WiredHandler Handler = Room.GetWiredHandler(); switch (Item.GetBaseItem().InteractionType) { #region Triggers case InteractionType.triggerroomenter: { int Unknown = Request.PopWiredInt32(); string User = Request.PopFixedString(); WiredItem WItem = Handler.GetWired(Item); WItem.OtherString = User; Handler.ReloadWired(WItem); break; } case InteractionType.triggeronusersay: { int Unknown = Request.PopWiredInt32(); int OwnerOnly = Request.PopWiredInt32(); string Message = Request.PopFixedString(); WiredItem WItem = Handler.GetWired(Item); WItem.OtherString = Message; WItem.OtherBool = (OwnerOnly == 1); Handler.ReloadWired(WItem); break; } case InteractionType.triggerrepeater: { int Unknown = Request.PopWiredInt32(); int Delay = Request.PopWiredInt32() * 500; WiredItem WItem = Handler.GetWired(Item); WItem.Delay = Delay; Handler.ReloadWired(WItem); break; } case InteractionType.triggerstatechanged: { int Unknown = Request.PopWiredInt32(); string Unknown2 = Request.PopFixedString(); List<RoomItem> Items = GetFurniItems(Request, Room); int Delay = Request.PopWiredInt32(); WiredItem WItem = Handler.GetWired(Item); WItem.Delay = Delay * 500; WItem.Items = Items; Handler.ReloadWired(WItem); break; } case InteractionType.triggerwalkonfurni: { int Unknown = Request.PopWiredInt32(); string Message = Request.PopFixedString(); List<RoomItem> Items = GetFurniItems(Request, Room); int Delay = Request.PopWiredInt32(); WiredItem WItem = Handler.GetWired(Item); WItem.Delay = Delay * 500; WItem.Items = Items; Handler.ReloadWired(WItem); break; } case InteractionType.triggerwalkofffurni: { int Unknown = Request.PopWiredInt32(); string Message = Request.PopFixedString(); List<RoomItem> Items = GetFurniItems(Request, Room); int Delay = Request.PopWiredInt32(); WiredItem WItem = Handler.GetWired(Item); WItem.Delay = Delay * 500; WItem.Items = Items; Handler.ReloadWired(WItem); break; } #endregion #region Effects case InteractionType.actionkickuser: case InteractionType.actionshowmessage: { int Unknown = Request.PopWiredInt32(); string Message = Request.PopFixedString(); WiredItem WItem = Handler.GetWired(Item); WItem.OtherString = Message; Handler.ReloadWired(WItem); break; } case InteractionType.actionteleportto: { int Unknown = Request.PopWiredInt32(); string Unknown2 = Request.PopFixedString(); List<RoomItem> Items = GetFurniItems(Request, Room); int Delay = Request.PopWiredInt32(); WiredItem WItem = Handler.GetWired(Item); WItem.Items = Items; WItem.Delay = Delay * 500; Handler.ReloadWired(WItem); break; } case InteractionType.actiontogglestate: { int Unknown = Request.PopWiredInt32(); string Unknown2 = Request.PopFixedString(); List<RoomItem> Items = GetFurniItems(Request, Room); int Delay = Request.PopWiredInt32(); WiredItem WItem = Handler.GetWired(Item); WItem.Items = Items; WItem.Delay = Delay * 500; Handler.ReloadWired(WItem); break; } case InteractionType.actionmoverotate: { int Unknown = Request.PopWiredInt32(); int Movement = Request.PopWiredInt32(); int Rotation = Request.PopWiredInt32(); string Unknown2 = Request.PopFixedString(); List<RoomItem> Items = GetFurniItems(Request, Room); int Delay = Request.PopWiredInt32(); WiredItem WItem = Handler.GetWired(Item); WItem.Items = Items; WItem.Delay = Delay * 500; WItem.OtherString = Rotation + ";" + Movement; Handler.ReloadWired(WItem); break; } #endregion #region Conditions case InteractionType.conditionfurnishaveusers: case InteractionType.conditionfurnihasfurni: case InteractionType.conditiontriggeronfurni: { int Unknown = Request.PopWiredInt32(); string Unknown2 = Request.PopFixedString(); List<RoomItem> Items = GetFurniItems(Request, Room); WiredItem WItem = Handler.GetWired(Item); WItem.Items = Items; Handler.ReloadWired(WItem); break; } #endregion } Session.SendMessage(new ServerMessage(Outgoing.SaveWired)); }