
Originally Posted by
Tyler Hurst
There's a method in the player class called "sendItemsOnDeath"
Now, I'm no expert, but that may do something related to what you're asking for.
Indeed there is: I have:
Code:
public void sendItemsOnDeath(Player killer) {
if (rights == 2)
return;
if (rights == 7)
return;
charges.die();
auraManager.removeAura();
CopyOnWriteArrayList<Item> containedItems = new CopyOnWriteArrayList<Item>();
for (int i = 0; i < 14; i++) {
if (equipment.getItem(i) != null
&& equipment.getItem(i).getId() != -1
&& equipment.getItem(i).getAmount() != -1)
containedItems.add(new Item(equipment.getItem(i).getId(),
equipment.getItem(i).getAmount()));
}
for (int i = 0; i < 28; i++) {
if (inventory.getItem(i) != null
&& inventory.getItem(i).getId() != -1
&& inventory.getItem(i).getAmount() != -1)
containedItems.add(new Item(getInventory().getItem(i).getId(),
getInventory().getItem(i).getAmount()));
}
if (containedItems.isEmpty())
return;
int keptAmount = 0;
if(!(controlerManager.getControler() instanceof CorpBeastControler)
&& !(controlerManager.getControler() instanceof CrucibleControler)) {
keptAmount = hasSkull() ? 0 : 3;
if (prayer.usingPrayer(0, 10) || prayer.usingPrayer(1, 0))
keptAmount++;
}
if (donator && Utils.random(2) == 0)
keptAmount += 1;
CopyOnWriteArrayList<Item> keptItems = new CopyOnWriteArrayList<Item>();
Item lastItem = new Item(1, 1);
for (int i = 0; i < keptAmount; i++) {
for (Item item : containedItems) {
int price = getprotectPrice(item);
if (price >= lastItem.getDefinitions().getValue()) {
lastItem = item;
}
}
keptItems.add(lastItem);
containedItems.remove(lastItem);
lastItem = new Item(1, 1);
}
inventory.reset();
equipment.reset();
for (Item item : keptItems) {
getInventory().addItem(item);
}
for (Item item : containedItems) {
World.addGroundItem(item, getLastWorldTile(), killer == null ? this : killer, false, 180,
true, true);
}
}