Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes]

Status
Not open for further replies.
git bisect -m
Loyal Member
Joined
Sep 2, 2011
Messages
2,171
Reaction score
916
Hello, Anyone, this topic will server to post bugs and fixes from Mercury Emulator v2.3 And this topics is NOT for Help and Dudes

This Main Thread will Be Updated Every Day With the Majoritall Fixes

Fix Nº 1
CitizenShip Panel on Mercury Emulator

First Add on Outgoing.cs This Xit:
PHP:
internal static int SerializeCitizenshipPanel = 476;//trylix
In GameClientMessageHandler After:
PHP:
Session.GetHabbo().InitMessenger();
Add That[/PHP]
PHP:
this.GetResponse().Init(Outgoing.SerializeCitizenshipPanel);
this.GetResponse().AppendString("citizenship");
this.GetResponse().AppendInt32(1);
this.GetResponse().AppendInt32(4);
this.SendResponse();
Third: Debug and Go to be Happy


Bug Nº 1 With Fix
Critical Exception After Login
First: Open UserDataFactory And Remove That:
PHP:
queryreactor.addParameter("ipaddress", ip);
Second: Debug.
Bug Nº 2 With Fix
Navigator_publics
To Add an Room In Publics Make That:
PHP:
INSERT INTO `navigator_publics` (`id`, `ordernum`, `bannertype`, `caption`, `description`, `image`, `image_type`, `room_id`, `category_id`, `category_parent_id`, `enabled`, `recommended`, `typeofdata`, `tag`) VALUES ('1', '1', '0', 'THE CAPTION', 'THE DESCRIPTION', '/officialrooms_au/fireservices_02.png', 'internal', 'YOUR ROOM ID FROM ROOMS', '0', '0', '1', '1', '2', '');
Second: Go too Room and Say :makepublic
Third: :refresh_navigator , :update_navigator
Done

Fix Nº 3
Enable HeightMapEditor for Users
Search for:
PHP:
if (Session.GetHabbo().VIP || Session.GetHabbo().Rank >= 5)
Change Rank 5 for 1

Fix Nº 4
Custom Youtube Url
Go to RoomItem.cs in your emulator and change:
PHP:
Message.AppendString("/youtubethumbnail.php?Video=" + this.ExtraData);
To
PHP:
Message.AppendString("/PATHTOFILE/youtubethumbnail.php?Video=" + this.ExtraData);
ExtraSettings.cs:
After
PHP:
internal static string FIGUREDATA_URL = "http://www.holobox.com.es/lcnchk/figuredata.xml";
Add
PHP:
internal static string THUMBNAIL_URL = "/youtubethumbnail.php?Video=";
After
PHP:
case "figuredata.url":
FIGUREDATA_URL = PARAMS[1];
break;
Add
PHP:
case "youtube.thumbnail.suburl":
THUMBNAIL_URL = PARAMS[1];
break;
RoomItem.cs:
Change
PHP:
Message.AppendString("/youtubethumbnail.php?Video=" + this.ExtraData);
To
PHP:
Message.AppendString(ExtraSettings.THUMBNAIL_URL + this.ExtraData);

Fix Nº 5
BUILDERS CLUB - BETA

Builders Club Feature Codes:
Outgoing.cs
PHP:
internal static int BuildersHowManyFurniHave = 3171;//1499; //bi0s
Incoming.cs
PHP:
internal static int BuildersClubHowManyItemsHave = 3178; //bi0s
internal static int PlaceBuildersFurniture = 1638; //bi0s
Catalog.cs After:
PHP:
internal Dictionary<uint, ServerMessage> CachedIndexes;
Add
PHP:
nternal Dictionary<uint, ServerMessage> CachedIndexesBuilders;
Replace(and the code below of that code)
PHP:
CachedIndexes = new Dictionary<uint, ServerMessage>();
To
PHP:
CachedIndexes = new Dictionary<uint, ServerMessage>();
            CachedIndexesBuilders = new Dictionary<uint, ServerMessage>();
            for (uint i = 1; i < 9; i++)
            {
                	CachedIndexes.Add(i, CatalogPacket.ComposeIndex(i));
                	CachedIndexesBuilders.Add(i, CatalogPacket.ComposeIndexBuilders(i));
            }
