Ir al contenido principal

[BCSTORM] Furni-matic/Recycler/Ecotron 99%



He arreglado BCstorm r63a función recicladora de r63b.
Encabezados ids para bcstorm default construir si tiene diferente build necesita cambiar los identificadores de paquetes ..

aumentar GameClientMessageHandler.cs:

Code:
 internal void GetRecyclerStatus()
        {
            GetResponse().Init(2179);
            GetResponse().AppendInt32(1);
            GetResponse().AppendInt32(0);
            SendResponse();
        }
Reemplazar elementos antiguos reciclados a esto:

Code:
 internal void RecycleItems()
        {
            if (this.Session.GetHabbo().InRoom)
            {
                int num = this.Request.PopWiredInt32();
                if (num > 0)
                {
                    uint num3;
                    int numde;
                    for (int i = 0; i < num; i++)
                    {
                        UserItem item = this.Session.GetHabbo().GetInventoryComponent().GetItem(this.Request.PopWiredUInt());
                        if ((item != null) && item.GetBaseItem().AllowRecycle)
                        {
                            this.Session.GetHabbo().GetInventoryComponent().RemoveItem(item.Id, false);
                        }
                        else
                        {
                            return;
                        }
                    }
                    EcotronReward randomEcotronReward = ButterflyEnvironment.GetGame().GetCatalog().GetRandomEcotronReward();
                    /*using (IQueryAdapter adapter = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                    {
                        if (adapter.dbType == DatabaseType.MSSQL)
                        {
                            adapter.setQuery("INSERT INTO items_users (user_id,base_item,extra_data) OUTPUT INSERTED.* VALUES ( @userid ,1478, @timestamp)");
                        }
                        else
                        {
                            adapter.setQuery("INSERT INTO items (base_id) VALUES (60627)");
                        }
                         numde = (int)adapter.insertQuery();
                        adapter.setQuery("INSERT INTO items_users (user_id,item_id) VALUES ( @userid ,'" + numde + "')");
                        adapter.addParameter("userid", (int) this.Session.GetHabbo().Id);
                        adapter.addParameter("timestamp", DateTime.Now.ToLongDateString());
                     
                        
                        adapter.runFastQuery(string.Concat(new object[] { "INSERT INTO user_presents (item_id,base_id,amount,extra_data) VALUES (", numde, ",", randomEcotronReward.BaseId, ",1,'')" }));
                    }
                    this.Session.GetHabbo().GetInventoryComponent().RunDBUpdate();
                    this.Session.GetHabbo().GetInventoryComponent().UpdateItems(false);
                     * */
                    IQueryAdapter adapter;
                    uint num10;
                    using (adapter = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                    {
                        if (adapter.dbType == DatabaseType.MSSQL)
                        {
                            adapter.setQuery(string.Concat(new object[] { "INSERT INTO items (base_id, rareid) OUTPUT INSERTED.* VALUES ('60627','')" }));
                        }
                        else
                        {
                            adapter.setQuery(string.Concat(new object[] { "INSERT INTO items (base_id, rareid) VALUES ('60627','0')" }));
                        }
                       num10 = (uint)adapter.insertQuery();
                        adapter.runFastQuery(string.Concat(new object[] { "INSERT INTO items_users VALUES (", num10, ",", Session.GetHabbo().Id, ")" }));
                        
                            adapter.setQuery("INSERT INTO items_extradata VALUES (" + num10 + ",@timestamp)");
                                         adapter.addParameter("timestamp", DateTime.Now.ToLongDateString());
                           
                            adapter.runQuery();

                            adapter.setQuery(string.Concat(new object[] { "INSERT INTO user_presents (item_id,base_id,amount,extra_data) VALUES (", num10, ",", randomEcotronReward.BaseId, ",'1','')" }));
                        adapter.runQuery();
                    }
                    UserItem item3 = Session.GetHabbo().GetInventoryComponent().AddNewItem(num10, 60627, DateTime.Now.ToLongDateString(), false, false, 0, "", 0);
                    Session.GetHabbo().GetInventoryComponent().SendFloorInventoryUpdate();

                    Session.GetMessageHandler().GetResponse().Init(Outgoing.SendPurchaseAlert);
                    Session.GetMessageHandler().GetResponse().AppendInt32(1);
                    Session.GetMessageHandler().GetResponse().AppendInt32(1);
                    Session.GetMessageHandler().GetResponse().AppendInt32(1);
                    Session.GetMessageHandler().GetResponse().AppendInt32(item3.Id);
                    Session.GetMessageHandler().SendResponse();
       
                        Session.GetHabbo().GetInventoryComponent().RunDBUpdate();
                    
                    this.Response.Init(1235);
                    this.Response.AppendInt32(1);
                    this.Response.AppendInt32(item3.Id);
                    this.SendResponse();
                }
            }
        }
Insertar para GetCataData1()

Code:
 this.GetResponse().Init(201);
            Dictionary<uint, List<EcotronReward>> list;

            list = ButterflyEnvironment.GetGame().GetCatalog().GetEcotronRewards();
           this.GetResponse().AppendInt32(list.Count);
           
           foreach (var reward2 in list)
           {
                
                this.GetResponse().AppendInt32(reward2.Key);

                if (reward2.Key == 1)
                    this.GetResponse().AppendInt32(0);
                if (reward2.Key == 2)
                    this.GetResponse().AppendInt32(4);
                if (reward2.Key == 3)
                    this.GetResponse().AppendInt32(40);
                if (reward2.Key == 4)
                    this.GetResponse().AppendInt32(200);
                if (reward2.Key == 5)
                    this.GetResponse().AppendInt32(2000);
                Console.WriteLine(reward2.Key);
                this.GetResponse().AppendInt32(reward2.Value.Count);
                foreach (EcotronReward reward in reward2.Value)
                {
                    Console.WriteLine(reward.GetBaseItem().Name);
                    this.GetResponse().AppendString(reward.GetBaseItem().Name);
                    this.GetResponse().AppendInt32(1);
                    this.GetResponse().AppendString(reward.GetBaseItem().Type.ToString().ToLower());
                    this.GetResponse().AppendInt32(reward.GetBaseItem().SpriteId);
                }
            }
            this.SendResponse();
Insertar para Catalog.cs:

Code:
        internal Dictionary<uint, List<EcotronReward>> GetEcotronRewards()
        {
            Dictionary<uint, List<EcotronReward>> list = new Dictionary<uint, List<EcotronReward>>();
            foreach (EcotronReward reward in this.EcotronRewards)
            {
                
                 if (!list.ContainsKey(reward.RewardLevel))
                {
                    list.Add(reward.RewardLevel, new List<EcotronReward>());
                    list[reward.RewardLevel].Add(reward);
                 
                }
                else
                {
                    list[reward.RewardLevel].Add(reward);
                    
                }
                
            }
            return list;
        }
Insertar para SharedPacketLib.cs:

Code:
  internal static void GetRecyclerStatus(GameClientMessageHandler handler)
        {
            handler.GetRecyclerStatus();
        }
Agregar a StaticClientMessageHandler.cs:

Code:
handlers.Add(886, new StaticRequestHandler(SharedPacketLib.GetRecyclerStatus));
            handlers.Add(3781, new StaticRequestHandler(SharedPacketLib.RecycleItems));
Si reciclador da error de cliente para que cambie la estructura de la página del catálogo a:

Code:
   case "recycler":
                    message.AppendString(Page.Layout);
                    message.AppendInt32(2);
                    message.AppendString(Page.LayoutHeadline);
                    message.AppendString(Page.LayoutTeaser);
                    message.AppendInt32(3);
                    message.AppendString(Page.Text1, 10);
                    message.AppendString(Page.Text2);
                    message.AppendString(Page.TextDetails);
                    break;
pantalla:



Comentarios

Entradas populares de este blog

[CMS]Deck CMS V1| Buena index |Based Lavvos| es para xamp y iss [Habbo] ACTUALIZADO 20/04/2013

New Habbo Room Layout (Working on any server)

Emulador HabboLatino New Crypto ACTUALIZADO 19/04/2013