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!

[LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera]

Status
Not open for further replies.
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Thank you guys for all the support :eek:tt:.

Sorry that these updates seem pretty lame but it took me a little while to figure out how to get room rights and room ownership 100% along with getting the "Room Settings" button to appear for the owner.

Changelog

- Create room

- Edit room details

- Delete room

- Rewrote room handler to support multiple entities in future (decided to do it now rather than later), such as bots and pets

- Changed how rooms work by making sure that furniture/AI/room tick cycle will be loaded when there's people in the room, and unloaded when everyone leaves

Nothing is really that exciting except that I can easily add bots to rooms (only through code for now) and managed to show the room floor/wall thickness and different chat settings :)

Code:
Bot mahBawt = new Bot();

mahBawt.getRoomUser().setRoom(this);
mahBawt.getRoomUser().setX(this.getData().getModel().getDoorX());
mahBawt.getRoomUser().setY(this.getData().getModel().getDoorY());
mahBawt.getRoomUser().setHeight(this.getData().getModel().getHeight(mahBawt.getRoomUser().getPoint()));
mahBawt.getRoomUser().setVirtualId(this.getVirtualId());

this.entities.add(mahBawt);

ov1QZ7H - [LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera] - RaGEZONE Forums


r9SvTUk - [LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera] - RaGEZONE Forums


What exactly do you mean? I mean, 'tabs' doesn't say much. But it looks decent; cracked the SWF yourself?

I used Sulkadasm to crack the swf, but there was an extra check to see if you're using the SWF past a certain date which I removed manually through rabcasm.
 

Attachments

You must be registered for see attachments list
Last edited:
Custom Title Activated
Loyal Member
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Thank you guys for all the support :eek:tt:.

Sorry that these updates seem pretty lame but it took me a little while to figure out how to get room rights and room ownership 100% along with getting the "Room Settings" button to appear for the owner.

Changelog

- Create room

- Edit room details

- Delete room

- Rewrote room handler to support multiple entities in future (decided to do it now rather than later), such as bots and pets

- Changed how rooms work by making sure that furniture/AI/room tick cycle will be loaded when there's people in the room, and unloaded when everyone leaves

Nothing is really that exciting except that I can easily add bots to rooms (only through code for now) and managed to show the room floor/wall thickness and different chat settings :)

Code:
Bot mahBawt = new Bot();

mahBawt.getRoomUser().setRoom(this);
mahBawt.getRoomUser().setX(this.getData().getModel().getDoorX());
mahBawt.getRoomUser().setY(this.getData().getModel().getDoorY());
mahBawt.getRoomUser().setHeight(this.getData().getModel().getHeight(mahBawt.getRoomUser().getPoint()));
mahBawt.getRoomUser().setVirtualId(this.getVirtualId());

this.entities.add(mahBawt);

ov1QZ7H - [LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera] - RaGEZONE Forums


r9SvTUk - [LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera] - RaGEZONE Forums




I used Sulkadasm to crack the swf, but there was an extra check to see if you're using the SWF past a certain date which I removed manually through rabcasm.

Ah all righty I get it, Sulake is now trying even harder to stop retro's but unfortunately for them, they're still failing pretty hard in it. Anyways, updates looking good!
 

Attachments

You must be registered for see attachments list
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Ah all righty I get it, Sulake is now trying even harder to stop retro's but unfortunately for them, they're still failing pretty hard in it. Anyways, updates looking good!

It's always a game of cat and mouse when it comes to Flash and anti-theft :)
 

Jax

C# Programmer
Joined
Dec 11, 2009
Messages
881
Reaction score
431
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Thank you guys for all the support :eek:tt:.

Sorry that these updates seem pretty lame but it took me a little while to figure out how to get room rights and room ownership 100% along with getting the "Room Settings" button to appear for the owner.

Changelog

- Create room

- Edit room details

- Delete room

- Rewrote room handler to support multiple entities in future (decided to do it now rather than later), such as bots and pets

- Changed how rooms work by making sure that furniture/AI/room tick cycle will be loaded when there's people in the room, and unloaded when everyone leaves

Nothing is really that exciting except that I can easily add bots to rooms (only through code for now) and managed to show the room floor/wall thickness and different chat settings :)

Code:
Bot mahBawt = new Bot();

mahBawt.getRoomUser().setRoom(this);
mahBawt.getRoomUser().setX(this.getData().getModel().getDoorX());
mahBawt.getRoomUser().setY(this.getData().getModel().getDoorY());
mahBawt.getRoomUser().setHeight(this.getData().getModel().getHeight(mahBawt.getRoomUser().getPoint()));
mahBawt.getRoomUser().setVirtualId(this.getVirtualId());

this.entities.add(mahBawt);

ov1QZ7H - [LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera] - RaGEZONE Forums


