Dreamliner Posted September 30, 2013 Share Posted September 30, 2013 (edited) I'm using this as my personal log for this project I've been working on -I'm making a bot which has a universal monster killer which is geared toward the slayer task you're doing.On start of the script, it checks the slayer gem to parse your task and amount. That is saved in the bot and used as reference to which monster it needs to kill.It then starts killing the monsters until it reaches 0, teleports out of there and grabs another task from duradel.A few little features I've built into it so far is guthan's support, support for anti poisons, support for super sets, quick weapon/armor switching for specs and time sensitive guthan healing.I'll be posting some screen shots and a daily change log at the bottom of this post.This sort of bot would take a very long time to fully automate due to issues with path finding etc, so I'm doing the best I can to have human walking with automated slaying.I don't think I'm going to release the bot, due to improbability of making this completely flawless.- but we will see in the future.Current task support (flawless buggy not started) Hellhounds Kalphites Aberrant Spectres Turoths (this task sucks - i always skip it) Banshees Wolves (gets stuck looking for the closest wolf and has to run through the mountain to get to it) Greater Demons (current task, need to figure out what to do with the dogs) Fire Giants Bats To-Do List fix finding closest npc - often it finds one closest which it has to run around a wall to get to fix tasks that have agressive non slayer task monsters make sure bot stays in agro'd area such as greater demons w/ dogs Current features Guthans Poison Support Equipment variations per task Checks for slayer item required to kill monsters (nosepeg etc) Super sets Enables piety on DDS spec Per task area support (more) Updates- 10/03/2013 - Did a few updates (too many to remember/list)10/02/2013 - Been very busy at schoolChangelog9/29/2013 Added fully working task prayer for certain tasks (aberrant specters etc) Added anti-ban Added a definable boundary area for tasks - initially set to the whole world, and altered by each individual task - it wont attack monsters outside of the area (hardcoded) Added antipoison support for kalphite tasks Added ledge support for hell hounds under taverly Fixed speed issue with guthan switching Added varying equipment per task (initiate for prayer/regular stuff for normal tasks) and many more Edited October 3, 2013 by dreamliner Link to comment Share on other sites More sharing options...
Brown Posted September 30, 2013 Share Posted September 30, 2013 Dayum, that's soo siick. Link to comment Share on other sites More sharing options...
amghugs Posted September 30, 2013 Share Posted September 30, 2013 this is amazzzinggg Link to comment Share on other sites More sharing options...
Dreamliner Posted October 2, 2013 Author Share Posted October 2, 2013 Updated OP Link to comment Share on other sites More sharing options...
Anaesthetic Posted October 4, 2013 Share Posted October 4, 2013 There is function to get the Nearest NPC, I'm pretty sure. Link to comment Share on other sites More sharing options...
lordrouse Posted October 4, 2013 Share Posted October 4, 2013 sounds nice. im waiting! Link to comment Share on other sites More sharing options...
Dreamliner Posted October 4, 2013 Author Share Posted October 4, 2013 (edited) There is function to get the Nearest NPC, I'm pretty sure. There is. I find it more useful to scan thru all NPC's and find ones with the slayer task in their name - it's more universal private NPC getClosestAttackableNPC(String s, Area a) { Player p = this.client.getMyPlayer(); List<NPC> npclist = this.client.getLocalNPCs(); NPC b = null; double d = 20.0; if (a == null) { a = new Area(0, 0, 20000, 20000); } if (npclist != null) { NPC facing = null; int lowhp = 101; for (NPC n : npclist) { if (n.isInArea(a)) { if (n.instance.getDefinition().getCombatLevel() > 0) { if (n.isFacing(p)) { if (n.getPosition().distance(p.getPosition()) < 4) { if (n.getHealth() < lowhp) { lowhp = n.getHealth(); facing = n; } } } } } } for (NPC n : npclist) { if (n.getName().toLowerCase().contains(s)) { if (n.instance.getDefinition().getCombatLevel() > 0) { if (!n.isUnderAttack()) { if (n.isInArea(a)) { if (n.getHealth() > 0) { if (n.getPosition().distance(p.getPosition()) < d) { d = n.getPosition().distance(p.getPosition()); b = n; } } } } } } } if (d > 5) { return b; } else if (facing != null) { return facing; } } return b; } Just realized I can condense this code quite a bit - will do that when i get back Edited October 4, 2013 by dreamliner Link to comment Share on other sites More sharing options...