Fixed Spheric Barrier effect.
This commit is contained in:
		| @@ -28,7 +28,7 @@ import com.l2jmobius.gameserver.model.stats.Stats; | ||||
| public class AbstractStatAddEffect extends AbstractEffect | ||||
| { | ||||
| 	private final Stats _stat; | ||||
| 	private final double _amount; | ||||
| 	protected final double _amount; | ||||
| 	 | ||||
| 	public AbstractStatAddEffect(StatsSet params, Stats stat) | ||||
| 	{ | ||||
|   | ||||
| @@ -92,12 +92,6 @@ public final class EnergyAttack extends AbstractEffect | ||||
| 			return; | ||||
| 		} | ||||
| 		 | ||||
| 		final double distance = attacker.calculateDistance(effected, true, false); | ||||
| 		if (distance > effected.getStat().getValue(Stats.SPHERIC_BARRIER_RANGE, Integer.MAX_VALUE)) | ||||
| 		{ | ||||
| 			return; | ||||
| 		} | ||||
| 		 | ||||
| 		if (_overHit && effected.isAttackable()) | ||||
| 		{ | ||||
| 			((L2Attackable) effected).overhitEnabled(true); | ||||
|   | ||||
| @@ -17,6 +17,12 @@ | ||||
| package handlers.effecthandlers; | ||||
|  | ||||
| import com.l2jmobius.gameserver.model.StatsSet; | ||||
| import com.l2jmobius.gameserver.model.actor.L2Character; | ||||
| import com.l2jmobius.gameserver.model.events.EventType; | ||||
| import com.l2jmobius.gameserver.model.events.impl.character.OnCreatureDamageReceived; | ||||
| import com.l2jmobius.gameserver.model.events.listeners.FunctionEventListener; | ||||
| import com.l2jmobius.gameserver.model.events.returns.DamageReturn; | ||||
| import com.l2jmobius.gameserver.model.skills.Skill; | ||||
| import com.l2jmobius.gameserver.model.stats.Stats; | ||||
|  | ||||
| /** | ||||
| @@ -28,4 +34,25 @@ public class SphericBarrier extends AbstractStatAddEffect | ||||
| 	{ | ||||
| 		super(params, Stats.SPHERIC_BARRIER_RANGE); | ||||
| 	} | ||||
| 	 | ||||
| 	@Override | ||||
| 	public void onStart(L2Character effector, L2Character effected, Skill skill) | ||||
| 	{ | ||||
| 		effected.addListener(new FunctionEventListener(effected, EventType.ON_CREATURE_DAMAGE_RECEIVED, (OnCreatureDamageReceived event) -> onDamageReceivedEvent(event), this)); | ||||
| 	} | ||||
| 	 | ||||
| 	@Override | ||||
| 	public void onExit(L2Character effector, L2Character effected, Skill skill) | ||||
| 	{ | ||||
| 		effected.removeListenerIf(EventType.ON_CREATURE_DAMAGE_RECEIVED, listener -> listener.getOwner() == this); | ||||
| 	} | ||||
| 	 | ||||
| 	private DamageReturn onDamageReceivedEvent(OnCreatureDamageReceived event) | ||||
| 	{ | ||||
| 		if (event.getAttacker().calculateDistance(event.getTarget(), true, false) > _amount) | ||||
| 		{ | ||||
| 			return new DamageReturn(false, true, false, 0); | ||||
| 		} | ||||
| 		return new DamageReturn(false, false, false, event.getDamage()); | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDev
					MobiusDev