After that "if"
PHP:
if (catalogPage.Layout == "vip_buy" || catalogPage.Layout == "club_buy" || HabboClubItems.Contains(item))
Add
PHP:
 if (catalogPage.Layout == "builders_club_addons")
                    {
                        string[] array = item.Name.Split(new char[]
				{
					'_'
				});
                        int dayLength;
                        if (item.Name.Contains("45furnis"))
                        {
                            dayLength = 45;
                        }
                        else
                        {
                            if (item.Name.Contains("250furnis"))
                            {
                               dayLength = 250;
                            }
                            else
                            {
                                if (item.Name.Contains("600furnis"))
                                {
                                    dayLength = 600;
                                }
                                else
                                {
                                    dayLength = 31;
                                }
                            }
                        }
                        Session.GetHabbo().GetSubscriptionManager().AddSubscriptionBuilders(dayLength);
                       
                        return;
                    }
                }

On CatalogPackets.cs Add
PHP:
internal static ServerMessage ComposeIndexBuilders(uint Rank)
        {
            var Pages = MercuryEnvironment.GetGame().GetCatalog().Categories.Values.OfType<CatalogPage>();
            ServerMessage Message = new ServerMessage(Outgoing.CatalogueIndexMessageComposer);
            var SortedPages = Pages.Where(x => x.ParentId == -2 && x.MinRank <= Rank).OrderBy(x => x.OrderNum);

            Message.AppendBoolean(true);
            Message.AppendInt32(0);
            Message.AppendInt32(-1);
            Message.AppendString("root");
            Message.AppendString(string.Empty);
            Message.AppendInt32(0);
            Message.AppendInt32(SortedPages.Count());
            foreach (CatalogPage Cat in SortedPages)
            {
                Message.AppendBoolean(Cat.Visible);
                Message.AppendInt32(Cat.IconImage);
                Message.AppendInt32(Cat.PageId);
                Message.AppendString(Cat.CodeName);
                Message.AppendString(Cat.Caption);
                Message.AppendInt32(Cat.FlatOffers.Count);
                foreach (int i in Cat.FlatOffers.Keys)
                {
                    Message.AppendInt32(i);
                }

                var SortedSubPages = Pages.Where(x => x.ParentId == Cat.PageId && x.MinRank <= Rank).OrderBy(x => x.Caption);
                Message.AppendInt32(SortedSubPages.Count());

                foreach (CatalogPage SubCat in SortedSubPages)
                {
                    Message.AppendBoolean(SubCat.Visible);
                    Message.AppendInt32(SubCat.IconImage);
                    Message.AppendInt32(SubCat.PageId);
                    Message.AppendString(SubCat.CodeName);
                    Message.AppendString(SubCat.Caption);
                    Message.AppendInt32(SubCat.FlatOffers.Count);
                    foreach (int i2 in SubCat.FlatOffers.Keys)
                    {
                        Message.AppendInt32(i2);
                    }
                    Message.AppendInt32(0);
                }
            }
            Message.AppendBoolean(false);
            Message.AppendString("BUILDERS_CLUB");

            return Message;
        }
