Salut à vous inshare ! je vous partage un petit "add-ons".
au lieu de vous cassé la tête à configurer les message du catalogue de l'index depuis l'ému vous pouvez le faire depuis la db. A NOTER IL ET UNIQUEMENT COMPATIBLE AU NOUVELLES RELEASES
allez à: CatalogPageComposer.cs remplacé tout par ça :
using log4net;
using System;
using System.Linq;
using Plus.Core;
using Plus.HabboHotel.Items;
using Plus.HabboHotel.Catalog;
using Plus.HabboHotel.Items.Utilities;
using Plus.HabboHotel.Catalog.Utilities;
using Plus.Database.Interfaces;
using System.Data;
using Plus.Utilities;
namespace Plus.Communication.Packets.Outgoing.Catalog
{
public class CatalogPageComposer : ServerPacket
{
public CatalogPageComposer(CatalogPage Page, string CataMode)
: base(ServerPacketHeader.CatalogPageMessageComposer)
{
base.WriteInteger(Page.Id);
base.WriteString(CataMode);
base.WriteString(Page.Template);
base.WriteInteger(Page.PageStrings1.Count);
foreach (string s in Page.PageStrings1)
{
base.WriteString(s);
}
base.WriteInteger(Page.PageStrings2.Count);
foreach (string s in Page.PageStrings2)
{
base.WriteString(s);
}
if (!Page.Template.Equals("frontpage") && !Page.Template.Equals("club_buy"))
{
base.WriteInteger(Page.Items.Count);
foreach (CatalogItem Item in Page.Items.Values)
{
base.WriteInteger(Item.Id);
base.WriteString(Item.Name);
base.WriteBoolean(false);
base.WriteInteger(Item.CostCredits);
if (Item.CostDiamonds > 0)
{
base.WriteInteger(Item.CostDiamonds);
base.WriteInteger(5);
}
else
{
base.WriteInteger(Item.CostPixels);
base.WriteInteger(0);
}
if (Item.CostGotw > 0)
{
base.WriteInteger(Item.CostDiamonds);
base.WriteInteger(103);
}
else if(Item.CostDiamonds > 0)
{
base.WriteInteger(Item.CostDiamonds);
base.WriteInteger(0);
}
base.WriteBoolean(ItemUtility.CanGiftItem(Item));
if (Item.Data.InteractionType == InteractionType.DEAL)
{
foreach (CatalogDeal Deal in Page.Deals.Values)
{
base.WriteInteger(Deal.ItemDataList.Count);
foreach (CatalogItem DealItem in Deal.ItemDataList.ToList())
{
base.WriteString(DealItem.Data.Type.ToString());
base.WriteInteger(DealItem.Data.SpriteId);
base.WriteString("");
base.WriteInteger(1);
base.WriteBoolean(false);
}
base.WriteInteger(0);
base.WriteBoolean(ItemUtility.CanSelectAmount(Item));
}
}
else
{
base.WriteInteger(string.IsNullOrEmpty(Item.Badge) ? 1 : 2);
{
if (!string.IsNullOrEmpty(Item.Badge))
{
base.WriteString("b");
base.WriteString(Item.Badge);
}
base.WriteString(Item.Data.Type.ToString());
if (Item.Data.Type.ToString().ToLower() == "b")
{
base.WriteString(Item.Data.ItemName);
}
else
{
base.WriteInteger(Item.Data.SpriteId);
if (Item.Data.InteractionType == InteractionType.WALLPAPER || Item.Data.InteractionType == InteractionType.FLOOR || Item.Data.InteractionType == InteractionType.LANDSCAPE)
{
base.WriteString(Item.Name.Split('_')[2]);
}
else if (Item.Data.InteractionType == InteractionType.BOT)
{
CatalogBot CatalogBot = null;
if (!GameEnvironment.GetCatalog().TryGetBot(Item.ItemId, out CatalogBot))
base.WriteString("hd-180-7.ea-1406-62.ch-210-1321.hr-831-49.ca-1813-62.sh-295-1321.lg-285-92");
else
base.WriteString(CatalogBot.Figure);
}
else if (Item.ExtraData != null)
{
base.WriteString(Item.ExtraData != null ? Item.ExtraData : string.Empty);
}
base.WriteInteger(Item.Amount);
base.WriteBoolean(Item.IsLimited);
if (Item.IsLimited)
{
base.WriteInteger(Item.LimitedEditionStack);
base.WriteInteger(Item.LimitedEditionStack - Item.LimitedEditionSells);
}
}
base.WriteInteger(0);
base.WriteBoolean(ItemUtility.CanSelectAmount(Item));
base.WriteBoolean(true);
base.WriteString("");
}
}
}
}
else
base.WriteInteger(0);
base.WriteInteger(-1);
base.WriteBoolean(false);
if (Page.Template.Equals("frontpage4"))
{
base.WriteInteger(4);
using (IQueryAdapter dbClient = Plus.Environment.GetDatabaseManager().GetQueryReactor())
{
DataRow Catalog = null;
dbClient.SetQuery("SELECT * FROM `catalog_settings` WHERE `id` = '1';");
Catalog = dbClient.getRow();
if(Catalog == null)
{
Logs.WriteLine("Erreur -> catalog_settings -> id 1 non trouvé !", ConsoleColor.Red);
}
else
{
base.WriteInteger(1);
base.WriteString(Convert.ToString(Catalog["title"]));
base.WriteString(Convert.ToString(Catalog["image"]));
base.WriteInteger(0);
base.WriteString(Convert.ToString(Catalog["page_link"]));
base.WriteInteger(Convert.ToInt32(Catalog["page_id"]));
}
}
using (IQueryAdapter dbClient = Plus.Environment.GetDatabaseManager().GetQueryReactor())
{
DataRow Catalog = null;
dbClient.SetQuery("SELECT * FROM `catalog_settings` WHERE `id` = '2';");
Catalog = dbClient.getRow();
if (Catalog == null)
{
Logs.WriteLine("Erreur -> catalog_settings-> id 2 non trouvé !", ConsoleColor.Red);
}
else
{
base.WriteInteger(2);
base.WriteString(Convert.ToString(Catalog["title"]));
base.WriteString(Convert.ToString(Catalog["image"]));
base.WriteInteger(0);
base.WriteString(Convert.ToString(Catalog["page_link"]));
base.WriteInteger(Convert.ToInt32(Catalog["page_id"]));
}
}
using (IQueryAdapter dbClient = Plus.Environment.GetDatabaseManager().GetQueryReactor())
{
DataRow Catalog = null;
dbClient.SetQuery("SELECT * FROM `catalog_settings` WHERE `id` = '3';");
Catalog = dbClient.getRow();
if (Catalog == null)
{
Logs.WriteLine("Erreur -> catalog_settings -> id 3 non trouvé!", ConsoleColor.Red);
}
else
{
base.WriteInteger(3);
base.WriteString(Convert.ToString(Catalog["title"]));
base.WriteString(Convert.ToString(Catalog["image"]));
base.WriteInteger(0);
base.WriteString(Convert.ToString(Catalog["page_link"]));
base.WriteInteger(Convert.ToInt32(Catalog["page_id"]));
}
}
using (IQueryAdapter dbClient = Plus.Environment.GetDatabaseManager().GetQueryReactor())
{
DataRow Catalog = null;
dbClient.SetQuery("SELECT * FROM `catalog_settings` WHERE `id` = '4';");
Catalog = dbClient.getRow();
if (Catalog == null)
{
Logs.WriteLine("Erreur -> catalog_settings -> id 4 non trouvé !", ConsoleColor.Red);
}
else
{
base.WriteInteger(4);
base.WriteString(Convert.ToString(Catalog["title"]));
base.WriteString(Convert.ToString(Catalog["image"]));
base.WriteInteger(0);
base.WriteString(Convert.ToString(Catalog["page_link"]));
base.WriteInteger(Convert.ToInt32(Catalog["page_id"]));
}
}
}
}
}
}
SQL:
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for catalog_settings
-- ----------------------------
DROP TABLE IF EXISTS `catalog_settings`;
CREATE TABLE `catalog_settings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(55) NOT NULL,
`image` text NOT NULL,
`page_link` varchar(35) NOT NULL,
`page_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of catalog_settings
-- ----------------------------
INSERT INTO `catalog_settings` VALUES ('1', 'Message1', 'catalogue/feature_newcata_hort/feature_cata_vert_oly16bundle1.png', 'habbo_lympix_2016fr', '912394');
INSERT INTO `catalog_settings` VALUES ('2', 'Message2', 'catalogue/feature_cata_hort_habbergerbundle.png', 'habbugersclass', '912393');
INSERT INTO `catalog_settings` VALUES ('3', 'Message3', 'catalogue/battleball2016.png', 'battleball2016fr', '912395');
INSERT INTO `catalog_settings` VALUES ('4', 'Message4', 'catalogue/feature_newcata_hort/feature_cata_hort_partyboat16_b.png', 'effectotem', '912396');
Voilà, derien :)