Newbie Spellweaver
- Joined
- Jan 7, 2014
- Messages
- 61
- Reaction score
- 1
I'm not sure if lithium is Celino v115, Before lithium the source was TetraSEA which was v1.12.4 and before that it was AuraSEA which was v1.08 or something which were all based off of your v82 source. After TetraSEA it was later converted to GMS to be v1.11 and later on updated to numerous versions 117, 144 etc. so it makes sense to see Fishing handlers and things coded for the SEA server in lithium.
It's possible that maybe things were taken from your v115 but it wasn't the base source, the v82 release you did was.
Also, to add to that, didnt you finish coding stateless npcs in v115? you started it v82 but didn't finish it. It was similar to how Vana did it from what I saw but I did mine a bit differently but i'm still wondering if there are better script engines for JS atm.
Anyway I chose to use your v82 source at the end and happy with my choice. Another quick question is that your own binary format you used was that after you released the leaked source/fork or did you always use it? Why didn't you go with SQL loading like MCDB for the most part?
And celinoSEA was based off AuraSEA. What's your point? RMZ is a better developer - that much is very obvious. His skill in Java goes far past maplestory development, and his skill in C++ even farther.
It seems that the drama never endsCelino was started by pepsi, then RMZero got ahold of it sometime around v100 SEA, created auraSEA, then gave 1.08 back to pepsi, and that's as far as I know. RMZ continued AuraSEA to when I released it, and arcane was based on the same source.
The latest Celino was based off of RMZero's improvements, which according to him were rather extensive.
RMZero' code's really ugly. Also, scripts like NPC texts and in game features, were pretty much very "custom".
However, we must admit that he codes really fast.
Extalias coded slowly, but I felt their code's really "pretty" and good, compared to RMZero's codes.
Isn't PlayerStats in v82 as well?
Since you mentioned MapleRoyals, just curious how is MapleRoyals?
Would be interesting to see latest version of Extalia (although Extalia never released anything) and Celino before they were closed.
Unfortunately I simply can't disclose the latest unmodified source code of Celino, as much as I wanted to.. due to legal reasons. However you can bet that the majority of the work are already in public repacks of today due to leaks... certain things that were not brought forward were: (maybe more, but these are the list I can think of)
-A split project for Loginserver (loginserver.jar)
-BinWZ caching on startup
-Some official server like NPCs/quests
-Professions
-Best practices for coding (mainly to prevent exploits/anticheats)
Would you still happen to have ZeroFusion v62? I can't find it anywhere
PlayerStats made for Big bang/Chaos/Jump which was nearly identical as what I have... anyway, forget about those :laugh: I really cant be bothered now...
Yes, maple royals.. I was playingtt: it kinda brought me back to truly enjoying maplestory again. I'm not really a fan of the current maplestory, but I felt that it was a necessary step for Nexon to maintain or attract new players...
I first started when GlobalMS was in beta, and that was nearly a decade ago now! How time flies!! :scared:
I could agree to that... Extalia is the other server who truly cared about the little small details in-game, its not just about leveling.
This is also one reason I spent days to weeks just to finish stuff like MSEA like aran, evan tutorial + job advancement. Back in the days I even had to train characters myself to that level in order to 'sniff' the server side quest conversations and such... was pretty tedious work :tongue:
Unfortunately I simply can't disclose the latest unmodified source code of Celino, as much as I wanted to.. due to legal reasons. However you can bet that the majority of the work are already in public repacks of today due to leaks... certain things that were not brought forward were: (maybe more, but these are the list I can think of)
-A split project for Loginserver (loginserver.jar)
-BinWZ caching on startup
-Some official server like NPCs/quests
-Professions
-Best practices for coding (mainly to prevent exploits/anticheats)
If you say that in a java software company people will laugh at you.What's wrong with the bolded part? There is nothing wrong with helpful println() statements for debugging.
catch(Exception ex){
//Do nothing really?
}
If you say that in a java software company people will laugh at you.
First, you can use loggers and change the ouput. Want to send to console? Use console appender.
Want to send logs to database? use a database appender.
I forgot how many times i found this in code:
The first version of OdinMS that can be found here:
You must be registered to see links
Is really well coded and organized and also use correctly know design patterns.
I've seen worst coded bank projects.
I still cant understand the idea to change the handler's to a switch statements, with thousands non standard naming convenction static methods (like 'CancelBuffHandler', non camelcase) in same class!
For example LocalMS v88 source is still using OdinMS structure for handler's and it's much more easier to mantain and understand the code than a source based on switch statement.
If you say that in a java software company people will laugh at you.
First, you can use loggers and change the ouput. Want to send to console? Use console appender.
Want to send logs to database? use a database appender.
I forgot how many times i found this in code:
The first version of OdinMS that can be found here:
You must be registered to see links
Is really well coded and organized and also use correctly know design patterns.
I've seen worst coded bank projects.
I still cant understand the idea to change the handler's to a switch statements, with thousands non standard naming convenction static methods (like 'CancelBuffHandler', non camelcase) in same class!
For example LocalMS v88 source is still using OdinMS structure for handler's and it's much more easier to mantain and understand the code than a source based on switch statement.
"Not really sure what you're claiming in terms of "java software company people," but the form of logging information doesn't really matter so long as it is logged appropriately"Not really sure what you're claiming in terms of "java software company people," but the form of logging information doesn't really matter so long as it is logged appropriately. In a forms application, you would never see logging unless you ran the program through a terminal; but, that debug log can be pretty useful for a developer trying to figure out what's going wrong with their program in the debugging stage. It would not be appropriate to use an entire logging library like log4j to handle fairly minimal amounts of debugging such as that...
It is of course preferable to be a bit more strategic about your applications than just including a System.println here and there to debug (ideally have some global field that indicates a debugging mode perhaps), but not necessarily required so long as it disappears prior to a production build being sent out.
Most professionals I've encountered are in the mindset that getting code to function is more important than worrying about incredibly minor details like use of a logging library versus something really quickly made. Documentation is also pretty minimal in the corporate scene from what I've seen from my end. Of course, it could be that the code I'm working with is intentionally not documented in the snapshots I get to look at...
That's all corporate games though, so no barring to MapleStory development really. In a scene where, at least how I view it, the main purpose to learn and have fun playing a children's video game, such details seems incredibly pointless so long as the problems do not outweigh a certain reliability margin.
Exception swallowing can be a pretty bad practice, but sometimes I can assume that an operation will go fine 99.99% of the time fine such as reading from a file that I've already confirmed to exist and acquired read permissions from the OS. Exceptions can also be used as tools to signal application state (and be used to break execution) rather than intrinsically an error per-say.
An example of this would be blocking sockets (bare in mind that no one really uses these anymore for server applications, but they still exist as an option). Most blocking socket schemes center around a single thread blocking to await data which is then processed (and sometimes buffered between to ensure functionality) and a different thread that does any other logic while data is being received. My only way out of this loop is for the socket to be closed. For most implementations of blocking sockets, this implies that I will be blocking to read WHILE my connection is actually being closed locally/remotely (unless I intentionally join my threads locally, but that's generally frowned upon in Java).
In instances where I can know for sure that this termination is planned, I do not need to handled the exception thrown. Generally, this exception is handled with some sort of message like "Session with 127.0.0.1:39191 has been terminated." rather than spew out a bunch of information that's pointless. In some applications, I wouldn't really care if that information is logged since it would just take more buffer space on my terminal screen that I would rather use that memory for something else. I would rather remain ignorant of the timing of the socket termination since it was a planned inevitability.
I have nothing to really say with the second half of your post since I would rather use guaranteed O(1) access for getting my handlers (array), but that segment is probably not really timing critical either compared to the encryption step.