Sync with L2jServer HighFive Aug 29th 2015.
This commit is contained in:
@ -104,10 +104,5 @@ public final class MagicalAttack extends AbstractEffect
|
||||
activeChar.sendDamageMessage(target, damage, mcrit, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
if (info.getSkill().isSuicideAttack())
|
||||
{
|
||||
activeChar.doDie(activeChar);
|
||||
}
|
||||
}
|
||||
}
|
@ -20,6 +20,7 @@ package handlers.effecthandlers;
|
||||
|
||||
import com.l2jserver.gameserver.enums.EffectCalculationType;
|
||||
import com.l2jserver.gameserver.model.StatsSet;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.stat.CharStat;
|
||||
import com.l2jserver.gameserver.model.conditions.Condition;
|
||||
import com.l2jserver.gameserver.model.effects.AbstractEffect;
|
||||
@ -27,6 +28,8 @@ import com.l2jserver.gameserver.model.skills.BuffInfo;
|
||||
import com.l2jserver.gameserver.model.stats.Stats;
|
||||
import com.l2jserver.gameserver.model.stats.functions.FuncAdd;
|
||||
import com.l2jserver.gameserver.model.stats.functions.FuncMul;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
||||
|
||||
/**
|
||||
* @author Zealar
|
||||
@ -65,11 +68,13 @@ public final class MaxCp extends AbstractEffect
|
||||
@Override
|
||||
public void onStart(BuffInfo info)
|
||||
{
|
||||
final CharStat charStat = info.getEffected().getStat();
|
||||
final L2Character effected = info.getEffected();
|
||||
final CharStat charStat = effected.getStat();
|
||||
final double currentCp = effected.getCurrentCp();
|
||||
double amount = _power;
|
||||
|
||||
synchronized (charStat)
|
||||
{
|
||||
final double currentCp = info.getEffected().getCurrentCp();
|
||||
switch (_type)
|
||||
{
|
||||
case DIFF:
|
||||
@ -77,21 +82,29 @@ public final class MaxCp extends AbstractEffect
|
||||
charStat.getActiveChar().addStatFunc(new FuncAdd(Stats.MAX_CP, 1, this, _power, null));
|
||||
if (_heal)
|
||||
{
|
||||
info.getEffected().setCurrentCp((currentCp + _power));
|
||||
effected.setCurrentCp((currentCp + _power));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PER:
|
||||
{
|
||||
final double maxCp = effected.getMaxCp();
|
||||
charStat.getActiveChar().addStatFunc(new FuncMul(Stats.MAX_CP, 1, this, _power, null));
|
||||
if (_heal)
|
||||
{
|
||||
info.getEffected().setCurrentCp((currentCp * _power));
|
||||
amount = (_power - 1) * maxCp;
|
||||
effected.setCurrentCp(currentCp + amount);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (_heal)
|
||||
{
|
||||
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED);
|
||||
sm.addInt((int) amount);
|
||||
effected.sendPacket(sm);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -20,6 +20,7 @@ package handlers.effecthandlers;
|
||||
|
||||
import com.l2jserver.gameserver.enums.EffectCalculationType;
|
||||
import com.l2jserver.gameserver.model.StatsSet;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.stat.CharStat;
|
||||
import com.l2jserver.gameserver.model.conditions.Condition;
|
||||
import com.l2jserver.gameserver.model.effects.AbstractEffect;
|
||||
@ -27,6 +28,8 @@ import com.l2jserver.gameserver.model.skills.BuffInfo;
|
||||
import com.l2jserver.gameserver.model.stats.Stats;
|
||||
import com.l2jserver.gameserver.model.stats.functions.FuncAdd;
|
||||
import com.l2jserver.gameserver.model.stats.functions.FuncMul;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
||||
|
||||
/**
|
||||
* @author Zealar
|
||||
@ -65,33 +68,43 @@ public final class MaxHp extends AbstractEffect
|
||||
@Override
|
||||
public void onStart(BuffInfo info)
|
||||
{
|
||||
final CharStat charStat = info.getEffected().getStat();
|
||||
final L2Character effected = info.getEffected();
|
||||
final CharStat charStat = effected.getStat();
|
||||
final double currentHp = effected.getCurrentHp();
|
||||
double amount = _power;
|
||||
|
||||
synchronized (charStat)
|
||||
{
|
||||
final double currentHp = info.getEffected().getCurrentHp();
|
||||
switch (_type)
|
||||
{
|
||||
case DIFF:
|
||||
{
|
||||
|
||||
charStat.getActiveChar().addStatFunc(new FuncAdd(Stats.MAX_HP, 1, this, _power, null));
|
||||
if (_heal)
|
||||
{
|
||||
info.getEffected().setCurrentHp((currentHp + _power));
|
||||
effected.setCurrentHp((currentHp + _power));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PER:
|
||||
{
|
||||
final double maxHp = effected.getMaxHp();
|
||||
charStat.getActiveChar().addStatFunc(new FuncMul(Stats.MAX_HP, 1, this, _power, null));
|
||||
if (_heal)
|
||||
{
|
||||
info.getEffected().setCurrentHp((currentHp * _power));
|
||||
amount = (_power - 1) * maxHp;
|
||||
effected.setCurrentHp(currentHp + amount);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (_heal)
|
||||
{
|
||||
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_HP_HAS_BEEN_RESTORED);
|
||||
sm.addInt((int) amount);
|
||||
effected.sendPacket(sm);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -63,5 +63,6 @@ public final class SetSkill extends AbstractEffect
|
||||
}
|
||||
|
||||
info.getEffected().getActingPlayer().addSkill(skill, true);
|
||||
info.getEffected().getActingPlayer().sendSkillList();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user