Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
do someone know where to set the max room size for the roombuilder?
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
Quote:
Originally Posted by
thelittlegnome
i found a another dangerous bugg you can add a tekst like the tekst add the bottum en if you do this with axed bot master your emulator wil be down.
HTML/tekst <i><font size="30" color="#000fff"><a href="whrite her your linkl">here you tekst</a></font></i>
result: http://i.imgur.com/PrNvMu6.png
-i`m out.
Go to Mercury/HabboHotel/RoomBots/BotManager.cs
Find:
PHP Code:
internal static RoomBot GenerateBotFromRow(DataRow Row)
Change:
PHP Code:
list.Add(new RandomSpeech((string)dataRow["text"], MercuryEnvironment.EnumToBool(dataRow["shout"].ToString())));
To:
PHP Code:
list.Add(new RandomSpeech(WebUtility.HtmlEncode((string)dataRow["text"]), MercuryEnvironment.EnumToBool(dataRow["shout"].ToString())));
Go to Mercury/HabboHotel/Rooms/Room.cs
Find:
PHP Code:
internal void InitUserBots()
Change:
PHP Code:
list.Add(new RandomSpeech((string)dataRow2["text"], MercuryEnvironment.EnumToBool(dataRow2["shout"].ToString())));
To:
PHP Code:
list.Add(new RandomSpeech(WebUtility.HtmlEncode((string)dataRow2["text"]), MercuryEnvironment.EnumToBool(dataRow2["shout"].ToString())));
Go to Mercury/Messages/GameClientMessageHandler.cs
Find:
PHP Code:
internal void ManageBotActions()
Change:
PHP Code:
list.Add(new RandomSpeech((string)dataRow["text"], MercuryEnvironment.EnumToBool(dataRow["shout"].ToString())));
To:
PHP Code:
list.Add(new RandomSpeech(WebUtility.HtmlEncode((string)dataRow["text"]), MercuryEnvironment.EnumToBool(dataRow["shout"].ToString())));
If you get a red stripe under there, right click on WebUtility and go to resolve.
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
Quote:
Originally Posted by
BaasHotel
Hi,
I don't really have a fix for you guys, I just couldn't stand this piece of code:
PHP Code:
internal void Serialize(ServerMessage Message)
{
checked
{
if (this.IsFloorItem)
{
Message.AppendUInt(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)));
Message.AppendString(string.Format("{0:0.00}", TextHandling.GetString(this.GetBaseItem().Height)));
if (this.GetBaseItem().InteractionType == InteractionType.groupforumterminal || this.GetBaseItem().InteractionType == InteractionType.gld_item || this.GetBaseItem().InteractionType == InteractionType.gld_gate)
{
Guild group2 = MercuryEnvironment.GetGame().GetGroupManager().GetGroup(GroupId);
if (group2 == null)
{
Message.AppendInt32(1);
Message.AppendInt32(0);
Message.AppendString(this.ExtraData);
}
else
{
Message.AppendInt32(0);
Message.AppendInt32(2);
Message.AppendInt32(5);
Message.AppendString(this.ExtraData);
Message.AppendString(this.GroupId.ToString());
Message.AppendString(group2.Badge);
Message.AppendString(MercuryEnvironment.GetGame().GetGroupManager().GetGroupColour(group2.Colour1, true));
Message.AppendString(MercuryEnvironment.GetGame().GetGroupManager().GetGroupColour(group2.Colour2, false));
}
}
else
{
if (this.GetBaseItem().InteractionType == InteractionType.youtubetv)
{
Message.AppendInt32(0);
if (!MercuryEnvironment.GetGame().GetVideoManager().TVExists(this.Id))
{
Message.AppendInt32(0);
Message.AppendString("");
}
else
{
Message.AppendInt32(1);
Message.AppendInt32(1);
Message.AppendString("THUMBNAIL_URL");
Message.AppendString("/youtubethumbnail.php?Video=" + this.ExtraData);
}
}
else
{
if (this.GetBaseItem().InteractionType == InteractionType.musicdisc)
{
Message.AppendUInt(SongManager.GetSongId(this.SongCode));
Message.AppendInt32(0);
Message.AppendString(this.ExtraData);
}
else
{
if (this.GetBaseItem().InteractionType == InteractionType.background)
{
Message.AppendInt32(0);
Message.AppendInt32(1);
if (this.ExtraData != "")
{
Message.AppendInt32(this.ExtraData.Split(new char[]
{
Convert.ToChar(9)
}).Length / 2);
for (int i = 0; i <= this.ExtraData.Split(new char[]
{
Convert.ToChar(9)
}).Length - 1; i++)
{
Message.AppendString(this.ExtraData.Split(new char[]
{
Convert.ToChar(9)
})[i]);
}
}
else
{
Message.AppendInt32(0);
}
}
else
{
if (this.GetBaseItem().InteractionType == InteractionType.gift)
{
string[] Split = this.ExtraData.Split((char)9);
uint GiverId = 0;
string GiftMessage = "";
int GiftRibbon = 1;
int GiftColor = 2;
bool ShowGiver = false;
string GiverName = "";
string GiverLook = "";
string Product = "A1 PIZ";
try
{
GiverId = uint.Parse(Split[0]);
GiftMessage = Split[1];
GiftRibbon = int.Parse(Split[2]);
GiftColor = int.Parse(Split[3]);
ShowGiver = MercuryEnvironment.EnumToBool(Split[4]);
GiverName = Split[5];
GiverLook = Split[6];
Product = Split[7];
}
catch
{
}
int RibbonAndColor = (GiftRibbon * 1000) + GiftColor;
Message.AppendInt32(RibbonAndColor);
Message.AppendInt32(1);
Message.AppendInt32((ShowGiver) ? 6 : 4);
Message.AppendString("EXTRA_PARAM");
Message.AppendString("");
Message.AppendString("MESSAGE");
Message.AppendString(GiftMessage);
if (ShowGiver)
{
Message.AppendString("PURCHASER_NAME");
Message.AppendString(GiverName);
Message.AppendString("PURCHASER_FIGURE");
Message.AppendString(GiverLook);
}
Message.AppendString("PRODUCT_CODE");
Message.AppendString(Product);
Message.AppendString("state");
Message.AppendString(MagicRemove ? "1" : "0");
}
else
{
if (this.GetBaseItem().InteractionType == InteractionType.pinata)
{
Message.AppendInt32(0);
Message.AppendInt32(7);
Message.AppendString((this.ExtraData == "100") ? "8" : "6");
if (this.ExtraData.Length <= 0)
{
Message.AppendInt32(0);
Message.AppendInt32(100);
}
else
{
Message.AppendInt32(int.Parse(this.ExtraData));
Message.AppendInt32(100);
}
}
else
{
if (this.GetBaseItem().InteractionType == InteractionType.mannequin)
{
Message.AppendInt32(0);
Message.AppendInt32(1);
Message.AppendInt32(3);
if (this.ExtraData.Contains(Convert.ToChar(5).ToString()))
{
string[] array = this.ExtraData.Split(new char[]
{
Convert.ToChar(5)
});
Message.AppendString("GENDER");
Message.AppendString(array[0]);
Message.AppendString("FIGURE");
Message.AppendString(array[1]);
Message.AppendString("OUTFIT_NAME");
Message.AppendString(array[2]);
}
else
{
Message.AppendString("GENDER");
Message.AppendString("");
Message.AppendString("FIGURE");
Message.AppendString("");
Message.AppendString("OUTFIT_NAME");
Message.AppendString("");
}
}
else
{
if (this.GetBaseItem().InteractionType == InteractionType.badge_display)
{
Message.AppendInt32(0);
Message.AppendInt32(2);
Message.AppendInt32(4);
Message.AppendString("0");
Message.AppendString(this.ExtraData);
Message.AppendString("");
Message.AppendString("");
}
else if (this.GetBaseItem().InteractionType == InteractionType.lovelock)
{
string[] Data = this.ExtraData.Split((char)5);
Message.AppendInt32(0);
Message.AppendInt32(2);
Message.AppendInt32(Data.Length);
foreach (string datak in Data)
{
Message.AppendString(datak);
}
}
else
{
if (this.GetBaseItem().InteractionType == InteractionType.moplaseed)
{
Message.AppendInt32(0);
Message.AppendInt32(1);
Message.AppendInt32(1);
Message.AppendString("rarity");
Message.AppendString(this.ExtraData);
}
else
{
if (this.GetBaseItem().InteractionType == InteractionType.roombg)
{
if (this.mRoom.TonerData == null)
{
this.mRoom.TonerData = new TonerData(this.Id);
}
this.mRoom.TonerData.GenerateExtraData(Message);
}
else
{
if (this.GetBaseItem().InteractionType == InteractionType.mystery_box)
{
Message.AppendInt32(0);
Message.AppendInt32(0);
if (this.ExtraData.Contains(Convert.ToChar(5).ToString()))
{
int num3 = int.Parse(this.ExtraData.Split(new char[]
{
Convert.ToChar(5)
})[0]);
int num4 = int.Parse(this.ExtraData.Split(new char[]
{
Convert.ToChar(5)
})[1]);
Message.AppendString((3 * num3 - num4).ToString());
}
else
{
this.ExtraData = "0" + Convert.ToChar(5) + "0";
Message.AppendString("0");
}
}
else
{
if (this.LimitedNo > 0)
{
Message.AppendInt32(1);
Message.AppendInt32(256);
Message.AppendString(this.ExtraData);
Message.AppendInt32(this.LimitedNo);
Message.AppendInt32(this.LimitedTot);
}
else
{
Message.AppendInt32((this.GetBaseItem().InteractionType == InteractionType.tilestackmagic) ? 0 : 1);
Message.AppendInt32(0);
Message.AppendString(this.ExtraData);
}
}
}
}
}
}
}
}
}
}
}
}
Message.AppendInt32(-1);
Message.AppendInt32((this.GetBaseItem().InteractionType == InteractionType.mystery_box || this.GetBaseItem().InteractionType == InteractionType.youtubetv) ? 2 : ((this.GetBaseItem().InteractionType == InteractionType.moplaseed || this.GetBaseItem().Modes > 1) ? 1 : 0));
Message.AppendUInt(this.UserID);
return;
}
if (this.IsWallItem)
{
Message.AppendString(this.Id + string.Empty);
Message.AppendInt32(this.GetBaseItem().SpriteId);
Message.AppendString(this.wallCoord.ToString());
InteractionType interactionType = this.GetBaseItem().InteractionType;
if (interactionType == InteractionType.postit)
{
Message.AppendString(this.ExtraData.Split(new char[]
{
' '
})[0]);
}
else
{
Message.AppendString(this.ExtraData);
}
Message.AppendInt32(-1);
Message.AppendInt32((this.GetBaseItem().Modes > 1) ? 1 : 0);
Message.AppendUInt(this.UserID);
}
}
}
So, if you agree with me, I changed it up to a - in my opinion - much better way:
Go to Mercury/HabboHotel/Items/RoomItem.cs and find:
PHP Code:
internal void Serialize(ServerMessage Message)
Change it to:
PHP Code:
internal void Serialize(ServerMessage Message)
{
if (this.IsFloorItem)
{
Message.AppendUInt(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)));
Message.AppendString(string.Format("{0:0.00}", TextHandling.GetString(this.GetBaseItem().Height)));
switch(this.GetBaseItem().InteractionType)
{
case InteractionType.groupforumterminal:
case InteractionType.gld_item:
case InteractionType.gld_gate:
{
Guild group2 = MercuryEnvironment.GetGame().GetGroupManager().GetGroup(GroupId);
if (group2 == null)
{
Message.AppendInt32(1);
Message.AppendInt32(0);
Message.AppendString(this.ExtraData);
}
else
{
Message.AppendInt32(0);
Message.AppendInt32(2);
Message.AppendInt32(5);
Message.AppendString(this.ExtraData);
Message.AppendString(this.GroupId.ToString());
Message.AppendString(group2.Badge);
Message.AppendString(MercuryEnvironment.GetGame().GetGroupManager().GetGroupColour(group2.Colour1, true));
Message.AppendString(MercuryEnvironment.GetGame().GetGroupManager().GetGroupColour(group2.Colour2, false));
}
break;
}
case InteractionType.youtubetv:
{
Message.AppendInt32(0);
if (!MercuryEnvironment.GetGame().GetVideoManager().TVExists(this.Id))
{
Message.AppendInt32(0);
Message.AppendString("");
}
else
{
Message.AppendInt32(1);
Message.AppendInt32(1);
Message.AppendString("THUMBNAIL_URL");
Message.AppendString(ExtraSettings.THUMBNAIL_URL + "=" + this.ExtraData);
}
break;
}
case InteractionType.musicdisc:
{
Message.AppendUInt(SongManager.GetSongId(this.SongCode));
Message.AppendInt32(0);
Message.AppendString(this.ExtraData);
break;
}
case InteractionType.background:
{
Message.AppendInt32(0);
Message.AppendInt32(1);
if (this.ExtraData != "")
{
Message.AppendInt32(this.ExtraData.Split(new char[]
{
Convert.ToChar(9)
}).Length / 2);
for (int i = 0; i <= this.ExtraData.Split(new char[]
{
Convert.ToChar(9)
}).Length - 1; i++)
{
Message.AppendString(this.ExtraData.Split(new char[]
{
Convert.ToChar(9)
})[i]);
}
}
else
{
Message.AppendInt32(0);
}
break;
}
case InteractionType.gift:
{
string[] Split = this.ExtraData.Split((char)9);
uint GiverId = 0;
string GiftMessage = "";
int GiftRibbon = 1;
int GiftColor = 2;
bool ShowGiver = false;
string GiverName = "";
string GiverLook = "";
string Product = "A1 PIZ";
try
{
GiverId = uint.Parse(Split[0]);
GiftMessage = Split[1];
GiftRibbon = int.Parse(Split[2]);
GiftColor = int.Parse(Split[3]);
ShowGiver = MercuryEnvironment.EnumToBool(Split[4]);
GiverName = Split[5];
GiverLook = Split[6];
Product = Split[7];
}
catch
{
}
int RibbonAndColor = (GiftRibbon * 1000) + GiftColor;
Message.AppendInt32(RibbonAndColor);
Message.AppendInt32(1);
Message.AppendInt32((ShowGiver) ? 6 : 4);
Message.AppendString("EXTRA_PARAM");
Message.AppendString("");
Message.AppendString("MESSAGE");
Message.AppendString(GiftMessage);
if (ShowGiver)
{
Message.AppendString("PURCHASER_NAME");
Message.AppendString(GiverName);
Message.AppendString("PURCHASER_FIGURE");
Message.AppendString(GiverLook);
}
Message.AppendString("PRODUCT_CODE");
Message.AppendString(Product);
Message.AppendString("state");
Message.AppendString(MagicRemove ? "1" : "0");
break;
}
case InteractionType.pinata:
{
Message.AppendInt32(0);
Message.AppendInt32(7);
Message.AppendString((this.ExtraData == "100") ? "8" : "6");
if (this.ExtraData.Length <= 0)
{
Message.AppendInt32(0);
Message.AppendInt32(100);
}
else
{
Message.AppendInt32(int.Parse(this.ExtraData));
Message.AppendInt32(100);
}
break;
}
case InteractionType.mannequin:
{
Message.AppendInt32(0);
Message.AppendInt32(1);
Message.AppendInt32(3);
if (this.ExtraData.Contains(Convert.ToChar(5).ToString()))
{
string[] array = this.ExtraData.Split(new char[]
{
Convert.ToChar(5)
});
Message.AppendString("GENDER");
Message.AppendString(array[0]);
Message.AppendString("FIGURE");
Message.AppendString(array[1]);
Message.AppendString("OUTFIT_NAME");
Message.AppendString(array[2]);
}
else
{
Message.AppendString("GENDER");
Message.AppendString("");
Message.AppendString("FIGURE");
Message.AppendString("");
Message.AppendString("OUTFIT_NAME");
Message.AppendString("");
}
break;
}
case InteractionType.badge_display:
{
Message.AppendInt32(0);
Message.AppendInt32(2);
Message.AppendInt32(4);
Message.AppendString("0");
Message.AppendString(this.ExtraData);
Message.AppendString("");
Message.AppendString("");
break;
}
case InteractionType.lovelock:
{
string[] Data = this.ExtraData.Split((char)5);
Message.AppendInt32(0);
Message.AppendInt32(2);
Message.AppendInt32(Data.Length);
foreach (string datak in Data)
{
Message.AppendString(datak);
}
break;
}
case InteractionType.moplaseed:
{
Message.AppendInt32(0);
Message.AppendInt32(1);
Message.AppendInt32(1);
Message.AppendString("rarity");
Message.AppendString(this.ExtraData);
break;
}
case InteractionType.roombg:
{
if (this.mRoom.TonerData == null)
{
this.mRoom.TonerData = new TonerData(this.Id);
}
this.mRoom.TonerData.GenerateExtraData(Message);
break;
}
case InteractionType.mystery_box:
{
Message.AppendInt32(0);
Message.AppendInt32(0);
if (this.ExtraData.Contains(Convert.ToChar(5).ToString()))
{
int num3 = int.Parse(this.ExtraData.Split(new char[]
{
Convert.ToChar(5)
})[0]);
int num4 = int.Parse(this.ExtraData.Split(new char[]
{
Convert.ToChar(5)
})[1]);
Message.AppendString((3 * num3 - num4).ToString());
}
else
{
this.ExtraData = "0" + Convert.ToChar(5) + "0";
Message.AppendString("0");
}
break;
}
default:
{
if (this.LimitedNo > 0)
{
Message.AppendInt32(1);
Message.AppendInt32(256);
Message.AppendString(this.ExtraData);
Message.AppendInt32(this.LimitedNo);
Message.AppendInt32(this.LimitedTot);
}
else
{
Message.AppendInt32((this.GetBaseItem().InteractionType == InteractionType.tilestackmagic) ? 0 : 1);
Message.AppendInt32(0);
Message.AppendString(this.ExtraData);
}
break;
}
}
Message.AppendInt32(-1);
Message.AppendInt32((this.GetBaseItem().InteractionType == InteractionType.mystery_box || this.GetBaseItem().InteractionType == InteractionType.youtubetv) ? 2 : ((this.GetBaseItem().InteractionType == InteractionType.moplaseed || this.GetBaseItem().Modes > 1) ? 1 : 0));
Message.AppendUInt(this.UserID);
return;
}
else if (this.IsWallItem)
{
Message.AppendString(this.Id + string.Empty);
Message.AppendInt32(this.GetBaseItem().SpriteId);
Message.AppendString(this.wallCoord.ToString());
InteractionType interactionType = this.GetBaseItem().InteractionType;
if (interactionType == InteractionType.postit)
{
Message.AppendString(this.ExtraData.Split(new char[]
{
' '
})[0]);
}
else
{
Message.AppendString(this.ExtraData);
}
Message.AppendInt32(-1);
Message.AppendInt32((this.GetBaseItem().Modes > 1) ? 1 : 0);
Message.AppendUInt(this.UserID);
}
}
Hi,
What is this fix? which bug...
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
Quote:
Originally Posted by
smatch
Hi,
What is this fix? which bug...
As I said:
I don't really have a fix for you guys, I just couldn't stand this piece of code:
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
Quote:
Originally Posted by
BaasHotel
As I said:
I don't really have a fix for you guys, I just couldn't stand this piece of code:
Yes.
But in his knowledge.
What's that going to change?
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
Quote:
Originally Posted by
smatch
Yes.
But in his knowledge.
What's that going to change?
It's just more organized imo.
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
has anybody a fix voor mute it doesnt work with the moderation tools and it doesnt work with the command :mute
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
How to set stack_height_count for mercury emu? Because i cant set the multiplier stack for xmas11_elewood furni
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
Emulator dc users after this error:
Quote:
Exception logged 11/26/2014 9:14:19 PM in Room.SqAbsoluteHeight:
System.NullReferenceException: Object reference not set to an instance of an object.
at Mercury.HabboHotel.Items.RoomItem.get_TotalHeight() in C:\Users\Administrator\Desktop\Emulador\HabboHotel\Items\RoomItem.cs:line 143
at Mercury.HabboHotel.Rooms.Gamemap.SqAbsoluteHeight(Int32 X, Int32 Y, List`1 ItemsOnSquare) in C:\Users\Administrator\Desktop\Emulador\HabboHotel\Rooms\Gamemap.cs:line 981
Source:
Mercury
Data:
Message:
Object reference not set to an instance of an object.
Stack trace:
at Mercury.HabboHotel.Items.RoomItem.get_TotalHeight() in C:\Users\Administrator\Desktop\Emulador\HabboHotel\Items\RoomItem.cs:line 143
at Mercury.HabboHotel.Rooms.Gamemap.SqAbsoluteHeight(Int32 X, Int32 Y, List`1 ItemsOnSquare) in C:\Users\Administrator\Desktop\Emulador\HabboHotel\Rooms\Gamemap.cs:line 981
This has something to do?
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
Unable to load room ID [0] System.NullReferenceException: La r?f?rence d'objet n'est pas d?finie ? une instance d'un objet.
? Mercury.Messages.GameClientMessageHandler.GetRoomData3() dans c:\Users\Administrateur\Desktop\Adox 2.3\Mercury v2\Messages\GameClientMessageHandler.cs:ligne 3285
? Mercury.Messages.GameClientMessageHandler.GetRoomData2() dans c:\Users\Administrateur\Desktop\Adox 2.3\Mercury v2\Messages\GameClientMessageHandler.cs:ligne 3236
help plz
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
Quote:
Originally Posted by
GrateZ4
Send me this habbo.swf for this mercury? :P
and... @BaasHotel , i have problem with my bots.
the letters are scrambled.
You can send me the complete bot fix?
Thx!
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
cant place freeze tiles. anyone have a fix
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
Does anyone know how to fix timer?
The user count time it doesn't update for like a 40 second
Also the credit bal doesn't get updated until the user logs out of the client
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]
please fix for teleporter who teleports
http://adox.fr//upload/1417289321.png
Re: [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]