And
PHP:
      internal static ServerMessage ComposePageBuilders(CatalogPage Page)
        {
            ServerMessage Message = new ServerMessage(Outgoing.CataloguePageMessageComposer);
            Message.AppendInt32(Page.PageId);
            Message.AppendString("BUILDERS_CLUB");

            switch (Page.Layout)
            {
                case "builders_3x3":
                    Message.AppendString("default_3x3_color_grouping");
                    Message.AppendInt32(3);
                    Message.AppendString(Page.LayoutHeadline);
                    Message.AppendString(Page.LayoutTeaser);
                    Message.AppendString(Page.LayoutSpecial);
                    Message.AppendInt32(3);
                    Message.AppendString(Page.Text1);
                    Message.AppendString(Page.TextDetails.Replace("[10]", Convert.ToChar(10).ToString()).Replace("[13]", Convert.ToChar(13).ToString()));
                    Message.AppendString(Page.TextTeaser.Replace("[10]", Convert.ToChar(10).ToString()).Replace("[13]", Convert.ToChar(13).ToString()));
                    break;

                case "builders_club_frontpage":
                    Message.AppendString("builders_club_frontpage");
                    Message.AppendInt32(0);
                    Message.AppendInt32(1);
                    Message.AppendString(Page.LayoutHeadline);
                    Message.AppendInt32(3);
                    Message.AppendInt32(8554);
                    Message.AppendString("builders_club_1_month");
                    Message.AppendString("");
                    Message.AppendInt32(2560000);
                    Message.AppendInt32(2560000);
                    Message.AppendInt32(1024);
                    Message.AppendInt32(0);
                    Message.AppendInt32(0);
                    Message.AppendBoolean(false);
                    Message.AppendInt32(8606);
                    Message.AppendString("builders_club_14_days");
                    Message.AppendString("");
                    Message.AppendInt32(2560000);
                    Message.AppendInt32(2560000);
                    Message.AppendInt32(1024);
                    Message.AppendInt32(0);
                    Message.AppendInt32(0);
                    Message.AppendBoolean(false);
                    Message.AppendInt32(8710);
                    Message.AppendString("builders_club_31_days");
                    Message.AppendString("");
                    Message.AppendInt32(2560000);
                    Message.AppendInt32(2560000);
                    Message.AppendInt32(1024);
                    Message.AppendInt32(0);
                    Message.AppendInt32(0);
                    Message.AppendBoolean(false);
                    break;

                
                case "builders_club_addons":
                    Message.AppendString("builders_club_addons");
                    Message.AppendInt32(0);
                    Message.AppendInt32(1);
                    Message.AppendString(Page.LayoutHeadline);
                    Message.AppendInt32(3);
                    Message.AppendInt32(8557);
                    Message.AppendString("builders_club_addon_45furnis");
                    Message.AppendString("");
                    Message.AppendInt32(2560);
                    Message.AppendInt32(0);
                    Message.AppendInt32(1);
                    Message.AppendInt32(0);
                    Message.AppendInt32(0);
                    Message.AppendBoolean(false);
                    Message.AppendInt32(8556);
                    Message.AppendString("builders_club_addon_250furnis");
                    Message.AppendString("");
                    Message.AppendInt32(12800);
                    Message.AppendInt32(0);
                    Message.AppendInt32(1);
                    Message.AppendInt32(0);
                    Message.AppendInt32(0);
                    Message.AppendBoolean(false);
                    Message.AppendInt32(8555);
                    Message.AppendString("builders_club_addon_600furnis");
                    Message.AppendString("");
                    Message.AppendInt32(25600);
                    Message.AppendInt32(0);
                    Message.AppendInt32(1);
                    Message.AppendInt32(0);
                    Message.AppendInt32(0);
                    Message.AppendBoolean(false);
                    break;
            }

            if (Page.Layout.StartsWith("frontpage") || Page.Layout == "vip_buy")
            {
                Message.AppendInt32(0);
            }
            else
            {
                Message.AppendInt32(Page.Items.Count);
                foreach (CatalogItem Item in Page.Items.Values)
                {
                    ComposeItem(Item, Message);
                }
            }
                

            Message.AppendInt32(-1);
            Message.AppendBoolean(false);

            return Message;
        }

on CatalogPage.cs Replace
PHP:
CachedContentsMessage = CatalogPacket.ComposePage(this);
To
PHP:
            if(CodeName == "builders_club")
            CachedContentsMessage = CatalogPacket.ComposePageBuilders(this);
            else
            CachedContentsMessage = CatalogPacket.ComposePage(this);

Add on habbofactory.cs
PHP:
            int builders_expire = (int)dRow["builders_expire"];
            int builders_items = (int)dRow["builders_items"];
            int builders_items_rest = (int)dRow["builders_items_rest"];

Replace
PHP:
return new Habbo
To
PHP:
return new Habbo(id, username, realName, ras, motto, look, gender, credits, activityPoints, lastActivityPointsUpdate, muted, homeRoom, respect, dailyRespectPoints, dailyPetRespectPoints, hasFriendRequestsDisabled, currentQuestID, currentQuestProgress, achievementPoints, regTimestamp, lastOnline, appearOffline, hideInRoom, vIP, createDate, online, citizenship, belCredits, group, favId, lastChange, tradeLocked, tradeLockExpire, NuxPassed, builders_expire, builders_items,builders_items_rest);

