Index: C:/Documents and Settings/Administrateur/workspace/L2J-EnCours/java/net/sf/l2j/gameserver/model/L2Character.java =================================================================== --- C:/Documents and Settings/Administrateur/workspace/L2J-EnCours/java/net/sf/l2j/gameserver/model/L2Character.java (revision 1208) +++ C:/Documents and Settings/Administrateur/workspace/L2J-EnCours/java/net/sf/l2j/gameserver/model/L2Character.java (working copy) @@ -1413,13 +1428,6 @@ // Stop HP/MP/CP Regeneration task getStatus().stopHpMpRegeneration(); - // Stop all active skills effects in progress on the L2Character, - // if the Character isn't a Noblesse Blessed L2PlayableInstance - if (this instanceof L2PlayableInstance && ((L2PlayableInstance)this).isNoblesseBlessed()) - ((L2PlayableInstance)this).stopNoblesseBlessing(null); - else - stopAllEffects(); - // Send the Server->Client packet StatusUpdate with current HP and MP to all other L2PcInstance to inform broadcastStatusUpdate(); @@ -1439,8 +1447,17 @@ } /** Sets HP, MP and CP and revives the L2Character. */ - public void doRevive() - { + public void doRevive() { + doRevive(false); + } + public void doRevive(boolean KeepBuff) { + // Stop all active skills effects in progress on the L2Character, + // if the Character isn't a Noblesse Blessed L2PlayableInstance + if (this instanceof L2PlayableInstance && ((L2PlayableInstance)this).isNoblesseBlessed()) + ((L2PlayableInstance)this).stopNoblesseBlessing(null); + else if(!KeepBuff) + stopAllEffects(); + if (!isTeleporting()) { setIsPendingRevive(false); @@ -1459,6 +1476,7 @@ /** Revives the L2Character using skill. */ public void doRevive(double revivePower) { doRevive(); } + public void doRevive(double revivePower, boolean KeepBuff) { doRevive(KeepBuff); } /** * Check if the active L2Skill can be casted.

Index: C:/Documents and Settings/Administrateur/workspace/L2J-EnCours/java/net/sf/l2j/gameserver/handler/skillhandlers/Resurrect.java =================================================================== --- C:/Documents and Settings/Administrateur/workspace/L2J-EnCours/java/net/sf/l2j/gameserver/handler/skillhandlers/Resurrect.java (revision 1208) +++ C:/Documents and Settings/Administrateur/workspace/L2J-EnCours/java/net/sf/l2j/gameserver/handler/skillhandlers/Resurrect.java (working copy) @@ -75,6 +75,8 @@ activeChar.sendPacket(SystemMessage.sendString("No valid target to resurrect")); } + boolean keepbuff = skill.getId() == 1410; + for (L2Character cha: targetToRes) if (activeChar instanceof L2PcInstance) { @@ -83,13 +85,13 @@ else if (cha instanceof L2PetInstance) { if (((L2PetInstance)cha).getOwner() == activeChar) - cha.doRevive(Formulas.getInstance().calculateSkillResurrectRestorePercent(skill.getPower(), activeChar.getWIT())); + cha.doRevive(Formulas.getInstance().calculateSkillResurrectRestorePercent(skill.getPower(), activeChar.getWIT()), keepbuff); else ((L2PetInstance)cha).getOwner().reviveRequest((L2PcInstance)activeChar,skill,true); } - else cha.doRevive(Formulas.getInstance().calculateSkillResurrectRestorePercent(skill.getPower(), activeChar.getWIT())); + else cha.doRevive(Formulas.getInstance().calculateSkillResurrectRestorePercent(skill.getPower(), activeChar.getWIT()), keepbuff); } - else cha.doRevive(Formulas.getInstance().calculateSkillResurrectRestorePercent(skill.getPower(), activeChar.getWIT())); + else cha.doRevive(Formulas.getInstance().calculateSkillResurrectRestorePercent(skill.getPower(), activeChar.getWIT()), keepbuff); }