Fixed Plunder effect.
This commit is contained in:
@ -100,6 +100,7 @@ public class L2Attackable extends L2Npc
|
||||
private final AtomicReference<ItemHolder> _harvestItem = new AtomicReference<>();
|
||||
// Spoil
|
||||
private int _spoilerObjectId;
|
||||
private boolean _plundered = false;
|
||||
private final AtomicReference<Collection<ItemHolder>> _sweepItems = new AtomicReference<>();
|
||||
// Over-hit
|
||||
private boolean _overhit;
|
||||
@ -1028,7 +1029,7 @@ public class L2Attackable extends L2Npc
|
||||
|
||||
npcTemplate.getExtendDrop().stream().map(ExtendDropData.getInstance()::getExtendDropById).filter(Objects::nonNull).forEach(e -> e.reward(player, this));
|
||||
|
||||
if (isSpoiled())
|
||||
if (isSpoiled() && !_plundered)
|
||||
{
|
||||
_sweepItems.set(npcTemplate.calculateDrops(DropType.SPOIL, this, player));
|
||||
}
|
||||
@ -1484,6 +1485,7 @@ public class L2Attackable extends L2Npc
|
||||
// Clear Harvester reward
|
||||
_harvestItem.set(null);
|
||||
_sweepItems.set(null);
|
||||
_plundered = false;
|
||||
|
||||
// fake players
|
||||
if (isFakePlayer())
|
||||
@ -1566,6 +1568,17 @@ public class L2Attackable extends L2Npc
|
||||
_spoilerObjectId = spoilerObjectId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets state of the mob to plundered.
|
||||
* @param player
|
||||
*/
|
||||
public void setPlundered(L2PcInstance player)
|
||||
{
|
||||
_plundered = true;
|
||||
_spoilerObjectId = player.getObjectId();
|
||||
_sweepItems.set(getTemplate().calculateDrops(DropType.SPOIL, this, player));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets state of the mob to seeded. Parameters needed to be set before.
|
||||
* @param seeder
|
||||
|
Reference in New Issue
Block a user