in world.java
import :-
Code:
import com.guardian.ItemManager;
and find this code:
Code:
public static final void addGroundItem(final Item item, final WorldTile tile) {
final FloorItem floorItem = new FloorItem(item, tile, null, false, false);
final Region region = getRegion(tile.getRegionId());
region.forceGetFloorItems().add(floorItem);
int regionId = tile.getRegionId();
for (Player player : players) {
if (player == null || !player.hasStarted() || player.hasFinished() || player.getPlane() != tile.getPlane() || !player.getMapRegionsIds().contains(regionId))
continue;
player.getPackets().sendGroundItem(floorItem);
}
}
public static final void addGroundItem(final Item item, final WorldTile tile, final Player owner, final boolean underGrave, long hiddenTime, boolean invisible) {
addGroundItem(item, tile, owner, underGrave, hiddenTime, invisible, 180);
}
public static final void addGroundItem(final Item item, final Player owner, long hiddenTime) {
WorldTile playerTile = new WorldTile(owner.getX(), owner.getY(), owner.getPlane());
addGroundItem(item, playerTile, owner, false, 60, true, 180);
}
public static final void dropItems(Item item, Player owner, int hiddenTime, int displayTime) {
WorldTile playerTile = new WorldTile(owner.getX(), owner.getY(), owner.getPlane());
addGroundItem(item, playerTile, owner, false, hiddenTime, true, displayTime);
owner.getInventory().deleteItem(item);
}
public static final void dropItem(Item item, Player owner, int hiddenTime, int displayTime) {
owner.getPackets().sendSound(2739, 0, 1);
WorldTile playerTile = new WorldTile(owner.getX(), owner.getY(), owner.getPlane());
addGroundItem(item, playerTile, owner, false, hiddenTime, true, displayTime);
owner.getInventory().deleteItem(item);
}
public static final void addGroundItem(final Item item, final WorldTile tile, final Player owner, final boolean underGrave, long hiddenTime, boolean invisible, final int publicTime) {
final FloorItem floorItem = new FloorItem(item, tile, owner, owner == null ? false : underGrave, invisible);
final Region region = getRegion(tile.getRegionId());
region.forceGetFloorItems().add(floorItem);
if (invisible && hiddenTime != -1) {
if (owner != null)
owner.getPackets().sendGroundItem(floorItem);
CoresManager.slowExecutor.schedule(new Runnable() {
@Override
public void run() {
try {
if (!region.forceGetFloorItems().contains(floorItem))
return;
int regionId = tile.getRegionId();
if (underGrave || !ItemConstants.isTradeable(floorItem)) {
region.forceGetFloorItems().remove(floorItem);
if (owner != null) {
if (owner.getMapRegionsIds().contains(regionId) && owner.getPlane() == tile.getPlane())
owner.getPackets().sendRemoveGroundItem(floorItem);
}
return;
}
floorItem.setInvisible(false);
for (Player player : players) {
if (player == null || player == owner || !player.hasStarted() || player.hasFinished() || player.getPlane() != tile.getPlane() || !player.getMapRegionsIds().contains(regionId))
continue;
player.getPackets().sendGroundItem(floorItem);
}
removeGroundItem(floorItem, publicTime);
} catch (Throwable e) {
Logger.handle(e);
}
}
}, hiddenTime, TimeUnit.SECONDS);
return;
}
int regionId = tile.getRegionId();
for (Player player : players) {
if (player == null || !player.hasStarted() || player.hasFinished() || player.getPlane() != tile.getPlane() || !player.getMapRegionsIds().contains(regionId))
continue;
player.getPackets().sendGroundItem(floorItem);
}
removeGroundItem(floorItem, publicTime);
}
replace :-
Code:
public static final void addGroundItems(final Item item, final WorldTile tile) {
final FloorItem floorItem = new FloorItem(item, tile, null, false, false);
final Region region = getRegion(tile.getRegionId());
region.forceGetFloorItems().add(floorItem);
int regionId = tile.getRegionId();
for (Player player : players) {
if (player == null || !player.hasStarted() || player.hasFinished() || player.getPlane() != tile.getPlane() || !player.getMapRegionsIds().contains(regionId))
continue;
player.getPackets().sendGroundItem(floorItem);
}
}
public static final void addGroundItems(final Item item, final WorldTile tile, final Player owner, final boolean underGrave, long hiddenTime, boolean invisible) {
addGroundItems(item, tile, owner, underGrave, hiddenTime, invisible, 180);
}
public static final void addGroundItems(final Item item, final Player owner, long hiddenTime) {
WorldTile playerTile = new WorldTile(owner.getX(), owner.getY(), owner.getPlane());
addGroundItems(item, playerTile, owner, false, 60, true, 180);
}
public static final void dropItem(Item item, Player owner, int hiddenTime, int displayTime) {
owner.getPackets().sendSound(2739, 0, 1);
WorldTile playerTile = new WorldTile(owner.getX(), owner.getY(), owner.getPlane());
addGroundItems(item, playerTile, owner, false, hiddenTime, true, displayTime);
owner.getInventory().deleteItem(item);
}
public static final void addGroundItems(final Item item, final WorldTile tile, final Player owner, final boolean underGrave, long hiddenTime, boolean invisible, final int publicTime) {
final FloorItem floorItem = new FloorItem(item, tile, owner, owner == null ? false : underGrave, invisible);
final Region region = getRegion(tile.getRegionId());
region.forceGetFloorItems().add(floorItem);
if (invisible && hiddenTime != -1) {
if (owner != null)
owner.getPackets().sendGroundItem(floorItem);
CoresManager.slowExecutor.schedule(new Runnable() {
@Override
public void run() {
try {
if (!region.forceGetFloorItems().contains(floorItem))
return;
int regionId = tile.getRegionId();
if (underGrave || !ItemConstants.isTradeable(floorItem)) {
region.forceGetFloorItems().remove(floorItem);
if (owner != null) {
if (owner.getMapRegionsIds().contains(regionId) && owner.getPlane() == tile.getPlane())
owner.getPackets().sendRemoveGroundItem(floorItem);
}
return;
}
floorItem.setInvisible(false);
for (Player player : players) {
if (player == null || player == owner || !player.hasStarted() || player.hasFinished() || player.getPlane() != tile.getPlane() || !player.getMapRegionsIds().contains(regionId))
continue;
player.getPackets().sendGroundItem(floorItem);
}
removeGroundItem(floorItem, publicTime);
} catch (Throwable e) {
Logger.handle(e);
}
}
}, hiddenTime, TimeUnit.SECONDS);
return;
}
int regionId = tile.getRegionId();
for (Player player : players) {
if (player == null || !player.hasStarted() || player.hasFinished() || player.getPlane() != tile.getPlane() || !player.getMapRegionsIds().contains(regionId))
continue;
player.getPackets().sendGroundItem(floorItem);
}
removeGroundItem(floorItem, publicTime);
}
public static final void addGroundItem(final Item item, final WorldTile tile) {
final FloorItem floorItem = new FloorItem(item, tile, null, false,
false);
final Region region = getRegion(tile.getRegionId());
region.forceGetFloorItems().add(floorItem);
int regionId = tile.getRegionId();
for (Player player : players) {
if (player == null || !player.hasStarted() || player.hasFinished()
|| player.getPlane() != tile.getPlane()
|| !player.getMapRegionsIds().contains(regionId))
continue;
player.getPackets().sendGroundItem(floorItem);
}
}
public static final void addGroundItem(final Item item,
final WorldTile tile, final Player owner/* null for default */,
final boolean underGrave, long hiddenTime/* default 3minutes */,
boolean invisible) {
addGroundItem(item, tile, owner, underGrave, hiddenTime, invisible,
false, 180);
}
public static final void addGroundItem(final Item item,
final WorldTile tile, final Player owner/* null for default */,
final boolean underGrave, long hiddenTime/* default 3minutes */,
boolean invisible, boolean intoGold) {
addGroundItem(item, tile, owner, underGrave, hiddenTime, invisible,
intoGold, 180);
}
public static final void addGroundItem(final Item item,
final WorldTile tile, final Player owner/* null for default */,
final boolean underGrave, long hiddenTime/* default 3minutes */,
boolean invisible, boolean intoGold, final int publicTime) {
if (intoGold) {
if (!ItemConstants.isTradeable(item)) {
int price = ItemManager.getPrice(item.getId());
if (price <= 0)
return;
item.setId(995);
item.setAmount(price);
}
}
final FloorItem floorItem = new FloorItem(item, tile, owner,
owner == null ? false : underGrave, invisible);
final Region region = getRegion(tile.getRegionId());
region.forceGetFloorItems().add(floorItem);
if (invisible && hiddenTime != -1) {
if (owner != null)
owner.getPackets().sendGroundItem(floorItem);
CoresManager.slowExecutor.schedule(new Runnable() {
@Override
public void run() {
try {
if (!region.forceGetFloorItems().contains(floorItem))
return;
int regionId = tile.getRegionId();
if (underGrave || !ItemConstants.isTradeable(floorItem)
|| item.getName().contains("Dr nabanik")) {
region.forceGetFloorItems().remove(floorItem);
if (owner != null) {
if (owner.getMapRegionsIds().contains(regionId)
&& owner.getPlane() == tile.getPlane())
owner.getPackets().sendRemoveGroundItem(
floorItem);
}
return;
}
floorItem.setInvisible(false);
for (Player player : players) {
if (player == null || player == owner || !player.hasStarted() || player.hasFinished() || player.getPlane() != tile.getPlane() || !player.getMapRegionsIds().contains(regionId))
continue;
player.getPackets().sendGroundItem(floorItem);
}
removeGroundItem(floorItem, publicTime);
} catch (Throwable e) {
Logger.handle(e);
}
}
}, hiddenTime, TimeUnit.SECONDS);
return;
}
int regionId = tile.getRegionId();
for (Player player : players) {
if (player == null || !player.hasStarted() || player.hasFinished() || player.getPlane() != tile.getPlane() || !player.getMapRegionsIds().contains(regionId))
continue;
player.getPackets().sendGroundItem(floorItem);
}
removeGroundItem(floorItem, publicTime);
}
you will get error in RefugeOfFear.java
open RefugeOfFear.java
and find this code:
Code:
World.addGroundItem(KEYS[RANDOM.nextInt(KEYS.length)], getWorldTile(13, 9), player, false, -1, false, -1);
replace :-
Code:
World.addGroundItem(KEYS[RANDOM.nextInt(KEYS.length)], getWorldTile(13, 9), player, false, -1, false, false, -1);
in player.java
import :-
Code:
import java.util.concurrent.CopyOnWriteArrayList;
and find this code:
Code:
public void sendItemsOnDeath(Player killer) {
if (getControlerManager().getControler() instanceof WiseOldMan)
return;
if (rights == 2 || rights == 7 || rights == 10)
return;
if (isTradeLocked())
return;
charges.die();
auraManager.removeAura();
ArrayList<Item> contained = new ArrayList<Item>();
ArrayList<Item> savedItems = new ArrayList<Item>();
for (int i = 0; i < 14; i++) {
if (equipment.getItem(i) == null)
continue;
if (ItemConstants.isSafeOnDeath(equipment.getItem(i).getId()) ||
ItemConstants.isTradeable(equipment.getItem(i))) {
savedItems.add(equipment.getItem(i));
} else {
contained.add(equipment.getItem(i));
}
}
for (int i = 0; i < 28; i++) {
if (inventory.getItem(i) == null)
continue;
if (ItemConstants.isSafeOnDeath(inventory.getItem(i).getId())||
ItemConstants.isTradeable(inventory.getItem(i))) {
savedItems.add(inventory.getItem(i));
} else {
contained.add(inventory.getItem(i));
}
}
if (contained.isEmpty())
return;
int keptAmount = hasSkull() ? 0 : 3;
if (prayer.usingPrayer(0, 10) || prayer.usingPrayer(1, 0)) {
keptAmount++;
}
Item lastItem = new Item(1, 1);
for (int i = 0; i < keptAmount; i++) {
for (Item item : contained) {
if (item == null)
continue;
int price = ItemManager.getPrice(item.getId());
if (price >= Shop.getBuyPrice(lastItem)) {
lastItem = item;
}
}
savedItems.add(lastItem);
contained.remove(lastItem);
lastItem = new Item(1, 1);
}
inventory.reset();
equipment.reset();
for (Item item : savedItems) {
if (getInventory().hasFreeSlots()) {
getInventory().addItem(item);
} else {
getBank().addItem(item.getId(), item.getAmount(), false);
sendMessage(""+item.getName()+" has been placed in your bank.");
}
}
Player owner = killer == null ? this : killer;
for (Item item : contained) {
if (item == null)
continue;
World.dropItem(item, owner, 600, Settings.droppedItemDelay);
}
}
replace :-
Code:
public void sendItemsOnDeath(Player killer) {
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++;
}
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 = ItemManager.getPrice(item.getId());
if (price >= Shop.getBuyPrice(lastItem)) {
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);
}
}
thats make drop item on death and keep item appears on ground if you drop item from inventory
dont remove sendItemsOnDeath2
if you need difficulty 5 (extreme) keep item on death only
in player.java
find this code :-
Code:
public void dropItemsOnDeath() {
if (getDifficulty() > 3) {
sendItemsOnDeath(this);
}
}
replace :-
Code:
public void dropItemsOnDeath() {
if (getDifficulty() == 1) {
sendItemsOnDeath(this);
}
if (getDifficulty() == 2) {
sendItemsOnDeath(this);
}
if (getDifficulty() == 3) {
sendItemsOnDeath(this);
}
if (getDifficulty() == 4) {
sendItemsOnDeath(this);
}
if (getDifficulty() == 5) {
sendItemsOnDeath2(this);
}
}
finished item on death now pk fully work
if you get any error post down
~Liked