public void onSkillUseEvent(OnCreatureSkillUse event) { if ((_chance == 0) || ((_skill.getSkillId() == 0) || (_skill.getSkillLvl() == 0) || ((_castSkillId == 0) && (_skill.getSkillId() != AQUAMARINE)))) { return; } if ((_castSkillId != event.getSkill().getId()) && (_skill.getSkillId() != AQUAMARINE)) { return; } final ITargetTypeHandler targetHandler = TargetHandler.getInstance().getHandler(_targetType); if (targetHandler == null) { _log.warning("Handler for target type: " + _targetType + " does not exist."); return; } if (Rnd.get(100) > _chance) { return; } final Skill triggerSkill = _skill.getSkill(); final L2Object[] targets = targetHandler.getTargetList(triggerSkill, event.getCaster(), false, event.getTarget()); for (L2Object triggerTarget : targets) { if ((triggerTarget == null) || !triggerTarget.isCharacter()) { continue; } final L2Character targetChar = (L2Character) triggerTarget; if (!targetChar.isInvul()) { event.getCaster().makeTriggerCast(triggerSkill, targetChar); } } }