Player script fixes, and bankAll scriptAPI function added
Fixed the bank window exploit in the coal miner, Draynor willows, lobster catcher, Seers magic, shark catcher, and Varrock essence scripts. Made it so that the coal miner script banks its entire inventory instead of just the coal ore, this way it should no longer get stuck if its inventory is full of mithril ore and uncut gems. Fixed the Draynor willows and Seers magic trees scripts so that the bot actually chops down the trees instead of just standing next to them. Added a bankAll function to the scriptAPI, the coal miner script is dependent on this change
This commit is contained in:
@@ -550,6 +550,28 @@ class ScriptAPI(private val bot: Player) {
|
||||
bot.pulseManager.run(BankingPulse())
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes every item out of the bots inventory and places it into the bank.
|
||||
* @param none
|
||||
* @author cfunnyman joe
|
||||
*/
|
||||
fun bankAll(){
|
||||
class BankingPulse() : Pulse(20){
|
||||
override fun pulse(): Boolean {
|
||||
for(item in bot.inventory.toArray()){
|
||||
var itemAmount = bot.inventory.getAmount(item)
|
||||
|
||||
bot.inventory.remove(item)
|
||||
bot.bank.add(item)
|
||||
bot.bank.refresh()
|
||||
bot.inventory.refresh()
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
bot.pulseManager.run(BankingPulse())
|
||||
}
|
||||
|
||||
/**
|
||||
* Function that makes the bot eat the food item in their inventory if their HP is below 2/3.
|
||||
* @author Ceikry
|
||||
|
||||
@@ -0,0 +1,164 @@
|
||||
package rs09.game.ai.general.scriptrepository
|
||||
|
||||
|
||||
import core.game.interaction.DestinationFlag
|
||||
import core.game.interaction.MovementPulse
|
||||
import core.game.node.Node
|
||||
import core.game.node.entity.skill.Skills
|
||||
import core.game.node.item.Item
|
||||
import core.game.world.map.zone.ZoneBorders
|
||||
import org.rs09.consts.Items
|
||||
import rs09.game.ai.general.ScriptAPI
|
||||
import rs09.game.ai.skillingbot.SkillingBotAssembler
|
||||
import rs09.game.interaction.InteractionListener
|
||||
import rs09.game.interaction.InteractionListeners
|
||||
import api.ContentAPI
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import java.util.logging.Handler
|
||||
|
||||
@PlayerCompatible
|
||||
@ScriptName("Falador Coal Miner")
|
||||
@ScriptDescription("Start in Falador East Bank with a pick equipped","or in your inventory.")
|
||||
@ScriptIdentifier("fally_coal")
|
||||
class CoalMiner : Script() {
|
||||
var state = State.INIT
|
||||
var ladderSwitch = false
|
||||
val bottomLadder = ZoneBorders(3016,9736,3024,9742)
|
||||
val topLadder = ZoneBorders(3016,3336,3022,3342)
|
||||
val mine = ZoneBorders(3027,9733,3054,9743)
|
||||
val bank = ZoneBorders(3009,3355,3018,3358)
|
||||
var overlay: ScriptAPI.BottingOverlay? = null
|
||||
var coalAmount = 0
|
||||
|
||||
override fun tick() {
|
||||
when(state){
|
||||
|
||||
State.INIT -> {
|
||||
overlay = scriptAPI.getOverlay()
|
||||
ladderSwitch = true
|
||||
overlay!!.init()
|
||||
overlay!!.setTitle("Mining")
|
||||
overlay!!.setTaskLabel("Coal Mined:")
|
||||
overlay!!.setAmount(0)
|
||||
|
||||
if (mine.insideBorder(bot)){
|
||||
ladderSwitch = false
|
||||
state = State.MINING
|
||||
} else {
|
||||
state = State.TO_MINE
|
||||
}
|
||||
}
|
||||
|
||||
State.MINING -> {
|
||||
bot.interfaceManager.close()
|
||||
if(bot.inventory.freeSlots() == 0){
|
||||
state = State.TO_BANK
|
||||
}
|
||||
if(!mine.insideBorder(bot)){
|
||||
scriptAPI.walkTo(mine.randomLoc)
|
||||
} else {
|
||||
val rock = scriptAPI.getNearestNode("rocks",true)
|
||||
rock?.let { InteractionListeners.run(rock.id, InteractionListener.OBJECT,"mine",bot,rock) }
|
||||
}
|
||||
overlay!!.setAmount(ContentAPI.amountInInventory(bot, Items.COAL_453) + coalAmount)
|
||||
}
|
||||
|
||||
State.TO_BANK -> {
|
||||
if(bank.insideBorder(bot)){
|
||||
val bank = scriptAPI.getNearestNode("bank booth",true)
|
||||
if(bank != null) {
|
||||
bot.pulseManager.run(object : BankingPulse(this, bank){
|
||||
override fun pulse(): Boolean {
|
||||
state = State.BANKING
|
||||
return super.pulse()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
} else {
|
||||
if(!ladderSwitch) {
|
||||
val ladder = scriptAPI.getNearestNode(30941, true)
|
||||
ladder ?: scriptAPI.walkTo(bottomLadder.randomLoc).also { return }
|
||||
ladder?.interaction?.handle(bot, ladder.interaction[0]).also { ladderSwitch = true }
|
||||
} else {
|
||||
if (!bank.insideBorder(bot)) scriptAPI.walkTo(bank.randomLoc).also { return }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
State.BANKING -> {
|
||||
coalAmount += bot.inventory.getAmount(Items.COAL_453)
|
||||
scriptAPI.bankAll()
|
||||
state = State.TO_MINE
|
||||
}
|
||||
|
||||
State.TO_MINE -> {
|
||||
if(ladderSwitch){
|
||||
bot.interfaceManager.close()
|
||||
if(!topLadder.insideBorder(bot.location)){
|
||||
scriptAPI.walkTo(topLadder.randomLoc)
|
||||
} else {
|
||||
val ladder = scriptAPI.getNearestNode("Ladder",true)
|
||||
if(ladder != null){
|
||||
ladder.interaction.handle(bot,ladder.interaction[0])
|
||||
ladderSwitch = false
|
||||
} else {
|
||||
scriptAPI.walkTo(topLadder.randomLoc)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(!mine.insideBorder(bot)){
|
||||
scriptAPI.walkTo(mine.randomLoc)
|
||||
} else {
|
||||
state = State.MINING
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
State.TO_GE -> {
|
||||
scriptAPI.teleportToGE()
|
||||
state = State.SELLING
|
||||
}
|
||||
|
||||
State.SELLING -> {
|
||||
scriptAPI.sellOnGE(Items.COAL_453)
|
||||
state = State.GO_BACK
|
||||
}
|
||||
|
||||
State.GO_BACK -> {
|
||||
scriptAPI.teleport(bank.randomLoc)
|
||||
state = State.TO_MINE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open class BankingPulse(val script: Script, val bank: Node) : MovementPulse(script.bot,bank, DestinationFlag.OBJECT){
|
||||
override fun pulse(): Boolean {
|
||||
script.bot.faceLocation(bank.location)
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
override fun newInstance(): Script {
|
||||
val script = CoalMiner()
|
||||
script.bot = SkillingBotAssembler().produce(SkillingBotAssembler.Wealth.POOR,bot.startLocation)
|
||||
return script
|
||||
}
|
||||
|
||||
enum class State {
|
||||
MINING,
|
||||
TO_MINE,
|
||||
TO_BANK,
|
||||
BANKING,
|
||||
TO_GE,
|
||||
SELLING,
|
||||
GO_BACK,
|
||||
INIT
|
||||
}
|
||||
|
||||
init {
|
||||
equipment.add(Item(Items.IRON_PICKAXE_1267))
|
||||
skills.put(Skills.MINING,75)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
package rs09.game.ai.general.scriptrepository
|
||||
|
||||
import core.game.component.Component
|
||||
import core.game.interaction.DestinationFlag
|
||||
import core.game.interaction.MovementPulse
|
||||
import core.game.node.entity.skill.Skills
|
||||
import core.game.node.item.Item
|
||||
import core.game.world.map.zone.ZoneBorders
|
||||
import org.rs09.consts.Items
|
||||
import rs09.game.interaction.InteractionListener
|
||||
import rs09.game.interaction.InteractionListeners
|
||||
import rs09.tools.stringtools.colorize
|
||||
|
||||
@PlayerCompatible
|
||||
@ScriptName("Draynor Willows")
|
||||
@ScriptDescription("Start in Draynor with an axe equipped or in inventory.")
|
||||
@ScriptIdentifier("draynor_trees")
|
||||
class DraynorWillows : Script(){
|
||||
val willowZone = ZoneBorders(3084, 3225,3091, 3239)
|
||||
|
||||
|
||||
val bankZone = ZoneBorders(3092, 3240,3094, 3246)
|
||||
var state = State.INIT
|
||||
var logCount = 0
|
||||
|
||||
override fun tick() {
|
||||
when(state){
|
||||
State.INIT -> {
|
||||
if(true){
|
||||
bot.interfaceManager.openOverlay(Component(195))
|
||||
bot.packetDispatch.sendString("Woodcutting",195,7)
|
||||
bot.packetDispatch.sendString(colorize("%BLogs Chopped:"),195,8)
|
||||
bot.packetDispatch.sendString(colorize("%B0"),195,9)
|
||||
bot.packetDispatch.sendInterfaceConfig(195,5,true)
|
||||
}
|
||||
state = State.CHOPPING
|
||||
}
|
||||
|
||||
State.CHOPPING -> {
|
||||
if (!willowZone.insideBorder(bot))
|
||||
scriptAPI.walkTo(willowZone.randomLoc)
|
||||
else {
|
||||
val willowtree = scriptAPI.getNearestNode("willow", true)
|
||||
bot.interfaceManager.close()
|
||||
willowtree?.let { InteractionListeners.run(willowtree.id,
|
||||
InteractionListener.OBJECT,"Chop down",bot,willowtree) }
|
||||
if (bot.inventory.isFull)
|
||||
state = State.BANKING
|
||||
}
|
||||
|
||||
bot.packetDispatch.sendString(colorize("%B${logCount + bot.inventory.getAmount(Items.WILLOW_LOGS_1519)}"), 195, 9)
|
||||
}
|
||||
|
||||
State.BANKING -> {
|
||||
if(!bankZone.insideBorder(bot))
|
||||
scriptAPI.walkTo(bankZone.randomLoc)
|
||||
else{
|
||||
val bank = scriptAPI.getNearestNode("Bank Booth",true)
|
||||
if(bank != null){
|
||||
bot.pulseManager.run(object : MovementPulse(bot,bank, DestinationFlag.OBJECT){
|
||||
override fun pulse(): Boolean {
|
||||
val logs = bot.inventory.getAmount(Item(Items.WILLOW_LOGS_1519))
|
||||
logCount += logs
|
||||
bot.inventory.remove(Item(Items.WILLOW_LOGS_1519,logs))
|
||||
bot.bank.add(Item(Items.WILLOW_LOGS_1519,logs))
|
||||
state = State.CHOPPING
|
||||
return true
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
inventory.add(Item(Items.ADAMANT_AXE_1357))
|
||||
skills[Skills.WOODCUTTING] = 35
|
||||
}
|
||||
|
||||
override fun newInstance(): Script {
|
||||
val script = DraynorWillows()
|
||||
return script
|
||||
}
|
||||
|
||||
enum class State {
|
||||
CHOPPING,
|
||||
BANKING,
|
||||
INIT
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
package rs09.game.ai.general.scriptrepository
|
||||
|
||||
import core.game.interaction.DestinationFlag
|
||||
import core.game.interaction.MovementPulse
|
||||
import core.game.node.entity.skill.Skills
|
||||
import core.game.node.item.Item
|
||||
import core.game.system.task.Pulse
|
||||
import core.game.world.map.Location
|
||||
import core.game.world.map.path.Pathfinder
|
||||
import core.game.world.update.flag.context.Animation
|
||||
import core.game.world.update.flag.context.Graphics
|
||||
import core.tools.RandomFunction
|
||||
import org.rs09.consts.Items
|
||||
import rs09.game.ai.AIPlayer
|
||||
import rs09.game.ai.general.ScriptAPI
|
||||
import rs09.game.interaction.InteractionListener
|
||||
import rs09.game.interaction.InteractionListeners
|
||||
import rs09.game.world.GameWorld
|
||||
import kotlin.random.Random
|
||||
|
||||
@PlayerCompatible
|
||||
@ScriptName("Catherby Lobs")
|
||||
@ScriptDescription("Start in Catherby bank with a lobster pot in your inventory.")
|
||||
@ScriptIdentifier("cath_lobs")
|
||||
class LobsterCatcher : Script() {
|
||||
private val ANIMATION = Animation(714)
|
||||
val offers = HashMap<Int, Int>()
|
||||
val limit = 2000
|
||||
var myCounter = 0
|
||||
/**
|
||||
* Represents the graphics to use.
|
||||
*/
|
||||
private val GRAPHICS = Graphics(308, 100, 50)
|
||||
internal enum class Sets(val equipment: List<Item>) {
|
||||
SET_1(listOf(Item(2643), Item(9470), Item(10756), Item(10394), Item(88), Item(9793))),
|
||||
SET_2(listOf(Item(2643), Item(6585), Item(10750), Item(10394), Item(88), Item(9793))),
|
||||
SET_3(listOf(Item(9472), Item(9470), Item(10750), Item(10394), Item(88), Item(9786))),
|
||||
SET_4(listOf(Item(2639), Item(6585), Item(10752), Item(10394), Item(88), Item(9786))),
|
||||
SET_5(listOf(Item(2639), Item(9470), Item(10750), Item(10394), Item(88), Item(9784))),
|
||||
SET_6(listOf(Item(2639), Item(6585), Item(10750), Item(10394), Item(88), Item(9784)));
|
||||
|
||||
}
|
||||
|
||||
private var bots = 0
|
||||
private var lobstopper = false
|
||||
var overlay: ScriptAPI.BottingOverlay?= null
|
||||
var fishCounter = 0
|
||||
|
||||
private var state = State.INIT
|
||||
private var tick = 0
|
||||
override fun tick() {
|
||||
when(state){
|
||||
|
||||
State.INIT -> {
|
||||
overlay = scriptAPI.getOverlay()
|
||||
overlay!!.init()
|
||||
overlay!!.setTitle("Fishing")
|
||||
overlay!!.setTaskLabel("Lobs Caught:")
|
||||
overlay!!.setAmount(0)
|
||||
state = State.FIND_SPOT
|
||||
}
|
||||
|
||||
|
||||
State.BANKING -> {
|
||||
fishCounter += bot.inventory.getAmount(Items.RAW_LOBSTER_377)
|
||||
scriptAPI.bankItem(Items.RAW_LOBSTER_377)
|
||||
state = State.IDLE
|
||||
}
|
||||
|
||||
|
||||
State.FISHING -> {
|
||||
bot.interfaceManager.close()
|
||||
val spot = scriptAPI.getNearestNode(333, false)
|
||||
if(spot == null){
|
||||
state = State.IDLE
|
||||
} else {
|
||||
InteractionListeners.run(spot.id,InteractionListener.NPC,"cage",bot,spot)
|
||||
}
|
||||
if(bot.inventory.isFull){
|
||||
state = State.FIND_BANK
|
||||
}
|
||||
overlay!!.setAmount(fishCounter + bot.inventory.getAmount(Items.RAW_LOBSTER_377))
|
||||
}
|
||||
|
||||
State.IDLE -> {
|
||||
if (Random.nextBoolean()){
|
||||
state = State.FIND_SPOT
|
||||
}
|
||||
else if(myCounter++ >= RandomFunction.random(1,25)){
|
||||
state = State.FIND_SPOT
|
||||
}
|
||||
}
|
||||
|
||||
State.FIND_SPOT -> {
|
||||
val spot = scriptAPI.getNearestNode(333, false)
|
||||
if (spot != null) {
|
||||
bot.walkingQueue.reset()
|
||||
state = State.FISHING
|
||||
} else {
|
||||
if (bot.location.x < 2837) {
|
||||
Pathfinder.find(bot, Location.create(2837, 3435, 0)).walk(bot)
|
||||
} else {
|
||||
Pathfinder.find(bot, Location.create(2854, 3427, 0)).walk(bot)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
State.FIND_BANK -> {
|
||||
val bank = scriptAPI.getNearestGameObject(bot.location, 2213)
|
||||
class BankingPulse : MovementPulse(bot, bank, DestinationFlag.OBJECT) {
|
||||
override fun pulse(): Boolean {
|
||||
bot.faceLocation(bank!!.location)
|
||||
state = State.BANKING
|
||||
return true
|
||||
}
|
||||
}
|
||||
if(bank != null){
|
||||
bot.pulseManager.run(BankingPulse())
|
||||
} else {
|
||||
if (bot.location.x > 2837) {
|
||||
Pathfinder.find(bot, Location.create(2837, 3435, 0)).walk(bot)
|
||||
} else if (bot.location.x > 2821) {
|
||||
Pathfinder.find(bot, Location.create(2821, 3435, 0)).walk(bot)
|
||||
} else if (bot.location.x > 2809){
|
||||
Pathfinder.find(bot,Location.create(2809, 3436, 0)).walk(bot)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
State.TELEPORT_GE -> {
|
||||
scriptAPI.teleportToGE()
|
||||
state = State.SELL_GE
|
||||
}
|
||||
|
||||
|
||||
State.SELL_GE -> {
|
||||
scriptAPI.sellOnGE(Items.RAW_LOBSTER_377)
|
||||
state = State.TELE_CATH
|
||||
}
|
||||
|
||||
State.TELE_CATH -> {
|
||||
if(tick++ == 10) {
|
||||
bot.lock()
|
||||
bot.visualize(ANIMATION, GRAPHICS)
|
||||
bot.impactHandler.disabledTicks = 4
|
||||
val location = Location.create(2819, 3437, 0)
|
||||
GameWorld.Pulser.submit(object : Pulse(4, bot) {
|
||||
override fun pulse(): Boolean {
|
||||
bot.unlock()
|
||||
bot.properties.teleportLocation = location
|
||||
bot.animator.reset()
|
||||
state = State.IDLE
|
||||
return true
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
init {
|
||||
val setUp = RandomFunction.random(Sets.values().size)
|
||||
equipment.addAll(Sets.values()[setUp].equipment)
|
||||
inventory.add(Item(301))
|
||||
skills[Skills.FISHING] = 40
|
||||
}
|
||||
|
||||
enum class State{
|
||||
FISHING,
|
||||
BANKING,
|
||||
FIND_BANK,
|
||||
FIND_SPOT,
|
||||
TELEPORT_GE,
|
||||
SELL_GE,
|
||||
TELE_CATH,
|
||||
IDLE,
|
||||
INIT
|
||||
}
|
||||
|
||||
override fun newInstance(): Script {
|
||||
if (!lobstopper && bots <= 0) {
|
||||
val script = LobsterCatcher()
|
||||
script.bot = AIPlayer(bot.startLocation)
|
||||
script.state = State.FIND_SPOT
|
||||
bots = 1
|
||||
return script
|
||||
}else if (tick++ == 6000 && lobstopper) {
|
||||
tick = 0
|
||||
lobstopper = false
|
||||
}
|
||||
return newInstance()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
package rs09.game.ai.general.scriptrepository
|
||||
|
||||
import core.game.interaction.DestinationFlag
|
||||
import core.game.interaction.MovementPulse
|
||||
import core.game.node.entity.skill.Skills
|
||||
import core.game.node.item.Item
|
||||
import core.game.world.map.Location
|
||||
import core.game.world.map.zone.ZoneBorders
|
||||
import core.tools.RandomFunction
|
||||
import org.rs09.consts.Items
|
||||
import rs09.game.ai.general.ScriptAPI
|
||||
import rs09.game.ai.skillingbot.SkillingBotAssembler
|
||||
import rs09.game.interaction.InteractionListener
|
||||
import rs09.game.interaction.InteractionListeners
|
||||
|
||||
@PlayerCompatible
|
||||
@ScriptName("Seers Magics")
|
||||
@ScriptDescription("Start in Seers Bank with an axe equipped or in your inventory.")
|
||||
@ScriptIdentifier("seers_magics")
|
||||
class SeersMagicTrees : Script(){
|
||||
var state = State.INIT
|
||||
var stage = 0
|
||||
val bankZone = ZoneBorders(2722,3490,2727,3493)
|
||||
val magicsZone = ZoneBorders(2700, 3396,2704, 3399)
|
||||
var overlay: ScriptAPI.BottingOverlay? = null
|
||||
var logCounter = 0
|
||||
|
||||
override fun tick() {
|
||||
when(state){
|
||||
|
||||
State.INIT -> {
|
||||
overlay = scriptAPI.getOverlay()
|
||||
overlay!!.init()
|
||||
overlay!!.setTitle("Woodcutting")
|
||||
overlay!!.setTaskLabel("Logs cut:")
|
||||
overlay!!.setAmount(0)
|
||||
state = State.RETURN_TO_TREES
|
||||
}
|
||||
|
||||
State.CHOPPING -> {
|
||||
val tree = scriptAPI.getNearestNode(1306,true)
|
||||
bot.interfaceManager.close()
|
||||
tree?.let { InteractionListeners.run(tree.id, InteractionListener.OBJECT,"Chop down",bot,tree) }
|
||||
if(bot.inventory.isFull){
|
||||
state = State.FIND_BANK
|
||||
}
|
||||
overlay!!.setAmount(logCounter + bot.inventory.getAmount(Items.MAGIC_LOGS_1513))
|
||||
}
|
||||
|
||||
State.FIND_BANK -> {
|
||||
if(!bankZone.insideBorder(bot)){
|
||||
scriptAPI.walkTo(bankZone.randomLoc)
|
||||
} else {
|
||||
state = State.BANKING
|
||||
}
|
||||
}
|
||||
|
||||
State.BANKING -> {
|
||||
val bank = scriptAPI.getNearestNode(25808,true)
|
||||
if(bank != null)
|
||||
bot.pulseManager.run(object: MovementPulse(bot,bank, DestinationFlag.OBJECT){
|
||||
override fun pulse(): Boolean {
|
||||
bot.faceLocation(bank.location)
|
||||
logCounter += bot.inventory.getAmount(Items.MAGIC_LOGS_1513)
|
||||
scriptAPI.bankItem(Items.MAGIC_LOGS_1513)
|
||||
state = State.RETURN_TO_TREES
|
||||
return true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
State.RETURN_TO_TREES -> {
|
||||
bot.interfaceManager.close()
|
||||
if(!magicsZone.insideBorder(bot)){
|
||||
scriptAPI.walkTo(magicsZone.randomLoc)
|
||||
} else {
|
||||
state = State.CHOPPING
|
||||
}
|
||||
}
|
||||
|
||||
State.TELE_GE -> {
|
||||
state = State.SELL_GE
|
||||
scriptAPI.teleportToGE()
|
||||
}
|
||||
|
||||
State.SELL_GE -> {
|
||||
state = State.TELE_SEERS
|
||||
scriptAPI.sellOnGE(Items.MAGIC_LOGS_1513)
|
||||
}
|
||||
|
||||
State.TELE_SEERS -> {
|
||||
state = State.RETURN_TO_TREES
|
||||
scriptAPI.teleport(Location.create(2756, 3478, 0))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
inventory.add(Item(Items.RUNE_AXE_1359))
|
||||
skills[Skills.WOODCUTTING] = RandomFunction.random(75,99)
|
||||
}
|
||||
|
||||
enum class State {
|
||||
CHOPPING,
|
||||
FIND_BANK,
|
||||
BANKING,
|
||||
RETURN_TO_TREES,
|
||||
TELE_GE,
|
||||
SELL_GE,
|
||||
TELE_SEERS,
|
||||
INIT
|
||||
}
|
||||
|
||||
override fun newInstance(): Script {
|
||||
val script = SeersMagicTrees()
|
||||
script.bot = SkillingBotAssembler().produce(SkillingBotAssembler.Wealth.AVERAGE,bot.startLocation)
|
||||
return script
|
||||
}
|
||||
}
|
||||
@@ -114,6 +114,7 @@ class SharkCatcher : Script() {
|
||||
}
|
||||
|
||||
State.FISHING -> {
|
||||
bot.interfaceManager.close()
|
||||
if (Random.nextBoolean()) {
|
||||
tick = 0
|
||||
val spot = scriptAPI.getNearestNode(334, false)
|
||||
|
||||
@@ -22,6 +22,7 @@ class VarrockEssenceMiner : Script(){
|
||||
|
||||
when(state){
|
||||
State.TO_ESSENCE -> {
|
||||
bot.interfaceManager.close()
|
||||
if(!auburyZone.insideBorder(bot))
|
||||
scriptAPI.walkTo(auburyZone.randomLoc)
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user