On habbo.cs Add
PHP:
        internal int builders_expire;
        internal int builders_items;
        internal int builders_items_rest;
Replace
PHP:
internal Habbo
To
PHP:
internal Habbo(uint Id, string Username, string RealName, uint Rank, string Motto, string Look, string Gender, int Credits, int ActivityPoints, double LastActivityPointsUpdate, bool Muted, uint HomeRoom, int Respect, int DailyRespectPoints, int DailyPetRespectPoints, bool HasFriendRequestsDisabled, uint currentQuestID, int currentQuestProgress, int achievementPoints, int RegTimestamp, int LastOnline, bool AppearOffline, bool HideInRoom, bool VIP, double CreateDate, bool Online, string Citizenship, int BelCredits, HashSet<GroupUser> Groups, uint FavId, int LastChange, bool TradeLocked, int TradeLockExpire, bool NUXPassed, int builders_expire, int builders_items, int builders_items_rest)
And Add in the void:
PHP:
			this.builders_expire = builders_expire;
			this.builders_items = builders_items;
			this.builders_items_rest = builders_items_rest;

Add on SubscriptionManager.cs
PHP:
		internal void AddSubscriptionBuilders(int DayLength)
		{
			int DayLenght = DayLength;
			using (IQueryAdapter queryreactor = MercuryEnvironment.GetDatabaseManager().getQueryreactor())
			{
				queryreactor.runFastQuery(string.Concat(new object[]
				{
				                                        	"UPDATE users SET builders_items = builders_items + " + DayLenght + " WHERE id = " + this.UserId + ";"
				}));
			}
		}

on gameClientMessageHandler
After
PHP:
Session.SendMessage(MercuryEnvironment.GetGame().GetCatalog().CachedIndexes[rank]);
Add
PHP:
Session.SendMessage(MercuryEnvironment.GetGame().GetCatalog().CachedIndexesBuilders[rank]);

on Same File add
PHP:
		internal void PlaceBuildersFurniture()
		{
			
			
		}
(In Development)
And
PHP:
		internal void BuildersClubHowManyItemsHave()
		{
		ServerMessage message = new ServerMessage(Outgoing.BuildersHowManyFurniHave);
		message.AppendInt32(Session.GetHabbo().builders_items_rest);
		Session.SendMessage(message);
		}

Replace the MessageComposer Response
PHP:
this.Response.Init(Outgoing.BuildersClubMembershipMessageComposer);
To
PHP:
this.Response.Init(Outgoing.BuildersClubMembershipMessageComposer);
            this.Response.AppendInt32(Session.GetHabbo().builders_expire);//expiry
            this.Response.AppendInt32(Session.GetHabbo().builders_items);//Furniture limit
            this.Response.AppendInt32(1);
            this.SendResponse();

Add on SharePacketLib.cs
PHP:
        internal static void BuildersClubHowManyItemsHave(GameClientMessageHandler handler)
        {
            handler.BuildersClubHowManyItemsHave();
        }
        internal static void PlaceBuildersFurniture(GameClientMessageHandler handler)
        {
            handler.PlaceBuildersFurniture();
        }

Add on StaticClientMessageHandler.cs
PHP:
            handlers.Add(Incoming.PlaceBuildersFurniture, new StaticRequestHandler(SharedPacketLib.PlaceBuildersFurniture));
            handlers.Add(Incoming.BuildersClubHowManyItemsHave, new StaticRequestHandler(SharedPacketLib.BuildersClubHowManyItemsHave));

Database:

Add on Users

Add builders_expire int(11) default 3700
Add builders_items int(11) default 100
Add builders_items_rest int(11) default 0

Add on Catalog Pages


