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!

[Source] [v83] MoopleDEV | Multi Worlds | Rev 120 | Rev121 Snapshot

Status
Not open for further replies.
Newbie Spellweaver
Joined
Mar 26, 2014
Messages
10
Reaction score
0
I'd think by now he is using diamond operators so java 7 at least, but if he's using anything pertaining to java 8 then java 8. I'd take a guess and direct you to review his code to determine his java version.
thank you man, much appreciated
 
Newbie Spellweaver
Joined
Mar 26, 2014
Messages
10
Reaction score
0
for Rev. 120 i had to use Java 7 i am going to test out Rev. 121 soon! i can't wait to test it out lol, so far i love your server just wish commands were all seperated, shouldnt be too hard to fix up XD
 
Experienced Elementalist
Joined
Nov 21, 2008
Messages
297
Reaction score
38
There's some neat stuff you've completely restructured that I like. Too bad it's all surrounded by other stuff. Would be a pain to rip if I was not lazy.
I feel that it's really cool to see how far the MapleStory section has come along these years.
Most users trying hard to make a v62 server with nothing but hamachi and vanadev or odinms.. Then with one of Moogra's many sources/a rip(repack) of it later on. Hahah, :laugh: nostalgia!


This is one of my favorite sources! Most other developers have abandoned their publicly released source..
Not kevintjuh93. You have my utmost respect.
 
Last edited:
Experienced Elementalist
Joined
Aug 12, 2012
Messages
201
Reaction score
37
The ServerConstants.java are missing the Exp/Meso/Drop rates, the INI data that the .BAT is creating isn't going to Server Info. So i had to insert this in ServerConstants.java to make the rates working again.
Code:
    public static int EXP_RATE = 50; 
    public static int MESO_RATE = 50;
    public static final byte DROP_RATE = 50;

I guess, it's better to remove them from Moople.ini because some people gonna think it's gonna be selected from there, when it's not working. It can be removed from :
NET.Server.CreateINI.java: remove the following code:
Code:
sb.append("exprate").append(b).append("=").append(
   Integer.parseInt(con.readLine("   Exp rate: "))).append("\r\n");

sb.append("droprate").append(b).append("=").append(
   Integer.parseInt(con.readLine("   Drop rate: "))).append("\r\n");

sb.append("mesorate").append(b).append("=").append(
    Integer.parseInt(con.readLine("   Meso rate: "))).append("\r\n");

sb.append("bossdroprate").append(b).append("=").append(
    Integer.parseInt(con.readLine("   Boss drop rate: "))).append("\r\n");

Re-Run Create_Server.bat after compiling.
 
Last edited:
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,108
Reaction score
1,140
The ServerConstants.java are missing the Exp/Meso/Drop rates, the INI data that the .BAT is creating isn't going to Server Info. So i had to insert this in ServerConstants.java to make the rates working again.
Code:
    public static int EXP_RATE = 50; 
    public static int MESO_RATE = 50;
    public static final byte DROP_RATE = 50;

I guess, it's better to remove them from Moople.ini because some people gonna think it's gonna be selected from there, when it's not working. It can be removed from :
NET.Server.CreateINI.java: remove the following code:
Code:
sb.append("exprate").append(b).append("=").append(
   Integer.parseInt(con.readLine("   Exp rate: "))).append("\r\n");

sb.append("droprate").append(b).append("=").append(
   Integer.parseInt(con.readLine("   Drop rate: "))).append("\r\n");

sb.append("mesorate").append(b).append("=").append(
    Integer.parseInt(con.readLine("   Meso rate: "))).append("\r\n");

sb.append("bossdroprate").append(b).append("=").append(
    Integer.parseInt(con.readLine("   Boss drop rate: "))).append("\r\n");

Re-Run Create_Server.bat after compiling.

Lolwut? It doesn't load the data from ServerConstants unless you change it to.

Code:
try {
            for (int i = 0; i < Integer.parseInt(p.getProperty("worlds")); i++) {
                System.out.println("Starting world " + i);
                World world = new World(i,
                        Integer.parseInt(p.getProperty("flag" + i)),
                        p.getProperty("eventmessage" + i),
                        Integer.parseInt(p.getProperty("exprate" + i)),
                        Integer.parseInt(p.getProperty("droprate" + i)),
                        Integer.parseInt(p.getProperty("mesorate" + i)),
                        Integer.parseInt(p.getProperty("bossdroprate" + i)));//ohlol

                worldRecommendedList.add(new Pair<>(i, p.getProperty("whyamirecommended" + i)));
                worlds.add(world);
                channels.add(new LinkedHashMap<Integer, String>());
                for (int j = 0; j < Integer.parseInt(p.getProperty("channels" + i)); j++) {
                    int channelid = j + 1;
                    Channel channel = new Channel(i, channelid);
                    world.addChannel(channel);
                    channels.get(i).put(channelid, channel.getIP());
                }
                world.setServerMessage(p.getProperty("servermessage" + i));
                System.out.println("Finished loading world " + i + "\r\n");
            }
        } catch (Exception e) {
            System.out.println("Error in moople.ini, start CreateINI.bat to re-make the file.");
            e.printStackTrace();//For those who get errors
            System.exit(0);
        }

