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!

Help to understand ODIN structure

Newbie Spellweaver
Joined
Aug 27, 2016
Messages
91
Reaction score
1
With recent information of @Eric being out for school or running his server, which is understandable.

I am still in the desire to understand ODIN structure. Hopefully I can list my desires here and maybe @Novak or @sunnyboy can help out, or any one else that has the knowledge to share.

Some background so it makes sense to people. This source is from the MoopleDev V83 source. I decided to go with this as the masses says its easier to learn.

For example I would like to implement 4 things, which should cover a good range and get me started or anyone else.

Implementation of: Auto Register, PVP, Rebirth, Server Announcement in the console, Fixing skills that does no damage/Show properly


Essentially it would be grateful for the implementation above show how to interact with it, for example

To implement Auto register I would need to go into Client-> Maplecharacter.Java etc
and also to explain what each .java file does or is responsible for

I understand I am requesting a lot, but otherwise I don't know how other people learned to do this. I don't understand how people understand the flow of ODIN so easily, if a skill weren't working they would be like oh it's due to XXX.java.

Thank you for reading.
Screen Shot 2018-02-07 at 1.19.14 PM - Help to understand ODIN structure - RaGEZONE Forums Screen Shot 2018-02-07 at 1.19.28 PM - Help to understand ODIN structure - RaGEZONE Forums Screen Shot 2018-02-07 at 1.18.58 PM - Help to understand ODIN structure - RaGEZONE Forums
Figure(s): From left to right: Server, Client, Folders
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Sep 17, 2013
Messages
82
Reaction score
137
ctrl-f is your friend. many of the veterans here have spent years working on maplestory sources (lolrip) and desiring to instantly understand where things are just isn't reasonable if you're only starting out.

if i were given a fresh source that isn't odin-based and wanted to implement autoregister, here's what i'd do:
1) how do i want autoregister to look? most servers with it have it so it creates an account on login if it doesn't exist yet.
2) since i want to look for some method that's triggered on login, i'd do some trial and error to find what code is called when i enter my username and password (or look at past releases). in this case, it's loginpasswordhandler / mapleclient::login.
3) code up a method to check if an account exists, and a method to create an account with a given username and password. you'll have to play around a bit with this to find where it goes.

look at past releases a lot to see how other people code up stuff. there's no getting around the learning curve (which is admittedly quite steep); like every other codebase, you're going to have to spend a decent bit of time familiarizing yourself with it.
 
Upvote 0
Newbie Spellweaver
Joined
Aug 27, 2016
Messages
91
Reaction score
1
ctrl-f is your friend. many of the veterans here have spent years working on maplestory sources (lolrip) and desiring to instantly understand where things are just isn't reasonable if you're only starting out.

if i were given a fresh source that isn't odin-based and wanted to implement autoregister, here's what i'd do:
1) how do i want autoregister to look? most servers with it have it so it creates an account on login if it doesn't exist yet.
2) since i want to look for some method that's triggered on login, i'd do some trial and error to find what code is called when i enter my username and password (or look at past releases). in this case, it's loginpasswordhandler / mapleclient::login.
3) code up a method to check if an account exists, and a method to create an account with a given username and password. you'll have to play around a bit with this to find where it goes.

look at past releases a lot to see how other people code up stuff. there's no getting around the learning curve (which is admittedly quite steep); like every other codebase, you're going to have to spend a decent bit of time familiarizing yourself with it.

I 100% agree with you, however sadly majority of "fixes" on this forum is just for spoon feeding, they don't go through how they achieve it and what not which makes sense.

The pieces I am gathering is that when a client sends a packet theres a file in the source code that convert that packet into a function and from there you can create a method to deal with it right?
 
Upvote 0
Custom Title Activated
Loyal Member
Joined
Mar 14, 2010
Messages
5,363
Reaction score
1,343
I 100% agree with you, however sadly majority of "fixes" on this forum is just for spoon feeding, they don't go through how they achieve it and what not which makes sense.

The pieces I am gathering is that when a client sends a packet theres a file in the source code that convert that packet into a function and from there you can create a method to deal with it right?
When the client expects something from you, it sends Recv Opcode which gets handled by your server. In netty it's handled by channelRead0, but for odin it's messageReceived in MapleServerHandler.java.

If you see it, you'd be able to tell what it's doing very easily
 
Upvote 0
Back
Top