HpCpHeal effect should also use additional potion CP stat.
Thanks to petryxa.
This commit is contained in:
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -58,8 +58,7 @@ public enum CommonSkill
|
|||||||
ALCHEMY_CUBE(17943, 1),
|
ALCHEMY_CUBE(17943, 1),
|
||||||
ALCHEMY_CUBE_RANDOM_SUCCESS(17966, 1),
|
ALCHEMY_CUBE_RANDOM_SUCCESS(17966, 1),
|
||||||
PET_SWITCH_STANCE(6054, 1),
|
PET_SWITCH_STANCE(6054, 1),
|
||||||
WEIGHT_PENALTY(4270, 1),
|
WEIGHT_PENALTY(4270, 1);
|
||||||
POTION_MASTERY(45184, 1);
|
|
||||||
|
|
||||||
private final SkillHolder _holder;
|
private final SkillHolder _holder;
|
||||||
|
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -123,9 +123,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
|
|
||||||
// Classic Potion Mastery
|
// Classic Potion Mastery
|
||||||
// TODO: Create an effect if more mastery skills are added.
|
// TODO: Create an effect if more mastery skills are added.
|
||||||
@@ -142,10 +147,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -159,28 +161,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevents overheal and negative amount
|
// Prevents overheal and negative amount
|
||||||
@@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -123,9 +123,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
|
|
||||||
// Classic Potion Mastery
|
// Classic Potion Mastery
|
||||||
// TODO: Create an effect if more mastery skills are added.
|
// TODO: Create an effect if more mastery skills are added.
|
||||||
@@ -142,10 +147,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -159,28 +161,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -123,9 +123,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
|
|
||||||
// Classic Potion Mastery
|
// Classic Potion Mastery
|
||||||
// TODO: Create an effect if more mastery skills are added.
|
// TODO: Create an effect if more mastery skills are added.
|
||||||
@@ -142,10 +147,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -159,28 +161,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -123,9 +123,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
|
|
||||||
// Classic Potion Mastery
|
// Classic Potion Mastery
|
||||||
// TODO: Create an effect if more mastery skills are added.
|
// TODO: Create an effect if more mastery skills are added.
|
||||||
@@ -142,10 +147,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -159,28 +161,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -35,7 +35,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* HpCpHeal effect implementation.
|
* HpCpHeal effect implementation.
|
||||||
* @author Sdw
|
* @author Sdw, Mobius
|
||||||
*/
|
*/
|
||||||
public class HpCpHeal extends AbstractEffect
|
public class HpCpHeal extends AbstractEffect
|
||||||
{
|
{
|
||||||
@@ -123,9 +123,14 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
|
|
||||||
// Additional potion HP.
|
// Additional potion HP.
|
||||||
double additionalHp = 0;
|
double additionalHp = 0;
|
||||||
|
|
||||||
|
// Additional potion CP.
|
||||||
|
double additionalCp = 0;
|
||||||
|
|
||||||
if ((item != null) && (item.isPotion() || item.isElixir()))
|
if ((item != null) && (item.isPotion() || item.isElixir()))
|
||||||
{
|
{
|
||||||
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0);
|
||||||
|
additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0);
|
||||||
|
|
||||||
// Classic Potion Mastery
|
// Classic Potion Mastery
|
||||||
// TODO: Create an effect if more mastery skills are added.
|
// TODO: Create an effect if more mastery skills are added.
|
||||||
@@ -142,10 +147,7 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0);
|
||||||
}
|
}
|
||||||
effected.setCurrentHp(newHp + additionalHp, false);
|
effected.setCurrentHp(newHp + additionalHp, false);
|
||||||
}
|
|
||||||
|
|
||||||
if (effected.isPlayer())
|
|
||||||
{
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector.isPlayer() && (effector != effected))
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
@@ -159,28 +161,37 @@ public class HpCpHeal extends AbstractEffect
|
|||||||
sm.addInt((int) (healAmount + additionalHp));
|
sm.addInt((int) (healAmount + additionalHp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// CP recovery.
|
||||||
|
if (effected.isPlayer())
|
||||||
|
{
|
||||||
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0);
|
||||||
if (amount != 0)
|
if (amount != 0)
|
||||||
{
|
{
|
||||||
final double newCp = amount + effected.getCurrentCp();
|
final double newCp = amount + effected.getCurrentCp();
|
||||||
effected.setCurrentCp(newCp, false);
|
if ((newCp + additionalCp) > effected.getMaxRecoverableCp())
|
||||||
}
|
{
|
||||||
|
additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0);
|
||||||
|
}
|
||||||
|
effected.setCurrentCp(newCp + additionalCp, false);
|
||||||
|
|
||||||
if (effector.isPlayer() && (effector != effected))
|
if (effector != effected)
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1);
|
||||||
sm.addString(effector.getName());
|
sm.addString(effector.getName());
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP);
|
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP);
|
||||||
sm.addInt((int) amount);
|
sm.addInt((int) (amount + additionalCp));
|
||||||
effected.sendPacket(sm);
|
effected.sendPacket(sm);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
effected.broadcastStatusUpdate(effector);
|
effected.broadcastStatusUpdate(effector);
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user