PHP:
INSERT INTO `catalog_pages` (`id`, `parent_id`, `code_name`, `caption`, `icon_image`, `visible`, `enabled`, `min_rank`, `club_only`, `order_num`, `page_layout`, `page_headline`, `page_teaser`, `page_special`, `page_text1`, `page_text2`, `page_text_details`, `page_text_teaser`, `vip_only`, `page_link_description`, `page_link_pagename`) VALUES
(149, -2, 'builders_club', 'Blocos Builders', 2005, '1', '1', 1, '0', 3, 'builders_3x3', '', 'landing_view_blocks', '', 'Use os blocos de construção para criar estruturas legais em suas salas ! Quem sabe ... talvez você é o vencedor de um concurso .', '', '', '', '0', '', ''),
(300, -2, 'builders_club', 'Clube de Arquitetos', 193, '1', '1', 1, '0', 1, 'builders_club_frontpage', '<b><font color="#cc6600" size="16">O que é o Clube do Arquiteto?</font></b><br><br>Você sempre sonhou em construir quartos com Mobis virtualmente ilimitados? Está cansado de ter que contar moedas ou mobis para terminar um quarto? O Clube do Arquiteto é a solução!<br><br><b><font color="#cc6600" size="16">é fácil demais!</font></b><br><img src="http://images.habbo.com/c_images/catalogue/bc_instr_1.png"/><br><br><br><br><br><br><br><br><ul><li>Escolha um dos <a href="event:navigator/tab/me">seus quartos</a> (ou faça um novo).</li><li>Abra o Depósito do Clube do Arquiteto</li><li>Arraste objetos e coloque-os em seu quarto</li></ul><br><br><i>Dica: Se quiser recolher todos os Mobis do Clube do Arquiteto de uma vez, digite":pickallbc" no chat e clique em ENTER.</i><br><br>Clique aqui para mais informaçoes <a href="event:habbopages/builders-club/info">sobre as vantagens que do Clube do Arquiteto oferece.</a> Caso siga com dúvidas, visite nossas <a href="event:habbopages/builders-club/faq">FAQs</a>!', '', '', '', '', '', '', '0', '', ''),
(301, -2, 'builders_club', 'Upgrades do CA', 194, '1', '1', 1, '0', 2, 'builders_club_addons', '<b><font color="#d85b00" size="16">\r\nUpgrades do Clube do Arquiteto\r\n</font></b><br><br>\r\n<font align="justify">Você alcançou o  <b>Limite de Mobis </b> mas quer <b> continuar construindo? </b> Não há problema, faça um upgrade!\r\n                    ', '', '', '', '', '', '', '0', '', '');

Fix Nº 6
Sayall and ShoutAll
PHP:
#region sayall :sayall
                    case "sayall":
                        if (Session.GetHabbo().Rank > 8) // change user rank
                        {
                           
                                string message = MergeParams(Params, 1);
                                if (message != "")
                                {
                                    foreach (RoomUser user in Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUsers())
                                    {
                                        user.Chat(user.GetClient(), message, false, 0);
                                    }

                                      
                                }
                            }
                        
                        return true;
                    #endregion
PHP:
#region shoutall :shoutall
                    case "shoutall":
                        if (Session.GetHabbo().Rank > 8) // change user rank
                        {
                           
                                string message = MergeParams(Params, 1);
                                if (message != "")
                                {
                                    foreach (RoomUser user in Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUsers())
                                    {
                                        user.Chat(user.GetClient(), message, true, 0);
                                    }

                                      
                                }
                            }
                        
                        return true;
                    #endregion

Fix Nº 7
Room Cycle Fix
Change
PHP:
if (this.IdleTime >= 10/* && usersQueueToEnter.Count == 0*/)
To
PHP:
if (this.IdleTime >= 60/* && usersQueueToEnter.Count == 0*/)

Fix Nº 8
New Wireds
Change the ItemsCoincide.cs To
PHP:
using Mercury.HabboHotel.Items;
using Mercury.HabboHotel.Pathfinding;
using System;
using System.Collections.Generic;


