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!

[C#, PHP, R38] Project Aurora

Status
Not open for further replies.
Joined
Aug 24, 2012
Messages
603
Reaction score
300
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

Nice project both of u (any new progress?)
Was wondering wouldnt you be able to use the avatar class like this ?

Code:
[COLOR=#cc7832][B]public function [/B][/COLOR][COLOR=#ffc66d]avatar[/COLOR]() {
    [COLOR=#cc7832][B]return [/B][/COLOR][COLOR=#9876aa]$this[/COLOR]->[COLOR=#ffc66d]hasOne[/COLOR](Avatar::[COLOR=#9876aa][I]class[/I][/COLOR][COLOR=#cc7832], [/COLOR][COLOR=#6a8759]'player_id'[/COLOR][COLOR=#cc7832], [/COLOR][COLOR=#6a8759]'id'[/COLOR])->[COLOR=#ffc66d]whereCurrent[/COLOR]([COLOR=#6a8759]'1'[/COLOR])[COLOR=#cc7832];
[/COLOR]}

[COLOR=#cc7832][B]public function [/B][/COLOR][COLOR=#ffc66d]avatars[/COLOR]() {
    [COLOR=#cc7832][B]return [/B][/COLOR][COLOR=#9876aa]$this[/COLOR]->[COLOR=#ffc66d]hasMany[/COLOR](Avatar::[COLOR=#9876aa][I]class[/I][/COLOR][COLOR=#cc7832], [/COLOR][COLOR=#6a8759]'player_id'[/COLOR][COLOR=#cc7832], [/COLOR][COLOR=#6a8759]'id'[/COLOR])[COLOR=#cc7832];
[/COLOR]}

I have discontinued the development of this CMS, but..
Yeah, it could be, it's just a bad habit from my old work. :):
 
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

After months I finally did something. I had some private stuff going on and I felt kind of unmotivated. Also the source is pretty messy and couldn't be bothered to rewrite it. Nonetheless, I started working on it again. Did some small fixes and did one small feature. I'm going to work more on it from now on.

Fixes:

- When a new item was bought, for example a TV, you would have to double click TWICE to turn it on.

What caused the bug:

In my code I checked whether "item.Data" was an int. If not, set the NEXT state to 0. In other words, item.Data is empty when you purchase a furni, so double clicking it would make the data 0, which is ALSO off. Setting it to 1 fixed it.

- Item data is saved in database now

Also made home rooms, you can now change your home room, and when you set a room as home room, you'll automatically go to that room. Taking the home room off will make you go to the hotel view instead.

PHP:
public class UpdateNavigatorSettingsMessageEvent : IPacketEvent
    {
        public void Run(Client client, MessageEvent msgEvent)
        {
            var homeRoom = msgEvent.ReadVL64();

            if (homeRoom != 0)
            {
                if (Engine.Locator.RoomController.GetRoom(homeRoom) == null) return;
            }

            client.Player.HomeRoom = homeRoom;
            Engine.Locator.PlayerController.Dao.UpdateHomeRoom(client.Player.Id, homeRoom);
            
            client.SendComposer(new NavigatorSettingsComposer(homeRoom));
        }
    }

The fixed code for interactions:

PHP:
 if (!int.TryParse(item.Data, out int currentState) || currentState < 0)
                {
                    nextState = 1;
                }
                else if (currentState >= item.Definition.MaxInteractionState)
                {
                    nextState = 0;
                }
                else
                {
                    nextState = currentState + 1;
                }
 
Joined
Aug 24, 2012
Messages
603
Reaction score
300
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

After months I finally did something. I had some private stuff going on and I felt kind of unmotivated. Also the source is pretty messy and couldn't be bothered to rewrite it. Nonetheless, I started working on it again. Did some small fixes and did one small feature. I'm going to work more on it from now on.

Fixes:

- When a new item was bought, for example a TV, you would have to double click TWICE to turn it on.

What caused the bug:

In my code I checked whether "item.Data" was an int. If not, set the NEXT state to 0. In other words, item.Data is empty when you purchase a furni, so double clicking it would make the data 0, which is ALSO off. Setting it to 1 fixed it.

- Item data is saved in database now

Also made home rooms, you can now change your home room, and when you set a room as home room, you'll automatically go to that room. Taking the home room off will make you go to the hotel view instead.

PHP:
public class UpdateNavigatorSettingsMessageEvent : IPacketEvent
    {
        public void Run(Client client, MessageEvent msgEvent)
        {
            var homeRoom = msgEvent.ReadVL64();

            if (homeRoom != 0)
            {
                if (Engine.Locator.RoomController.GetRoom(homeRoom) == null) return;
            }

            client.Player.HomeRoom = homeRoom;
            Engine.Locator.PlayerController.Dao.UpdateHomeRoom(client.Player.Id, homeRoom);
            
            client.SendComposer(new NavigatorSettingsComposer(homeRoom));
        }
    }

The fixed code for interactions:

PHP:
 if (!int.TryParse(item.Data, out int currentState) || currentState < 0)
                {
                    nextState = 1;
                }
                else if (currentState >= item.Definition.MaxInteractionState)
                {
                    nextState = 0;
                }
                else
                {
                    nextState = currentState + 1;
                }
Why not generate the item.Data on purchase?
 
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

I do want to tell about Aurora's future. The name "Aurora" was originally going to be used for a full developer website, however the name got used as an emulator name. The project started a long time ago with a R38 emulator, focussing on having a full experience with both Flash and Shockwave clients working. The source was pretty "poop" and nothing special, but as I lost the source, I wrote (together with spreedblood) the current Aurora R38 emulator. After some months of development (minus the months I've been busy / unmotivated), spreedblood said he didn't feel like working on this source, as the source could be HEAVILY improved, but neither spreedblood nor I have the will to rewrite it. When it's stable and all basic features are done, Aurora R38 will be released officially (this means: emulator, database, SWF pack, CMS and help thread). After that, the source won't be build upon anymore (but will be open for anybody who want to work on it, or in noob-terms: rename).

Besides that, spreedblood and I will be working on a secret project - maybe something revolutionary. It's unknown whether we'll finish it - but details might be given out when we've started. I won't be fully 24/7 working on it, but I'll split the development time 50/50 (or 80/20) to work on both projects. The main priority is Aurora.

However, as soon as Aurora is done, I wish to start something new. I want to have some input. What should I make? It can be anything, so surprise me.

Last, as for the v9 version of Aurora, I'm unsure whether this will be 100% done and completed, but it will be a much better source of my released Aurora V9 Dart version. While I don't like to talk much about it, Aurora V9 will be standalone, and will work on Sqlite instead of MySQL and will be written in Dart.

So, finally, leave any suggestions - not only for my next project but also for this project, as I'm still aiming for Aurora to be 100% finished. I might even do Shockwave too... ;-)

Hugs and kisses,
Oneyouneverknow

Psst... 2,250 posts already, 1007 likes, I'm proud on how much I've grown...
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,685
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

While I don't like to talk much about it, Aurora V9 will be standalone, and will work on Sqlite instead of MySQL and will be written in Dart.

Good choice. :thumbup1:

I really like emulators that I can just open up and it's immediately ready to use. :love:

[Besides that, @spreedblood and I will be working on a secret project - maybe something revolutionary. It's unknown whether we'll finish it - but details might be given out when we've started.

You had my curiosity, now you have my attention. :):

It's a shame what's happening to Aurora, but I agree, the source is hard to maintain, it's not necessarily "bad" code, but there's too much overkill that makes it hard to add features, especially with all that dependency injection which IMO is too much for a Habbo server.
 
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

Good choice. :thumbup1:

I really like emulators that I can just open up and it's immediately ready to use. :love:

Learnt from the master ;)


You had my curiosity, now you have my attention. :):

I'll tell you once we started

It's a shame what's happening to Aurora, but I agree, the source is hard to maintain, it's not necessarily "bad" code, but there's too much overkill that makes it hard to add features, especially with all that dependency injection which IMO is too much for a Habbo server.

True, that's the whole point. I feel like the whole DI makes it pretty annoying. Though, I stand by it, I won't quit it.
 
Joined
Aug 24, 2012
Messages
603
Reaction score
300
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

Good choice. :thumbup1:

I really like emulators that I can just open up and it's immediately ready to use. :love:



You had my curiosity, now you have my attention. :):


It's a shame what's happening to Aurora, but I agree, the source is hard to maintain, it's not necessarily "bad" code, but there's too much overkill that makes it hard to add features, especially with all that dependency injection which IMO is too much for a Habbo server.
It's just Horus with extra features.
 
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

Hey, I'm back now. Lots of things on my mind and other projects and work so didn't really work on Aurora but it's still in development.
I did some updates:

- Room visitor count working perfectly, even with closing emulator, switching rooms and logging out
- Room settings work (besides tags, they can't be set)
- Room homeroom is working, you go to your homeroom when you enter the hotel
- Achievement unlock works with giving badges and pixels (at this moment, only ACH_AvatarLooks1, ACH_Student1 (you get when you call the guide bot) and ACH_RoomEntry1-10 (by entering X rooms you DON'T own).
- Fixed some minor mistakes
- Started catalogue products from scratch (pages are still taken from Uber and modified where needed) from scratch. Definitions are done by reading furnidata and modifying it in the database where needed).

No screens unfortunately but I got a video:



So in here you see the problem with achievements. Both the achievement list and badge list don't refresh properly when you've already opened it when unlocking an achievement. If somebody knows what the problem is, how to fix it or is willing to look into the scripts for me, please contact me (or post a reply here). Server side I checked everything is alright, and if I reload the client it works, but just not what I just mentioned.

The emulator does have some terrible stuff but I'm gonna finish it. I think there are a few small bugs and the catalogue needs to be done, then I have to make a small CMS and I think at that time there will be a BETA hotel.

In case any of you want to contact me, please contact me through Discord: navv13#8055
 
ThuGie.NL - Webmaster
Joined
Apr 16, 2006
Messages
607
Reaction score
55
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

So did you choose v7 or v9 ? Still missing packets? i might be able to deliver those.
Or for what ever reason v10-v11.
 
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

I currently await for a time to have Maarten look with me on the achievement bug. Also most likely he'll be helping me with the encryption as well (which in Flash isn't needed, but is "crucial" in Shockwave). I discovered the Achievement bug is NOT present in the Shockwave version due to sending "Ft" again will REPLACE the list rather ADD the achievements to the list.

As for the retro version, I did do some work on v9, I don't know which versions I'll support but oh well, will see. Anybody who can help with certain packets for ANY version basically, let me know!

Also, update, it might not seem like much, but user tags display works (img in spoiler due to post being a quote as well);

0Iphq6J - [C#, PHP, R38] Project Aurora - RaGEZONE Forums

There still has to be a way to add them (of course, RCON will be working eventually and you can easily implement it in the CMS). For now I'll make a command :)addtag TAG) which you can use to add the tag, this is not done yet.

So did you choose v7 or v9 ? Still missing packets? i might be able to deliver those.
Or for what ever reason v10-v11.

Do you by any chance have Discord? As for my second server besides the main R38 I did choose v9 but if I can make it working on both v7 and v9 it'll be even better. But I think best way to talk about it is through Discord, because I am missing some packets for those versions (and, some versions above).

(I never knew you were Dutch btw o_O)
 

Attachments

You must be registered for see attachments list
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

Yesterday Maarten and I looked further in the achievement problem, turns out it's really a SWF problem. So I tried modifying the SWF to console log a specific value, but it did crash my SWF.

This is the code I've used:

PHP:
	  setlocal            5
	  dup
	  getlex              QName(PackageNamespace("flash.external"), "ExternalInterface")
	  pushstring "console.log"
	  getlocal            5
	  getproperty         QName(PackageNamespace(""), "type")
	  callpropvoid        QName(PackageNamespace(""), "call"), 2

And in the compiled SWF the function would look like this:

PHP:
 public function _SafeStr_2607(_arg_1:_SafeStr_2333, _arg_2:Boolean=true):void{
            var _local_5:_SafeStr_2333;
            var _local_3:Boolean;
            var _local_4:int;
            while (_local_4 < _SafeStr_2598.length)
            {
                _local_5 = (_SafeStr_2598[_local_4] as _SafeStr_2333);
                ExternalInterface.call("console.log", _local_5.type);
                if ((((_local_5.type == _arg_1.type)) && ((_local_5.level < _arg_1.level))))
                {
                    _local_5.level = _arg_1.level;
                    _local_5._SafeStr_2608 = _arg_1._SafeStr_2608;
                    _local_5.image = _SafeStr_2600._SafeStr_2609(_arg_1._SafeStr_2608);
                    _local_3 = true;
                };
                _local_4++;
            };
            if (!_local_3)
            {
                _arg_1.image = _SafeStr_2600._SafeStr_2609(_arg_1._SafeStr_2608);
                _SafeStr_2598.push(_arg_1);
            };
            if (_arg_2)
            {
                _SafeStr_2610();
            };
        }

And the package does contain:

PHP:
import flash.external.ExternalInterface;

The same function in the SWF before:

PHP:
public function _SafeStr_2607(_arg_1:_SafeStr_2333, _arg_2:Boolean=true):void{
            var _local_5:_SafeStr_2333;
            var _local_3:Boolean;
            var _local_4:int;
            while (_local_4 < _SafeStr_2598.length)
            {
                _local_5 = (_SafeStr_2598[_local_4] as _SafeStr_2333);
                if ((((_local_5.type == _arg_1.type)) && ((_local_5.level < _arg_1.level))))
                {
                    _local_5.level = _arg_1.level;
                    _local_5._SafeStr_2608 = _arg_1._SafeStr_2608;
                    _local_5.image = _SafeStr_2600._SafeStr_2609(_arg_1._SafeStr_2608);
                    _local_3 = true;
                };
                _local_4++;
            };
            if (!_local_3)
            {
                _arg_1.image = _SafeStr_2600._SafeStr_2609(_arg_1._SafeStr_2608);
                _SafeStr_2598.push(_arg_1);
            };
            if (_arg_2)
            {
                _SafeStr_2610();
            };
        }

According to Maarten, most likely this line is bugged:

PHP:
if ((((_local_5.type == _arg_1.type)) && ((_local_5.level < _arg_1.level))))

From what I think I understood:

PHP:
if (!_local_3)
            {
                _arg_1.image = _SafeStr_2600._SafeStr_2609(_arg_1._SafeStr_2608);
                _SafeStr_2598.push(_arg_1);
            };

If that always get executed, the achievement list will be empty, and _local_3 will be true if it passes the check.

If somebody wants to take a look at it, I'd really appreciate it. For now I'll keep it on hold.

(Thanks to vista for helping me out with this stuff)
 
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

I saw you also started some R63 emulator?

Nope. The R63 emulator was actually a private project I once had. I did use it to test some stuff. I'm only working on this R38 and an oldskool server (based on a new source which is million times better, cleaner etc.) which currently only works on v9 but will work on more versions depending on what ThuGie can deliver.

I've got no intention to compete with you and Comet for a R63 emulator. Nor do I want to.
 
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

Lots 'o things going on. First of all, I've noticed a bunch of "game breaking" bugs in my source. This means things that can mess a lot of stuff up. Okay, sounds logical. The source is a huge mess. Part of me want to "rewrite" it (and copy 90% over from my old source, just better way of doing stuff), so at least the source is more clean (because, to be honest, after all this time it got a bit messy). Part of me knows that a lot of people will get into auto-flame mode that I start over again.

The question to you is, should I continue on this source, and fix the bugs but not care too much about clean stuff? Or should I rewrite it (which means it takes a longer time to get to the current point but most likely makes it go faster after that). And should I continue a DI-pattern (dependency injection) or should I use something else? Part of me things it's overkill (and some people I've asked think the same), some think it's the best thing and "almost necessary". I know how much disgust many people have with the God class so if I know the best and easiest thing to do I'll do it.

With this, I had to make a hard decision to keep this on the down-low for a bit. In the mean time, I started "writing" a CMS. Well, to be honest it isn't such a great thing, but it's mainly used for the public BETA I do want to try to get on this year. It's written on Codeigniter which - and I don't know how true it is - isn't so great according to some people. Then again, it's still just Habbo poop, so I don't think Laravel is worth it. Anyways, it's going to be a 80% replica of Habbo's old CMS (HoloCMS/HabboCMS 5.X/IDKWhateverCMS,...) with some custom features.

Current progress:

W2bE1fz - [C#, PHP, R38] Project Aurora - RaGEZONE Forums

oCON1Ie - [C#, PHP, R38] Project Aurora - RaGEZONE Forums

uwTqHa - [C#, PHP, R38] Project Aurora - RaGEZONE Forums


(by using 'Crikey!' as motto without the quotations will result in your avatar being translated into a crocodile, just as on Habbo back in the day).

Motto change and login are done, hot campaign and news is taken from the database. More isn't done yet.
If anybody wants to give some advise, please put down a comment or better send me a message on Discord:

navv13#8055
 

Attachments

You must be registered for see attachments list
Initiate Mage
Joined
Jul 25, 2018
Messages
4
Reaction score
1
Re: [V9] [R38] Aurora Emulator [C#] [DotNetty] [Log4net]

Omg,That looks great! good job! :)
 
Status
Not open for further replies.
Back
Top