Fixed Nettle Tea wrong return item

Fixed Yak Hide crafting swapped items
Fixed mining bot dropped ore ironman restrictions
Fixed Ardy teleport tab requirements
Fixed Alice's husband not requiring ghostspeak
Fixed Fishing Trawler stuck on boat bug
Fixed POH debug region info showing in non-debug mode
This commit is contained in:
downthecrop 2024-03-26 01:51:16 +00:00 committed by Ryan
parent 1d4d380e93
commit a7516f2d6e
7 changed files with 27 additions and 9 deletions

View file

@ -287,7 +287,7 @@ public enum Consumables {
CUP_OF_TEA(new Drink(new int[] {712, 1980}, new MultiEffect(new HealingEffect(3), new SkillEffect(Skills.ATTACK, 3, 0)), "Aaah, nothing like a nice cuppa tea!")), CUP_OF_TEA(new Drink(new int[] {712, 1980}, new MultiEffect(new HealingEffect(3), new SkillEffect(Skills.ATTACK, 3, 0)), "Aaah, nothing like a nice cuppa tea!")),
CUP_OF_TEA_NETTLE(new Drink(new int[] {4242, 1980}, new EnergyEffect(10))), CUP_OF_TEA_NETTLE(new Drink(new int[] {4242, 1980}, new EnergyEffect(10))),
CUP_OF_TEA_MILKY_NETTLE(new Drink(new int[] {4243, 1980}, new EnergyEffect(10))), CUP_OF_TEA_MILKY_NETTLE(new Drink(new int[] {4243, 1980}, new EnergyEffect(10))),
NETTLE_TEA(new Drink(new int[] {4239, 1980}, new NettleTeaEffect())), NETTLE_TEA(new Drink(new int[] {4239, 1923}, new NettleTeaEffect())),
NETTLE_TEA_MILKY(new Drink(new int[] {4240, 1980}, new NettleTeaEffect())), NETTLE_TEA_MILKY(new Drink(new int[] {4240, 1980}, new NettleTeaEffect())),
CUP_OF_TEA_CLAY(new Drink(new int[] {7730, 7728}, new SkillEffect(Skills.CONSTRUCTION, 1, 0), "You feel refreshed and ready for more building.")), CUP_OF_TEA_CLAY(new Drink(new int[] {7730, 7728}, new SkillEffect(Skills.CONSTRUCTION, 1, 0), "You feel refreshed and ready for more building.")),
CUP_OF_TEA_CLAY_MILKY(new Drink(new int[] {7731, 7728}, new SkillEffect(Skills.CONSTRUCTION, 1, 0))), CUP_OF_TEA_CLAY_MILKY(new Drink(new int[] {7731, 7728}, new SkillEffect(Skills.CONSTRUCTION, 1, 0))),

View file

@ -17,7 +17,7 @@ class NonBankingMiner : Script() {
} }
//checks if the bot has tin ore in his inventory and drops it if he does //checks if the bot has tin ore in his inventory and drops it if he does
if(bot.inventory.containsAtLeastOneItem(Items.TIN_ORE_438)){ if(bot.inventory.containsAtLeastOneItem(Items.TIN_ORE_438)){
produceGroundItem(null,438,1,bot.location) produceGroundItem(bot,438,1,bot.location)
bot.inventory.remove(Item(Items.TIN_ORE_438,1)) bot.inventory.remove(Item(Items.TIN_ORE_438,1))
} }
//The following is to prevent lucky bots from breaking by having a full inventory of gems //The following is to prevent lucky bots from breaking by having a full inventory of gems

View file

