Revolution Emulator [C#, R63B, Encryption Cracked, DAO, Fluent NHibernate, Lua Plugin, Mono]

Status
Not open for further replies.

Quackster

a devbest user says what
Aug 22, 2010
1,765
1,245
It's framework is still the best, yes it's not hotel use atm, yes it has been in development, but listen you jelly little aussie.

RevEmu still has a strong framework which if i benchmark with Sierra, the results will be Rev winning.

Unlike you with loads of free-time, this guy has university lol, but watch when i get back in business all you little twats better watch out.
You cannot benchmark or compare something that is coded in a different language.
 

Zak

Posting Freak
Mar 12, 2011
848
453
You can benchmark it's natural resources for example MySql and Sockets and code wise.

But of course your sockets are based on Netty so i can't really challenge.
 

Adil

DevBest CEO
May 28, 2011
1,278
716
You can benchmark how fast program x completes a specified operation and how fast program y does.. these can be written in any language
 

yhyhyh

New Member
Dec 22, 2011
4
0
When do you think the first release will be? (Sorry if it has been in the reply's I didn't want to go through 77 looking for a download link:L)
 

Ayumi

Joshua Pike.
Sep 13, 2010
1,028
73
If you need a new, more exciting and better looking logo, hit me up
 

Ghost

Legacy, it's all anyone leaves behind.
Jun 8, 2012
1,641
503
If you need a new, more exciting and better looking logo, hit me up

I don't really think they care about the logo for now they just care about the progress and work following along with school.
 

Zak

Posting Freak
Mar 12, 2011
848
453
I am working on a dynamic system that allows certain Habbo features such as Catalog be updated, for example if the Catalog gets a change on how it works, you can easily update the feature instead of coding, since not all people can code.

For example here's the interface where the functions are stored.

Code:
namespace Revolution.Application.HabboHotel
{
    /// <summary>
    ///     Controls all the features related to Habbo, for example Catalog, Navigator.
    /// </summary>
    /// <typeparam name="T">Used to grab a function for example, Your making a function called NavigatorSearch, you may grab the primary Navigator class for example NavigatorLoader, which contains all the data.</typeparam>
    internal interface IHabboFunction<out T>
    {
        /// <summary>
        ///     Name of the Habbo function, for example; "Catalog", "SentMyFriendRequest"
        /// </summary>
        string Name { get; }

        /// <summary>
        ///     The version of the feature, for example "CatalogPageLoader" Version = 1.02, this will be used for the new update manager.
        /// </summary>
        double Version { get; }

        /// <summary>
        ///     This usually for example R63, R26 and such, this will be used for the multi client manager.
        /// </summary>
        string KeyRelease { get; }

        /// <summary>
        ///     Release Build for the function
        /// </summary>
        string ReleaseBuild { get; }
    }
}

Than for a feature for example Catalog:

Code:
internal class Catalog : IHabboFunction<CatalogPageController>

I also have started finishing the cache that i never finished for Catalog

Code:
using NHibernate;
using NHibernate.Criterion;
using Revolution.Api;
using Revolution.Application.Communication.Sessions;
using Revolution.Application.HabboHotel.Catalog.Controllers;
using Revolution.Core;
using Revolution.Revision.R63.Game.Habbo.Controller;
using Revolution.Util.External.Nito.Cache;
using RevolutionDatabase.Tables;


namespace Revolution.Application.HabboHotel.Catalog
{
    internal class Catalog : IHabboFunction<CatalogPageController>
    {
        private readonly WeakCache<int, CatalogPageController> _pageCache;

        #region Indexer
        public CatalogPageController this[int id]
        {
            get
            {
                CatalogPageController result = _pageCache[id];
                return result;
            }
        }

        #endregion

        /// <summary>
        /// 
        /// </summary>
        public Catalog()
        {
           _pageCache = new WeakCache<int, CatalogPageController>(Instance);
        }

        public CatalogPageController GetPage(int i)
        {
            using (ISession dbSession = ApiRoot.DatabaseCallback.GetDatabase().GetSessionFactory().OpenSession())
            {
                var p = dbSession.CreateCriteria<catalogpage>().Add(Restrictions.Eq("id", i)).UniqueResult<catalogpage>();

                return p.id == 0 ? null : this[p.id];
            }
        }

        /// <summary>
        ///     Handel the purchase for an object from the catalog.
        /// </summary>
        public void Purchase(Session session, Message message)
        {
            // Get pageId from Client.
            int pageId = message.NextInt32();

            // Get itemId from Client.
            int itemId = message.NextInt32(); // not used for now.

            // Create a instance of CatalogItemController using the purchased item Id.
            var purchasedItem = new CatalogItemController(itemId);

            // Simple check.
            if (purchasedItem.pageId != pageId) // If Page id does not match
                return;

            // Remove credits based on Item cost.
            session.Habbo.credits -= purchasedItem.credits;

            message = new Message(11); // Change to CreditUpdate id.

            // Updates users credits.
            message.WriteString("" + session.Habbo.credits + ".0");

            session.SendPacket(message);

            session.Habbo.SaveOrUpdate(session.Habbo);
        }

        public CatalogPageController Instance(int i)
        {
            return new CatalogPageController(i);
        }

        public string Name
        {
            get { return "Catalog"; }
        }

        public double Version
        {
            get { return 1.0; }
        }

        public string KeyRelease
        {
            get { return "R63"; }
        }

        public string ReleaseBuild
        {
            get { return "TBS"; /* TBS = To be set */ }
        }
    }
}

There is still a lot more to come, i am currently updating headers to the latest build, i am also completing the Catalog and the Navigator after this i will finish the unfinished Room loading and Model loading.

I also am working on a class diagram to give programmers and people who wanna work on RevEmu a better idea on how it works.

RevEmu is made for people who can't code and want a badass emu.

I have also started on a little Plugin where people can install custom commands from other coders (Of course each command is verified for Sql exploits and such)

Yeah development seems a bit dead... :p
 

Feedback

Haboa Hotel
Jun 11, 2012
80
14
I am working on a dynamic system that allows certain Habbo features such as Catalog be updated, for example if the Catalog gets a change on how it works, you can easily update the feature instead of coding, since not all people can code.

For example here's the interface where the functions are stored.

Code:
namespace Revolution.Application.HabboHotel
{
    /// <summary>
    ///    Controls all the features related to Habbo, for example Catalog, Navigator.
    /// </summary>
    /// <typeparam name="T">Used to grab a function for example, Your making a function called NavigatorSearch, you may grab the primary Navigator class for example NavigatorLoader, which contains all the data.</typeparam>
    internal interface IHabboFunction<out T>
    {
        /// <summary>
        ///    Name of the Habbo function, for example; "Catalog", "SentMyFriendRequest"
        /// </summary>
        string Name { get; }
 
        /// <summary>
        ///    The version of the feature, for example "CatalogPageLoader" Version = 1.02, this will be used for the new update manager.
        /// </summary>
        double Version { get; }
 
        /// <summary>
        ///    This usually for example R63, R26 and such, this will be used for the multi client manager.
        /// </summary>
        string KeyRelease { get; }
 
        /// <summary>
        ///    Release Build for the function
        /// </summary>
        string ReleaseBuild { get; }
    }
}

Than for a feature for example Catalog:

Code:
internal class Catalog : IHabboFunction<CatalogPageController>

I also have started finishing the cache that i never finished for Catalog

Code:
using NHibernate;
using NHibernate.Criterion;
using Revolution.Api;
using Revolution.Application.Communication.Sessions;
using Revolution.Application.HabboHotel.Catalog.Controllers;
using Revolution.Core;
using Revolution.Revision.R63.Game.Habbo.Controller;
using Revolution.Util.External.Nito.Cache;
using RevolutionDatabase.Tables;
 
 
namespace Revolution.Application.HabboHotel.Catalog
{
    internal class Catalog : IHabboFunction<CatalogPageController>
    {
        private readonly WeakCache<int, CatalogPageController> _pageCache;
 
        #region Indexer
        public CatalogPageController this[int id]
        {
            get
            {
                CatalogPageController result = _pageCache[id];
                return result;
            }
        }
 
        #endregion
 
        /// <summary>
        ///
        /// </summary>
        public Catalog()
        {
          _pageCache = new WeakCache<int, CatalogPageController>(Instance);
        }
 
        public CatalogPageController GetPage(int i)
        {
            using (ISession dbSession = ApiRoot.DatabaseCallback.GetDatabase().GetSessionFactory().OpenSession())
            {
                var p = dbSession.CreateCriteria<catalogpage>().Add(Restrictions.Eq("id", i)).UniqueResult<catalogpage>();
 
                return p.id == 0 ? null : this[p.id];
            }
        }
 
        /// <summary>
        ///    Handel the purchase for an object from the catalog.
        /// </summary>
        public void Purchase(Session session, Message message)
        {
            // Get pageId from Client.
            int pageId = message.NextInt32();
 
            // Get itemId from Client.
            int itemId = message.NextInt32(); // not used for now.
 
            // Create a instance of CatalogItemController using the purchased item Id.
            var purchasedItem = new CatalogItemController(itemId);
 
            // Simple check.
            if (purchasedItem.pageId != pageId) // If Page id does not match
                return;
 
            // Remove credits based on Item cost.
            session.Habbo.credits -= purchasedItem.credits;
 
            message = new Message(11); // Change to CreditUpdate id.
 
            // Updates users credits.
            message.WriteString("" + session.Habbo.credits + ".0");
 
            session.SendPacket(message);
 
            session.Habbo.SaveOrUpdate(session.Habbo);
        }
 
        public CatalogPageController Instance(int i)
        {
            return new CatalogPageController(i);
        }
 
        public string Name
        {
            get { return "Catalog"; }
        }
 
        public double Version
        {
            get { return 1.0; }
        }
 
        public string KeyRelease
        {
            get { return "R63"; }
        }
 
        public string ReleaseBuild
        {
            get { return "TBS"; /* TBS = To be set */ }
        }
    }
}

There is still a lot more to come, i am currently updating headers to the latest build, i am also completing the Catalog and the Navigator after this i will finish the unfinished Room loading and Model loading.

I also am working on a class diagram to give programmers and people who wanna work on RevEmu a better idea on how it works.

RevEmu is made for people who can't code and want a badass emu.

I have also started on a little Plugin where people can install custom commands from other coders (Of course each command is verified for Sql exploits and such)

Yeah development seems a bit dead... :p
Going good! Thanks for the update :)
 

