-
Posts
159 -
Joined
-
Last visited
-
Feedback
100%
Profile Information
-
Gender
Male
Hayase's Achievements
![Rank: Steel Poster (4/10) Steel Poster](https://osbot.org/forum/uploads/set_resources_22/84c1e40ea0e759e3f1505eb1788ddf3c_default_rank.png)
Steel Poster (4/10)
43
Reputation
-
This means that This means that This means that
-
Your inv variable is not in the proper scope of your script. You are checking if the inventory is full in your onloop, but your inv variable is outside of the onloop, maybe it's right but it looks wrong to me. Also you are using a while loop which is frowned upon because your onloop is already an endless loop. Two endless loops is redundant. All you need to do is check if your player is animating there is a function. myPlayer().isAnimating() I think. The way I would do it would be this: if (!myPlayer().isAnimating()) { RS2Object Bubul = getObjects().closest(1530);//bubbles if (Bubul != null) { Bubul.interact("Net"); new ConditionalSleep(5_000) { @Override public boolean condition() throws InterruptedException { return myPlayer().isAnimating(); } }.sleep(); } }
-
Is there a way to turn off the paint while recording? I'm trying to record an NMZ session and it gets extremely laggy when drawing the ghost mouse position. Playback is fine when I can hide the paint but recording needs to be hidden as well.
-
I already have one it's just I'm tired of my methods and want something new For example I was thinking of crafting nats and having an essence mule farm just walking to the ruins and trading 1 account to craft, but it would require an army of like 5 to be profitable and requires members on all 5. It's a risk but an idea.
-
It's the dream right? No one wants to share their methods though. I've tried these methods: Wcing trees and then staying at oaks forever, this was okay gp/hr but required muling to stay okay Mining clay in dwarven mines, this is actually 60-100k/gp hr and great but required more frequent muling Abyss RCing on a lvl 35--this took too much effort to get started Buying runes at mage bank was a low ban rate script that made 100k+/hr Tried telegrabbing nats in the wild but it was bad gp/hr + risk getting pked Looting cowhides was decent gp/hr but not really worth it What are your methods that work? I don't think there is a method that works effectively without muling.
-
Hey guys I made an abyss script and it works but it doesn't have a setup GUI and it has a few requirements. This script requires you have trout in the bank to heal, and plenty of glories of any charge to be used. I usually had 30 charged glories and would sell the uncharged for charged when I muled the gold over. Also you need to have a pickaxe. Here's a picture of a ideal setup (account is already banned dw): Alternative setup if you want to look different: Be combat lvl 30-40 if you want to avoid getting pk'd But even in that range you might still get pk'd (After this incident I added an anti-pk measure against mages [line 640]) And you might die inside the abyss But if you are interested here's the only progress report I saved: I have attached the script below and currently the script is configured for double cosmics. The exp value needs to be changed to reflect what rune you are crafting this is how I keep track of how many runes you craft. You need to setup the rune price just in case osbuddy exchange returns a null value. And finally change the rift to whatever rift you want. Change these values to your liking: runeExp = 4/*Cut exp in half for double cosmic calculation*/, runePrice = 110; //nature runes runeExp = 9, runePrice = 190;//set rune price if osbuddy fails private String craftRift = "Cosmic rift"; HashMap<String, Integer> exchangeInfo = getExchangeInfo(564);//Cosmic rune For the script to run you need to wear a shield, have a pick axe equipped, and have ring of life + glories in the bank. Also don't forget the trout! I found the ring of life SOMETIMES does save your life, but isn't really needed. You can remove this feature if you want, actually, you can do whatever you want! Enjoy the Shitty AbyssR fam. Features: Uses small pouches I never added the rest cause I never got them Loots the skill pet if you get lucky anti-mage pk custom interactions with objects sleeps inside bank when you get close to your breaks Tries to survive inside the abyss Eats trout when you get low Some unique statistics This script is getting no updates from me it is purely open source for your own edits. I've included a compiled .jar to test things out. Decompile it at http://www.javadecompilers.com/ if you don't trust it and then PM your favorite scripter to review the spaghetti! Good luck I hope my script will be of use to you in some way AbyssR.jar Main.java Pouch.java EssenceType.java
-
I sent in an appeal and got instantly unbanned! From there I started to become a super bot with 0 breaks and never got banned again. The end.
-
A few days ago I was fortunate and got a 3-day ban. I was surprised because I've never had a temp ban before. I still had like 10m of stuff on the account and waited 6 days to mule it over. When I muled it over I logged out right after and then logged back in ~10 mins later to start botting cause I want to see how far I can bot after being temp banned. After botting for ~15 minutes I turned the script off and was thinking of ways to make the bot last as long as possible and I was thinking of only botting during hours when I'm awake and at the PC. After 30 minutes I quickly change my mind and go back to seeing how far I can last before getting perm banned. I WAS PERM BANNED BEFORE I GOT TO EVEN TEST, LOL! After muling the gold over and botting for 15 mins I got perm'd. The ban says macro major so I guess my script is that bad you get banned after 15 mins
-
Making a custom interaction event break condition
Hayase replied to Hayase's topic in Scripting Help
Escaping the abyss. It's because when you are inside the abyss, you want to spam objects if you are in combat so that you don't die. I'm basically trying to click objects to escape and when I escape I want the interaction to end. However with normal interactions it gets "stuck" on reaching an interaction it cannot reach. So interaction events comes in and it works. However I still get "hung up" on interacting because it still wants to go back to interact with some shit it can't reach. It's not like I'm spamming the objects at 1ms ticks I'm just clicking them if I'm in combat at a 1 second delay. It's nothing hardcore. When I finish Mining through for example, sometimes the script will still be stuck in the interaction and will not want to proceed to the next step of getting inside a rift to craft runes. So normal interactions don't work, I've tried them. if (path != null) { status = "Escaping via " + path.getName(); InteractionEvent escape = new InteractionEvent(path); execute(InteractionBreaker.setBreakCondition(escape.setAction(), () -> escapedAbyss.contains(myPlayer()))); log("Clicked: " + path.getName() + " action(s): " + Arrays.toString(path.getActions()) + " canReach: " + getMap().canReach(path)); log("Started sleeping"); if (myPlayer().isUnderAttack() || escapedAbyss.contains(myPlayer())) afk(720, 1080); new ConditionalSleep(5000) { @Override public boolean condition() throws InterruptedException { return myPlayer().isUnderAttack() || escapedAbyss.contains(myPlayer()); } }.sleep(); log("Stopped sleeping"); } -
Hello, Currently I'm trying to make a InteractionEvent break condition and so far it works 50% of the time, the other 50% of the time it fights itself with some kind of event queue? import org.osbot.rs07.event.Event; import java.util.function.BooleanSupplier; class InteractionBreaker { private InteractionBreaker() { } static Event setBreakCondition(Event event, BooleanSupplier breakCondition) { return new Event() { @Override public void onStart() { try { super.onStart(); } catch (InterruptedException e) { e.printStackTrace(); } event.setAsync(); execute(event); } @Override public int execute() throws InterruptedException { boolean failed = breakCondition.getAsBoolean(); log("InterationBreaker status: " + event.getStatus());//debug never prints this if (failed) { log("InterationBreaker failed? " + event.getStatus());//never shows up in debug event.setFailed(); setFailed(); } return 100; } @Override public boolean isWorking() { log("InteractionBreaker is working");//debug never prints this return event.isWorking(); } @Override public boolean isQueued() { log("InteractionBreaker is queued!");//debug never prints this return event.isQueued(); } @Override public boolean hasFailed() { log("InteractionBreaker hasFailed? " + event.getStatus());//debug never prints this boolean failed = breakCondition.getAsBoolean(); if (failed) { event.setFailed(); setFailed(); } return failed || event.hasFailed(); } @Override public boolean hasFinished() { log("InteractionBreaker hasFinished? " + event.getStatus()); //prints QUEUED for the event status everytime event.setFinished(); setFinished(); return event.hasFinished(); } }; } } And to use it you would do: InteractionEvent escape = new InteractionEvent(path); execute(InteractionBreaker.setBreakCondition(escape.setAction(), () -> escapedAbyss.contains(myPlayer()))); When I'm inside the abyss I spam click the object with a 1 second delay. This usually works unless it's the mine object then it sometimes fights itself when it DOES escape. If I get through the object the script will continue on to the next task, but sometimes it fights itself by running back and fourth between going to the next task and trying to reach an object to interact with. I suspect something is stuck in the queue and I don't know how to proceed.
-
When someone talks about task based script or enum based scripts there's always that other guy: Just use onloop bro! What does that mean though? Well first off you can think of it as normal scripting--it's not new! For an example take a look at this onloop() /** * Just use onLoop() bro * * @return the loop interval * @throws InterruptedException if something fucks up */ @Override public int onLoop() throws InterruptedException { if (!inventory.isFull() && cows.cowsNearby()) { status = "At work--picking up bones and hides..."; bone.pickupBones(); hide.collectHides(); hideCount = hide.getHideCount(); boneCount = bone.getBonerCount(); } else if (inventory.isFull()) { status = "Time to bank"; goToBank.walkToBank(); } else if (!cows.cowsNearby() && inventory.isEmpty()) { status = "Walking to cows for more loot"; cows.walkToCows(); } return random(200, 300); } It's small and concise. One could read it and understand what is going to be happening. Start from the top and work your way down: Inventory not full and cows nearby? Pickup some shit. Inventory full? Go bank Inventory not full and no cows nearby? FIND DEM COWS! It's easy to read, right? Just use onloop() bro Full project has been uploaded to this thread Bank.java CollectBoners.java CollectHide.java Main.java WalkToCows.java
-
It's just syntax you can use whatever name you want there. https://www.mkyong.com/java8/java-8-streams-filter-examples/
-
You do know about the closest function already? RS2Object potato = objects.closest("Potato"); As for the list, you would want to use a filter to filter all rs2objects like so: List<RS2Object> potatoes = objects.filter(t -> t != null && t.getName().equals("Potato") && t.hasAction("Pick")); //hasAction is redundant but it might fix problems if there were fake potatoes you couldn't pick. for (RS2Object potato : potatoes) { //spit out some individual potato positions log(potato.getPosition()); } From here you could find out which tile each potato is on. Good luck!