2X card fix(Odin)

Newbie Spellweaver
Joined
Jun 22, 2008
Messages
50
Reaction score
0
I found a way to let the 2X EXP/Drop card works, but is not according to timer, at least it fixed a little XD

Now go to src\net\sf\odinms\client\MapleCharacter.java and find
Code:
	public int hasEXPCard() {
		for ( int i=5210999; i<5211048; i++ ) {
			if (haveItem(i, 1, false, true)) {
				return 2;
			}
		}
		return 1;
	}

Change to
Code:
	public int hasEXPCard() {
		for ( int i=5211000; i<=5211048; i++ ) {
			if (haveItem(i)) {
				return 2;
			}
		}
		return 1;
	}

For dropcard, add below of the upper one
Code:
	public int hasDropCard() {
		for ( int i=5360000; i<=5360042; i++ ) {
			if (haveItem(i)) {
				return 2;
			}
		}
		return 1;
	}

Then, go to and find something similar like this
Code:
		if (isBoss) {
			maxDrops = 4; // boss droprate
		} else {
			maxDrops = 10; // mob droprate
		}

Add below it
Code:
		maxDrops *= dropOwner.getClient().getPlayer().hasDropCard();

And find
Code:
					final int mesoRate = ChannelServer.getInstance(dropOwner.getClient().getChannel()).getMesoRate();

Change to
Code:
					final int mesoRate = ChannelServer.getInstance(dropOwner.getClient().getChannel()).getMesoRate() * dropOwner.getClient().getPlayer().hasDropCard();

Then compile it, it should do it, have fun~ ;)
 
Last edited:
Re: [Release]2X card fix(Odin)

u got one problam i cant find this line


"Then, go to and find

if (isBoss) {
maxDrops = ChannelServer.getInstance(channel).getBossDropRate(); // boss droprate
} else {
maxDrops = ChannelServer.getInstance(channel).getDropRate(); // mob droprate
}"

u said go to and find (where to go.....)
 
Re: [Release]2X card fix(Odin)

You Did Not Define It To *2 Exp 0.0 And There Other Exp Card Too Use ll < Or Statment To Add More Cards

Same With Mesos And Drops You Have Define It To *2

actually nothing wrong with it ..
The actually code said:
public int hasEXPCard() {
for ( int i=5211000; i<=5211048; i++ ) {
if (haveItem(i)) {
return 2;
}
}
return 1;
}

if the char has a card then its returning 2 i.e storing 2 as the result of function hasEXPCard.. so * hasEXPCard is same as *2

if the char doesnt have a card , it returns 1, then the exprate becomes *1.

BTW nice :)
 
Re: [Release]2X card fix(Odin)

u got one problam i cant find this line


"Then, go to and find

if (isBoss) {
maxDrops = ChannelServer.getInstance(channel).getBossDropRate(); // boss droprate
} else {
maxDrops = ChannelServer.getInstance(channel).getDropRate(); // mob droprate
}"

u said go to and find (where to go.....)


you can find in net.sf.odinms.server.maps.maplemap;
 
Re: [Release]2X card fix(Odin)

Sorry guys, make some mistake, because that is my own define function XD
Fix, hope you know how to read :D

@ExtremeDevilz
Because it already defined inside the statement, so i don't need to show it once more.

@nejevoli
Drop Card = 2X Meso + 2X Drop
I couldn't find anything like meso card, i knew it was have in official....but i don't have the ID inside the XML WZ, so i didn't add it, maybe i gather some information later on.
 
Re: [Release]2X card fix(Odin)

haveItem incompatible type, need
Code:
public boolean haveItem(int itemid, int quantity, boolean checkEquipped, boolean greaterOrEquals) {
Code:
	public int hasEXPCard() {
		for ( int i=5210999; i<5211048; i++ ) {
			if (haveItem(i, 1, false, true)) {
				return 2;
			}
		}
		return 1;
	}
	
	public int hasDropCard() {
		for ( int i=5360000; i<=5360042; i++ ) {
			if (haveItem(i, 1, false, true)) {
				return 2;
			}
		}
		return 1;
	}
And ty for DropCards ^^ exp and 2x drop works fine for me o.O
 
Re: [Release]2X card fix(Odin)

@iPlayHard
Hmm...i mean by, a EXP card that is work from 7-11pm doesn't work as it say, it will work even out of that time, something like that.
 
Back