- Joined
- Feb 23, 2008
- Messages
- 507
- Reaction score
- 361
Due to a forum bug, the thread was deleted, so here, I just reposted it. Thanks to Shawn for finding my thread.
Made this a few months ago. I just wanted to give to the community a bit, I'm in a release mood.
Remember to give proper credits if you repost this thread anywhere else, no help will be given. Also, remember to 'thank' me if this helped you!
server.Fishing.java
Replace net.channel.handler.useChairHandler.java with this :
Replace net.channel.handler.cancelChairHandler.java with this :
And finally, go in ChannelServer.java and add this :
under tMan.register , (in the run method.)
Made this a few months ago. I just wanted to give to the community a bit, I'm in a release mood.
Remember to give proper credits if you repost this thread anywhere else, no help will be given. Also, remember to 'thank' me if this helped you!
server.Fishing.java
PHP:
/**
*
* @author FateJiki of RaGeZONE
*/
public class Fishing {
public static void doFishing(client.MapleCharacter chr){
int mesoMultiplier = 1;
int expMultiplier = 1;
switch(chr.getWorld()){
case 0:
mesoMultiplier = constants.ServerConstants.MESO_RATE;
expMultiplier = constants.ServerConstants.EXP_RATE;
break;
case 1: // if you have bera
mesoMultiplier = constants.ServerConstants.WORLD_1_MESORATE;
expMultiplier = constants.ServerConstants.WORLD_1_EXPRATE;
break;
case 2: // if you have broa
mesoMultiplier = constants.ServerConstants.WORLD_2_MESORATE;
expMultiplier = constants.ServerConstants.WORLD_2_EXPRATE;
break;
}
int mesoAward = (int)(1400.0 * Math.random() + 1201) * mesoMultiplier + (15 * chr.getLevel() / 5);
int expAward = (int)(645.0 * Math.random()) * expMultiplier + (15 * chr.getLevel() / 2) / 6;
if(chr.getLevel() >= 30 && chr.getMapId() == 251000100){
int rand = (int)(3.0 * Math.random());
switch(rand){
case 0:
chr.gainMeso(mesoAward, true, true, true);
chr.getClient().getSession().write(MaplePacketCreator.catchMonster(9500336, 2000017, (byte)1));
chr.getMap().broadcastMessage(chr, MaplePacketCreator.catchMonster(9500336, 2000017, (byte)1), false);
break;
case 1:
chr.gainExp(expAward, true, true);
chr.getClient().getSession().write(MaplePacketCreator.catchMonster(9500336, 2000017, (byte)1));
chr.getMap().broadcastMessage(chr, MaplePacketCreator.catchMonster(9500336, 2000017, (byte)1), false);
break;
case 2:
chr.gainItem(getRandomItem(), (short)1, true);
chr.getClient().getSession().write(MaplePacketCreator.catchMonster(9500336, 2000017, (byte)1));
chr.getMap().broadcastMessage(chr, MaplePacketCreator.catchMonster(9500336, 2000017, (byte)1), false);
break;
case 3: // if you have occupations
chr.gainOccEXP((int)((rand + (5.0 * Math.random())) * Math.random()));
chr.getClient().getSession().write(MaplePacketCreator.catchMonster(9500336, 2000017, (byte)1));
chr.getMap().broadcastMessage(chr, MaplePacketCreator.catchMonster(9500336, 2000017, (byte)1), false);
break;
}
} else {
chr.dropMessage("You must be above level 30 to fish!");
}
}
public static int getRandomItem(){
int finalID = 0;
int rand = (int)(100.0 * Math.random());
int[] commons = {1002851, 2002020, 2002020, 2000006, 2000018, 2002018, 2002024, 2002027, 2002027, 2000018, 2000018, 2000018 , 2000018, 2002030, 2002018, 2000016}; // filler' up
int[] uncommons = {1000025, 1002662, 1002812, 1002850, 1002881, 1002880, 1012072, 4020009, 2043220, 2043022, 2040543, 2044420, 2040943, 2043713, 2044220, 2044120, 2040429, 2043220, 2040943}; // filler' uptoo
int[] rares = {1002859, 1002553, 01002762, 01002763, 01002764, 01002765, 01002766, 01002663, 1002788, 1002949, 2049100, 2340000, 2040822,2040822,2040822,2040822,2040822,2040822,2040822,2040822}; // filler' uplast
if(rand >= 25){
return commons[(int)(commons.length * Math.random())];
} else if(rand <= 7 && rand >= 5){
return uncommons[(int)(uncommons.length * Math.random())];
} else if(rand <= 3){
return rares[(int)(rares.length * Math.random())];
}
return finalID;
}
}
PHP:
package net.channel.handler;
import client.MapleClient;
import client.MapleInventoryType;
import net.AbstractMaplePacketHandler;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
import server.TimerManager;
import java.util.concurrent.ScheduledFuture;
public final class UseChairHandler extends AbstractMaplePacketHandler {
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
int itemId = slea.readInt();
if (c.getPlayer().getInventory(MapleInventoryType.SETUP).findById(itemId) == null) {
return;
}
if(c.getPlayer().getMapId() == 251000100 && itemId == 3011000 && !c.getPlayer().isFishing){
c.getPlayer().isFishing = true;
}
c.getPlayer().setChair(itemId);
c.getPlayer().getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.showChair(c.getPlayer().getId(), itemId), false);
c.getSession().write(MaplePacketCreator.enableActions());
}
}
PHP:
package net.channel.handler;
import client.MapleClient;
import net.AbstractMaplePacketHandler;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
public final class CancelChairHandler extends AbstractMaplePacketHandler {
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
int id = slea.readShort();
if (id == -1) { // Cancel Chair
c.getPlayer().setChair(0);
c.getPlayer().isFishing = false;
c.getSession().write(MaplePacketCreator.cancelChair(-1));
c.getPlayer().getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.showChair(c.getPlayer().getId(), 0), false);
} else { // Use In-Map Chair
c.getPlayer().setChair(id);
c.getSession().write(MaplePacketCreator.cancelChair(id));
}
}
}
PHP:
@Override
public void run(){
for(MapleCharacter chr : getPlayerStorage().getAllCharacters()){
if(chr.isFishing && chr.getMapId() == 251000100){
server.Events.Fishing.doFishing(chr);
}
}
}
}, 30000);
Last edited by a moderator: