Jump to content

Bobrocket

Members
  • Posts

    1664
  • Joined

  • Last visited

  • Days Won

    4
  • Feedback

    100%

Posts posted by Bobrocket

  1. Seems like mirror client is barely getting updated ... 

    I would even say that mirror is unuseable atm.

     

    Walking gets stuck once in a while,

    Widgets seems to fuck up at grandchildren.

    For some reason strange sthings happends everytime you run on mirror.

     

    As soon as you run the default injection, everything runs perfectly.

    Not even a single issue biggrin.png

     

    MGI can this please be fixed!?

    Customers are pissing me off reporting the same mirror bugs over and over.

    Or should I redirect them directly to you? doge.png

     

    Khaleesi

     

    Release notes:

    • Miscellaneous bug fixes
    • Other miscellaneous bug fixes

     

    MAC/LINUX users please note:

     

    Mirror mode was originally designed for windows, and is optimized the most for it.

    And while it's now supported on OS X & LINUX - the performance of it is best when used on windows.

  2. @Paradox68 doge.png

    Oh wait, he's banned

    Just a friendly tip that another up and coming scripter got banned for exactly this (releasing a downloadable script that's already available only as premium scripts). There was some extra bits to it, such as that member being an incredible asshole, but if you get asked to take it down then I would recommend you do so smile.png

     

    Good luck!

  3. This is pretty beast.

    Have no idea how it works but I'm going to figure it out.

     

    Thank you! smile.png

     

    Thanks apa, too smile.png

     

    My streams tutorial can somewhat explain what's happening.

     

    We filter our GroundItems list to the following conditions:

    • They aren't null (!= null)
    • They exist (.exists())
    • Their names are not in the forbidden list (!forbiddenNames.contains(gi.getName()))

    This will return a list with any ground item that isn't Bones or Coins.

    • Like 1
  4. 
    

    List<String> forbiddenNames = Arrays.asList(new String[] { "Bones", "Coins" });

    getGroundItems().getAll().stream().filter((gi) -> (gi != null && gi.exists() && !forbiddenNames.contains(gi.getName()))).collect(Collectors.toList());

  5. Alright, here is a reasonable example of why you want to have control:

     

    Monster X is found in two regions, Region A and Region B.

     

    NPC monsterX = getNPCs().closest("Monster X");

    if(monsterX != null)

    monsterX.interact("Attack");

    else if (regionB.contains(myPlayer())

    walk(new Path(regionA))

     

    Not using null checks:

    getNPCs().closest("Monster X").interact("Attack"); //Does nothing, doesn't go to a different region

    Not using null checks with region switching:

    NPC monsterX = getNPCs().closest("Monster X");

    if(!monsterX.getPosition.equals(new Position(-1, -1, 0)) //See where I'm going with this?

    monsterX.interact("Attack")

    else if (regionB.contains(myPlayer())

    walk(new Path(regionA));

     

    You could do some hard spaghetti crap and make booleans for new NPC instances, but that's a hundred times worse than returning null. It's totally fine for scripters to do this because you guys know exactly what to expect from the behavior of your script. From our standpoint, this would be a nightmare.

    if (regionB.contains(myPlayer()) walk(regionA);
    else if (getNpcs().closest("Monster X").interact("Attack")) log("attacked");
    
    

    would work fine as an alternative.

  6. 1001.

    My logic:

    From 1-2000 there are 2000 combos.

    There are only 1000 even combos within the 2000.

    Finally 0 is an even number so we carry it over.

    = 1001

    he said the answer was 9999 and I'm saying no it is 10 000. That's all.

     

    The reason people think it's 9999 over 10000 is because we start to count at 1, not 0. This is why programming is hard for a lot of people, especially with arrays, because they try to access index 1 as if it's index 0.

    Things would be a lot easier if we started counting from 0, not 1.

     

    My logic for 0000-9999 would be 10^4.

    Where 4 is the max number of digits, and 10 since we're working in base 10. (you can have a maximum of 10 different states per digit in base 10; 0-9)

  7. And now we get a huge philosophical debate about the proper use of nulls, etc etc etc.

     

    Tbh I wish everyone would just use the OSBot API, but I understand the compulsion people feel to making their own APIs to enhance features and work around bugs.

     

    Another reason I wrote this API is easier cross-bot compatibility. Means I rewrite less code, and therefore I have the same code base in case a bug breaks out.

    Within this context, a null is not good. A null means that code that should work perfectly fine will not work. A null means additional checking on the users end, which can cause more problems if they forget. In my case, I pass a omniapi.data.DefaultNPC instance, which simply extends omniapi.data.NPC and is constructed to, simply, not exist. This means there is no NPE when trying to interact (my above post), but it still actually represents nothing. A new scripter is going to try the exact code I highlighted in my above post, realise it doesn't work, and panic because they wrote incorrect code (that is actually correct). I personally don't believe that the API should ever return null, especially in contexts like this.

     

    Lastly, I wrote this API as this is personally what I believe the OSBot API should be like.

    • Like 1
  8. Because you are wrapping around the InteractionEvent which I wrote and then added checks to your method which already exist. None of the checks you have are missing/not handled in IE.

    private org.osbot.rs07.api.model.NPC child;
    
    public NPC(OmniScript script, org.osbot.rs07.api.model.NPC n) {
      super(script);
      child = n;
    }
    
    @Override
    public boolean interact(String... interactions) {
      if (!exists() || !isAlive()) return false;
      if (!hasAction(interactions)) return false;
      if (!child.isVisible()) getCamera().toEntity(child);
      return child.interact(interactions);

    Also you might want to check into why we didn't switch filters over to streams after we upgraded to Java 8. 

    In a region with no "Dwarf" NPCs...

    getNpcs().closest("Dwarf").interact("Attack");
    

    Result: (bot also freezes)

    dbf4e546454347f038fc62bd33dbab38.png

     

    getNPCFinder().findClosest("Dwarf").attack();
    

    Result:

    Nothing, because it's handled.

     

    You shouldn't be returning null for anything (I know this isn't related directly to the interaction method, but it's a fair point), the code for both methods listed is perfectly valid and thus should work no matter what, right? Returning null is also known as the billion dollar mistake, and is for a good reason. NPCFinder will return an instance of omniapi.data.NPC no matter what, whereas NPCS will return either an instance of org.osbot.rs07.api.model.NPC or null. We shouldn't need to null check things like this. In fact, the api docs even states it returns the closest generically specified Entity - mentions nothing about null.

     

    Also, the NPC #closest() methods don't even return the correct closest NPC (even though it should be using Pythagoras' algorithm). I've highlighted this in a thread, which you have likely not read yet, and NPCFinder accounts for this.

     

    Wrapping around IE is temporary, it's there to show it works and I will be writing a custom interaction method very soon.

    • Like 2
  9. it dropped my items at GE? doge.png??????

    Thanks for the 5m nerd

     

    it looks nice man i like it. What do you plan on adding on next?

    Probably better item + widget support

     

    This is nice and all, but to anyone who is serious about learning java, or another programming language, I would suggest that you try to create your own version of something similar to this

    >learning java

    >osbot

     

    uhoh.

     

    Inb4 scripters start copy pasting the entire API into their code sad.png

    Stop bullying me I report you

    • Like 3
  10. https://github.com/Bobrocket/OSBotAPI
     
    Example usage: leaked green dragon killer source



    getNPCFinder().findClosest("Green dragon").attack();
    //OSBot version
    NPC n = getNPCS().closest("Green dragon");
    if (n != null && n.exists() && n.getHealth() > 0 && !n.isUnderAttack() && !myPlayer().isUnderAttack()) n.interact("Attack");
    

    omnipocket leak



    getNPCFinder().findClosest("Man").pickpocket();
    //OSBot version
    NPC n = getNPCS().closest("Man");
    if (n != null && n.exists() && n.getHealth() > 0 && !n.isUnderAttack() && !myPlayer().isUnderAttack()) n.interact("Pickpocket");
    

    Advanced usage: get ge/collect box/bank/poll booth close button

    getWidgetFinder().findFromAction("Close", (widget) -> (widget.getSpriteIndex1() == 535));
    //OSBot version
    cant be fucked l0l
    

    Super simple example script: attacks chickens 24/7

    public int onLoop() throws InterruptedException {
        getNPCFinder().findClosest("Chicken").attack();
        return Constants.TICK;
    }
    
    //OSBot version
    public int onLoop() throws InterruptedException {
        NPC n = getNPCS().closest("Chicken");
        if (n != null && n.exists() && n.getHealth() > 0 && !n.isUnderAttack() && !myPlayer().isUnderAttack()) n.interact("Attack");
        return 600;
    }
    

    Why use my API over the default OSBot one?

    • Handles everything for you. Interacting with an NPC? Null checks, camera movements etc. all handled easily
    • Streamlined, consistent API between data types
    • Click accuracy increased by 5% on moving NPCs (tested against 2.3.136; will dig up test results later)
    • A lot more customisation in Finders vs default OSBot methods (especially with widgets!)
    • #findClosest() actually correctly returns the closest NPC/entity
    • Super easy to implement - just change extends Script to extends OmniScript

    Usage

    • Download the latest zip
    • Drag the omniapi folder into your project (delete Test.java!)
    • Make your script class extend OmniScript instead of Script
    • Make use of the OmniScript API

    Please note the API is updated constantly, so be sure to redownload the zip occasionally!

    • Like 7
  11. I am assuming you're saying that's a good thing right?

    Is the browser useful/safe and do you know if runescape/mirror client can be used on it?

     

    When you run the browser and head to runescape.com, a java applet will run. This can actually grab your real IP (whether or not jagex does this is unknown), however I know that if you run just tor.exe for the proxy and then run the jagex launcher through the tor proxy then it will work just fine.

    • Like 1
  12.  

    "Unable to retrieve signature image dimensions, please try another image."

    Dafuq is this? I get this when I try to put the image in my signature...

    Halp anyone plz?

    (/care about the text atm)

    signature.png?user=flamezzz&script=fclue

    http://www.flamezzz.nl/signature.png?user=flamezzz&script=fcluehuntereasy

    Dimensions = 500x150, even windows can read this so I assume the file is not corrupt in any way.

    signature.php

     

    <?
    
    Header('Content-type: image/png');
    
    .....
    .....
    
    
    $image = @imagecreatefrompng('./cluehuntereasy.png') or die("Picture not found.");
      
    $black = imagecolorallocate($image, 0, 0, 0);
    $white = imagecolorallocate($image, 255, 255, 255);
    imagecolortransparent($image, $black);
    imagealphablending($image, false);
    imagesavealpha($image, true);
    
    .....
    .....
    
    imagettftext($image, 15, 0, 370, 58, $white, $font, $row['solved']);
    imagettftext($image, 15, 0, 370, 107, $white, $font, $runtime);
    imagettftext($image, 15, 0, 370, 153, $white, $font, $profit);
    
    imagettftext($image, 20, 0, 50, 153, $white, $font, $row['name']);
      
    imagepng($image);
    imagedestroy($image);
    
    
    mysql_close();
    
    ?>
    

     

    I think I circumvented this for myself by removing imagealphablending($image, false);. Good luck :D

     

  13. To celebrate my free script, OmniMen, pickpocketing over 500,000 men, I have decided to do a little giveaway.
    You can enter in a few ways:

    • Fill out the short survey listed below in this thread
    • Change your signature to one of those listed below

    You can do both for 2 entries. For your signature entry to be valid, it must remain your signature until the winners are picked. You also must post in the thread saying that you have changed your signature to reflect the ones below.
     
    Survey:


    Have you ever used (or considered) using Omni Scripts? If so, which script(s)?:
    What is your honest opinion of Omni Scripts from either what you have seen or what you have experienced?:
    If you could pick one script for me to make (be reasonable), what would it be and why?:
    Why do you deserve to win one of the prizes?:


     
    Signatures:
    With images

    [center][url=http://osbot.org/forum/topic/83844-999-voucher-script-giveaway-look-inside-bruh/][color=#ffffff][b]Click here for a chance to win a $9.99 voucher along with some scripts![/b][/color][/url][/center]
    [center][b][url=http://osbot.org/forum/topic/76812-omnipocket-beta-thieve-anything-pathfinding-flawless/][img=http://i.imgur.com/h3v1Vhf.png][/url][url=http://osbot.org/forum/topic/81222-][color=#ffa07a][img=http://i.imgur.com/1Rb4nGR.png][/url][/b][/center]
    

    Looks like:
     

    Click here for a chance to win a $9.99 voucher along with some scripts!

    h3v1Vhf.png1Rb4nGR.png

     


    Without images

    [center][url=http://osbot.org/forum/topic/83844-999-voucher-script-giveaway-look-inside-bruh/][color=#ffffff][b]Click here for a chance to win a $9.99 voucher along with some scripts![/b][/color][/url][/center]
    [center][b][url=http://osbot.org/forum/topic/76812-omnipocket-beta-thieve-anything-pathfinding-flawless/][color=#ffa07a][OmniPocket - OSBot's bestest™ thieving script!][/color][/url][url=http://osbot.org/forum/topic/81222-][color=#ffa07a][OmniFletch - OSBot's bestest™ fletching script!][/color][/url][/b][/center]
    

    Looks like:
     

    Click here for a chance to win a $9.99 voucher along with some scripts!

    [OmniPocket - OSBot's bestest™ thieving script!][OmniFletch - OSBot's bestest™ fletching script!]

     

    Applying signatures:

    Go to this page, click the light switch in your editor and paste the correct code inside.

    Click "Save Changes".

     

    Prizes:

    • First Prize - a $9.99 store voucher, OmniPocket and OmniFletch!
    • Second Prize - OmniPocket and OmniFletch
    • Third Prize - Either OmniPocket or OmniFletch (you choose)

    How am I going to pick winners:

    I am going to tally up how many entries each person has and assign a random number to each one. I am going to pick a random entry three times, the first one being the first prize, second being the second prize etc.

    I will announce the winners in this thread and message them as appropriate.

     

    This giveaway will end in 2 weeks from the time I post this (ending on the 19th of October). May the odds ever be in your favour smile.png

    • Like 1
  14. Going to disagree with you somewhat, running http://prntscr.com/8njh72

     

    That's good enough to run two instances of BF4 all on Ultra settings, I know because I've done it before.

     

    OSRS requires CPU over GPU. You can max out about 10 mirror clients on 2x hexa core xeon CPUs for reference.

    • Like 1
×
×
  • Create New...