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!

LeaderMS v.62 | The Best Brazil MapleStory | GMS-like

Newbie Spellweaver
Joined
Feb 15, 2015
Messages
6
Reaction score
0
Do anyone else also have this glitch? It's with skills that hits multiple monsters, it says that it does damage on them but as you can see on the EXP bar only 1 mob dieing. It's not only with the roar skill, its with all skills that hits multiple monsters! please help how can i fix this? I would like to add that im getting an error called FM. scripting.event.EventScriptManager init SEVERE: null no such method: init I have no idea what that does, is that why i can't attack many mobs?
Here is a youtube video that shows what i mean.
 
Last edited:
(O_o(o_O(O_O)o_O)O_o)
Loyal Member
Joined
Apr 9, 2009
Messages
1,088
Reaction score
322
Do anyone else also have this glitch? It's with skills that hits multiple monsters, it says that it does damage on them but as you can see on the EXP bar only 1 mob dieing. It's not only with the roar skill, its with all skills that hits multiple monsters! please help how can i fix this? I would like to add that im getting an error called FM. scripting.event.EventScriptManager init SEVERE: null no such method: init I have no idea what that does, is that why i can't attack many mobs?
Here is a youtube video that shows what i mean.


Probs an exception in damageParse.java. Good chance it's catching the fact you're hitting a shitload without allowing it since you're an admin.
 
Newbie Spellweaver
Joined
Feb 15, 2015
Messages
6
Reaction score
0
@Novak where can I find this damagePare.java? it's not in my netbeans :O Do you think it could be something in TakeDamageHandler.java?
 
Newbie Spellweaver
Joined
Oct 30, 2020
Messages
7
Reaction score
1
I am releasing my full English translation. I threw in a few other little changes because I discovered some ugly stuff while I was working on it. (Please look at the "Changes" below.) Enjoy.

GitHub:
Mediafire:

I made some modifications to the LeaderMS-English branch of the codebase so it builds and runs in Docker.

Github:

Setup should be minimal. Set the `channel.net.interface` to the host IP address (on Windows, ipconfig to get the WSL interface) and modify a localhost client. Then `docker-compose build` and `docker-compose up` to bring the server online.

I had remove and modify quite a bit of code, . A summary of changes:


  • Removed SSL and Java keystores because they did not include passwords and are not conducive to reproducible builds. Networking between nodes happen within a private network anyways.
  • Split up the myphpadmin dump into a main script and data files. Moved constraints into the table definition and changed the DML to be a CREATE IF NOT EXISTS so the script can be run on subsequent reboots. Removed useless tables.
  • Added Maven configuration for builds and removed included jars.
  • Configured launch scripts to use Maven exec, which handles setting the classpath. Did you know that Java RMI and the default Maven process in `mvn exec:java` are not compatible? Neither did I.
  • Fixed various bugs in server execution (timestamp incompatibilities, RETURN_GENERATED_KEYS, proper channel instead of 0.0.0.0, various null pointer issues).
  • A docker-compose file configured with mysql (with a persistent volume), adminer for database administration, world, login, and channel servers.
  • Formatting of the codebase using prettier and spotcheck and verification during build.
  • Removal of lords(?), pvp, and other bits of dangling code.

This was an educational experience, but never had I had more code spaghetti in one sitting. Alongside the server feeling much slower to another source I've played with, it looks like there are some basic issues with the first job advancement and a lot of custom features. I'm not going to spend much more time with this one. I'm moving on to dockerize the original author's latest project EllinMS next. If you find any egregious bugs with the setup, I'm more than happy to give some pointers as the last person to have touched this. Here lie dragons, best of luck playing with this.
 
Newbie Spellweaver
Joined
Jan 14, 2018
Messages
14
Reaction score
0
I made some modifications to the LeaderMS-English branch of the codebase so it builds and runs in Docker.

Github:

Setup should be minimal. Set the `channel.net.interface` to the host IP address (on Windows, ipconfig to get the WSL interface) and modify a localhost client. Then `docker-compose build` and `docker-compose up` to bring the server online.

I had remove and modify quite a bit of code, . A summary of changes:


  • Removed SSL and Java keystores because they did not include passwords and are not conducive to reproducible builds. Networking between nodes happen within a private network anyways.
  • Split up the myphpadmin dump into a main script and data files. Moved constraints into the table definition and changed the DML to be a CREATE IF NOT EXISTS so the script can be run on subsequent reboots. Removed useless tables.
  • Added Maven configuration for builds and removed included jars.
  • Configured launch scripts to use Maven exec, which handles setting the classpath. Did you know that Java RMI and the default Maven process in `mvn exec:java` are not compatible? Neither did I.
  • Fixed various bugs in server execution (timestamp incompatibilities, RETURN_GENERATED_KEYS, proper channel instead of 0.0.0.0, various null pointer issues).
  • A docker-compose file configured with mysql (with a persistent volume), adminer for database administration, world, login, and channel servers.
  • Formatting of the codebase using prettier and spotcheck and verification during build.
  • Removal of lords(?), pvp, and other bits of dangling code.

This was an educational experience, but never had I had more code spaghetti in one sitting. Alongside the server feeling much slower to another source I've played with, it looks like there are some basic issues with the first job advancement and a lot of custom features. I'm not going to spend much more time with this one. I'm moving on to dockerize the original author's latest project EllinMS next. If you find any egregious bugs with the setup, I'm more than happy to give some pointers as the last person to have touched this. Here lie dragons, best of luck playing with this.


Were you inspired by this guy?

https://forum.ragezone.com/f427/v62-docker-1150928/

That's the first dockerized server I ever saw on RZ. Since you have a docker-compose in there, perhaps the next step forward is running it through a container orchestrator like k8s?
 
Newbie Spellweaver
Joined
Oct 30, 2020
Messages
7
Reaction score
1
Thanks for pointing out prior art, but I didn't reference their work. I'm building off the experience of dockerizing argonms and thought it would be nice to be able to reference a functional odin-styled scripting engine and scripts. It's more difficult than it should be to run some of these emulators.

I'm pretty happy with docker-compose for container orchestration, but I might try something with kubernetes in the future if I try out some ideas with server analytics. Compose is enough for personal use on a small remote server. It's persistent and easy to use. It should be straightforward to build the container and use it a k8s cluster if you know what you're doing. This particular source is kind of a mess though, I'm not sure how well it would scale past a few channel servers.
 
Newbie Spellweaver
Joined
Jan 14, 2018
Messages
14
Reaction score
0
There's a framework called Agones which is basically an enhanced k8s made for game servers



Just spouting some ideas. Moving these old java codebases to a full microservice architecture would be a massive rework. You would have to get rid of the RMI and probably create separate pods for each service, such as one load-balanced service that handles login and authentication, and then run each channelserver as a single-container pod that shouldn't scale horizontally. Link all of them up with redis and perhaps implement the ranking updates as a containerized cron job.
 
Back
Top