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.
Master Summoner
Loyal Member
Joined
Sep 28, 2008
Messages
599
Reaction score
291
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

@iAkira

I told him that before, but he said he's correct >.< But if i'm not mistaken, aran, cygnus, and explorer each as its own inventory and not the character.
 
Initiate Mage
Joined
Aug 6, 2008
Messages
2
Reaction score
0
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

Stuff on my world login and channel bat seems fine, no error, when I open the client and login it d/cs me showing you have been disconnected from the server etc etc
Any idea?
 
Experienced Elementalist
Joined
Aug 27, 2008
Messages
256
Reaction score
81
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

Just wrote this up real quick. I'm sure there are ways to make it shorter. Any ideas about what the difference between timeless and reverse weapons are? GainLevel Method in Equip.java:
Code:
public void gainLevel(MapleClient c) {
       MapleItemInformationProvider mii = MapleItemInformationProvider.getInstance();
       Equip nEquip = (Equip) c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem((byte) -11);
        if (level < 6 && mii.getName(nEquip.getItemId()).contains("Timeless") || level < 4 && mii.getName(nEquip.getItemId()).contains("Reverse")) {
            if (c.getPlayer().getJob().isA(MapleJob.MAGICIAN) || c.getPlayer().getJob().isA(MapleJob.BLAZEWIZARD1)) {
            int addedmatk=(int)(4*Math.random());
            int added_int=(int)(2*Math.random());
            int lukcheck=(int)(2*Math.random());
            this.matk += addedmatk;
            this._int += added_int;
            this.luk += lukcheck-1;
            }
            if (c.getPlayer().getJob().isA(MapleJob.WARRIOR) || c.getPlayer().getJob().isA(MapleJob.DAWNWARRIOR1) || c.getPlayer().getJob().isA(MapleJob.ARAN1)) {
            int addedwatk=(int)(3*Math.random());
            int added_str=(int)(2*Math.random());
            int dexcheck=(int)(2*Math.random());
            this.watk += addedwatk-1;
            this.str += added_str;
            this.dex += dexcheck-1;
            }
            if (c.getPlayer().getJob().isA(MapleJob.THIEF) || c.getPlayer().getJob().isA(MapleJob.NIGHTWALKER1)) {
            int addedwatk=(int)(3*Math.random());
            int added_luk=(int)(2*Math.random());
            int dexcheck=(int)(2*Math.random());
            this.watk += addedwatk-1;
            this.luk += added_luk;
            this.dex += dexcheck-1;
            }
            if (c.getPlayer().getJob().isA(MapleJob.BOWMAN) || c.getPlayer().getJob().isA(MapleJob.WINDARCHER1)) {
            int addedwatk=(int)(3*Math.random());
            int added_dex=(int)(2*Math.random());
            int strcheck=(int)(2*Math.random());
            this.watk += addedwatk-1;
            this.dex += added_dex;
             this.str += strcheck-1;
            }
            if (c.getPlayer().getJob().isA(MapleJob.PIRATE) || c.getPlayer().getJob().isA(MapleJob.THUNDERBREAKER1)) {
            int addedwatk=(int)(3*Math.random());
            int added_str=(int)(2*Math.random());
            int dexcheck=(int)(2*Math.random());
            this.watk += addedwatk-1;
            this.str += added_str;
            this.dex += dexcheck-1;
            }
        }
        this.level++;
    }
 
Last edited:
Interesting...
Loyal Member
Joined
Oct 25, 2008
Messages
1,372
Reaction score
604
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

