early exit for attack timer
This commit is contained in:
@@ -118,11 +118,14 @@ public enum CombatManager {
|
||||
if (!attacker.isCombat())
|
||||
return;
|
||||
|
||||
if (attacker.getTimestamps().get("Attack" + slot.name()) != null && attacker.getTimestamps().get("Attack" + slot.name()) < System.currentTimeMillis()) {
|
||||
setAutoAttackJob(attacker, slot, 1000);
|
||||
//check if this slot is on attack timer, if timer has passed clear it, else early exit
|
||||
if(attacker.getTimers().containsKey("Attack"+slot.name()))
|
||||
if(attacker.getTimers().get("Attack"+slot.name()).timeToExecutionLeft() <= 0)
|
||||
attacker.getTimers().remove("Attack"+slot.name());
|
||||
else
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// check if character is in range to attack target
|
||||
|
||||
@@ -285,8 +288,8 @@ public enum CombatManager {
|
||||
|
||||
if (target.getObjectType() == mbEnums.GameObjectType.PlayerCharacter)
|
||||
DispatchManager.dispatchMsgToInterestArea(target, msg, mbEnums.DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, true, false);
|
||||
else
|
||||
DispatchManager.sendToAllInRange(attacker, msg);
|
||||
//else
|
||||
// DispatchManager.sendToAllInRange(attacker, msg);
|
||||
|
||||
//set auto attack job
|
||||
setAutoAttackJob(attacker, slot, delay);
|
||||
|
||||
@@ -67,12 +67,6 @@ public class AttackCmdMsgHandler extends AbstractClientMsgHandler {
|
||||
return true; // cannot attack a null target
|
||||
}
|
||||
|
||||
// No point in setting combat target to someone you are already fighting
|
||||
|
||||
if (playerCharacter.isCombat() && playerCharacter.getCombatTarget() != null &&
|
||||
playerCharacter.getCombatTarget().equals(target))
|
||||
return true;
|
||||
|
||||
//set sources target
|
||||
|
||||
playerCharacter.setCombatTarget(target);
|
||||
|
||||
Reference in New Issue
Block a user