diff --git a/Server/src/org/crandor/game/content/ame/AntiMacroHandler.java b/Server/src/org/crandor/game/content/ame/AntiMacroHandler.java index ba7585705..718386b1a 100644 --- a/Server/src/org/crandor/game/content/ame/AntiMacroHandler.java +++ b/Server/src/org/crandor/game/content/ame/AntiMacroHandler.java @@ -125,7 +125,7 @@ public final class AntiMacroHandler implements SavingModule { } if (!player.getLocks().isInteractionLocked() && !player.getLocks().isTeleportLocked() && !player.getLocks().isMovementLocked()) { for (int i = 0; i < monitors.length; i++) { - FIRE_RATIO = 1; + FIRE_RATIO = 250; if (chanceRatio[i] > FIRE_RATIO && !isDisabled) { fireEvent(i); } diff --git a/Server/src/org/crandor/game/node/entity/player/link/ActivityData.java b/Server/src/org/crandor/game/node/entity/player/link/ActivityData.java index 5eb902bd2..07c030fcf 100644 --- a/Server/src/org/crandor/game/node/entity/player/link/ActivityData.java +++ b/Server/src/org/crandor/game/node/entity/player/link/ActivityData.java @@ -110,6 +110,11 @@ public final class ActivityData implements SavingModule { */ private boolean hardcoreDeath; + /** + * Pyramid plunder top (is it grabbed?) + */ + boolean topGrabbed; + /** * Constructs a new {@code ActivityInfo} {@code Object}. */ @@ -160,6 +165,7 @@ public final class ActivityData implements SavingModule { SavedData.save(buffer, fogRating, 19); SavedData.save(buffer, borkKills, 20); SavedData.save(buffer, hardcoreDeath, 21); + SavedData.save(buffer, topGrabbed, 22); buffer.put((byte) 0); } @@ -239,6 +245,9 @@ public final class ActivityData implements SavingModule { case 21: hardcoreDeath = SavedData.getBoolean(buffer); break; + case 22: + topGrabbed = SavedData.getBoolean(buffer); + break; } } } @@ -649,4 +658,8 @@ public final class ActivityData implements SavingModule { public void setHardcoreDeath(boolean hardcoreDeath) { this.hardcoreDeath = hardcoreDeath; } + public void setTopGrabbed(boolean topGrabbed){ + this.topGrabbed = topGrabbed; + } + public boolean isTopGrabbed(){return topGrabbed;} } \ No newline at end of file diff --git a/Server/src/plugin/skill/agility/pyramid/AgilityPyramidCourse.java b/Server/src/plugin/skill/agility/pyramid/AgilityPyramidCourse.java index 7cac5d94f..95d85d620 100644 --- a/Server/src/plugin/skill/agility/pyramid/AgilityPyramidCourse.java +++ b/Server/src/plugin/skill/agility/pyramid/AgilityPyramidCourse.java @@ -152,6 +152,7 @@ public final class AgilityPyramidCourse extends AgilityCourse { } player.getDialogueInterpreter().sendDialogue("You climb down the steep passage. It leads to the base of the", "pyramid."); player.getProperties().setTeleportLocation(Location.create(3364, 2830, 0)); + player.getSavedData().getActivityData().setTopGrabbed(false); break; } return true; @@ -367,21 +368,27 @@ public final class AgilityPyramidCourse extends AgilityCourse { * @param object the object. */ private void handlePyramidTop(final Player player, final GameObject object) { - player.animate(Animation.create(3063)); - GameWorld.submit(new Pulse(3, player) { - @Override - public boolean pulse() { - player.getSkills().addExperience(Skills.AGILITY,1000); - if (player.getConfigManager().get(640) == 505 || player.getConfigManager().get(640) == 515) { - player.getPacketDispatch().sendMessage("You find nothing on top of the pyramid."); + if(player.getSavedData().getActivityData().isTopGrabbed() == true){ + player.getPacketDispatch().sendMessage("You've already claimed this!"); + return; + } else { + player.animate(Animation.create(3063)); + GameWorld.submit(new Pulse(3, player) { + @Override + public boolean pulse() { + player.getSkills().addExperience(Skills.AGILITY, 1000); + if (player.getConfigManager().get(640) == 505 || player.getConfigManager().get(640) == 515) { + player.getPacketDispatch().sendMessage("You find nothing on top of the pyramid."); + return true; + } + addConfig(player, 10869, 1, true); + player.getSavedData().getActivityData().setTopGrabbed(true); + player.getInventory().add(PYRAMID_TOP, player); + player.getDialogueInterpreter().sendItemMessage(PYRAMID_TOP, "You find a golden pyramid!"); return true; } - addConfig(player, 10869, 1, true); - player.getInventory().add(PYRAMID_TOP, player); - player.getDialogueInterpreter().sendItemMessage(PYRAMID_TOP, "You find a golden pyramid!"); - return true; - } - }); + }); + } } /**