Browse Source

early exit for attack timer

combat-2
FatBoy-DOTC 6 months ago
parent
commit
232c381e96
  1. 13
      src/engine/gameManager/CombatManager.java
  2. 6
      src/engine/net/client/handlers/AttackCmdMsgHandler.java

13
src/engine/gameManager/CombatManager.java

@ -118,11 +118,14 @@ public enum CombatManager {
if (!attacker.isCombat()) if (!attacker.isCombat())
return; return;
if (attacker.getTimestamps().get("Attack" + slot.name()) != null && attacker.getTimestamps().get("Attack" + slot.name()) < System.currentTimeMillis()) { //check if this slot is on attack timer, if timer has passed clear it, else early exit
setAutoAttackJob(attacker, slot, 1000); if(attacker.getTimers().containsKey("Attack"+slot.name()))
if(attacker.getTimers().get("Attack"+slot.name()).timeToExecutionLeft() <= 0)
attacker.getTimers().remove("Attack"+slot.name());
else
return; return;
} }
}
// check if character is in range to attack target // check if character is in range to attack target
@ -285,8 +288,8 @@ public enum CombatManager {
if (target.getObjectType() == mbEnums.GameObjectType.PlayerCharacter) if (target.getObjectType() == mbEnums.GameObjectType.PlayerCharacter)
DispatchManager.dispatchMsgToInterestArea(target, msg, mbEnums.DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, true, false); DispatchManager.dispatchMsgToInterestArea(target, msg, mbEnums.DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, true, false);
else //else
DispatchManager.sendToAllInRange(attacker, msg); // DispatchManager.sendToAllInRange(attacker, msg);
//set auto attack job //set auto attack job
setAutoAttackJob(attacker, slot, delay); setAutoAttackJob(attacker, slot, delay);

6
src/engine/net/client/handlers/AttackCmdMsgHandler.java

@ -67,12 +67,6 @@ public class AttackCmdMsgHandler extends AbstractClientMsgHandler {
return true; // cannot attack a null target 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 //set sources target
playerCharacter.setCombatTarget(target); playerCharacter.setCombatTarget(target);

Loading…
Cancel
Save