Fixed drop count on maps
Fixed an issue with map drop count displaying errouneous info after items are "picked-up" by reactors or commands like cleardrops.
This commit is contained in:
@@ -21,7 +21,6 @@
|
||||
*/
|
||||
package net.server.channel.handlers;
|
||||
|
||||
import client.MapleBuffStat;
|
||||
import client.MapleClient;
|
||||
import client.SkillFactory;
|
||||
import constants.skills.Bishop;
|
||||
@@ -32,7 +31,6 @@ import constants.skills.FPArchMage;
|
||||
import constants.skills.ILArchMage;
|
||||
import constants.skills.Marksman;
|
||||
import constants.skills.WindArcher;
|
||||
import constants.skills.NightWalker;
|
||||
import net.AbstractMaplePacketHandler;
|
||||
import net.MaplePacketHandler;
|
||||
import tools.MaplePacketCreator;
|
||||
|
||||
@@ -44,6 +44,7 @@ import tools.MaplePacketCreator;
|
||||
import tools.data.input.SeekableLittleEndianAccessor;
|
||||
|
||||
public final class SkillEffectHandler extends AbstractMaplePacketHandler {
|
||||
@Override
|
||||
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
|
||||
int skillId = slea.readInt();
|
||||
int level = slea.readByte();
|
||||
@@ -57,7 +58,7 @@ public final class SkillEffectHandler extends AbstractMaplePacketHandler {
|
||||
case Bishop.BIG_BANG:
|
||||
case Bowmaster.HURRICANE:
|
||||
case Marksman.PIERCING_ARROW:
|
||||
case ChiefBandit.CHAKRA:
|
||||
case ChiefBandit.CHAKRA:
|
||||
case Brawler.CORKSCREW_BLOW:
|
||||
case Gunslinger.GRENADE:
|
||||
case Corsair.RAPID_FIRE:
|
||||
|
||||
@@ -764,9 +764,9 @@ public class MapleMap {
|
||||
public void pickItemDrop(byte[] pickupPacket, MapleMapItem mdrop) {
|
||||
broadcastMessage(pickupPacket, mdrop.getPosition());
|
||||
|
||||
droppedItemCount.decrementAndGet();
|
||||
this.removeMapObject(mdrop);
|
||||
mdrop.setPickedUp(true);
|
||||
droppedItemCount.decrementAndGet();
|
||||
}
|
||||
|
||||
private void spawnDrop(final Item idrop, final Point dropPos, final MapleMapObject dropper, final MapleCharacter chr, final byte droptype, final short questid) {
|
||||
@@ -2853,7 +2853,10 @@ public class MapleMap {
|
||||
|
||||
reactor.setShouldCollect(false);
|
||||
MapleMap.this.broadcastMessage(MaplePacketCreator.removeItemFromMap(mapitem.getObjectId(), 0, 0), mapitem.getPosition());
|
||||
|
||||
droppedItemCount.decrementAndGet();
|
||||
MapleMap.this.removeMapObject(mapitem);
|
||||
|
||||
reactor.hitReactor(c);
|
||||
|
||||
if (reactor.getDelay() > 0) {
|
||||
@@ -3164,6 +3167,7 @@ public class MapleMap {
|
||||
public void clearDrops(MapleCharacter player) {
|
||||
List<MapleMapObject> items = player.getMap().getMapObjectsInRange(player.getPosition(), Double.POSITIVE_INFINITY, Arrays.asList(MapleMapObjectType.ITEM));
|
||||
for (MapleMapObject i : items) {
|
||||
droppedItemCount.decrementAndGet();
|
||||
player.getMap().removeMapObject(i);
|
||||
player.getMap().broadcastMessage(MaplePacketCreator.removeItemFromMap(i.getObjectId(), 0, player.getId()));
|
||||
}
|
||||
@@ -3171,6 +3175,7 @@ public class MapleMap {
|
||||
|
||||
public void clearDrops() {
|
||||
for (MapleMapObject i : getMapObjectsInRange(new Point(0, 0), Double.POSITIVE_INFINITY, Arrays.asList(MapleMapObjectType.ITEM))) {
|
||||
droppedItemCount.decrementAndGet();
|
||||
removeMapObject(i);
|
||||
this.broadcastMessage(MaplePacketCreator.removeItemFromMap(i.getObjectId(), 0, 0));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user