Fixed infinite attack speed exploit.
Contributed by Iris.
This commit is contained in:
		@@ -48,13 +48,6 @@ public class PetAttack implements IPlayerActionHandler
 | 
			
		||||
		}
 | 
			
		||||
		else if (pet.canAttack(player.getTarget(), ctrlPressed))
 | 
			
		||||
		{
 | 
			
		||||
			// Prevent spamming next target and attack to increase attack speed.
 | 
			
		||||
			if (pet.isAttackingNow())
 | 
			
		||||
			{
 | 
			
		||||
				pet.abortAttack();
 | 
			
		||||
				pet.abortCast();
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			pet.doAttack(player.getTarget());
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -37,13 +37,6 @@ public class ServitorAttack implements IPlayerActionHandler
 | 
			
		||||
			{
 | 
			
		||||
				if (summon.canAttack(player.getTarget(), ctrlPressed))
 | 
			
		||||
				{
 | 
			
		||||
					// Prevent spamming next target and attack to increase attack speed.
 | 
			
		||||
					if (summon.isAttackingNow())
 | 
			
		||||
					{
 | 
			
		||||
						summon.abortAttack();
 | 
			
		||||
						summon.abortCast();
 | 
			
		||||
					}
 | 
			
		||||
					
 | 
			
		||||
					summon.doAttack(player.getTarget());
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
@@ -44,6 +44,20 @@ public class SummonAI extends PlayableAI implements Runnable
 | 
			
		||||
	private volatile boolean _isDefending;
 | 
			
		||||
	private Future<?> _avoidTask = null;
 | 
			
		||||
	
 | 
			
		||||
	// Fix: Infinite Atk. Spd. exploit
 | 
			
		||||
	private IntentionCommand _nextIntention = null;
 | 
			
		||||
	
 | 
			
		||||
	private void saveNextIntention(CtrlIntention intention, Object arg0, Object arg1)
 | 
			
		||||
	{
 | 
			
		||||
		_nextIntention = new IntentionCommand(intention, arg0, arg1);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@Override
 | 
			
		||||
	public IntentionCommand getNextIntention()
 | 
			
		||||
	{
 | 
			
		||||
		return _nextIntention;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public SummonAI(Summon summon)
 | 
			
		||||
	{
 | 
			
		||||
		super(summon);
 | 
			
		||||
@@ -111,6 +125,14 @@ public class SummonAI extends PlayableAI implements Runnable
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		clientStopMoving(null);
 | 
			
		||||
		
 | 
			
		||||
		// Fix: Infinite Atk. Spd. exploit
 | 
			
		||||
		if (_actor.isAttackingNow())
 | 
			
		||||
		{
 | 
			
		||||
			saveNextIntention(AI_INTENTION_ATTACK, attackTarget, null);
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		_actor.doAutoAttack(attackTarget);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user