Lineage Justice

Spells & Skills

Lookup and validate skills and spells.

Resurrection
MP: 50 HP: 0 Item: None Amount: N/A Duration: 0 Skill Type: Restore
Delay: 10 Cast Invis: Yes Ignores CM: Yes Element: None Range: 20 Area: N/A
Dmg Value: 0.0 Dmg Dice: 0 Dice Count: 0 Prob Value: 0 Prob Dice: 0 Prob Max: N/A
L1Skill Execution:

if (_skillId == RESURRECTION
	|| _skillId == GREATER_RESURRECTION) {
if (cha instanceof L1PcInstance) {
	L1PcInstance pc = (L1PcInstance) cha;
	if (_player.getId() != pc.getId()) {
		if (L1World.getInstance().getVisiblePlayer(pc, 0)
				.size() > 0) {
			for (L1PcInstance visiblePc : L1World
					.getInstance().getVisiblePlayer(pc, 0)) {
				if (!visiblePc.isDead()) {
					_player.sendPackets(new S_ServerMessage(
							592)); 
					return;
				}
			}
		}
		if (pc.getCurrentHp() == 0 && pc.isDead()) {
			if (pc.getMap().isUseResurrection()) {
				if (_skillId == RESURRECTION) {
					pc.setGres(false);
				} else if (_skillId == GREATER_RESURRECTION) {
					pc.setGres(true);
				}
				pc.setTempID(_player.getId());
				pc.sendPackets(new S_MessageYN(322, ""));
			}
		}
	}
}
if (cha instanceof L1NpcInstance) {
	if (!(cha instanceof L1TowerInstance)) {
		L1NpcInstance npc = (L1NpcInstance) cha;
		if (npc.getNpcTemplate().isCantResurrect()
				&& !(npc instanceof L1PetInstance)) {
			return;
		}
		if (npc instanceof L1PetInstance
				&& L1World.getInstance()
						.getVisiblePlayer(npc, 0).size() > 0) {
			for (L1PcInstance visiblePc : L1World
					.getInstance().getVisiblePlayer(npc, 0)) {
				if (!visiblePc.isDead()) {
					_player.sendPackets(new S_ServerMessage(
							592));
					return;
				}
			}
		}
		if (npc.getCurrentHp() == 0 && npc.isDead()) {
			if (_skillId == GREATER_RESURRECTION) {
				npc.resurrect(npc.getMaxHp());
			} else {
				npc.resurrect(npc.getMaxHp() / 4);
			}
			npc.startHpRegeneration();
			npc.startMpRegeneration();
			npc.setResurrect(true);
		}
	}
}
}