diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ChickenKiller.kt b/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ChickenKiller.kt deleted file mode 100644 index 4bb569afc..000000000 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ChickenKiller.kt +++ /dev/null @@ -1,78 +0,0 @@ -package rs09.game.ai.general.scriptrepository - -import core.game.world.map.Location -import org.rs09.consts.Items -import rs09.game.ai.general.ScriptAPI - -@PlayerCompatible -@ScriptName("Chicken Killer") -@ScriptDescription("Kills chickens and loots feathers. Start in any chicken area.") -@ScriptIdentifier("chicken_killer") -class ChickenKiller : Script(){ - var state = State.INIT - var chickenCounter = 0 - var overlay: ScriptAPI.BottingOverlay?= null - var startLocation = Location(0,0,0) - var timer = 3 - var lootFeathers = false - - override fun tick() { - when(state){ - - State.INIT -> { - overlay = scriptAPI.getOverlay() - overlay!!.init() - overlay!!.setTitle("Chickens") - overlay!!.setTaskLabel("Chickens KO'd:") - overlay!!.setAmount(0) - state = State.CONFIG - bot.dialogueInterpreter.sendOptions("Loot Feathers?","Yes","No") - bot.dialogueInterpreter.addAction{player,button -> - lootFeathers = button == 2 - state = State.KILLING - } - startLocation = bot.location - } - - State.KILLING -> { - val chicken = scriptAPI.getNearestNode("Chicken") - if(chicken == null){ - scriptAPI.randomWalkTo(startLocation,3) - } else { - scriptAPI.attackNpcInRadius(bot,"Chicken",10) - if(lootFeathers) { - state = State.IDLE - timer = 4 - } - chickenCounter++ - overlay!!.setAmount(chickenCounter) - } - } - - State.IDLE -> { - if(timer-- <= 0){ - state = State.LOOTING - } - } - - State.LOOTING -> { - scriptAPI.takeNearestGroundItem(Items.FEATHER_314) - state = State.KILLING - } - - } - } - - override fun newInstance(): Script { - return this - } - - enum class State { - IDLE, - INIT, - KILLING, - LOOTING, - RETURN, - CONFIG - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/CoalMiner.kt b/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/CoalMiner.kt deleted file mode 100644 index 9fc4b307b..000000000 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/CoalMiner.kt +++ /dev/null @@ -1,160 +0,0 @@ -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 - -@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 -> { - 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(bot.inventory.getAmount(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.bankItem(Items.COAL_453) - state = State.TO_MINE - } - - State.TO_MINE -> { - if(ladderSwitch){ - 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) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/DraynorWillows.kt b/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/DraynorWillows.kt deleted file mode 100644 index b9195bb2e..000000000 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/DraynorWillows.kt +++ /dev/null @@ -1,93 +0,0 @@ -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) - willowtree?.let { InteractionListeners.run(willowtree.id, - InteractionListener.OBJECT,"chop",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 - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/LobsterCatcher.kt b/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/LobsterCatcher.kt deleted file mode 100644 index 6863f20dd..000000000 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/LobsterCatcher.kt +++ /dev/null @@ -1,197 +0,0 @@ -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() - 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) { - 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 -> { - 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() - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/PlayerScripts.kt b/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/PlayerScripts.kt deleted file mode 100644 index 1aaba11e6..000000000 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/PlayerScripts.kt +++ /dev/null @@ -1,19 +0,0 @@ -package rs09.game.ai.general.scriptrepository - -import io.github.classgraph.ClassGraph - -object PlayerScripts { - class PlayerScript(val identifier: String, val description: Array, val name: String, val clazz: Class<*>) - val identifierMap = HashMap() - - - fun init(){ - val result = ClassGraph().enableAnnotationInfo().acceptPackages("rs09.game.ai.general.scriptrepository").scan() - result.getClassesWithAnnotation("rs09.game.ai.general.scriptrepository.PlayerCompatible").forEach { res -> - val description = res.getAnnotationInfo("rs09.game.ai.general.scriptrepository.ScriptDescription").parameterValues[0].value as Array - val identifier = res.getAnnotationInfo("rs09.game.ai.general.scriptrepository.ScriptIdentifier").parameterValues[0].value.toString() - val name = res.getAnnotationInfo("rs09.game.ai.general.scriptrepository.ScriptName").parameterValues[0].value.toString() - identifierMap[identifier] = PlayerScript(identifier,description,name,res.loadClass()) - } - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/SeersMagicTrees.kt b/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/SeersMagicTrees.kt deleted file mode 100644 index 48b7b45c3..000000000 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/SeersMagicTrees.kt +++ /dev/null @@ -1,117 +0,0 @@ -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) - tree?.let { InteractionListeners.run(tree.id, InteractionListener.OBJECT,"chop",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 -> { - 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 - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/system/command/oldsys/AIPCommandPlugin.kt b/Server/src/main/kotlin/rs09/game/system/command/oldsys/AIPCommandPlugin.kt index 71c61da18..29c5513c7 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/oldsys/AIPCommandPlugin.kt +++ b/Server/src/main/kotlin/rs09/game/system/command/oldsys/AIPCommandPlugin.kt @@ -20,8 +20,6 @@ import core.plugin.Plugin import core.tools.RandomFunction import rs09.game.ai.AIPBuilder import rs09.game.ai.AIPlayer -import rs09.game.ai.general.GeneralBotCreator -import rs09.game.ai.general.scriptrepository.LobsterCatcher import rs09.game.ai.pvmbots.PvMBotsBuilder import rs09.game.ai.pvp.PVPAIPActions import rs09.game.ai.pvp.PVPAIPBuilderUtils @@ -309,7 +307,6 @@ class AIPCommandPlugin : CommandPlugin() { return true } //"manthiev" -> GeneralBotCreator(player.location, ManThiever()) - "fish" -> GeneralBotCreator(Location.create(2805, 3435, 0), LobsterCatcher()) } return false } diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/BottingCommandSet.kt b/Server/src/main/kotlin/rs09/game/system/command/sets/BottingCommandSet.kt deleted file mode 100644 index 8131ecb3a..000000000 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/BottingCommandSet.kt +++ /dev/null @@ -1,71 +0,0 @@ -package rs09.game.system.command.sets - -import core.game.component.Component -import core.plugin.Initializable -import org.rs09.consts.Components -import rs09.game.ai.general.GeneralBotCreator -import rs09.game.ai.general.scriptrepository.PlayerScripts -import rs09.game.ai.general.scriptrepository.Script -import rs09.game.system.command.Command -import rs09.game.world.GameWorld -import rs09.tools.stringtools.colorize - -@Initializable -class BottingCommandSet : CommandSet(Command.Privilege.STANDARD) { - override fun defineCommands() { - define("scripts"){player, _ -> - if(GameWorld.settings?.enabled_botting != true){ - player.sendChat("I just tried to do something silly!") - return@define - } - if(!player.getAttribute("botting:warning_shown",false)){ - player.dialogueInterpreter.sendDialogue(colorize("%RWARNING: Running a bot script will permanently remove you"),colorize("%Rfrom the highscores.")) - player.dialogueInterpreter.addAction { player, buttonId -> player.setAttribute("/save:botting:warning_shown",true) } - return@define - } - for (i in 0..310) { - player.packetDispatch.sendString("", 275, i) - } - var lineid = 11 - player.packetDispatch.sendString("Bot Scripts",275,2) - for(script in PlayerScripts.identifierMap.values) { - player.packetDispatch.sendString("${script.name}", 275, lineid++) - script.description.forEach { line -> - player.packetDispatch.sendString(line,275,lineid++) - } - player.packetDispatch.sendString(" ::script ${script.identifier}",275,lineid++) - player.packetDispatch.sendString(" ",275,lineid++) - } - player.interfaceManager.open(Component(Components.QUESTJOURNAL_SCROLL_275)) - } - define("script"){player,args -> - if(GameWorld.settings?.enabled_botting != true){ - player.sendChat("I just tried to do something very silly!") - return@define - } - if(!player.getAttribute("botting:warning_shown",false)){ - player.dialogueInterpreter.sendDialogue(colorize("%RWARNING: Running a bot script will permanently remove you from the highscores.")) - player.dialogueInterpreter.addAction { player, buttonId -> player.setAttribute("/save:botting:warning_shown",true) } - return@define - } - if(args.size < 2){ - reject(player,"Usage: ::script identifier") - } - val identifier = args[1] - val script = PlayerScripts.identifierMap[identifier] - if(script == null){ - reject(player,"Invalid script identifier") - } - player.interfaceManager.close() - GeneralBotCreator(script!!.clazz.newInstance() as Script,player,true) - player.sendMessage(colorize("%RStarting script...")) - player.sendMessage(colorize("%RTo stop the script, do ::stopscript or log out.")) - - } - define("stopscript"){player,args -> - val pulse: GeneralBotCreator.BotScriptPulse? = player.getAttribute("botting:script",null) - pulse?.stop() - player.interfaceManager.closeOverlay() - } - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/world/GameWorld.kt b/Server/src/main/kotlin/rs09/game/world/GameWorld.kt index 7bd821755..f4a75ec0c 100644 --- a/Server/src/main/kotlin/rs09/game/world/GameWorld.kt +++ b/Server/src/main/kotlin/rs09/game/world/GameWorld.kt @@ -15,7 +15,6 @@ import core.game.world.map.RegionManager import core.plugin.CorePluginTypes.StartupPlugin import core.tools.RandomFunction import core.tools.mysql.DatabaseManager -import rs09.game.ai.general.scriptrepository.PlayerScripts import rs09.ServerConstants import rs09.game.node.entity.state.newsys.StateRepository import rs09.game.system.SystemLogger @@ -152,7 +151,6 @@ object GameWorld { } ObjectDefinition.getDefinitions().values.forEach(Consumer { obj: ObjectDefinition -> obj.examine }) System.gc() - PlayerScripts.init() StateRepository.init() SystemLogger.initTradeLogger() } diff --git a/Server/src/main/kotlin/rs09/game/world/ImmerseWorld.kt b/Server/src/main/kotlin/rs09/game/world/ImmerseWorld.kt index cdfc035bb..7fe7cde07 100644 --- a/Server/src/main/kotlin/rs09/game/world/ImmerseWorld.kt +++ b/Server/src/main/kotlin/rs09/game/world/ImmerseWorld.kt @@ -41,11 +41,9 @@ object ImmerseWorld { } fun immerseSeersAndCatherby(){ - GeneralBotCreator(SeersMagicTrees(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.AVERAGE, Location.create(2702, 3397, 0))) GeneralBotCreator(SeersFlax(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.POOR, Location.create(2738, 3444, 0))) GeneralBotCreator(FletchingBankstander(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.AVERAGE, Location.create(2722, 3493, 0))) GeneralBotCreator(GlassBlowingBankstander(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.AVERAGE, Location.create(2807, 3441, 0))) - GeneralBotCreator(Location.create(2805, 3435, 0), LobsterCatcher()) } fun immerseLumbridgeDraynor(){ @@ -55,9 +53,6 @@ object ImmerseWorld { GeneralBotCreator(ManThiever(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.POOR,Location.create(3235, 3213, 0))) GeneralBotCreator(FarmerThiever(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.POOR,Location.create(3094,3243,0))) GeneralBotCreator(FarmerThiever(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.POOR,Location.create(3094,3243,0))) - GeneralBotCreator(DraynorWillows(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.values().random(),Location.create(3094, 3245, 0))) - GeneralBotCreator(DraynorWillows(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.values().random(),Location.create(3094, 3245, 0))) - GeneralBotCreator(DraynorWillows(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.values().random(),Location.create(3094, 3245, 0))) GeneralBotCreator(DraynorFisher(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.POOR,Location.create(3095, 3246, 0))) GeneralBotCreator(DraynorFisher(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.POOR,Location.create(3095, 3246, 0))) GeneralBotCreator(DraynorFisher(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.POOR,Location.create(3095, 3246, 0))) @@ -83,10 +78,6 @@ object ImmerseWorld { } } - fun immerseFalador(){ - GeneralBotCreator(CoalMiner(), skillingBotAssembler.produce(SkillingBotAssembler.Wealth.POOR,Location.create(3037, 9737, 0))) - } - fun immerseSlayer(){ GeneralBotCreator(GenericSlayerBot(), assembler.produce(CombatBotAssembler.Type.MELEE,CombatBotAssembler.Tier.HIGH,Location.create(2673, 3635, 0))) }