Jump to content

Hayase

Members
  • Posts

    159
  • Joined

  • Last visited

  • Feedback

    100%

Posts posted by Hayase

  1. 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();
      }
    }

     

  2. 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.

  3. 4 minutes ago, dormic said:

    Why don't you write an automatic muling script? I use it all the time without any bans.

    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.

  4. 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. 

  5. 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):

    1529456063.png

    Alternative setup if you want to look different:

     1530392713.png

    Be combat lvl 30-40 if you want to avoid getting pk'd 

    1530474506.png

    But even in that range you might still get pk'd (After this incident I added an anti-pk measure against mages [line 640])

     1530257476.png

    And you might die inside the abyss

    1530331934.png

    But if you are interested here's the only progress report I saved:

    1530585555.png

     

    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

    • Boge 2
  6. 10 hours ago, Sky said:

    Well. Don't keep us waiting. Get to the interesting part!

    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.

     

    :feels:

  7. 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 :gnome:

  8. 7 hours ago, Explv said:

     


    I'm confused as to why you need a break condition. Could you try to explain it more clearly?

    What is the InteractionEvent(path) for?

    What exactly is your use case here, what are you trying to achieve? There is a probably a simpler way to achieve it

    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");
    }

     

  9. 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.

  10. 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:

    1. Inventory not full and cows nearby? Pickup some shit.
    2. Inventory full? Go bank
    3. 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

    • Like 2
  11. 58 minutes ago, blokus said:

    You're beautiful :) ya i've been playing with objects.closest for a few days now, this time I'm trying to randomize things a bit and gain better control over my script.

     

    Can you explain the t -> t!= null? All i have is c,c++ experience. I've noticed in paint it's 'g ->', how do you know, and what does it mean? 

    It's just syntax you can use whatever name you want there.

    https://www.mkyong.com/java8/java-8-streams-filter-examples/

  12. On 6/20/2017 at 3:00 PM, blokus said:

    Hey there, I've been trying to learn how to organize object lists, desperately need help with this.

    When I call List<RS2Object> it returns a whole page of hex numbers and id, i'm not sure what to do with it. 

      Reveal hidden contents

    [INFO][Bot #1][06/20 06:03:08 PM]: [org.osbot.rs07.api.model.WallObject@177b570c, org.osbot.rs07.api.model.GroundDecoration@19bcab93, org.osbot.rs07.api.model.WallObject@1d833c7c, org.osbot.rs07.api.model.GroundDecoration@5881a1a8, org.osbot.rs07.api.model.WallObject@158f4e83, org.osbot.rs07.api.model.GroundDecoration@69139f92, org.osbot.rs07.api.model.WallObject@6df72e10, org.osbot.rs07.api.model.GroundDecoration@38ae5ee7, org.osbot.rs07.api.model.WallObject@573af427, org.osbot.rs07.api.model.GroundDecoration@22201e5d, org.osbot.rs07.api.model.WallObject@76f323a7, org.osbot.rs07.api.model.WallObject@3ce002f8, org.osbot.rs07.api.model.GroundDecoration@3cfb428f, org.osbot.rs07.api.model.GroundDecoration@1e8b61bb, org.osbot.rs07.api.model.GroundDecoration@710a87d6, org.osbot.rs07.api.model.GroundDecoration@4d41accd, org.osbot.rs07.api.model.GroundDecoration@2b4870d0, org.osbot.rs07.api.model.GroundDecoration@6e0b5abb, org.osbot.rs07.api.model.GroundDecoration@4b9a549b, org.osbot.rs07.api.model.GroundDecoration@bfdaee1, org.osbot.rs07.api.model.GroundDecoration@63db81be, org.osbot.rs07.api.model.GroundDecoration@5731d1fc, org.osbot.rs07.api.model.GroundDecoration@4e16690d, org.osbot.rs07.api.model.GroundDecoration@28fa4c88, org.osbot.rs07.api.model.GroundDecoration@1793ee58, org.osbot.rs07.api.model.GroundDecoration@4ef47367, org.osbot.rs07.api.model.GroundDecoration@335725b5, org.osbot.rs07.api.model.GroundDecoration@4933a15b, org.osbot.rs07.api.model.GroundDecoration@41da670b, org.osbot.rs07.api.model.GroundDecoration@2c584b1c, org.osbot.rs07.api.model.InteractableObject@2628a9af, org.osbot.rs07.api.model.GroundDecoration@72c5fd48, org.osbot.rs07.api.model.InteractableObject@2628a9af, org.osbot.rs07.api.model.GroundDecoration@60b52e24, org.osbot.rs07.api.model.GroundDecoration@edb9985, org.osbot.rs07.api.model.GroundDecoration@6d5d3c20, org.osbot.rs07.api.model.GroundDecoration@302fa37e, org.osbot.rs07.api.model.GroundDecoration

    This goes on for quite a lot longer^

    What i want: to find all potatoes on screen and make a list of closest to furthest from my character. Also will want to know which tile each is on if possible. Thanks in advance <3

    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!

    • Like 2
  13. 17 hours ago, Alek said:

    You didnt mention if you were using multiple tabs, multiple clients, etc. This doesnt help me at all. 

    Edit: I was able to reproduce the bug, but I'm not sure if what I fix will fix your issue.

    I'm having the same problem except it happens over long periods of botting.

    If I start the bot, no input works. If I bot for 5-10 hrs and come back to check on progress for whatever reason my mouse is able to bypass the no input setting. It happens over time.

    • Like 1
  14. 16 minutes ago, The Undefeated said:

    Can confirm that this works, just do a null check on getParameters().

     

    Doesn't work for me, attempting, "-allow nointerface" just says "null" for me. I can't sort any arguments from "-allow"

    log("Parameters set: " + getParameters());

     

    8 minutes ago, Alek said:

    He asked specifically for CLI arguments in general, which I don't think scripters can access. The only thing you can grab is script parameters from CLI. In general, all scripts should be fully usable without any specific OSBot settings enabled or disabled.

    I was looking for was a way to hop worlds on the logout screen to run away from PKers and the only way to do it is by having norandoms turned off or else the auto login just brings you back in to die, :feels:

×
×
  • Create New...