r9SvTUk - [LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera] - RaGEZONE Forums




I used Sulkadasm to crack the swf, but there was an extra check to see if you're using the SWF past a certain date which I removed manually through rabcasm.

Looking good Alex. Especially the name used for declaring that bot.
 

Attachments

You must be registered for see attachments list
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Anyone know how on earth this is handled?

62O2EBx - [LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera] - RaGEZONE Forums


Looking good Alex. Especially the name used for declaring that bot.

Thanks :D:
 

Attachments

You must be registered for see attachments list
Developer
Loyal Member
Joined
Jul 28, 2009
Messages
983
Reaction score
133
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Why would you still work in plain sql?
Start using an ORM.
 
Joined
Aug 10, 2011
Messages
7,398
Reaction score
3,301
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Anyone know how on earth this is handled?

62O2EBx - [LATEST] Icarus Emulator [Java, Netty, MySQL, Plugins, Camera] - RaGEZONE Forums


Thanks :D:

Yes. Its just a packet which contains compressed JSON data which you should forward to the camera script which renders the image.
 

Attachments

You must be registered for see attachments list
  • Like
Reactions: Jax
Joined
Apr 30, 2007
Messages
2,339
Reaction score
1,547
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Yes. Its just a packet which contains compressed JSON data which you should forward to the camera script which renders the image.

But the correct way would be to render it inside the Emulator and insert the data into the DB and then cache it, right?

I was told that using a web-based script was the "crappy" way of doing it.
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Yes. Its just a packet which contains compressed JSON data which you should forward to the camera script which renders the image.

I can't figure out how to decompress the received data however. :(
 
C# / Java Programmer
Joined
Jan 1, 2007
Messages
346
Reaction score
177
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

But the correct way would be to render it inside the Emulator and insert the data into the DB and then cache it, right?

I was told that using a web-based script was the "crappy" way of doing it.

Officially it's handled by a daemon written in NodeJS, external to the game server, but yeah the PHP script that's been released is kind of lacklustre. You don't store the Sprite data from the JSON message, it's rendered into a plain image file and the file name gets stored and returned to the client. Pretty stupid solution if you ask me, the client obviously knows how to get the JSON data from a rendered scene, it's trivial to do the same in reverse.


 
Joined
Apr 30, 2007
Messages
2,339
Reaction score
1,547
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Officially it's handled by a daemon written in NodeJS, external to the game server, but yeah the PHP script that's been released is kind of lacklustre. You don't store the Sprite data from the JSON message, it's rendered into a plain image file and the file name gets stored and returned to the client. Pretty stupid solution if you ask me, the client obviously knows how to get the JSON data from a rendered scene, it's trivial to do the same in reverse.

Thumbs up for typing all of that from a phone. But cheers for the explanation. May help Alex too!
 
C# / Java Programmer
Joined
Jan 1, 2007
Messages
346
Reaction score
177
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Thumbs up for typing all of that from a phone. But cheers for the explanation. May help Alex too!

Lol I've written code on this phone before, a forum post is nothing. I've given Alex some pointers on this but he's having trouble decompressing it with existing Java gzip implementations. I don't remember the exact compression suite we used in C# though.


 
Joined
Apr 30, 2007
Messages
2,339
Reaction score
1,547
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Lol I've written code on this phone before, a forum post is nothing. I've given Alex some pointers on this but he's having trouble decompressing it with existing Java gzip implementations. I don't remember the exact compression suite we used in C# though.

Pretty sure there are some emulators out there with Camera implemented he could take a look at. Not 100% on that tho, and they do it the shoddy way w/ a PHP script so eh.
 
C# / Java Programmer
Joined
Jan 1, 2007
Messages
346
Reaction score
177
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

Pretty sure there are some emulators out there with Camera implemented he could take a look at. Not 100% on that tho, and they do it the shoddy way w/ a PHP script so eh.

Azure decompresses it on the server for some processing that takes place before sending it to the webserver.


 
Joined
Aug 10, 2011
Messages
7,398
Reaction score
3,301
re: Icarus Server (Production) - [Python, Multi-DB/MySQL]

I can't figure out how to decompress the received data however. :(

Its just basic zip compression.

Altough writing this camera is a pain in the butt. If I were you I wouldn't put my priorities there.



Code:
this.packet.getBuffer().readFloat();
        byte[] buffer = new byte[4096*3];
        byte[] data = this.packet.getBuffer().readBytes(//packet bytes).array();

        Inflater inflater = new Inflater();
        inflater.setInput(data);

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream(data.length);
        while (!inflater.finished()) {
            int count = inflater.inflate(buffer);
            outputStream.write(buffer, 0, count);
        }
        outputStream.close();
        byte[] output = outputStream.toByteArray();

        inflater.end();
System.out.println(new String(output));
 
Last edited:
Status
Not open for further replies.
Back
Top