Merge branch 'master' into 'master'
Player script fixes, and bankAll scriptAPI function added See merge request 2009scape/2009scape!50
This commit is contained in:
@@ -550,6 +550,26 @@ 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)
|
||||
}
|
||||
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
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package rs09.game.ai.general.scriptrepository
|
||||
|
||||
|
||||
import core.game.interaction.DestinationFlag
|
||||
import core.game.interaction.MovementPulse
|
||||
import core.game.node.Node
|
||||
@@ -11,21 +12,24 @@ 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() {
|
||||
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
|
||||
var coalAmount = 0
|
||||
|
||||
override fun tick() {
|
||||
when(state){
|
||||
@@ -47,6 +51,7 @@ class CoalMiner() : Script() {
|
||||
}
|
||||
|
||||
State.MINING -> {
|
||||
bot.interfaceManager.close()
|
||||
if(bot.inventory.freeSlots() == 0){
|
||||
state = State.TO_BANK
|
||||
}
|
||||
@@ -56,7 +61,7 @@ class CoalMiner() : Script() {
|
||||
val rock = scriptAPI.getNearestNode("rocks",true)
|
||||
rock?.let { InteractionListeners.run(rock.id, InteractionListener.OBJECT,"mine",bot,rock) }
|
||||
}
|
||||
overlay!!.setAmount(bot.inventory.getAmount(Items.COAL_453) + coalAmount)
|
||||
overlay!!.setAmount(ContentAPI.amountInInventory(bot, Items.COAL_453) + coalAmount)
|
||||
}
|
||||
|
||||
State.TO_BANK -> {
|
||||
@@ -83,13 +88,14 @@ class CoalMiner() : Script() {
|
||||
}
|
||||
|
||||
State.BANKING -> {
|
||||
coalAmount += bot.inventory.getAmount(Items.COAL_453)
|
||||
scriptAPI.bankItem(Items.COAL_453)
|
||||
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 {
|
||||
@@ -124,7 +130,6 @@ class CoalMiner() : Script() {
|
||||
scriptAPI.teleport(bank.randomLoc)
|
||||
state = State.TO_MINE
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,5 +161,4 @@ class CoalMiner() : Script() {
|
||||
equipment.add(Item(Items.IRON_PICKAXE_1267))
|
||||
skills.put(Skills.MINING,75)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -41,8 +41,9 @@ class DraynorWillows : Script(){
|
||||
scriptAPI.walkTo(willowZone.randomLoc)
|
||||
else {
|
||||
val willowtree = scriptAPI.getNearestNode("willow", true)
|
||||
bot.interfaceManager.close()
|
||||
willowtree?.let { InteractionListeners.run(willowtree.id,
|
||||
InteractionListener.OBJECT,"chop",bot,willowtree) }
|
||||
InteractionListener.OBJECT,"Chop down",bot,willowtree) }
|
||||
if (bot.inventory.isFull)
|
||||
state = State.BANKING
|
||||
}
|
||||
|
||||
@@ -69,6 +69,7 @@ class LobsterCatcher : Script() {
|
||||
|
||||
|
||||
State.FISHING -> {
|
||||
bot.interfaceManager.close()
|
||||
val spot = scriptAPI.getNearestNode(333, false)
|
||||
if(spot == null){
|
||||
state = State.IDLE
|
||||
@@ -163,10 +164,10 @@ class LobsterCatcher : Script() {
|
||||
|
||||
|
||||
init {
|
||||
val setUp = RandomFunction.random(Sets.values().size)
|
||||
equipment.addAll(Sets.values()[setUp].equipment)
|
||||
inventory.add(Item(301))
|
||||
skills[Skills.FISHING] = 40
|
||||
val setUp = RandomFunction.random(Sets.values().size)
|
||||
equipment.addAll(Sets.values()[setUp].equipment)
|
||||
inventory.add(Item(301))
|
||||
skills[Skills.FISHING] = 40
|
||||
}
|
||||
|
||||
enum class State{
|
||||
|
||||
@@ -39,7 +39,8 @@ class SeersMagicTrees : Script(){
|
||||
|
||||
State.CHOPPING -> {
|
||||
val tree = scriptAPI.getNearestNode(1306,true)
|
||||
tree?.let { InteractionListeners.run(tree.id, InteractionListener.OBJECT,"chop",bot,tree) }
|
||||
bot.interfaceManager.close()
|
||||
tree?.let { InteractionListeners.run(tree.id, InteractionListener.OBJECT,"Chop down",bot,tree) }
|
||||
if(bot.inventory.isFull){
|
||||
state = State.FIND_BANK
|
||||
}
|
||||
@@ -69,6 +70,7 @@ class SeersMagicTrees : Script(){
|
||||
}
|
||||
|
||||
State.RETURN_TO_TREES -> {
|
||||
bot.interfaceManager.close()
|
||||
if(!magicsZone.insideBorder(bot)){
|
||||
scriptAPI.walkTo(magicsZone.randomLoc)
|
||||
} else {
|
||||
|
||||
@@ -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