Actually I can just change maxdist right and that would work?
Code:
package net.sf.odinms.net.channel.handler;
import java.awt.Point;
import java.util.Arrays;
import java.util.List;
import net.sf.odinms.client.MapleCharacter;
import net.sf.odinms.client.MapleClient;
import net.sf.odinms.client.MapleInventoryType;
import net.sf.odinms.client.MaplePet;
import net.sf.odinms.server.MapleInventoryManipulator;
import net.sf.odinms.server.maps.MapleMapItem;
import net.sf.odinms.server.maps.MapleMapObject;
import net.sf.odinms.server.maps.MapleMapObjectType;
import net.sf.odinms.server.movement.LifeMovementFragment;
import net.sf.odinms.tools.MaplePacketCreator;
import net.sf.odinms.tools.data.input.SeekableLittleEndianAccessor;
import net.sf.odinms.tools.data.input.StreamUtil;
public class MovePetHandler extends AbstractMovementPacketHandler {
private int maxdist;
@Override
public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
int petId = slea.readInt();
slea.readInt();
StreamUtil.readShortPoint(slea);
List<LifeMovementFragment> res = parseMovement(slea);
MapleCharacter player = c.getPlayer();
int slot = player.getPetIndex(petId);
if (slot == -1) {
return;
}
player.getPet(slot).updatePosition(res);
player.getMap().broadcastMessage(player, MaplePacketCreator.movePet(player.getId(), petId, slot, res), false);
Boolean meso = false, item = false, boots = false, bino = false;
if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812001) != null) {
item = true;
maxdist = 30;
}
if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812000) != null) {
meso = true;
maxdist = 30;
}
if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812004) != null) {
boots = true;
maxdist = 80;
}
if (c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).findById(1812005) != null) {
bino = true;
maxdist = 120;
}
if ((boots || bino) || meso || item) {
List<MapleMapObject> objects = player.getMap().getMapObjectsInRange(player.getPosition(), MapleCharacter.MAX_VIEW_RANGE_SQ, Arrays.asList(MapleMapObjectType.ITEM));
for (LifeMovementFragment move : res) {
Point petPos = move.findPosition();
double petX = petPos.getX();
double petY = petPos.getY();
for (MapleMapObject map_object : objects) {
Point objectPos = map_object.getPosition();
double objectX = objectPos.getX();
double objectY = objectPos.getY();
if (Math.abs(petX - objectX) <= maxdist || Math.abs(objectX - petX) <= maxdist) {
if (Math.abs(petY - objectY) <= maxdist || Math.abs(objectY - petY) <= maxdist) {
if (map_object instanceof MapleMapItem) {
MapleMapItem mapitem = (MapleMapItem) map_object;
synchronized (mapitem) {
if (mapitem.isPickedUp() || mapitem.getOwner().getId() != player.getId()) {
continue;
}
if (mapitem.getMeso() > 0 && meso) {
c.getPlayer().gainMeso(mapitem.getMeso(), true, true);
c.getPlayer().getMap().broadcastMessage(
MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 5, c.getPlayer().getId(), true, slot),
mapitem.getPosition());
c.getPlayer().getMap().removeMapObject(map_object);
mapitem.setPickedUp(true);
} else {
if (item) {
if (mapitem.getItem().getItemId() >= 5000000 && mapitem.getItem().getItemId() <= 5000045) {
int pet = MaplePet.createPet(mapitem.getItem().getItemId());
if (pet == -1) {
return;
}
MapleInventoryManipulator.addById(c, mapitem.getItem().getItemId(), mapitem.getItem().getQuantity(), "Was picked up by " + c.getPlayer().getName(), null, pet);
c.getPlayer().getMap().broadcastMessage(
MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 5, c.getPlayer().getId(), true, slot),
mapitem.getPosition());
c.getPlayer().getMap().removeMapObject(map_object);
mapitem.setPickedUp(true);
} else {
StringBuilder logInfo = new StringBuilder("Picked up by ");
logInfo.append(c.getPlayer().getName());
if (MapleInventoryManipulator.addFromDrop(c, mapitem.getItem(), logInfo.toString())) {
c.getPlayer().getMap().broadcastMessage(
MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 5, c.getPlayer().getId(), true, slot),
mapitem.getPosition());
c.getPlayer().getMap().removeMapObject(map_object);
mapitem.setPickedUp(true);
}
}
}
}
}
}
}
}
}
}
}
}
}
Yep worked, done :3