Just wrote this up real quick. I'm sure there are ways to make it shorter. Any ideas about what the difference between timeless and reverse weapons are? GainLevel Method in Equip.java:
Code:
public void gainLevel(MapleClient c, boolean timeless) {
        if (level < 6) {
            if (c.getPlayer().getJob().isA(MapleJob.MAGICIAN) || c.getPlayer().getJob().isA(MapleJob.BLAZEWIZARD1)) {
            int addedmatk=(int)(4*Math.random());
            int added_int=(int)(3*Math.random());
            int lukcheck=(int)(2*Math.random());
            this.matk += addedmatk;
            this._int += added_int;
            this.luk += lukcheck;
            }
            if (c.getPlayer().getJob().isA(MapleJob.WARRIOR) || c.getPlayer().getJob().isA(MapleJob.DAWNWARRIOR1) || c.getPlayer().getJob().isA(MapleJob.ARAN1)) {
            int addedwatk=(int)(3*Math.random());
            int added_str=(int)(2*Math.random());
            int dexcheck=(int)(2*Math.random());
            this.watk += addedwatk-1;
            this.str += added_str;
            this.dex += dexcheck-1;
            }     
            if (c.getPlayer().getJob().isA(MapleJob.THIEF) || c.getPlayer().getJob().isA(MapleJob.NIGHTWALKER1)) {
            int addedwatk=(int)(3*Math.random());
            int added_luk=(int)(2*Math.random());
            int dexcheck=(int)(2*Math.random());
            this.watk += addedwatk-1;
            this.luk += added_luk;
            this.dex += dexcheck-1;
            }
            if (c.getPlayer().getJob().isA(MapleJob.BOWMAN) || c.getPlayer().getJob().isA(MapleJob.WINDARCHER1)) {
            int addedwatk=(int)(3*Math.random());
            int added_dex=(int)(2*Math.random());
            int strcheck=(int)(2*Math.random());
            this.watk += addedwatk-1;
            this.dex += added_dex;
             this.str += strcheck-1;
            }
            if (c.getPlayer().getJob().isA(MapleJob.PIRATE) || c.getPlayer().getJob().isA(MapleJob.THUNDERBREAKER1)) {
            int addedwatk=(int)(3*Math.random());
            int added_str=(int)(2*Math.random());
            int dexcheck=(int)(2*Math.random());
            this.watk += addedwatk-1;
            this.str += added_str;
            this.dex += dexcheck-1;  
            }
        }
        this.level++;
    }

The added stats are wrong. For example, for the mages, it isn't 1-4 MAttk, 1-3 INT and 1-2 Luk. Also where is the boolean timeless being used. Max level of Timeless/Reverse weapons is 3.

But then again this is a quick draft.
 
Newbie Spellweaver
Joined
Jun 17, 2008
Messages
16
Reaction score
0
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

kevin, this is an amazing source
thanks for continually updating it :)
 
Last edited:
Experienced Elementalist
Joined
Aug 27, 2008
Messages
256
Reaction score
81
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

The added stats are wrong. For example, for the mages, it isn't 1-4 MAttk, 1-3 INT and 1-2 Luk. Also where is the boolean timeless being used. Max level of Timeless/Reverse weapons is 3.

But then again this is a quick draft.

Fixed all of that nonsense. Forgot to take into account that magic classes have different stat gains. Go look over it again and make sure its fine. Oh and I can't find the difference between reverse and timeless weapons yet, so I'm not sure what to do about that yet.
 
Experienced Elementalist
Joined
Aug 27, 2008
Messages
256
Reaction score
81
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

All the info are in the wz files. Read them from the xml wz files :)
Are the formula's for reverse stat gain there?

and here.
This needs to be added in MapleMap:
Code:
public void weaponExpCheck(MapleCharacter chr) {
    MapleItemInformationProvider mii = MapleItemInformationProvider.getInstance();
    Equip nEquip = (Equip) chr.getInventory(MapleInventoryType.EQUIPPED).getItem((byte) -11);
    int expChance=(int)((15*nEquip.getLevel()/2)*Math.random());
    if (mii.getName(nEquip.getItemId()).contains("Reverse") || mii.getName(nEquip.getItemId()).contains("Timeless")) {
    if (expChance == 1) {
    nEquip.gainItemExp(chr.getClient(), 1, true);   // Timeless boolean still isn't used X.X 
    }    
    }
    }
