{
if (caster.isAlikeDead())
return;
L2NpcTemplate template = NpcTable.getInstance().getTemplate(_effectNpcId);
L2EffectPointInstance effectPoint = new L2EffectPointInstance(IdFactory.getInstance().getNextId(), template, caster);
effectPoint.getStatus().setCurrentHp(effectPoint.getMaxHp());
effectPoint.getStatus().setCurrentMp(effectPoint.getMaxMp());
L2World.getInstance().storeObject(effectPoint);
int x = caster.getX();
int y = caster.getY();
int z = caster.getZ();
if (caster instanceof L2PcInstance && getTargetType() == L2Skill.SkillTargetType.TARGET_GROUND)
{
Point3D wordPosition = ((L2PcInstance) caster).getCurrentSkillWorldPosition();
if (wordPosition != null)
{
x = wordPosition.getX();
y = wordPosition.getY();
z = wordPosition.getZ();
}
}
getEffects(caster, effectPoint, false, false, false);
effectPoint.setIsInvul(true);
effectPoint.spawnMe(x, y, z);
}