Help to understand ODIN structure

Results 1 to 4 of 4
  1. #1
    Member crisroxmysoc is offline
    MemberRank
    Aug 2016 Join Date
    52Posts

    Help to understand ODIN structure

    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.
    Click image for larger version. 

Name:	Screen Shot 2018-02-07 at 1.19.14 PM.png 
Views:	7 
Size:	146.3 KB 
ID:	162422Click image for larger version. 

Name:	Screen Shot 2018-02-07 at 1.19.28 PM.png 
Views:	9 
Size:	171.0 KB 
ID:	162423Click image for larger version. 

Name:	Screen Shot 2018-02-07 at 1.18.58 PM.png 
Views:	9 
Size:	35.3 KB 
ID:	162424
    Figure(s): From left to right: Server, Client, Folders


  2. #2
    Member s4nta is offline
    MemberRank
    Sep 2013 Join Date
    79Posts

    Re: Help to understand ODIN structure

    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.
    ms is dead

  3. #3
    Member crisroxmysoc is offline
    MemberRank
    Aug 2016 Join Date
    52Posts

    Re: Help to understand ODIN structure

    Quote Originally Posted by s4nta View Post
    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?

  4. #4
    CSG sunnyboy is offline
    The OmegaRank
    Mar 2010 Join Date
    6,217Posts

    Re: Help to understand ODIN structure

    Quote Originally Posted by crisroxmysoc View Post
    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



Advertisement