and
Code:
weaponExpCheck(chr);
goes right below
Code:
public void killMonster(final MapleMonster monster, final MapleCharacter chr, final boolean withDrops, final boolean secondTime, int animation) {



You have a chance of gaining exp from every monster you kill, but it will be harder to gain exp every time you level up your wep. I fixed the stats in the other thing too. So this is pretty much wrapped up.

Now I just have to code a case for all other types of timeless equip. X.X
 
Experienced Elementalist
Joined
Aug 27, 2008
Messages
256
Reaction score
81
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

Why the fak do you add that to MapleMap? Add it to Equip.

Arggg. I'm overcome with lazyness.

These two methods go in Equip:
Code:
public static void equipExpCheck(MapleCharacter chr) {
    MapleItemInformationProvider mii = MapleItemInformationProvider.getInstance();
    Equip nEquip = (Equip) chr.getInventory(MapleInventoryType.EQUIPPED).getItem((byte) -11);
    int expChance=(int)((15*nEquip.getLevel()/2)*Math.random());
    if (mii.getName(nEquip.getItemId()).contains("Reverse") || mii.getName(nEquip.getItemId()).contains("Timeless")) {
    if (expChance == 1) {
    nEquip.gainItemExp(chr.getClient(), 1, true);   // Timeless boolean still isn't used X.X 
    }    
    }
    }

   public void gainLevel(MapleClient c) {
       MapleItemInformationProvider mii = MapleItemInformationProvider.getInstance();
       Equip nEquip = (Equip) c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem((byte) -11);
        if (level < 6 && mii.getName(nEquip.getItemId()).contains("Timeless") || level < 4 && mii.getName(nEquip.getItemId()).contains("Reverse")) {
            if (c.getPlayer().getJob().isA(MapleJob.MAGICIAN) || c.getPlayer().getJob().isA(MapleJob.BLAZEWIZARD1)) {
            int addedmatk=(int)(4*Math.random());
            int added_int=(int)(2*Math.random());
            int lukcheck=(int)(2*Math.random());
            this.matk += addedmatk;
            this._int += added_int;
            this.luk += lukcheck-1;
            }
            if (c.getPlayer().getJob().isA(MapleJob.WARRIOR) || c.getPlayer().getJob().isA(MapleJob.DAWNWARRIOR1) || c.getPlayer().getJob().isA(MapleJob.ARAN1)) {
            int addedwatk=(int)(3*Math.random());
            int added_str=(int)(2*Math.random());
            int dexcheck=(int)(2*Math.random());
            this.watk += addedwatk-1;
            this.str += added_str;
            this.dex += dexcheck-1;
            }
            if (c.getPlayer().getJob().isA(MapleJob.THIEF) || c.getPlayer().getJob().isA(MapleJob.NIGHTWALKER1)) {
            int addedwatk=(int)(3*Math.random());
            int added_luk=(int)(2*Math.random());
            int dexcheck=(int)(2*Math.random());
            this.watk += addedwatk-1;
            this.luk += added_luk;
            this.dex += dexcheck-1;
            }
            if (c.getPlayer().getJob().isA(MapleJob.BOWMAN) || c.getPlayer().getJob().isA(MapleJob.WINDARCHER1)) {
            int addedwatk=(int)(3*Math.random());
            int added_dex=(int)(2*Math.random());
            int strcheck=(int)(2*Math.random());
            this.watk += addedwatk-1;
            this.dex += added_dex;
             this.str += strcheck-1;
            }
            if (c.getPlayer().getJob().isA(MapleJob.PIRATE) || c.getPlayer().getJob().isA(MapleJob.THUNDERBREAKER1)) {
            int addedwatk=(int)(3*Math.random());
            int added_str=(int)(2*Math.random());
            int dexcheck=(int)(2*Math.random());
            this.watk += addedwatk-1;
            this.str += added_str;
            this.dex += dexcheck-1;
            }
        }
        this.level++;
    }
This import goes in equip
Code:
import server.MapleItemInformationProvider;
This import goes into mapleMap
Code:
import client.Equip;
This
Code:
Equip.equipExpCheck(chr);
goes under
Code:
public void killMonster(final MapleMonster monster, final MapleCharacter chr, final boolean withDrops, final boolean secondTime, int animation) {
in MapleMap


happy? :p

Edit: Oh and did you ever fix parties? O.O They were broken in rev 93.
 
Last edited:
Newbie Spellweaver
Joined
Feb 4, 2011
Messages
37
Reaction score
1
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

GM auto hide is also bugged, you cant debuff it (rev 97 i think).
 
Interesting...
Loyal Member
Joined
Oct 25, 2008
Messages
1,372
Reaction score
604
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

Redeemer this should help you see the difference between Reverse and Timeless.

Reverse:
Timeless:

You need to add a check since Timeless have 2 more levels than reverse.
 
Last edited:
Experienced Elementalist
Joined
Aug 27, 2008
Messages
256
Reaction score
81
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

Redeemer this should help you see the difference between Reverse and Timeless.

Reverse:
Timeless:

You need to add a check since Timeless have 2 more levels than reverse.

poop. I'll work on it. But I can't promise I'll get around to it today. Gf's birthday, and have done nothing all weekend, so stuff has been piling up. X.X anyways, I'll finish it.

EDIT:the stats they add are the same, the only difference is the level difference. Lemme add a level cap check real quick.

Double Edit: Done. Now it should work correctly for Reverse and Timeless. We still have to do that skill stuff and do the other equip like hats leveling up. :p
 
Last edited:
Custom Title Activated
Loyal Member
Joined
Jun 30, 2008
Messages
3,451
Reaction score
1,616
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

Rev 99:

- Fixed something with notes
- Fixed normal gifting

Execute notes.sql

---------- Post added at 05:54 PM ---------- Previous post was at 05:53 PM ----------

GM auto hide is also bugged, you cant debuff it (rev 97 i think).
It's not bugged, just use the skill to disable hide.

---------- Post added at 05:59 PM ---------- Previous post was at 05:54 PM ----------

@iAkira

I told him that before, but he said he's correct >.< But if i'm not mistaken, aran, cygnus, and explorer each as its own inventory and not the character.
All explorers share same cash inv (except dual bladers).
All others share with themselves lol
 
Junior Spellweaver
Joined
Sep 8, 2008
Messages
132
Reaction score
17
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

add new and fix portal out map for DimensionalMirror

nets_out.js /met_out.js /mc_out.js /aMatchMove2.js/ dojang_exit.js
PHP:
function enter(pi) {
    try {
        pi.warp(pi.getPlayer().getSavedLocation("MIRROR"));
    } catch(err) {
        pi.warp(100000000);
    }
    return true;
}
 
Newbie Spellweaver
Joined
Feb 4, 2011
Messages
37
Reaction score
1
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

Rev 99:

- Fixed something with notes
- Fixed normal gifting

Execute notes.sql

---------- Post added at 05:54 PM ---------- Previous post was at 05:53 PM ----------


It's not bugged, just use the skill to disable hide.

---------- Post added at 05:59 PM ---------- Previous post was at 05:54 PM ----------


All explorers share same cash inv (except dual bladers).
All others share with themselves lol

I might as well remove auto hide, it gets annoying.
 
may web.very maple.pls.
Loyal Member
Joined
Aug 12, 2009
Messages
1,810
Reaction score
606
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

All explorers share same cash inv (except dual bladers).
All others share with themselves lol
Well I was playing around with the inventories and I manage to make them all separated somehow lmao :]

---------- Post added at 06:21 PM ---------- Previous post was at 06:21 PM ----------

I might as well remove auto hide, it gets annoying.
playerloggedinhandler?? remove it from there if you didn't know
 
Newbie Spellweaver
Joined
Feb 4, 2011
Messages
37
Reaction score
1
Re: [Source] [v83] MoopleDEV | Working rings as of rev 98!

Well I was playing around with the inventories and I manage to make them all separated somehow lmao :]

---------- Post added at 06:21 PM ---------- Previous post was at 06:21 PM ----------


playerloggedinhandler?? remove it from there if you didn't know

I just commented it out, just in-case.
 
Status
Not open for further replies.
Back
Top