and Properties p = loading properties of moople.ini, so rates for exp, meso, drop, etc are loaded from the ini file initially. That would be why it's not loaded from ServerConstants.
 
Experienced Elementalist
Joined
Aug 12, 2012
Messages
201
Reaction score
37
Lolwut? It doesn't load the data from ServerConstants unless you change it to.

Code:
try {
            for (int i = 0; i < Integer.parseInt(p.getProperty("worlds")); i++) {
                System.out.println("Starting world " + i);
                World world = new World(i,
                        Integer.parseInt(p.getProperty("flag" + i)),
                        p.getProperty("eventmessage" + i),
                        Integer.parseInt(p.getProperty("exprate" + i)),
                        Integer.parseInt(p.getProperty("droprate" + i)),
                        Integer.parseInt(p.getProperty("mesorate" + i)),
                        Integer.parseInt(p.getProperty("bossdroprate" + i)));//ohlol

                worldRecommendedList.add(new Pair<>(i, p.getProperty("whyamirecommended" + i)));
                worlds.add(world);
                channels.add(new LinkedHashMap<Integer, String>());
                for (int j = 0; j < Integer.parseInt(p.getProperty("channels" + i)); j++) {
                    int channelid = j + 1;
                    Channel channel = new Channel(i, channelid);
                    world.addChannel(channel);
                    channels.get(i).put(channelid, channel.getIP());
                }
                world.setServerMessage(p.getProperty("servermessage" + i));
                System.out.println("Finished loading world " + i + "\r\n");
            }
        } catch (Exception e) {
            System.out.println("Error in moople.ini, start CreateINI.bat to re-make the file.");
            e.printStackTrace();//For those who get errors
            System.exit(0);
        }

and Properties p = loading properties of moople.ini, so rates for exp, meso, drop, etc are loaded from the ini file initially. That would be why it's not loaded from ServerConstants.



I have the exact same code in Server.java and yet it's not loading from the moople.ini. It's loading from ServerConstants
 
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,108
Reaction score
1,140
I have the exact same code in Server.java and yet it's not loading from the moople.ini. It's loading from ServerConstants

I'm not quite sure how that's possible unless you didn't compile correctly. How can the source load from serverconstants magically? Oh, and are you using Rev 120 or Rev 121 SS? I only checked my old Rev 120 rar. If it's been updated, then yeah, my bad lol.
 
Newbie Spellweaver
Joined
Jan 7, 2014
Messages
61
Reaction score
1
I noticed you're refactoring pretty much everything, and you rewriting/revising the code, or are you just renaming it? Too add to that, where are you getting certain names, that you are naming your methods and classes with? Is it just to your liking or?

Also, why change the names in the first place? It's always been "MapleMap" and such in all Odin based sources, Imo it's classic. If this fork was coded from scratch It'd make more sense to rename everything. But anyways, good luck. Looking forward to see if you fixed memory leaks that were present in this fork.
 
Experienced Elementalist
Joined
Aug 12, 2012
Messages
201
Reaction score
37
I noticed you're refactoring pretty much everything, and you rewriting/revising the code, or are you just renaming it? Too add to that, where are you getting certain names, that you are naming your methods and classes with? Is it just to your liking or?

Also, why change the names in the first place? It's always been "MapleMap" and such in all Odin based sources, Imo it's classic. If this fork was coded from scratch It'd make more sense to rename everything. But anyways, good luck. Looking forward to see if you fixed memory leaks that were present in this fork.

It won't make difference to rename them, im changing them to what i'm comfortable to work with.
 
Custom Title Activated
Loyal Member
Joined
Jun 30, 2008
Messages
3,451
Reaction score
1,616
The ServerConstants.java are missing the Exp/Meso/Drop rates, the INI data that the .BAT is creating isn't going to Server Info. So i had to insert this in ServerConstants.java to make the rates working again.
Code:
    public static int EXP_RATE = 50; 
    public static int MESO_RATE = 50;
    public static final byte DROP_RATE = 50;

I guess, it's better to remove them from Moople.ini because some people gonna think it's gonna be selected from there, when it's not working. It can be removed from :
NET.Server.CreateINI.java: remove the following code:
Code:
sb.append("exprate").append(b).append("=").append(
   Integer.parseInt(con.readLine("   Exp rate: "))).append("\r\n");

