Hey,
So, I've been trying to get the following wired to work since a few weeks now, but can't figure out how to:"wf_act_match_to_sshot"
When double clicking the furni in my hotel it only gives me a packet error, and doesn't open any window or something where I can configure the wired. The packet error is as follows:
I really have no idea how to handle this error, and I would appreciate all the suggestions on how to fix it!Code:Error in packet [475] BODY: [0]~ [0][0][0][0]: System.NullReferenceException: Object reference not set to an instance of an object. at Silverwave.HabboHotel.Items.Interactor.InteractorWired.OnTrigger(GameClient Session, RoomItem Item, Int32 Request, Boolean HasRights) in C:\Users\Administrator\Desktop\WonderHotel\Plus Emulator\HabboHotel\Items\Interactor\InteractorWired.cs:line 45 at Silverwave.Messages.GameClientMessageHandler.TriggerItem() in C:\Users\Administrator\Desktop\WonderHotel\Plus Emulator\Messages\Requests\Rooms.cs:line 2540 at Silverwave.Messages.StaticMessageHandlers.SharedPacketLib.TriggerItem(GameClientMessageHandler handler) in C:\Users\Administrator\Desktop\WonderHotel\Plus Emulator\Messages\StaticMessageHandlers\SharedPacketLib.cs:line 540 at Silverwave.Messages.StaticMessageHandlers.StaticClientMessageHandler.HandlePacket(GameClientMessageHandler handler, ClientMessage message) in C:\Users\Administrator\Desktop\WonderHotel\Plus Emulator\Messages\StaticMessageHandlers\StaticClientMessageHandler.cs:line 33 at Silverwave.Messages.GameClientMessageHandler.HandleRequest(ClientMessage request) in C:\Users\Administrator\Desktop\WonderHotel\Plus Emulator\Messages\GameClientMessageHander.cs:line 43 at Silverwave.HabboHotel.GameClients.GameClient.parser_onNewPacket(ClientMessage Message) in C:\Users\Administrator\Desktop\WonderHotel\Plus Emulator\HabboHotel\GameClients\GameClient.cs:line 81Because personally I think that I'm missing a file in my 'Handlers' folder in Rooms/Wired, but I don't know what this file should contain. But I do have the PositionReset.cs file in my 'WiredHandlers' folder...
Code:namespace Silverwave.HabboHotel.Rooms.Wired.WiredHandlers.Effects { using Silverwave.HabboHotel.Items; using Silverwave.HabboHotel.Rooms; using Silverwave.HabboHotel.Rooms.Games; using Silverwave.HabboHotel.Rooms.Wired; using Silverwave.HabboHotel.Rooms.Wired.WiredHandlers; using Silverwave.Messages; using HabboEvents; using Silverwave.HabboHotel.Rooms.Wired.WiredHandlers.Interfaces; using Database_Manager.Database.Session_Details.Interfaces; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Runtime.InteropServices; internal class PositionReset : IWiredTrigger, IWiredCycleable, IWiredEffect { private int cycles; private int delay; private bool disposed; private WiredHandler handler; private uint itemID; private List<RoomItem> items; private RoomItemHandling roomItemHandler; public PositionReset(List<RoomItem> items, int delay, RoomItemHandling roomItemHandler, WiredHandler handler, uint itemID) { this.items = items; this.delay = delay; this.roomItemHandler = roomItemHandler; this.cycles = 0; this.itemID = itemID; this.handler = handler; this.disposed = false; } public void DeleteFromDatabase(IQueryAdapter dbClient) { dbClient.runFastQuery("DELETE FROM trigger_item WHERE trigger_id = '" + this.itemID + "'"); dbClient.runFastQuery("DELETE FROM trigger_in_place WHERE original_trigger = '" + this.itemID + "'"); } public void Dispose() { this.disposed = true; this.roomItemHandler = null; this.handler = null; if (this.items != null) { this.items.Clear(); } this.items = null; } public bool Disposed() { return this.disposed; } public bool Handle(RoomUser user, Team team, RoomItem item) { this.cycles = 0; if (this.delay == 0) { return this.HandleItems(); } this.handler.RequestCycle(this); return false; } private bool HandleItems() { this.handler.OnEvent(this.itemID); bool flag = false; foreach (RoomItem item in this.items) { int oldx = item.GetX; int oldy = item.GetY; double oldz = item.GetZ; int x = GetPosition(this.itemID, item.Id, "x"); int y = GetPosition(this.itemID, item.Id, "y"); int z = GetPosition(this.itemID, item.Id, "z"); if (this.roomItemHandler.SetFloorItem(null, item, x, y, z, false, false, true)) { ServerMessage mMessage = new ServerMessage(Outgoing.ObjectOnRoller); mMessage.AppendInt32(oldx); mMessage.AppendInt32(oldy); mMessage.AppendInt32(x); mMessage.AppendInt32(y); mMessage.AppendInt32(1); mMessage.AppendInt32(item.Id); mMessage.AppendString(TextHandling.GetString(oldz)); mMessage.AppendString(TextHandling.GetString(z)); mMessage.AppendInt32(item.Id); item.GetRoom().SendMessage(mMessage); item.ExtraData = GetPosition2(itemID, item.Id, "extra"); item.UpdateState(); if (item.GetBaseItem().InteractionType == InteractionType.gate) { item.GetRoom().GetGameMap().updateMapForItem(item); } flag = true; } } return flag; } public bool IsSpecial(out SpecialEffects function) { function = SpecialEffects.None; return false; } public string GetPosition2(uint TriggerId, uint ItemId, string PosType) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT original_" + PosType + " FROM trigger_in_place WHERE original_trigger = '" + TriggerId + "' AND triggers_item = '" + ItemId + "'"); return dbClient.getString(); } } public int GetPosition(uint TriggerId, uint ItemId, string PosType) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT original_" + PosType + " FROM trigger_in_place WHERE original_trigger = '" + TriggerId + "' AND triggers_item = '" + ItemId + "'"); return dbClient.getInteger(); } } public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom) { dbClient.setQuery("SELECT trigger_data FROM trigger_item WHERE trigger_id = @id "); dbClient.addParameter("id", (int) this.itemID); DataRow row = dbClient.getRow(); if (row != null) { this.delay = Convert.ToInt32(row[0].ToString()); } else { this.delay = 20; } dbClient.setQuery("SELECT triggers_item FROM trigger_in_place WHERE original_trigger = " + this.itemID); DataTable table = dbClient.getTable(); foreach (DataRow row2 in table.Rows) { RoomItem item = insideRoom.GetRoomItemHandler().GetItem(Convert.ToUInt32(row2[0])); if ((item != null) && !this.items.Contains(item)) { this.items.Add(item); } } } public bool OnCycle() { this.cycles++; if (this.cycles > this.delay) { this.HandleItems(); return false; } return true; } public void SaveToDatabase(IQueryAdapter dbClient) { WiredUtillity.SaveTriggerItem(dbClient, (int) this.itemID, "integer", string.Empty, this.delay.ToString(), false); lock (this.items) { dbClient.runFastQuery("DELETE FROM trigger_in_place WHERE original_trigger = '" + this.itemID + "'"); foreach (RoomItem item in this.items) { WiredUtillity.SaveTrigger(dbClient, (int) this.itemID, (int) item.Id, item.GetX, item.GetY, item.Rot, item.GetZ, item.ExtraData); } } } } }


Because personally I think that I'm missing a file in my 'Handlers' folder in Rooms/Wired, but I don't know what this file should contain. But I do have the PositionReset.cs file in my 'WiredHandlers' folder...
Reply With Quote

