Index: C:/Documents and Settings/user/Desktop/L2 Server Files/Workspace/L2_GameServerC4/java/net/sf/l2j/gameserver/handler/skillhandlers/Resurrect.java
===================================================================
--- C:/Documents and Settings/user/Desktop/L2 Server Files/Workspace/L2_GameServerC4/java/net/sf/l2j/gameserver/handler/skillhandlers/Resurrect.java (revision 1597)
+++ C:/Documents and Settings/user/Desktop/L2 Server Files/Workspace/L2_GameServerC4/java/net/sf/l2j/gameserver/handler/skillhandlers/Resurrect.java (working copy)
@@ -28,7 +28,7 @@
import net.sf.l2j.gameserver.model.L2Skill.SkillTargetType;
import net.sf.l2j.gameserver.model.L2Skill.SkillType;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
-import net.sf.l2j.gameserver.serverpackets.SystemMessage;
+import net.sf.l2j.gameserver.model.actor.instance.L2PetInstance;
/**
* This class ...
*
@@ -43,11 +43,14 @@
public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets)
{
+ L2Character target = null;
+
L2PcInstance player = null;
- if (activeChar instanceof L2PcInstance) player = (L2PcInstance)activeChar;
+ L2PcInstance targetPlayer;
+
+ if (activeChar instanceof L2PcInstance)
+ player = (L2PcInstance)activeChar;
- L2Character target = null;
- L2PcInstance targetPlayer;
List<L2Character> targetToRes = new FastList<L2Character>();
for (int index = 0; index < targets.length; index++)
@@ -58,38 +61,47 @@
{
targetPlayer = (L2PcInstance)target;
- // Check for same party or for same clan, if target is for clan.
+ // Check to see if target should be in same clan as the caster.
if (skill.getTargetType() == SkillTargetType.TARGET_CORPSE_CLAN)
- {
- if (player.getClanId() != targetPlayer.getClanId()) continue;
- }
+ if (player.getClanId() != targetPlayer.getClanId())
+ continue;
// Check to see if the current player target is in a festival.
if (targetPlayer.isFestivalParticipant())
{
- player.sendPacket(SystemMessage.sendString("You may not resurrect participants in a festival."));
+ player.sendMessage("You may not resurrect participants in a festival.");
continue;
}
}
+
targetToRes.add(target);
}
if (targetToRes.size() == 0)
{
- activeChar.abortCast();
- activeChar.sendPacket(SystemMessage.sendString("No valid target to resurrect"));
+ player.abortCast();
+ player.sendMessage("No valid target(s) to resurrect.");
}
- for (L2Character cha: targetToRes)
+ for (L2Character cha : targetToRes)
{
- if (target instanceof L2PcInstance)
+ if (target instanceof L2PcInstance) {
((L2PcInstance)cha).doRevive(skill);
- else
+ }
+ else if (target instanceof L2PetInstance) {
+ L2PetInstance targetPet = (L2PetInstance)target;
+
+ targetPet.stopDecay();
+ targetPet.setCurrentFed((int)(targetPet.getMaxFed() * 0.05));
+ targetPet.startFeed();
+ targetPet.setFollowStatus(true);
+ }
+ else {
cha.doRevive(skill);
+ }
}
}
-
public SkillType[] getSkillIds()
{
return _skillIds;