sb.append("droprate").append(b).append("=").append(
   Integer.parseInt(con.readLine("   Drop rate: "))).append("\r\n");

sb.append("mesorate").append(b).append("=").append(
    Integer.parseInt(con.readLine("   Meso rate: "))).append("\r\n");

sb.append("bossdroprate").append(b).append("=").append(
    Integer.parseInt(con.readLine("   Boss drop rate: "))).append("\r\n");

Re-Run Create_Server.bat after compiling.
Seriously? Now go to your ServerConstants and check if any of your added rates have a reference somewhere in the source. It's a no. You do know that beginners under lv 10 ALWAYS have an EXP rate of 1?
JessVanity, I don't really like these names. It's a Maple project, why would you add Maple in front of it. And most of the names come directly from Wizet.
 
Newbie Spellweaver
Joined
Jan 7, 2014
Messages
61
Reaction score
1
Seriously? Now go to your ServerConstants and check if any of your added rates have a reference somewhere in the source. It's a no. You do know that beginners under lv 10 ALWAYS have an EXP rate of 1?
@JessVanity, I don't really like these names. It's a Maple project, why would you add Maple in front of it. And most of the names come directly from Wizet.

Figured, I guess people who will be using this in the future will need to get use to it, also I think it's a good idea to use NPC script names rather than ID's as I do (Similar to Vana), because they're lots of NPC's with the same script name, for example the event NPC's and boarding NPC's (get_ticket). Just makes things easier this way I guess (For me).
 
Experienced Elementalist
Joined
Aug 12, 2012
Messages
201
Reaction score
37
Seriously? Now go to your ServerConstants and check if any of your added rates have a reference somewhere in the source. It's a no. You do know that beginners under lv 10 ALWAYS have an EXP rate of 1?
JessVanity, I don't really like these names. It's a Maple project, why would you add Maple in front of it. And most of the names come directly from Wizet.

Before i added them lines at ServerConstants, i had 0 exp from any mob, at any level. After i added the lines, it worked somehow. And same for drops.
 
Experienced Elementalist
Joined
Aug 12, 2012
Messages
201
Reaction score
37
Not a revision issue. Somehow you fucked up the project. No idea how though :O

Yup lol.
Anyway according to revision 121. A problem within saveToDB function, You edited the UPDATE statement at the function but you didnt really actually update the SQL Database. And the problem with the insertNewChar issue aswell.

