wf_act_match_to_sshot

Results 1 to 3 of 3
  1. #1
    Sorcerer Supreme Yannickzz is offline
    Member +Rank
    May 2009 Join Date
    The NetherlandsLocation
    348Posts

    Wired problem > willing to pay!

    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:

    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 81
    I really have no idea how to handle this error, and I would appreciate all the suggestions on how to fix it! 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...

    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);
                    }
                }
            }
        }
    }
    Last edited by Yannickzz; 05-05-14 at 04:31 PM.


  2. #2
    Sorcerer Supreme Yannickzz is offline
    Member +Rank
    May 2009 Join Date
    The NetherlandsLocation
    348Posts

    Re: wf_act_match_to_sshot

    SOLVED ///////////Also, what's up with this weird Wired stacking bug? All of my stack_heights are set on 0.5...

    Last edited by Yannickzz; 04-05-14 at 11:55 PM.

  3. #3
    Sorcerer Supreme Yannickzz is offline
    Member +Rank
    May 2009 Join Date
    The NetherlandsLocation
    348Posts

    Re: wf_act_match_to_sshot

    I've been working on this since a week now, and still haven't found the answer. I'm sure that there is someone out here that knows how to fix the problem described in the main post, I'm even willing to pay you 10 bucks if you fix it... Just contact me. Once fixed, I will be glad to share my emulator with all of you.
    Last edited by Yannickzz; 05-05-14 at 12:07 AM.



Advertisement