[BCSTORM] Fix para el Maniquí Actualizado 23/04/2013
pues aqui les traigo un fix para el maniquí, funciona para BcStorm Open Source.. Vale, sigan mis pasos:
Nos vamos a HabboHotel\Items\RoomItem.cs
Buscamos
Volvemos a colocarlo como:
Vamos a Messages\GameClientMessageHandler.cs
Buscamos:
Antes de eso, agregamos:
Vamos a Messages\StaticMessageHandlers\SharedPacketLib.cs
Buscamos:
Debajo ponemos:
Vamos a
Messages\StaticMessageHandlers\StaticClientMessageHandler.cs
Buscamos:
Abajo de eso añadimos:
Vamos a HabboHotel\Items\InteractionType.cs
buscamos
añadimos debajo de esa línea
Buscamos:
abajo de hay agregamos:
Buscamos
abajo agregamos:
Vamos a HabboHotel\Items\RoomItem.cs
Buscamos
Abajo agregamos
Vamos a HabboHotel\Items\InteractionType.cs
Buscamos
Sobre esa línea, agrega:
Este es el resultado:

Recuerden hacer una copia de seguridad por si sucede algo.
¡Babeen tema! :3
![¡Me encantó! Una baba para tí [baba]](http://kekomundo.com/foro/Smileys/default/babas.gif)
Créditos:
Divide
Yo
Fuente:
RageZone
Nos vamos a HabboHotel\Items\RoomItem.cs
Buscamos
Código: [Seleccionar]
internal void Serialize
Volvemos a colocarlo como:
Código: [Seleccionar]
internal void Serialize(ServerMessage Message, int UserId)
{
if (this.IsFloorItem)
{
Message.AppendInt32(this.Id);
Message.AppendInt32(this.GetBaseItem().SpriteId);
Message.AppendInt32(this.mX);
Message.AppendInt32(this.mY);
Message.AppendInt32(this.Rot);
Message.AppendString(string.Format("{0:0.00}", TextHandling.GetString(this.mZ)));
if (this.GetBaseItem().Name == "boutique_mannequin1")
{
Message.AppendInt32(0);
Message.AppendInt32(1);
Message.AppendInt32(3);
Message.AppendString("GENDER");
Message.AppendString("m");
Message.AppendString("FIGURE");
Message.AppendString(this.ExtraData);
Message.AppendString("OUTFIT_NAME");
Message.AppendString("");
}
if (this.GetBaseItem().Name == "ads_mpu_720" || this.GetBaseItem().Name == "ads_background" || this.GetBaseItem().Name == "ads_mpu_300" || this.GetBaseItem().Name == "ads_mpu_160")
{
Message.AppendInt32(0);
Message.AppendInt32(1);
if (ExtraData != "")
{
Message.AppendInt32(ExtraData.Split(Convert.ToChar(9)).Length / 2);
for (int i = 0; i <= ExtraData.Split(Convert.ToChar(9)).Length - 1; i++)
{
Message.AppendString(ExtraData.Split(Convert.ToChar(9))[i]);
}
}
else
{
Message.AppendInt32(0);
}
}
else if ((this.GetBaseItem().SpriteId >= 0xd2c) && (this.GetBaseItem().SpriteId < 0xd36))
{
int i = 0;
if (this.ExtraData.Contains(Convert.ToChar(5).ToString()))
{
int num2 = int.Parse(this.ExtraData.Split(new char[] { '\x0005' })[1]);
int num3 = int.Parse(this.ExtraData.Split(new char[] { '\x0005' })[2]);
i = (num2 * 0x3e8) + num3;
}
Message.AppendInt32(i);
if (this.ExtraData.Contains(Convert.ToChar(5).ToString()))
{
Habbo habbo = ButterflyEnvironment.getHabboForId((uint) int.Parse(this.ExtraData.Split(new char[] { ';' })[0]));
if (habbo != null)
{
Message.AppendInt32(1);
Message.AppendInt32(6);
Message.AppendString("EXTRA_PARAM");
Message.AppendString("");
Message.AppendString("MESSAGE");
Message.AppendString(this.ExtraData.Split(new char[] { ';' })[1].Split(new char[] { '\x0005' })[0]);
Message.AppendString("PURCHASER_NAME");
Message.AppendString(habbo.Username);
Message.AppendString("PURCHASER_FIGURE");
Message.AppendString(habbo.Look);
Message.AppendString("PRODUCT_CODE");
Message.AppendString("");
Message.AppendString("state");
Message.AppendString(this.MagicRemove ? "1" : "0");
}
else
{
Message.AppendInt32(0);
}
}
else
{
Message.AppendInt32(0);
}
}
else
{
Message.AppendInt32(0);
if (this.RareId > 0)
{
Message.AppendString("");
Message.AppendBoolean(true);
Message.AppendBoolean(false);
}
else if (this.mBaseItem.AllowGroupItem)
{
MyGuild guild = ButterflyEnvironment.GetGame().GetGuilds().GetGuild(int.Parse(this.Guilds_Data_String.Split(new char[] { ';' })[0]));
if (guild == null)
{
Message.AppendInt32(0);
}
else
{
Message.AppendInt32(2);
Message.AppendInt32(5);
Message.AppendString("0");
Message.AppendString(guild.Id.ToString());
Message.AppendString(guild.Image);
Message.AppendString(this.Guilds_Data_String.Split(new char[] { ';' })[1]);
Message.AppendString(this.Guilds_Data_String.Split(new char[] { ';' })[2]);
}
}
else
{
Message.AppendInt32(0);
}
if (this.mBaseItem.InteractionType == InteractionType.trophy)
{
Message.AppendString(this.ExtraData);
}
else if (!this.mBaseItem.AllowGroupItem)
{
Message.AppendString(this.ExtraData);
}
if (this.RareId > 0)
{
Message.AppendInt32(this.RareId);
Message.AppendInt32(this.GetRareCatalogItem((int) this.BaseItem).LimitedStack);
}
}
Message.AppendInt32(-1);
Message.AppendInt32(1);
Message.AppendInt32(UserId);
if (!this.mRoom.MovedThinksObH && (this.GetBaseItem().InteractionType == InteractionType.obstacle_h))
{
if ((this.Rot == 2) || (this.Rot == 6))
{
this.mX = this.GetX + 1;
}
else if ((this.Rot == 0) || (this.Rot == 4))
{
this.mY = this.GetY + 1;
}
}
}
else if (this.IsWallItem)
{
Message.AppendString(this.Id + string.Empty);
Message.AppendInt32(this.GetBaseItem().SpriteId);
Message.AppendString(this.wallCoord.ToString());
if (this.GetBaseItem().InteractionType == InteractionType.postit)
{
Message.AppendString(this.ExtraData.Split(new char[] { ' ' })[0]);
}
else
{
Message.AppendString(this.ExtraData);
}
Message.AppendInt32(1);
Message.AppendInt32(UserId);
}
}
Vamos a Messages\GameClientMessageHandler.cs
Buscamos:
Código: [Seleccionar]
internal void SaveBranding()
Antes de eso, agregamos:
Código: [Seleccionar]
internal void SaveMannequin()
{
uint ItemId = Request.PopWiredUInt();
Room Room = Session.GetHabbo().CurrentRoom;
RoomItem Item = Room.GetRoomItemHandler().GetItem(ItemId);
if(Session.GetHabbo().Look.Contains(GetHair(Session.GetHabbo().Look)))
{
Item.ExtraData = Session.GetHabbo().Look.Replace(GetHair(Session.GetHabbo().Look), "");
}
else
{
Item.ExtraData = Session.GetHabbo().Look;
}
Item.UpdateNeeded = true;
Item.ProcessUpdates();
Room.GetRoomItemHandler().SetFloorItem(Session, Item, Item.GetX, Item.GetY, Item.Rot, false, false, true);
Room.GetRoomItemHandler().SaveFurniture(ButterflyEnvironment.GetDatabaseManager().getQueryreactor());
IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor();
dbClient.runFastQuery("DELETE FROM items_extradata WHERE item_id = " + Item.Id);
dbClient.runFastQuery("INSERT INTO items_extradata (item_id, data) VALUES (" + Item.Id + ", '" + Item.ExtraData + "')");
}
internal string GetHair(string _Figure)
{
string FigurePartHair = _Figure;
string GetHairPart;
GetHairPart = System.Text.RegularExpressions.Regex.Split(_Figure, "hr")[1];
FigurePartHair = GetHairPart.Split('.')[0];
string FigurePartBody = _Figure;
string GetBodyPart;
GetBodyPart = System.Text.RegularExpressions.Regex.Split(_Figure, "hd")[1];
FigurePartBody = GetBodyPart.Split('.')[0];
string _Uni = Convert.ToString("hr" + FigurePartHair + "." + "hd" + FigurePartBody + ".");
return _Uni;
}
Vamos a Messages\StaticMessageHandlers\SharedPacketLib.cs
Buscamos:
Código: [Seleccionar]
internal static void SaveBranding(GameClientMessageHandler handler)
{
handler.SaveBranding();
}
Debajo ponemos:
Código: [Seleccionar]
internal static void SaveMannequin(GameClientMessageHandler handler)
{
handler.SaveMannequin();
}
Vamos a
Messages\StaticMessageHandlers\StaticClientMessageHandler.cs
Buscamos:
Código: [Seleccionar]
handlers.Add(Incoming.PickupItem, new StaticRequestHandler(SharedPacketLib.TakeItem));
Abajo de eso añadimos:
Código: [Seleccionar]
//MANNEQUIN
handlers.Add(2242, new StaticRequestHandler(SharedPacketLib.SaveMannequin));
//
Vamos a HabboHotel\Items\InteractionType.cs
buscamos
Código: [Seleccionar]
enum InteractionType
{
none, //None == default
añadimos debajo de esa línea
Código: [Seleccionar]
mannequin, // Mannequin Code by Divide
Buscamos:
Código: [Seleccionar]
case "gate":
return InteractionType.gate;
abajo de hay agregamos:
Código: [Seleccionar]
case "mannequin":
return InteractionType.mannequin;
Buscamos
Código: [Seleccionar]
case InteractionType.gate:
return "gate";
abajo agregamos:
Código: [Seleccionar]
case InteractionType.mannequin:
return "mannequin";
Vamos a HabboHotel\Items\RoomItem.cs
Buscamos
Código: [Seleccionar]
case InteractionType.gate:
return new InteractorGate(GetBaseItem().Modes);
Abajo agregamos
Código: [Seleccionar]
case InteractionType.mannequin:
return new InteractorMannequin();
Vamos a HabboHotel\Items\InteractionType.cs
Buscamos
Código: [Seleccionar]
class InteractorDice : FurniInteractor
Sobre esa línea, agrega:
Código: [Seleccionar]
class InteractorMannequin : FurniInteractor { internal override void OnPlace(GameClient Session, RoomItem Item) { } internal override void OnRemove(GameClient Session, RoomItem Item) { } internal string GetHair(string _Figure) { string FigurePartHair = _Figure; string GetHairPart; GetHairPart = System.Text.RegularExpressions.Regex.Split(_Figure, "hr")[1]; FigurePartHair = GetHairPart.Split('.')[0]; string FigurePartBody = _Figure; string GetBodyPart; GetBodyPart = System.Text.RegularExpressions.Regex.Split(_Figure, "hd")[1]; FigurePartBody = GetBodyPart.Split('.')[0]; string _Uni = Convert.ToString("hr" + FigurePartHair + "." + "hd" + FigurePartBody + "."); return _Uni; } internal override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights) { if (Item.ExtraData != "") { Session.GetHabbo().Look = Item.ExtraData + "." + GetHair(Session.GetHabbo().Look); Session.GetMessageHandler().GetResponse().Init(HabboEvents.Outgoing.UpdateUserInformation); Session.GetMessageHandler().GetResponse().AppendInt32(-1); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Look); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Gender.ToLower()); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Motto); Session.GetMessageHandler().GetResponse().AppendInt32(Session.GetHabbo().AchievementPoints); Session.GetMessageHandler().SendResponse(); if (Session.GetHabbo().InRoom) { Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } Butterfly.Messages.ServerMessage RoomUpdate = new Butterfly.Messages.ServerMessage(HabboEvents.Outgoing.UpdateUserInformation); RoomUpdate.AppendInt32(User.VirtualId); RoomUpdate.AppendString(Session.GetHabbo().Look); RoomUpdate.AppendString(Session.GetHabbo().Gender.ToLower()); RoomUpdate.AppendString(Session.GetHabbo().Motto); RoomUpdate.AppendInt32(Session.GetHabbo().AchievementPoints); Room.SendMessage(RoomUpdate); } } } }
Este es el resultado:

Recuerden hacer una copia de seguridad por si sucede algo.
¡Babeen tema! :3
![¡Me encantó! Una baba para tí [baba]](http://kekomundo.com/foro/Smileys/default/babas.gif)
Créditos:
Divide
Yo
Fuente:
RageZone
Comentarios
Publicar un comentario