How would i go ahead adding a 1/50 chance for a rare drop?
Handled
Code:
public static void searchChest2(final Player p, Item item, final Player player) {
final int itemId = item.getId();
final ItemDefinitions itemDef = new ItemDefinitions(item.getId());
WorldTasksManager.schedule(new WorldTask() {
public void run() {
try {
if (!p.getInventory().containsItem(itemId, 1)) {
stop();
return;
}
p.getPackets()
.sendGameMessage(
"You unlock the chest with your key.");
p.setNextAnimation(new Animation(881)); //Opening anim
p.getInventory().deleteItem(new Item(itemId, 1));
p.getInventory().addItem(995, Utils.random(3000000)); //Random amount of coins (MAX 5M)
p.sm("Message: You receive a random item from the Crystal chest!");
int index = Utils.random(CHEST_REWARDS.length);
p.getInventory().addItem(CHEST_REWARDS[index], 1); //Adds a random chest reward
for (int i = 0; i < RARE_REWARDS.length; i++) {
int item = RARE_REWARDS[i];
if (CHEST_REWARDS[index] == RARE_REWARDS[i]) {
for (Player p : World.getPlayers()) {
World.sendWorldMessage("<img=6><col=B80000>News: "+player.getDisplayName()+" has just received a "+ItemDefinitions.getItemDefinitions(item).getName()+" from the Crystal Chest!", false);
player.sm("<col=05AA8B>Message: You receive a rare item ("+ItemDefinitions.getItemDefinitions(item).getName()+") from the Crystal Chest!");
}
}
}
p.getInventory().refresh();
p.resetWalkSteps();
p.lock(2);
} catch (Throwable e) {
Logger.handle(e);
}
}
}, 0, 3);
}
}