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 targetToRes = new FastList(); 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;