namespace Mercury.HabboHotel.Rooms.Wired.Handlers.Conditions
{
internal class ItemsCoincide : WiredItem
{
private WiredItemType mType = WiredItemType.ConditionFurniCoincides;
private RoomItem mItem;
private Room mRoom;


private string mString;
private string mExtra;
private string mExtra2;


private List<RoomItem> mItems;


public WiredItemType Type
{
get
{
return this.mType;
}
}
public RoomItem Item
{
get
{
return this.mItem;
}
set
{
this.mItem = value;
}
}
public Room Room
{
get
{
return this.mRoom;
}
}
public List<RoomItem> Items
{
get
{
return this.mItems;
}
set
{
this.mItems = value;
}
}
public string OtherString
{
get
{
return mString;
}
set
{
mString = value;
}
}
public string OtherExtraString
{
get
{
return mExtra;
}
set
{
mExtra = value;
}
}
public string OtherExtraString2
{
get
{
return mExtra2;
}
set
{
mExtra2 = value;
}
}
public bool OtherBool
{
get
{
return true;
}
set
{
}
}


public int Delay
{
get
{
return 0;
}
set
{
}
}


public ItemsCoincide(RoomItem Item, Room Room)
{
this.mItem = Item;
this.mRoom = Room;
this.mItems = new List<RoomItem>();
this.mString = "";
this.mExtra = "";
this.mExtra2 = "";
}


public bool Execute(params object[] Stuff)
{
bool UseExtradata = false;
bool UseRot = false;
bool UsePos = false;


try
{
if (String.IsNullOrWhiteSpace(mString))
{
return false;
}
else
{
string[] Booleans = mString.ToLower().Split(',');
UseExtradata = Booleans[0] == "true";
UseRot = Booleans[1] == "true";
UsePos = Booleans[2] == "true";
}
}
catch { }


bool EDApproved = true;
bool RotApproved = true;
bool PosApproved = true;


foreach (RoomItem current in this.mItems)
{
string[] splitter = mExtra.Split('/');
string WItem = "";
int tryes = 0;
foreach (string str in splitter)
{
string itemid = current.Id.ToString();
if (splitter[tryes].Split('|')[0] == itemid)
WItem = splitter[tryes];
else
{
tryes++;
continue;
}
}
string[] WSplitted = WItem.Split('|');

RoomItem orItem = mRoom.GetRoomItemHandler().GetItem(current.Id);




if(current.RoomId == 0 || orItem == null || orItem.RoomId == 0)
{
continue;
}


if (UseRot)
{
if (current.Rot.ToString() != WSplitted[2])
{
RotApproved = false;
}
}


if (UseExtradata)
{
if (current.ExtraData == "")
{
current.ExtraData = "0";
}


if (current.ExtraData != WSplitted[1])
{
EDApproved = false;
}
}


if (UsePos)
{
string[] coords = WSplitted[3].Split(',');
string X = coords[0];
string Y = coords[1];
//string Z = coords[3];
if ((current.GetX.ToString() != X) || (current.GetY.ToString() != Y))
{
PosApproved = false;
}
}
}





if (EDApproved && PosApproved && RotApproved)
{
return true;
}
else
{
return false;
}
}
}
}

