Jump to content

yfoo

Lifetime Sponsor
  • Posts

    238
  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    100%

Everything posted by yfoo

  1. Unpatch the client. It is done the same way you patched the client.
  2. Does activate mean I have to press 1,2,3,4 when the event starts OR is it enable/disable the events the script is allowed to do?
  3. I think this is a case where the numpad 1 and the 1 below the f keys are considered to be different.
  4. yfoo

    Switch to C++

    a switch to the c++ client is in the works.
  5. Some sequences used by me. You can copy/paste them here instead of making your own. Name the whatever you want BUT they must have the .json file extention. C:\Users\<Your Windows Account>\OSBot\Data\Blast_Miner North East Meta. Same as what is shown on the wiki (https://oldschool.runescape.wiki/w/Blast_mine/Strategies#North-east) North West Meta. (https://oldschool.runescape.wiki/w/Blast_mine/Strategies#North-west_8-rock)
  6. yBlastMine Why do it when I can do it for you. This is a preview thread. The script is complete except minor pieces (handle clue geodes, pick up ore from NPC, add prebuilt sequences, update UI) It will be released after Osbot moves to C++ client. New issues may arise when the client is updated. Features Create a unique blast mining sequence exclusive to you. Load multiple sequences, the script will randomly switch between them Failsafe! Multiple consecutive failures will automatically stop the script. Anticrash Auto Random Event + Genie Support Script Setup Documentation 1. On startup, A GUI will appear with the following options. If this is your first run of this script, you will have to create your own sequence. Click the Record Sequence button to proceed. 2. The Osbot painter will highlight positions of interest to blast-mining. For your convivence, clicking highlighted positions will not pass the click to Runescape, meaning you can select positions without moving your character. You can still move by clicking any non-highlighted position. - CYAN WITH NUMBER + GREEN WALLS: Positions you selected, Number indicates their selection order. The highlighted green walls indicate the what will be interacted with at that position. - CYAN: Positions that can be selected. Hovering turns them yellow. Click to select. - YELLOW: The current hovered position. 3. When you are finished, click the Save Sequence button to open a separate window to save your sequence. Sequences are saved in your Osbot folder (C:\Users\<Your Windows Account>\OSBot\Data\Blast_Miner). The files created by this script are openable by any text editor. This is the contents of the file I just saved in this demo; it is a list of positions. ``` [ { "x": 1472, "y": 3870, "z": 0 }, { "x": 1472, "y": 3872, "z": 0 }, { "x": 1475, "y": 3876, "z": 0 }, { "x": 1476, "y": 3879, "z": 0 } ] ``` 4A. When The sequence is saved, the original GUI in Step 1 will reappear. After clicking the Load from JSON button, a file explorer window will allow you to select the newly created sequence. Selecting and opening a file will preview that sequence in the osbot painter. You can now start the script, your character will now follow the sequence you've created. 4B. When selecting sequence files, you can elect to select more than one. The script will randomly select a sequence to execute for a random number of cycles. Afterwards another sequences will be randomly selected. This will repeat for the script's duration. ex: Sequence1 (10 cycles) -> Sequnce3 (15 cycles) -> Sequence2 (13 cycles) -> Sequence1 (17 cycles) -> ...
  7. Mirror lags behind a day or 2 unfortunately.
  8. Wow really nice. Mind adding a random gaussian sleep after all bars have been smelted before banking?
  9. Use ```inventory.interact(13,"Use"))``` To select slot 13. followed by ```inventory.interact(14, USE)```. Here is how I dod mine private boolean combineComponents() throws InterruptedException { int[] slotPair = getInvSlotPair(); Item item1 = inventory.getItemInSlot(slotPair[0]); Item item2 = inventory.getItemInSlot(slotPair[1]); boolean notNull = item1 != null && item2 != null; boolean notSameItem = notNull && item1.getId() != item2.getId(); // Assert Item1 and 2 are the equivalent items determined at script start (ItemA and B). // Not foolproof, but a simple method boolean sumTo0 = notNull && (item1.getId() + item2.getId() - itemA.getId() - itemB.getId() == 0); boolean canUseSlotPair = notSameItem && sumTo0; if (canUseSlotPair && inventory.interact(slotPair[0], USE)) { ScriptPaint.setStatus("ItemA -> ItemB"); sleep(randomGaussian(300, 100)); return inventory.isItemSelected() && inventory.interact(slotPair[1], USE); } else { ScriptPaint.setStatus("ItemA -> ItemB w/ backup interaction"); if (inventory.interact(USE, itemA.getId())) { sleep(randomGaussian(300, 100)); return inventory.isItemSelected() && inventory.interact(USE, itemB.getId()); } } return false; }
  10. When I wrote it like 2 weeks ago it worked. You need to override the break manager with an instance of the class Put this in onStart bot.getRandomExecutor().overrideOSBotRandom(BreakManagerHook.initInstance(bot)); Then use this to start a break early. BreakManagerHook.getInstance().startBreakEarly();
  11. yfoo

    Speedrun Quester

    Gets stuck on black knights fortress, It attempts to enter through the wrong door, it should go through the single doors next to the guards. https://ibb.co/t3Ghqqb
  12. That works sure, but why not just rwt gold then buy bonds. Cheaper than using pesos probably. Buy from a private seller rather than a major site, less chance of being rwt flagged. .
  13. This was the end result I settled with. I also happened to need a hook to know when the break ended to potentially check if my position was crashed while I was away. The OnExit() allows me to know that. For now I'm not doing anything with it just logging (log("Return from break!");) package Util; import org.osbot.rs07.Bot; import org.osbot.rs07.randoms.BreakManager; public class BreakManagerHook extends BreakManager { private volatile boolean breakEarly; private volatile boolean shouldActivateCalled; private static BreakManagerHook instance; public static BreakManagerHook getInstance() { if(instance == null) { throw new NullPointerException("ExcavatePlantIgnite is null"); } return instance; } public static BreakManagerHook initInstance(Bot bot) { instance = new BreakManagerHook(bot); return instance; } private BreakManagerHook(Bot IiIiiiIiiII) { super(IiIiiiIiiII); } @Override public synchronized boolean shouldActivate() { if(breakEarly && !shouldActivateCalled) { log(String.format("Thread %d notifying...", Thread.currentThread().getId())); shouldActivateCalled = true; this.notify(); } if(super.shouldActivate() && breakEarly) { breakEarly = false; log("breakEarly -> false"); } return super.shouldActivate() || breakEarly; } @Override public void onExit() { super.onExit(); log("Return from break!"); } public synchronized void startBreakEarly() throws InterruptedException { breakEarly = true; shouldActivateCalled = false; while (!shouldActivateCalled) { log(String.format("Thread %d waiting until shouldActivate() called...", Thread.currentThread().getId())); this.wait(); } log("Exited startBreakEarly"); } }
  14. Yes, I do not want a break to happen at a certain time. I was working on a blast mining script If there was not enough time remaining before break to do cycle then start the break early.
  15. Ok this seems to work. shouldActivate() gets called multiple times, so I have to "short circuit" it. @Override public boolean shouldActivate() { if(breakNow) log("Early breaking"); return super.shouldActivate() || breakNow; }
  16. I want to start a break early. This doesn't work. OSB logs "Started random solver : " then immediately calls onExit, skipping BreakManager's onloop. package Util; import org.osbot.rs07.Bot; import org.osbot.rs07.randoms.BreakManager; public class BreakManagerHook extends BreakManager { private static boolean breakNow = false; public BreakManagerHook(Bot IiIiiiIiiII) { super(IiIiiiIiiII); } @Override public boolean shouldActivate() { if(super.shouldActivate() || breakNow) { breakNow = false; return true; } return false; } @Override public void onExit() { super.onExit(); log("Return from break hook!"); } public static void startBreakNow() { breakNow = true; } }
  17. Wow, I didn't even know this was a thing in the game.
  18. Path is wrong. its in /res, and getScriptResourceAsStream("img.png") does not have /res in it.
  19. yfoo

    Khal Utilities

    For the time being, you can use one of the GE NPCs to "decant" your rings just like how potions work.
  20. yfoo

    Super Stealer

    That is strange, I've ran this script on paladins alot and I've never died. Give me your location used, inventory setup, and account HP and I can take a look.
  21. OSRS (as of now) doesn't use kernal anticheat, so no need yet for crazy solutions involving 2 computers and DMA. Its pattern matching banned account play patterns and a bit of client detection. Assuming client detection is not an issue, switching up tasks and "playing like a player" mostly handles the pattern matching designed to catch bot farms building accounts in a particular way. RN most major bots hook onto use the legacy java client which apparently is ~90% bots according to Jagex. Maybe a year from now, we would have likely switched into the c++ new client. There maybe some hiccups with detection with early versions but with trial and error things get figured out like RS3. Then Jagex does some other BS down the line and the cycle repeats.
  22. Script doesn't exist publicly. You must code it yourself or commission someone to do it for you.
×
×
  • Create New...