From 5c1991fb1ad41e0377bce8d6e5dc9df44d7874b8 Mon Sep 17 00:00:00 2001 From: Yuri Moens Date: Sat, 22 Jan 2022 12:09:39 +0100 Subject: [PATCH] Fix weapon special usage --- .../main/java/io/reisub/openosrs/consume/Consume.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/consume/src/main/java/io/reisub/openosrs/consume/Consume.java b/consume/src/main/java/io/reisub/openosrs/consume/Consume.java index 3b91e79..fc2aaec 100644 --- a/consume/src/main/java/io/reisub/openosrs/consume/Consume.java +++ b/consume/src/main/java/io/reisub/openosrs/consume/Consume.java @@ -126,6 +126,7 @@ public class Consume extends Plugin implements KeyListener { private boolean shouldDrinkMagic; private long lastMagic; private boolean shouldUseSpecial; + private long lastSpecial; private boolean pkTeleport; @SuppressWarnings("unused") @@ -179,7 +180,8 @@ public class Consume extends Plugin implements KeyListener { if (config.useSpecial() && event.getIndex() == VarPlayer.SPECIAL_ATTACK_PERCENT.getId() - && game.client().getVarpValue(VarPlayer.SPECIAL_ATTACK_PERCENT.getId()) > config.specialCost()) { + && game.client().getVarpValue(VarPlayer.SPECIAL_ATTACK_PERCENT.getId()) / 10 >= config.specialCost() + && lastSpecial + 2000 < System.currentTimeMillis()) { shouldUseSpecial = true; } } @@ -281,8 +283,9 @@ public class Consume extends Plugin implements KeyListener { if (shouldUseSpecial && game.client().getVarpValue(VarPlayer.SPECIAL_ATTACK_ENABLED.getId()) == 0) { shouldUseSpecial = false; + lastSpecial = System.currentTimeMillis(); - if (game.client().getVar(Varbits.PVP_SPEC_ORB) == 0) { + if (game.varb(Varbits.PVP_SPEC_ORB.getId()) == 0) { iWidget special = game.widget(WidgetInfo.MINIMAP_SPEC_CLICKBOX); if (special == null) return; @@ -400,7 +403,7 @@ public class Consume extends Plugin implements KeyListener { private void onInteractingChanged(InteractingChanged event) { if (!config.tpOnPlayerAttack() || !pkTeleport || game.client().getVar(Varbits.IN_WILDERNESS) == 0) return; - if (event.getSource() == null || event.getTarget() == null) return; + if (event.getSource() == null || event.getTarget() == null || event.getTarget().getName() == null) return; if (event.getSource() instanceof Player && event.getTarget().equals(game.client().getLocalPlayer())) { log.info("Player attacking us: " + event.getSource().getName());