@ -5,14 +5,18 @@ import core.api.removeItem
import core.api.teleport import core.api.teleport
import core.game.interaction.IntType import core.game.interaction.IntType
import core.game.interaction.InteractionListener import core.game.interaction.InteractionListener
import core.game.node.entity.player.Player
import core.game.node.entity.player.link.TeleportManager import core.game.node.entity.player.link.TeleportManager
import core.game.node.item.Item import core.game.node.item.Item
import core.game.world.map.Location import core.game.world.map.Location
import core.api.hasRequirement;
class TeleTabsListener : InteractionListener { class TeleTabsListener : InteractionListener {
enum class TeleTabs(val item: Int, val location: Location, val exp: Double) { enum class TeleTabs(val item: Int, val location: Location, val exp: Double, val requirementCheck: (Player) -> Boolean = { true }) {
ADDOUGNE_TELEPORT(8011, Location.create(2662, 3307, 0), 61.0), ADDOUGNE_TELEPORT(8011, Location.create(2662, 3307, 0), 61.0, {
player -> hasRequirement(player, "Plague City");
}),
AIR_ALTAR_TELEPORT(13599, Location.create(2978, 3296, 0), 0.0), AIR_ALTAR_TELEPORT(13599, Location.create(2978, 3296, 0), 0.0),
ASTRAL_ALTAR_TELEPORT(13611, Location.create(2156, 3862, 0), 0.0), ASTRAL_ALTAR_TELEPORT(13611, Location.create(2156, 3862, 0), 0.0),
BLOOD_ALTAR_TELEPORT(13610, Location.create(3559, 9778, 0), 0.0), BLOOD_ALTAR_TELEPORT(13610, Location.create(3559, 9778, 0), 0.0),
@ -47,7 +51,7 @@ class TeleTabsListener : InteractionListener {
val tabEnum = TeleTabs.forId(tab) val tabEnum = TeleTabs.forId(tab)
if (tabEnum != null && inInventory(player,tab)) { if (tabEnum != null && inInventory(player,tab)) {
val tabloc = tabEnum.location val tabloc = tabEnum.location
if (inInventory(player, tab)) { if (inInventory(player, tab) && tabEnum.requirementCheck(player)) {
if (teleport(player, tabloc, TeleportManager.TeleportType.TELETABS)) { if (teleport(player, tabloc, TeleportManager.TeleportType.TELETABS)) {
removeItem(player, Item(node.id, 1)) removeItem(player, Item(node.id, 1))
} }

View file

@ -196,7 +196,7 @@ public final class HouseManager {
} }
player.setAttribute("poh_entry", HouseManager.this); player.setAttribute("poh_entry", HouseManager.this);
player.lock(1); player.lock(1);
player.sendMessage("House location: " + houseRegion.getBaseLocation() + ", entry: " + getEnterLocation()); player.debug("House location: " + houseRegion.getBaseLocation() + ", entry: " + getEnterLocation());
} }
/** /**

View file

@ -160,6 +160,9 @@ class FishingTrawlerSession(val activity: FishingTrawlerActivity? = null) : MapA
for(player in session.players){ for(player in session.players){
session.updateOverlay(player) session.updateOverlay(player)
if(session.timeLeft <= 1) {
lockInteractions(player, 2)
}
} }
session.tickMurphy() session.tickMurphy()
return !session.isActive return !session.isActive

View file

@ -71,6 +71,7 @@ public class YakArmourPlugin extends UseWithHandler {
* The index. * The index.
*/ */
private final int index; private final int index;
private final int YAK_BODY_INDEX = 1;
/** /**
* The ticks. * The ticks.
@ -96,7 +97,7 @@ public class YakArmourPlugin extends UseWithHandler {
@Override @Override
public boolean checkRequirements() { public boolean checkRequirements() {
int level = (index == 1 ? 46 : 43); int level = (index == YAK_BODY_INDEX ? 46 : 43);
if (player.getSkills().getLevel(Skills.CRAFTING) < level) { if (player.getSkills().getLevel(Skills.CRAFTING) < level) {
player.getDialogueInterpreter().sendDialogue("You need a Crafting level of at least " + level + " in order to do this."); player.getDialogueInterpreter().sendDialogue("You need a Crafting level of at least " + level + " in order to do this.");
return false; return false;
@ -108,7 +109,7 @@ public class YakArmourPlugin extends UseWithHandler {
player.getDialogueInterpreter().sendDialogue("You need some thread to make anything out of leather."); player.getDialogueInterpreter().sendDialogue("You need some thread to make anything out of leather.");
return false; return false;
} }
int reqAmount = index == 1 ? 1 : 2; int reqAmount = index == YAK_BODY_INDEX ? 2 : 1;
if (!player.getInventory().contains(10820, reqAmount)) { if (!player.getInventory().contains(10820, reqAmount)) {
player.getDialogueInterpreter().sendDialogue("You don't have the required amount of yak-hide in order to do this."); player.getDialogueInterpreter().sendDialogue("You don't have the required amount of yak-hide in order to do this.");
return false; return false;
@ -129,7 +130,7 @@ public class YakArmourPlugin extends UseWithHandler {
if (++ticks % 5 != 0) { if (++ticks % 5 != 0) {
return false; return false;
} }
int reqAmount = index == 1 ? 1 : 2; int reqAmount = index == YAK_BODY_INDEX ? 2 : 1;
if (player.getInventory().remove(new Item(10820, reqAmount))) { if (player.getInventory().remove(new Item(10820, reqAmount))) {
player.getInventory().add(node); player.getInventory().add(node);
player.getSkills().addExperience(Skills.CRAFTING, 32, true); player.getSkills().addExperience(Skills.CRAFTING, 32, true);

View file

@ -1,10 +1,12 @@
package content.region.misthalin.draynor.quest.anma; package content.region.misthalin.draynor.quest.anma;
import core.game.dialogue.DialoguePlugin; import core.game.dialogue.DialoguePlugin;
import core.game.dialogue.FacialExpression;
import core.game.node.entity.player.Player; import core.game.node.entity.player.Player;
import core.game.node.entity.player.link.quest.Quest; import core.game.node.entity.player.link.quest.Quest;
import core.game.node.item.Item; import core.game.node.item.Item;
import content.region.misthalin.draynor.quest.anma.AnmaCutscene; import content.region.misthalin.draynor.quest.anma.AnmaCutscene;
import org.rs09.consts.Items;
/** /**
* Handles the husband of alice's npc dialogue. * Handles the husband of alice's npc dialogue.
@ -46,6 +48,10 @@ public final class AliceHusbandDialogue extends DialoguePlugin {
@Override @Override
public boolean open(Object... args) { public boolean open(Object... args) {
if (!player.getEquipment().containsAtLeastOneItem(Items.GHOSTSPEAK_AMULET_552)) {
npc("Wooo wooo wooooo!");
return true;
}
quest = player.getQuestRepository().getQuest(AnimalMagnetism.NAME); quest = player.getQuestRepository().getQuest(AnimalMagnetism.NAME);
switch (quest.getStage(player)) { switch (quest.getStage(player)) {
case 0: case 0:
@ -85,6 +91,10 @@ public final class AliceHusbandDialogue extends DialoguePlugin {
@Override @Override
public boolean handle(int interfaceId, int buttonId) { public boolean handle(int interfaceId, int buttonId) {
if (!player.getEquipment().containsAtLeastOneItem(Items.GHOSTSPEAK_AMULET_552)) {
end();
return true;
}
switch (quest.getStage(player)) { switch (quest.getStage(player)) {
default: default:
switch (stage) { switch (stage) {