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!

hMercury [C#] [SharpNetty] [Linq] [OS]

Status
Not open for further replies.
git bisect -m
Loyal Member
Joined
Sep 2, 2011
Messages
2,171
Reaction score
916
THIS IS NOT A THREAD FOR HELP



What is hMercury?
It is the re-writing of Mercury Emulator and its Nucleus. In addition to "adjust" and "fix" badly-written code, correct structures ill-made ​​database, Fix vulnerabilities database, Structures and Improve Speed, Adding System.Linq, Griffin.Networking, LinqDB, log4net, between other means. Insert system Buffers in "packtes" Insert multiple system releases with support in connection Both Adjust the "threads", use HybridDictionarys, and other tools of the Net Framework 4.5, Providing all the features of Habbo Hotel or in part . In addition to providing an open source code and Free. Provide a system of languages​​, among many other items. hMercury is holoMercury, recalling the era of "Meth0d" one of the pioneers in Systems Private Habbo Hotel, with its "holograph emulator". the hMercury is a reconstruction of the good times. This is hMercury.


Was is Multiple Incoming?
It's the Packets from Incoming and Outgoing in a Folder Called Packets, you can Change the Packets without Recompile or Restart the Emulator, and More you can Handshake More than 1 Releases (Must have Same RSA Keys :/)


Features
- Now Changed to Griffin.Networking
- LinqDB (Supports Now: Oracle, Ingress, MySQL, FireBird, PgSQL, SqLite)
- WinConsole (Makes Trace from Output and More)
- AutoClear
- Debug Mode with Appart Console
- Builders Club
- Camera
- New Release from 22 Sptember
- Multiple Incoming System
- log4Net
- New Navigator
- Super Wireds
- Pet Breeding
- New Polls
- Habbo Alphas
- All Code Normalized to attempt the C# Coding Rules.
- BattleBanzai 100%
- Bots 100%
- RunFastQuery edited to fix the vulnerabilites
- More wireds are coded (70% of SuperWired Working)
- Using new .Net 4.5.3 methods
- New Commands


Snippet LibraryParser.cs
PHP:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Mercury.Configuration;
using Mercury.Messages.Handlers;

namespace Mercury.Messages.Parsers
{
    static class LibraryParser
    {
        internal static Dictionary<int, StaticRequestHandler> Incoming;
        internal static Dictionary<string, string> Library;
        internal static Dictionary<string, int> Outgoing;
        internal static int CountReleases;
        internal static string ReleaseName;

        public delegate void ParamLess();

        internal delegate void StaticRequestHandler(GameClientMessageHandler handler);

        public static int OutgoingRequest(string packetName)
        {
            if (!Outgoing.ContainsKey(packetName))
                return 0;
            var packetId = Convert.ToInt32(Outgoing[packetName]);
            return packetId;
        }

        public static void LibRequest(string handler) { }

        public static void Initialize()
        {
            Logging.WriteLine(string.Format("Loaded {0} Habbo Releases", CountReleases), ConsoleColor.Cyan);
            Logging.WriteLine(string.Format("Loaded {0} Event Controllers", Incoming.Count), ConsoleColor.Cyan);
        }

        public static void HandlePacket(GameClientMessageHandler handler, ClientMessage message)
        {
            if (message.Id == 4000)
            {
            }
            else if (Incoming.ContainsKey(message.Id))
            {
                if (MercuryEnvironment.Debugmode)
                    Logging.WriteLine(string.Format("[Incoming] Handled  {0}", message), ConsoleColor.Green);
                var staticRequestHandler = Incoming[message.Id];
                staticRequestHandler(handler);
            }
            else if (MercuryEnvironment.Debugmode)
                Logging.WriteLine(string.Format("[Incoming] Refused  {0}", message), ConsoleColor.Red);
        }

        internal static void ReloadDictionarys()
        {
            Incoming.Clear();
            Outgoing.Clear();
            Library.Clear();
        }

        internal static void RegisterIncoming()
        {
            CountReleases = 0;
            var filePaths = Directory.GetFiles(string.Format("{0}\\Packets", Application.StartupPath), "*.incoming");
            foreach (var currentFile in filePaths)
            {
                CountReleases += 1;
                var fileContents = File.ReadAllLines(currentFile, Encoding.UTF8);
                foreach (var line in fileContents)
                {
                    var fields = line.Split('=');

                    var packetName = fields[0];
                    if (fields[1].Contains("x") || fields[1].Contains("X"))
                    {
                        var packetId = (int)new System.ComponentModel.Int32Converter().ConvertFromString(fields[1]);
                        if (!Library.ContainsKey(packetName))
                            continue;
                        var libValue = Library[packetName];
                        var del =
                            (PacketLibrary.GetProperty)
                                Delegate.CreateDelegate(typeof (PacketLibrary.GetProperty), typeof (PacketLibrary),
                                    libValue);
                        if (Incoming.ContainsKey(packetId))
                            Console.WriteLine(
                                "> Sorry but In anyone Release Have the Same Packet Ids and This can't Happen, you must change the Id..");
                        else
                            Incoming.Add(packetId, new StaticRequestHandler(del));
                    }
                    else
                    {
                        var packetId = Convert.ToInt32(fields[1]);
                        if (!Library.ContainsKey(packetName))
                            continue;
                        var libValue = Library[packetName];
                        var del =
                            (PacketLibrary.GetProperty)
                                Delegate.CreateDelegate(typeof (PacketLibrary.GetProperty), typeof (PacketLibrary),
                                    libValue);
                        if (Incoming.ContainsKey(packetId))
                            Console.WriteLine(
                                "> Sorry but In anyone Release Have the Same Packet Ids and This can't Happen, you must change the Id..");
                        else
                            Incoming.Add(packetId, new StaticRequestHandler(del));
                    }
                }
            }
        }

        internal static void RegisterOutgoing()
        {
            var filePaths = Directory.GetFiles(string.Format("{0}\\Packets", Application.StartupPath), "*.outgoing");
            foreach (var fileContents in filePaths.Select(File.ReadAllLines))
            {
                foreach (var line in fileContents)
                {
                    var fields = line.Split('=');
                    var packetName = fields[0];
                    var packetId = int.Parse(fields[1]);
                    Outgoing.Add(packetName, packetId);
                }
            }
        }

        internal static void RegisterLibrary()
        {
            var filePaths = Directory.GetFiles(string.Format("{0}\\Packets", Application.StartupPath), "*.library");
            foreach (var fileContents in filePaths.Select(File.ReadAllLines))
            {
                foreach (var line in fileContents)
                {
                    var fields = line.Split('=');
                    var incomingName = fields[0];
                    var libraryName = fields[1];
                    Library.Add(incomingName, libraryName);
                }
            }
        }
    }
}


Bugs
- Help Tickets Doesn't Works
- Place Same Item Doesnt Work
- Report Forum Thread gives Disconnect


SWF Versions
- RELEASE63-201410151001-47842918 (On Development)
- RELEASE63-201409222303-304766480 (Done, And Working)


Version
ɣ (11/12/14)


Downloads
Emulator
Info
BitBucket
Download
Habbo.swf
Info
Version: RELEASE63-201409222303-304766480
Download

Version: RELEASE63-201410151001-47842918
Download
Database
Info
Complete Database
Download
Included on Emulator Download


Complete SWF for hMercury

Habbo.com Webgallery


Instructions
1º - Download the Branch
2º - Import the Database.sql
3º - Open the folder: "hMercury/Mercury.Emulator/Buildings/" Copy the Content of The Folder
4º - Create the Folder: "hMercury/bin/Debug/"
5º - Paste the Content
6º - Open your C# IDE
7º - Build or Debug the Solution
8º - Open the Emulator
9º - Enjoy and Be Happy


Screens
1.
2.
3.
4.
5. , ,
6. , ,
7. ,


Repository
-


Net Framework 4.6


Issues and Bugs
-


Bug List
-


Team
- Boris
- Antonio
- Antoine
- Claudio
- Jonas
- VabboH
- Maartenvn
- Anderson
- Jamal

Thanks, for Your Help, And this is Forever FREE, Don't Remove the Copyright ;)
 

Attachments

You must be registered for see attachments list
Last edited:
Junior Spellweaver
Joined
Sep 29, 2012
Messages
112
Reaction score
9
Actually just the Mercury catalogue works with this. So, that's not a problem. And here, i still have a copy of the clean Database of this, i just tested it, and it works with this. so,

 

AWA

Master Summoner
Loyal Member
Joined
Feb 24, 2008
Messages
595
Reaction score
389
You might want to use this:
 
Newbie Spellweaver
Joined
Apr 19, 2014
Messages
47
Reaction score
2
can someone help me The texts do not load and the functions do not go all

Has anyone also Such problem.


ovflowd - hMercury  [C#] [SharpNetty] [Linq] [OS] - RaGEZONE Forums

Code:
room.camera.button.text=Camera
room.camera.button.tooltip=Use Camera
room.chathistory.button.text=Chat History
room.zoom.button.text=Zoom
room.like.button.text=I like it
room.like.button.tooltip=I like this room
room.settings.button.text=Settings
room.settings.button.tooltip=Open settings
chat.history.button.tooltip=View Chat History
 
Last edited:
Banned
Banned
Joined
Feb 9, 2007
Messages
1,313
Reaction score
177
Looks like a very good and professional development, good luck with this. ( It's another Brazilian person coming with a awesome development! ).
 
Rogu3
Joined
May 11, 2012
Messages
933
Reaction score
508
Exprevita said:
Hey, where do I get .NET Framework 4.5.3 from? Can't find it anywhere on the internet but it's needed to run it.
.NET Framework 4.5.3 should literally be the easiest thing to find ever. Google it, it's also included in the OP.
 
Skilled Illusionist
Joined
Jul 30, 2008
Messages
340
Reaction score
50
.NET Framework 4.5.3 should literally be the easiest thing to find ever. Google it, it's also included in the OP.

Well it's not, i can't even find it on the microsoft website. Only softonic download link's, and those are fucked up because malware.

Got a newer version then 4.5. poop doesn't work, gimme a dlink?!
 
Skilled Illusionist
Joined
Jul 30, 2008
Messages
340
Reaction score
50

I was dumb like hell. had the download link already open, sorry for my dumb dumb dumb response.

I got an error, but im not gonna flood it in here. just gonna open a topic in the help section;) Thanks anyway for the answer luna.
 
Skilled Illusionist
Joined
Jul 30, 2008
Messages
340
Reaction score
50
I know this is not a help thread, and i am really sorry if you gonna hate me for posting this screen in here. But can you manage to help me?

I really need to get my retro online.
 

Attachments

You must be registered for see attachments list
Status
Not open for further replies.
Back
Top