Zak

Posting Freak
Mar 12, 2011
848
453
Sticking with original sockets, using the native library gonna now just setup xampp and get a client running up. Thanks to John Heartfield over at RZ for his large contribution towards packet logs, saves me a shit load of time.
 

DaLightz

See ya'll in the afterlife.
May 19, 2012
1,136
262
Sticking with original sockets, using the native library gonna now just setup xampp and get a client running up. Thanks to John Heartfield over at RZ for his large contribution towards packet logs, saves me a shit load of time.
I've forgotten about this! Have you done sso & pathfinding yet?
 

Zak

Posting Freak
Mar 12, 2011
848
453
I've forgotten about this! Have you done sso & pathfinding yet?

Oh yes, the sso is fully done and the pathfinding is weak at the moment (It works a bit) Room entry is done on most sides, Navigator needs search, public rooms, random rooms in category's. Messenger talking is half done, Friend request sending and accepting needs to be updated and so does finding a friend.

Bits and bobs are done around in-game, just need to get working on a single feature and complete that feature then move on, instead of randomly working on each feature and not completing it.
 

Gajeel

Well-Known Member
Oct 4, 2011
2,411
413
After seeing few more updates from , I think it's time to get this back on track. :) Waiting for more updates ... probably new screenshot after working on in-game features? :D
 

Zak

Posting Freak
Mar 12, 2011
848
453
After seeing few more updates from , I think it's time to get this back on track. :) Waiting for more updates ... probably new screenshot after working on in-game features? :D

Yeah once i get everything setup, I will sent out plenty of in-game screen shots.

Nice to see RevEMU is back (even though it never ended) :)

Thanks mate.

Right i just been doing some minor edits on the sockets to actually get them running, i think they should be working fine in a day or two.
 
Status
Not open for further replies.

Users who are viewing this thread

Top