
Originally Posted by
kevintjuh93
Errors? Tell them..
i'm still on 19 , but even back to 18 , i set exprate to like 1337 and placed int instead of byte , it crashes on login screen .
And also , i can use admin commands , why can't i use gm commands ? puzzling .
---------- Post added at 09:46 AM ---------- Previous post was at 09:19 AM ----------
the whole fredrick handler is bugged 
Code:
public class FredrickHandler extends AbstractMaplePacketHandler {
public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
MapleCharacter chr = c.getPlayer();
byte operation = slea.readByte();
switch (operation) {
case 0x19: //Will never come...
//c.getSession().write(MaplePacketCreator.getFredrick((byte) 0x24));
break;
case 0x1A:
List<Pair<IItem, MapleInventoryType>> items;
try {
items = ItemFactory.MERCHANT.loadItems(chr.getId(), false);
if (!check(chr, items)) {
c.getSession().write(MaplePacketCreator.fredrickMessage((byte) 0x21));
return;
}
chr.gainMeso(chr.getMerchantMeso(), false);
chr.setMerchantMeso(0);
if (deleteItems(chr)) {
for (int i = 0; i < items.size(); i++) {
MapleInventoryManipulator.addFromDrop(c, items.get(i).getLeft(), false);
}
c.getSession().write(MaplePacketCreator.fredrickMessage((byte) 0x1E));
} else {
chr.message("An unknown error has occured.");
return;
}
break;
} catch (SQLException ex) {
ex.printStackTrace();
}
break;
case 0x1C: //Exit
break;
default:
}
}
private static final boolean check(MapleCharacter chr, List<Pair<IItem, MapleInventoryType>> items) {
if (chr.getMeso() + chr.getMerchantMeso() < 0) {
return false;
}
byte eq = 0, use = 0, setup = 0, etc = 0, cash = 0;
for (Pair<IItem, MapleInventoryType> item : items) {
final MapleInventoryType invtype = MapleItemInformationProvider.getInstance().getInventoryType(item.getLeft().getItemId());
if (invtype == MapleInventoryType.EQUIP) {
eq++;
} else if (invtype == MapleInventoryType.USE) {
use++;
} else if (invtype == MapleInventoryType.SETUP) {
setup++;
} else if (invtype == MapleInventoryType.ETC) {
etc++;
} else if (invtype == MapleInventoryType.CASH) {
cash++;
}
}
if (chr.getInventory(MapleInventoryType.EQUIP).getNumFreeSlot() <= eq
|| chr.getInventory(MapleInventoryType.USE).getNumFreeSlot() <= use
|| chr.getInventory(MapleInventoryType.SETUP).getNumFreeSlot() <= setup
|| chr.getInventory(MapleInventoryType.ETC).getNumFreeSlot() <= etc
|| chr.getInventory(MapleInventoryType.CASH).getNumFreeSlot() <= cash) {
return false;
}
return true;
}
private static final boolean deleteItems(MapleCharacter chr) {
try {
Connection con = DatabaseConnection.getConnection();
PreparedStatement ps = con.prepareStatement("DELETE FROM `inventoryitems` WHERE `type` = ? AND `characterid` = ?");
ps.setInt(1, ItemFactory.MERCHANT.getValue());
ps.setInt(2, chr.getId());
ps.execute();
ps.close();
return true;
} catch (SQLException e) {
return false;
}
}
}
---------- Post added at 10:03 AM ---------- Previous post was at 09:46 AM ----------