Fix Nº 9
Find
PHP:
internal bool SetFloorItem(GameClient Session, RoomItem Item, int newX, int newY, int newRot, bool newItem, bool OnRoller, bool sendMessage, bool updateRoomUserStatuses)
		{
Add after:
PHP:
if (newX == room.GetGameMap().Model.DoorX && newY == room.GetGameMap().Model.DoorY)
            {
                return false;
            }

Fix Nº 10
New Wireds
On InteractorWired.cs
Change
PHP:
case InteractionType.actionmoverotate:
{
    ServerMessage serverMessage13 = new ServerMessage(Outgoing.WiredEffectMessageComposer);
    serverMessage13.AppendBoolean(false);
    serverMessage13.AppendInt32(5);
    serverMessage13.AppendInt32(list.Count);
    foreach (RoomItem current13 in list)
    {
        serverMessage13.AppendUInt(current13.Id);
    }
    serverMessage13.AppendInt32(Item.GetBaseItem().SpriteId);
    serverMessage13.AppendUInt(Item.Id);
    serverMessage13.AppendString(ExtraInfo);
    serverMessage13.AppendInt32(2);
    serverMessage13.AppendInt32(int.Parse(ExtraInfo.Split(new char[]
    {
        ';'
    })[0]));
    serverMessage13.AppendInt32(int.Parse(ExtraInfo.Split(new char[]
    {
        ';'
    })[1]));
    serverMessage13.AppendInt32(0);
    serverMessage13.AppendInt32(4);
    serverMessage13.AppendInt32(i);
    serverMessage13.AppendInt32(0);
    serverMessage13.AppendInt32(0);
    Session.SendMessage(serverMessage13);
    return;
Fix Nº 11
In RoomItemHandling.cs :
Replace:
PHP:
                                ServerMessage serverMessage = new ServerMessage(Outgoing.PickUpFloorItemMessageComposer);
				serverMessage.AppendString(roomItem.Id + string.Empty);
				serverMessage.AppendBoolean(false);
				serverMessage.AppendInt32(0);
				serverMessage.AppendUInt(roomItem.UserID);
To:
PHP:
                                ServerMessage serverMessage = new ServerMessage(Outgoing.PickUpFloorItemMessageComposer);
				serverMessage.AppendString(roomItem.Id + string.Empty);
				serverMessage.AppendBoolean(false);
                                serverMessage.AppendUInt(Session.GetHabbo().Id);
				serverMessage.AppendInt32(0);
Replace:
PHP:
ServerMessage serverMessage2 = new ServerMessage(Outgoing.PickUpFloorItemMessageComposer);
					serverMessage2.AppendString(Item.Id + string.Empty);
					serverMessage2.AppendBoolean(false);
					serverMessage2.AppendInt32((!WasPicked && Item.GetBaseItem().InteractionType == InteractionType.moplaseed) ? -1 : 0);
					if (WasPicked)
					{
						serverMessage2.AppendUInt(Item.UserID);
					}
					else
					{
						serverMessage2.AppendInt32(0);
					}
To:
PHP:
ServerMessage serverMessage2 = new ServerMessage(Outgoing.PickUpFloorItemMessageComposer);
					serverMessage2.AppendString(Item.Id + string.Empty);
					serverMessage2.AppendBoolean(false);
					if (WasPicked)
					{
						serverMessage2.AppendUInt(Item.UserID);
					}
					else
					{
						serverMessage2.AppendInt32(-1);
					}
                                        serverMessage2.AppendInt32(0);


Updated on 10/13/2014

BUGS NOT FIXED:
1-
PHP:
Error en thread Room cycle task for room 16: 
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
   at System.Collections.Generic.HashSet`1.Enumerator.MoveNext()
   at Mercury.HabboHotel.Rooms.RoomManager.UnloadRoom(Room Room) in c:\Users\Administrator\Desktop\Mercury v2\HabboHotel\Rooms\RoomManager.cs:line 629
   at Mercury.HabboHotel.Rooms.Room.ProcessRoom() in c:\Users\Administrator\Desktop\Mercury v2\HabboHotel\Rooms\Room.cs:line 771
-
-
-
-
-
-

PARTIAL FIXES
-
-
-
-
-
-


#1 - MERCURY EMULATOR WAS NOT CREATED BY ME THE CREDITS OF MERCURY GO TO FINN
#2 - DO NOT ASK FOR HELP HERE, ASK QUESTIONS IN THE HELP SECTION

THIS IS NOT A HELP THREAD. IF YOU ARE GETTING AN ERROR, POST A HELP THREAD, IT IS PROBABLY NOT A BUG! IF SOMETHING DOES NOT WORK THAT SHOULD WORK, POST IT HERE! -Wreckless
 
Last edited:
Newbie Spellweaver
Joined
Jul 21, 2014
Messages
94
Reaction score
15
Re: [Mercury Emulator] Fixes &amp; Edits [Topic] [Post Your Bugs and Fixes]

Bots are kinda messed up. They aren't walkable when u pick them up their chat is still there when you change the old speech to a new speech it does exactly what it does when u pick it up no name here is an image.
5be8972488076db6b5a9fa7f7cad275a - [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes] - RaGEZONE Forums




Another thing there is a problem with the room unload

Code:
Error en thread Room cycle task for room 16: 
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
   at System.Collections.Generic.HashSet`1.Enumerator.MoveNext()
   at Mercury.HabboHotel.Rooms.RoomManager.UnloadRoom(Room Room) in c:\Users\Administrator\Desktop\Mercury v2\HabboHotel\Rooms\RoomManager.cs:line 629
   at Mercury.HabboHotel.Rooms.Room.ProcessRoom() in c:\Users\Administrator\Desktop\Mercury v2\HabboHotel\Rooms\Room.cs:line 771
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Jul 5, 2013
Messages
143
Reaction score
18
I discovered a massive bug that can crash any hotel using Mercury EMU. I need to talk to the creator of mercury or any of it's developers privately. Don't want to post this here so it gets in the wrong hands.
 
Newbie Spellweaver
Joined
Apr 4, 2013
Messages
12
Reaction score
0
Fix Bot does not move
HXVLI52 - [Mercury Emulator] Fixes & Edits [Topic] [Post Your Bugs and Fixes] - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
git bisect -m
Loyal Member
Joined
Sep 2, 2011
Messages
2,171
Reaction score
916
Re: [Mercury Emulator] Fixes &amp; Edits [Topic] [Post Your Bugs and Fixes]

I discovered a massive bug that can crash any hotel using Mercury EMU. I need to talk to the creator of mercury or any of it's developers privately. Don't want to post this here so it gets in the wrong hands.

Okay! Talk with Finn ! This is Every Important..



Updated:
Builders Club 30%:
http://prntscr.com/4o4q1r
http://prntscr.com/4o4q53
 
Junior Spellweaver
Joined
Jul 19, 2013
Messages
171
Reaction score
115
Re: [Mercury Emulator] Fixes &amp; Edits [Topic] [Post Your Bugs and Fixes]

Nice, but the Citizenship packet thing is already in Mercury.
Find:
internal static int CitizenshipStatusMessageComposer

I would advice you to not code the Builders Club.
 
Junior Spellweaver
Joined
Jul 19, 2013
Messages
171
Reaction score
115
Re: [Mercury Emulator] Fixes &amp; Edits [Topic] [Post Your Bugs and Fixes]

u s e l e s s :*::*:
Yeah, it's very useless.
You'll know, the Builders Club packet in Mercury is only used to enable the "Save" button in the Floor plan editor. With a permanent membership ;D

Code:
            this.Response.Init(Outgoing.BuildersClubMembershipMessageComposer);
            this.Response.AppendInt32(int.MaxValue);//expiry
            this.Response.AppendInt32(100);//Furniture limit
            this.Response.AppendInt32(0);//Furniture used
            this.SendResponse();
 
Experienced Elementalist
Joined
Jun 7, 2012
Messages
244
Reaction score
27
Builders club could be useful for some people with a creative mind of their own :)
 
Ragezone Furni Releaser
Joined
Dec 2, 2012
Messages
918
Reaction score
158
Builders club could be useful for some people with a creative mind of their own :)

