From f24d6f44f7a16ad416c1fe4641d0166018c2d70f Mon Sep 17 00:00:00 2001 From: ceikry Date: Wed, 11 Aug 2021 10:05:20 -0500 Subject: [PATCH] Fixed a bug with slayer --- .../src/main/java/org/runite/client/VarpHelpers.java | 2 +- .../src/main/java/core/game/node/entity/npc/NPC.java | 2 +- .../game/node/entity/skill/slayer/SlayerManager.java | 10 ++++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Client/src/main/java/org/runite/client/VarpHelpers.java b/Client/src/main/java/org/runite/client/VarpHelpers.java index 81ce8e25a..6fdfa25e1 100644 --- a/Client/src/main/java/org/runite/client/VarpHelpers.java +++ b/Client/src/main/java/org/runite/client/VarpHelpers.java @@ -24,7 +24,7 @@ public class VarpHelpers { SystemLogger.logInfo(parentVarp + " - bitStart: " + lowerBound + " bitEnd: " + upperBound + " bitSize = " + (varbitSize + 1)); int expectedMinimumValue = Class3_Sub6.expectedMinimumValues[varbitSize]; SystemLogger.logInfo("emv: " + expectedMinimumValue + " || vs: " + (127 + valueToSet)); - if (valueToSet < 0|| expectedMinimumValue < valueToSet) { //<-- commented out due to heavy suspicion of it being an Arios modification. Things work fine without it. + if (valueToSet < 0|| expectedMinimumValue < valueToSet) { SystemLogger.logInfo(expectedMinimumValue + " < " + valueToSet); valueToSet = 0; } diff --git a/Server/src/main/java/core/game/node/entity/npc/NPC.java b/Server/src/main/java/core/game/node/entity/npc/NPC.java index da1e44f90..b7cd9fc23 100644 --- a/Server/src/main/java/core/game/node/entity/npc/NPC.java +++ b/Server/src/main/java/core/game/node/entity/npc/NPC.java @@ -513,7 +513,7 @@ public class NPC extends Entity { if (getZoneMonitor().handleDeath(killer)) { return; } - if (task != null && killer instanceof Player && ((Player) killer).getSlayer().getTask() == task) { + if (task != null && killer instanceof Player && ((Player) killer).getSlayer().getTask() == task && ((Player) killer).getSlayer().hasTask()) { ((Player) killer).getSlayer().finalizeDeath(killer.asPlayer(), this); } if (killer instanceof Player && killer.getAttribute("jobs:id",null) != null) { diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerManager.java b/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerManager.java index cd73e84c4..b40ca2c8c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerManager.java +++ b/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerManager.java @@ -105,10 +105,12 @@ public final class SlayerManager { * @param npc The NPC. You're currently */ public void finalizeDeath(Player player, NPC npc) { - player.getSkills().addExperience(Skills.SLAYER,npc.getSkills().getMaximumLifepoints()); - decrementAmount(1); - if (!hasTask()) { - clear(); + if(hasTask()) { + player.getSkills().addExperience(Skills.SLAYER, npc.getSkills().getMaximumLifepoints()); + decrementAmount(1); + } + + if(!hasTask()){ flags.setTaskStreak(flags.getTaskStreak() + 1); flags.setCompletedTasks(flags.getCompletedTasks() + 1); if ((flags.getCompletedTasks() > 4 || flags.canEarnPoints() ) && flags.getMaster() != Master.TURAEL && flags.getPoints() < 64000) {