Everything posted by Tasemu
-
Khal AIO Crafter
I would love cli support, it uses a lot less resources not to have to have to gui open for each bot
-
2 quick questions from a new botter
Hello! 2 quick questions: 1: should i be buying a subscription or a bond for new bots? 2: If i have a brand new bot and want to do bowstrings, what is a good way to get some initial gold? Thanks for any help!
-
Check to wait till npc is dead, and the loot is showing?
Just a question, but to me it appears that it is very possible to handle this logic within the conditional wait loop and even break out if required, is that considered a bad practise for some reason? for example, as long as I return a condition, any other logic I like can be executed within the conditional check loop.
-
Check to wait till npc is dead, and the loot is showing?
I am currently using this conditional wait while fighting an NPC new ConditionalSleep(3000, 500) { @Override public boolean condition() throws InterruptedException { return !currentTarget.isInteracting(myPlayer()) && !myPlayer().isUnderAttack() && !currentTarget.exists(); } }.sleep(); When the NPC dies, my script immediately begins attacking the next npc, then comes back after killing that NPC to loot the first kill. What should I be using here to wait for looting each kill before attacking the next? Much appreciated!
-
Updating local script?
Hrm, i still havent tracked down why it's not updating yet. I am running it through the intellij debugger, and it works when i remove everything from the folder, but then returns to not updating on future builds.
-
Updating local script?
I currently have intellij to build a .jar artifact within the osbot/scripts folder. I have noticed that whenever I build the jar and try to run the script in osbot, the script appears to not update with the changes. For example when I have commented out my entire loop, the bot still tries to kill chickens. I am sure that the .jar is building... and I am pressing refresh in the script manager. What am I missing here?
-
Reliable way to determine if my script is in combat and should sleep?
Hi, i have tried using a few methods to determine if my bot is fighting a cow, running to hit a cow or is under attack and the results seem sketchy at best. I am currently using an expression like this: if (myPlayer().isAnimating() || myPlayer().isUnderAttack() || myPlayer().isHitBarVisible()) { return States.WAIT; } Is there a more generally accepted way to do this out there? Thanks in advance for any advice.
-
Perfect Fighter AIO
@Czar Will you be fixing profile saving on OSX in the near future? It is currently impossible for me to use this script with multiple bots as I need to spend 5 minutes each setting up the preferences for every bot every time I want to use this.
-
Perfect Fighter AIO
I don't think the developer is going to do anything here, he has been on for days in a row but no replies here despite the issues. I'll me making a refund request shortly.
-
Perfect Fighter AIO
Other scripts are working fine yeah?
-
Perfect Fighter AIO
Working fine for me, what is the actual error you're getting here?
-
Perfect Fighter AIO
Any word on saving profiles in mac/linux? it's broken and I really need this for cli support.
-
Explv's Walker
Any word on this break before I buy?
-
Perfect Fighter AIO
Purchased a few days ago, i wanted to try and save my fighter profile for use with CLI but [save, saveAs, open] menu items appear to do nothing. (using OSX)
-
Fresh account right out of tutorial island, how can I make enough gold for quests?
Would buying a bunch of gold on a new account to use as a mule not look suspicious as hell?
-
Fresh account right out of tutorial island, how can I make enough gold for quests?
Hi there! I'm fairly new here but am enjoying learning so far. I currently have a new account that is sitting in lumby and I am eager to complete the 3 quests to get 7gp using a free bot on the forum. However the bot required 100k gold to do the quests. How would I go about getting this 100k (ideally automated using another bot) so that I am able to complete these quests and remove my trade-limit? Much obliged for any advice
-
Khal Tutorial Island
I purchased this, it seems alright though it hung both at the very beginning and when trying to cook bread. It seems it was not waiting to click the dialogue box and trying to cook the bread, which the client was not allowing.
-
Hold script from running while logging in?
public boolean isLoggedIn() Returns if you are currently logged in. Returns: True if logged in and not logged out or 'loading please wait...'. Is the api docs out of date? or is the description wrong?
-
Hold script from running while logging in?
Any checks for world loaded? Maybe checking if the character is visible...? lol
-
Hold script from running while logging in?
I've noticed when running OSBot in debug mode I am getting a lot of null pointer errors because my bot is not logged in yet and the world has not loaded. Is there a best practise method for holding the script until the world is correctly loaded in? Cheers!
-
Tasemu's Descrete Seagulls! | FREE | First Script | Open Source | CnC Welcomed!
I haven't included a .jar file as I assumed the SDN is already inundated with basic combat scripts. You can easily compile this yourself with eclipse. Would you like me to upload the jar?
-
Tasemu's Descrete Seagulls! | FREE | First Script | Open Source | CnC Welcomed!
Sweet, how do you mean man? just have each method check if it should be running itself? Is that similar to a task based script or do you mean something else? ^^
-
Tasemu's Descrete Seagulls! | FREE | First Script | Open Source | CnC Welcomed!
Hey guys, here is my first script for OSBot. The first of hopefully many more. I have open sourced it and you can find the script and the link to Github online. Please feel free to post any comments and constructive criticism of my script right here and don't be shy as I hope to get a few new techniques out of this share to improve my future scripts. If you wanna say thanks for the script then that would also make me pretty happy haha. Welp enjoy ^^ Credits to so many awesome people on this forum. If you have posted on one of my threads, or if I have used a method you shared then please post below and i'll credit you for sure! Progress reports coming soon... running it now. Github: https://github.com/Tasemu/osbot_descrete_gulls (fork me baby) package descrete_gulls; import org.osbot.rs07.api.map.Area; import org.osbot.rs07.api.model.NPC; import org.osbot.rs07.api.ui.Skill; import org.osbot.rs07.api.util.GraphicUtilities; import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import org.osbot.rs07.utility.ConditionalSleep; import java.awt.*; import java.util.EnumSet; @ScriptManifest(author = "Tasemu", info = "Kill seagulls at Port Sarim", name = "Descrete Gulls", version = 1.1, logo = "") public class main extends Script { private Area docks = new Area( new int[][]{ { 3026, 3241 }, { 3030, 3241 }, { 3030, 3238 }, { 3047, 3238 }, { 3047, 3234 }, { 3030, 3234 }, { 3030, 3211 }, { 3026, 3211 }, { 3026, 3216 }, { 3018, 3216 }, { 3018, 3220 }, { 3026, 3220 } } ); private NPC target; private enum State { WAIT, WALK, ATTACK }; private EnumSet<Skill> skillToTrain = EnumSet.of(Skill.ATTACK, Skill.STRENGTH, Skill.DEFENCE, Skill.HITPOINTS); private long startTime; private int gullsKilled = 0; @Override public void onStart() { log("Welcome to Descrete Gulls."); log("version: " + getVersion()); startTime = System.currentTimeMillis(); for (Skill skill : skillToTrain) { getExperienceTracker().start(skill); } } private State getState() { NPC gull = getNpcs().closest("Seagull"); if (target != null && myPlayer().isInteracting(target)) return State.WAIT; if (!docks.contains(myPlayer())) return State.WALK; if ( gull != null && !gull.isUnderAttack() && !gull.isHitBarVisible() ) return State.ATTACK; return State.WAIT; } @Override public int onLoop() throws InterruptedException { switch (getState()) { case ATTACK: target = getNpcs().closest("Seagull"); if (target != null) { if (target.interact("Attack")) { new ConditionalSleep(random(3000, 5000)) { @Override public boolean condition() throws InterruptedException { return target != null && target.getHealthPercent() > 0; } }.sleep(); } } break; case WALK: getWalking().webWalk(docks); break; case WAIT: if (target != null && target.getHealthPercent() == 0) { this.gullsKilled++; this.target = null; } if (this.getDialogues().isPendingContinuation()) { this.getDialogues().clickContinue(); } sleep(random(500, 700)); break; } return random(200, 300); } @Override public void onExit() { log("Bye!"); } @Override public void onPaint(Graphics2D g) { final long runTime = System.currentTimeMillis() - startTime; drawMouse(g); g.setColor(Color.WHITE); g.drawString("Descrete Gulls Public v" + this.getVersion(), 10, 40); g.drawString("Status: " + getState().toString().toLowerCase() + "ing", 10, 55); g.drawString("Time running: " + formatTime(runTime), 10, 70); g.drawString("Gulls Wasted: " + this.gullsKilled, 10, 85); int trainingPaintMargin = 0; for (Skill skill : skillToTrain) { if (getExperienceTracker().getGainedXP(skill) > 0) { g.drawString(skill.toString().toLowerCase() + " xp: " + getExperienceTracker().getGainedXP(skill), 10, 100 + trainingPaintMargin); trainingPaintMargin += 15; } } if (target != null && target.exists()) { g.setColor(Color.RED); GraphicUtilities.drawWireframe(getBot(), g, target); } } public final String formatTime(final long ms){ long s = ms / 1000, m = s / 60, h = m / 60; s %= 60; m %= 60; h %= 24; return String.format("%02d:%02d:%02d", h, m, s); } private void drawMouse(Graphics graphics) { ((Graphics2D) graphics).setRenderingHints( new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)); Point pointer = mouse.getPosition(); Graphics2D spinG = (Graphics2D) graphics.create(); Graphics2D spinGRev = (Graphics2D) graphics.create(); spinG.setColor(new Color(255, 255, 255)); spinGRev.setColor(Color.cyan); spinG.rotate(System.currentTimeMillis() % 2000d / 2000d * (360d) * 2 * Math.PI / 180.0, pointer.x, pointer.y); spinGRev.rotate(System.currentTimeMillis() % 2000d / 2000d * (-360d) * 2 * Math.PI / 180.0, pointer.x, pointer.y); final int outerSize = 20; final int innerSize = 12; spinG.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); spinGRev.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); spinG.drawArc(pointer.x - (outerSize / 2), pointer.y - (outerSize / 2), outerSize, outerSize, 100, 75); spinG.drawArc(pointer.x - (outerSize / 2), pointer.y - (outerSize / 2), outerSize, outerSize, -100, 75); spinGRev.drawArc(pointer.x - (innerSize / 2), pointer.y - (innerSize / 2), innerSize, innerSize, 100, 75); spinGRev.drawArc(pointer.x - (innerSize / 2), pointer.y - (innerSize / 2), innerSize, innerSize, -100, 75); } }
-
Painting over current target NPC
I want to have a paint over my current target npc. I have had a look through the NPC api and have found information regarding their coordinates on the map, but am unsure how to get the coordinates to paint over the model. Does anyone have any advice on this subject? Cheers!
-
having real issues checking for combat
Hey there, is there a decent check for my player being in or out of combat? And what about other players? I'm seeing spash bots in the chicken areas and I cannot find any combination of checks (yet) in the api to handle it. My current home-made combat checking is pretty flakey, and if people are splashing spells then my script is trying to take their chickens haha ^^