activeChar.sendPacket(new SystemMessage(SystemMessageId.FAILED_TO_UNLOCK_DOOR));
}
}
else if (target instanceof L2ChestInstance)
{
L2ChestInstance chest = (L2ChestInstance) targetList[index];
if (chest.getCurrentHp() <= 0 || chest.isInteracted())
{
activeChar.sendPacket(new ActionFailed());
return;
}
int chestChance = 0;
int chestGroup = 0;
int chestTrapLimit = 0;
if (chest.getLevel() > 60) chestGroup = 4;
else if (chest.getLevel() > 40) chestGroup = 3;
else if (chest.getLevel() > 30) chestGroup = 2;
else chestGroup = 1;
switch (chestGroup)
{
case 1:
{
if (skill.getLevel() > 10) chestChance = 100;
else if (skill.getLevel() >= 3) chestChance = 50;
else if (skill.getLevel() == 2) chestChance = 45;
else if (skill.getLevel() == 1) chestChance = 40;
chestTrapLimit = 10;
}
break;
case 2:
{
if (skill.getLevel() > 12) chestChance = 100;
else if (skill.getLevel() >= 7) chestChance = 50;
else if (skill.getLevel() == 6) chestChance = 45;
else if (skill.getLevel() == 5) chestChance = 40;
else if (skill.getLevel() == 4) chestChance = 35;
else if (skill.getLevel() == 3) chestChance = 30;
chestTrapLimit = 30;
}
break;
case 3:
{
if (skill.getLevel() >= 14) chestChance = 50;
else if (skill.getLevel() == 13) chestChance = 45;
else if (skill.getLevel() == 12) chestChance = 40;
else if (skill.getLevel() == 11) chestChance = 35;
else if (skill.getLevel() == 10) chestChance = 30;
else if (skill.getLevel() == 9) chestChance = 25;
else if (skill.getLevel() == 8) chestChance = 20;
else if (skill.getLevel() == 7) chestChance = 15;
else if (skill.getLevel() == 6) chestChance = 10;
chestTrapLimit = 50;
}
break;
case 4:
{
if (skill.getLevel() >= 14) chestChance = 50;
else if (skill.getLevel() == 13) chestChance = 45;
else if (skill.getLevel() == 12) chestChance = 40;
else if (skill.getLevel() == 11) chestChance = 35;
chestTrapLimit = 80;
}
break;
}
if (Rnd.get(100) <= chestChance)
{
activeChar.broadcastPacket(new SocialAction(activeChar.getObjectId(),3));
chest.setSpecialDrop();
chest.setMustRewardExpSp(false);
chest.setInteracted();
chest.reduceCurrentHp(99999999, activeChar);
}
else
{
activeChar.broadcastPacket(new SocialAction(activeChar.getObjectId(),13));
if (Rnd.get(100) < chestTrapLimit) chest.chestTrap(activeChar);
chest.setInteracted();
chest.addDamageHate(activeChar,0,1);
chest.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, activeChar);
}
}
}
}