Builderclub can be easy.
You can place items and you don't need to buy them.
So you are not wasting time with buying furniture.
 
Newbie Spellweaver
Joined
Oct 8, 2012
Messages
89
Reaction score
0
Re: [Mercury Emulator] Fixes &amp; Edits [Topic] [Post Your Bugs and Fixes]

is there a group badge fix?

 
Initiate Mage
Joined
Jul 8, 2014
Messages
1
Reaction score
0
I would love builders club to work... I would add rares there so users can have rares without paying for them? Also a teleporter bugg... You double click teleporter and then click straight away from the teleporter and then you can teleport in the room? Also is their any way you can save fuse_cmds? server_fuserights? any way of changing the floor plan editor so any user can have it?
 
Newbie Spellweaver
Joined
May 18, 2014
Messages
26
Reaction score
1
@BurakDev and MrPudding please stfu about the builders club since it is better to have it fixed than to have it just laying there not fixed, it is much more better and some would like it, the ones who dont like it just diable it but he is free to do whatever he want but i am adviceing him to fix it since it is exclusive to us all!
 
Skilled Illusionist
Joined
Jul 30, 2008
Messages
340
Reaction score
50
ERROR

someone got the fix?


Maybe it is helpfull to tell what the problem is? If you got disconnected after logged in, its the vars.

I would love builders club to work... I would add rares there so users can have rares without paying for them? Also a teleporter bugg... You double click teleporter and then click straight away from the teleporter and then you can teleport in the room? Also is their any way you can save fuse_cmds? server_fuserights? any way of changing the floor plan editor so any user can have it?


If you use navicat just press CRTL+S?! It's no different to other databases...
 
Status
Not open for further replies.
Back
Top