saveToDB function fix:
Go to client.user.User.java, and search for saveToDB, at the prepare statement REPLACE THIS:
PHP:
ps = con.prepareStatement("UPDATE characters SET level = ?, fame = ?, str = ?, dex = ?, luk = ?, `int` = ?, exp = ?, gachaexp = ?, hp = ?, mp = ?, mhp = ?,
mmp = ?, sp = ?, ap = ?, gm = ?, skincolor = ?, gender = ?, job = ?, hair = ?, face = ?, map = ?, meso = ?, hpMpUsed = ?, spawnpoint = ?, party = ?, 
buddyCapacity = ?, messengerid = ?, messengerposition = ?, mountlevel = ?, mountexp = ?, mounttiredness= ?, equipslots = ?, useslots = ?, setupslots = ?, 
etcslots = ?,  monsterbookcover = ?, vanquisherStage = ?, dojoPoints = ?, lastDojoStage = ?, finishedDojoTutorial = ?, vanquisherKills = ?, matchcardwins = ?, 
matchcardlosses = ?, matchcardties = ?, omokwins = ?, omoklosses = ?, omokties = ? WHERE id = ?", Statement.RETURN_GENERATED_KEYS);

With this:
PHP:
ps = con.prepareStatement("UPDATE characters SET level = ?, fame = ?, str = ?, dex = ?, luk = ?, `int` = ?, exp = ?, gachaexp = ?, hp = ?, mp = ?, maxhp = ?, 
maxmp = ?, sp = ?, ap = ?, gm = ?, skincolor = ?, gender = ?, job = ?, hair = ?, face = ?, map = ?, meso = ?, hpMpUsed = ?, spawnpoint = ?, party = ?, 
buddyCapacity = ?, messengerid = ?, messengerposition = ?, mountlevel = ?, mountexp = ?, mounttiredness= ?, equipslots = ?, useslots = ?, setupslots = ?,
etcslots = ?,  monsterbookcover = ?, vanquisherStage = ?, dojoPoints = ?, lastDojoStage = ?, finishedDojoTutorial = ?, vanquisherKills = ?, matchcardwins = ?, 
matchcardlosses = ?, matchcardties = ?, omokwins = ?, omoklosses = ?, omokties = ? WHERE id = ?", Statement.RETURN_GENERATED_KEYS);

That's the solution, and i added the whole Query to make easier to fix, but there is another way and it's in the database, by editing Character table the two columns : "MaxHP" & "MaxMP" rename them to "mhp" & "mmp". ONLY USE THIS IF YOU DIDNT EDIT THE saveToDB FUNCTION

insertNewChar function fix:
Go to your database, find "inventoryitems" and Expand then Expand the "Indexes", you gonna have like this :
kevintjuh93 - [Source] [v83] MoopleDEV | Multi Worlds | Rev 120 | Rev121 Snapshot - RaGEZONE Forums


Right click on "cashitemsn" then press Create Index, a Window like this should open:
kevintjuh93 - [Source] [v83] MoopleDEV | Multi Worlds | Rev 120 | Rev121 Snapshot - RaGEZONE Forums


At the Indexes in Table, Select "cashitemsn", then at the Top right corner, press "Drop Index"
And it should be fixed.
 
Last edited:
Custom Title Activated
Loyal Member
Joined
Jun 30, 2008
Messages
3,451
Reaction score
1,616
Yup lol.
Anyway according to revision 121. A problem within saveToDB function, You updated the UPDATE statement at the function but you didnt really actually update the SQL Query. And the problem with the insertNewChar issue aswell.

saveToDB function fix:
Go to client.user.User.java, and search for saveToDB, at the prepare statement REPLACE THIS:
PHP:
ps = con.prepareStatement("UPDATE characters SET level = ?, fame = ?, str = ?, dex = ?, luk = ?, `int` = ?, exp = ?, gachaexp = ?, hp = ?, mp = ?, mhp = ?,
mmp = ?, sp = ?, ap = ?, gm = ?, skincolor = ?, gender = ?, job = ?, hair = ?, face = ?, map = ?, meso = ?, hpMpUsed = ?, spawnpoint = ?, party = ?, 
buddyCapacity = ?, messengerid = ?, messengerposition = ?, mountlevel = ?, mountexp = ?, mounttiredness= ?, equipslots = ?, useslots = ?, setupslots = ?, 
etcslots = ?,  monsterbookcover = ?, vanquisherStage = ?, dojoPoints = ?, lastDojoStage = ?, finishedDojoTutorial = ?, vanquisherKills = ?, matchcardwins = ?, 
matchcardlosses = ?, matchcardties = ?, omokwins = ?, omoklosses = ?, omokties = ? WHERE id = ?", Statement.RETURN_GENERATED_KEYS);

With this:
PHP:
ps = con.prepareStatement("UPDATE characters SET level = ?, fame = ?, str = ?, dex = ?, luk = ?, `int` = ?, exp = ?, gachaexp = ?, hp = ?, mp = ?, maxhp = ?, 
maxmp = ?, sp = ?, ap = ?, gm = ?, skincolor = ?, gender = ?, job = ?, hair = ?, face = ?, map = ?, meso = ?, hpMpUsed = ?, spawnpoint = ?, party = ?, 
buddyCapacity = ?, messengerid = ?, messengerposition = ?, mountlevel = ?, mountexp = ?, mounttiredness= ?, equipslots = ?, useslots = ?, setupslots = ?,
etcslots = ?,  monsterbookcover = ?, vanquisherStage = ?, dojoPoints = ?, lastDojoStage = ?, finishedDojoTutorial = ?, vanquisherKills = ?, matchcardwins = ?, 
matchcardlosses = ?, matchcardties = ?, omokwins = ?, omoklosses = ?, omokties = ? WHERE id = ?", Statement.RETURN_GENERATED_KEYS);

That's the solution, and i added the whole Query to make easier to fix, but there is another way and it's in the database, by editing Character table the two columns : "MaxHP" & "MaxMP" rename them to "mhp" & "mmp". ONLY USE THIS IF YOU DIDNT EDIT THE saveToDB FUNCTION

insertNewChar function fix:
Go to your database, find "inventoryitems" and Expand then Expand the "Indexes", you gonna have like this :
kevintjuh93 - [Source] [v83] MoopleDEV | Multi Worlds | Rev 120 | Rev121 Snapshot - RaGEZONE Forums


Right click on "cashitemsn" then press Create Index, a Window like this should open:
kevintjuh93 - [Source] [v83] MoopleDEV | Multi Worlds | Rev 120 | Rev121 Snapshot - RaGEZONE Forums


At the Indexes in Table, Select "cashitemsn", then at the Top right corner, press "Drop Index"
And it should be fixed.

Wait what? What did I forget according to you?
 
Status
Not open for further replies.
Back
Top