Jump to content

lisabe96

Members
  • Posts

    821
  • Joined

  • Last visited

  • Feedback

    100%

Posts posted by lisabe96

  1. Worked out a first prototype system for this.

    Wrote a simple fisher around it for testing.

     

     

    So instead of your "script's working" being the main process.

    Now the "human behavior" is the main process.

    If there's no human behavior occurring we allow the script to execute.

    onLoop() {
      * human behavior -> return
      * no human behavior -> handle script process
    

    A little example of some "human behaviors"

    inb4 "this is not right and what the hell is that" -> this is nothing serious yet at this point, no need to cry

    //Min time (s) | max time (s) | approx frequency / hour | Move mouse out of screen for this behavior
    LOSE_FOCUS(1, 3, 100, OutOfScreen.SOMETIMES),
    TOILET(60, 120, 0.35, OutOfScreen.SOMETIMES),
    BIG_TOILET(200, 750, 0.125, OutOfScreen.SOMETIMES),
    TEXTING(3, 20, 20, OutOfScreen.NEVER),
    CALLING(25, 250, 0.1, OutOfScreen.SOMETIMES),
    GRAB_A_DRINK(50, 200, 0.3, OutOfScreen.SOMETIMES),
    GET_FOOD(150, 1000, 0.2, OutOfScreen.SOMETIMES),
    FAP_FAP_FAP_FAP_FAP(200, 1000, 0.05, OutOfScreen.ALWAYS),
    YELL_FIGHT_WITH_MOM(400, 1400, 0.01, OutOfScreen.NEVER),
    BROWSING_WEBSITE(20, 75, 30, OutOfScreen.ALWAYS),
    GET_LOST_IN_A_READ(60, 600, 0.5, OutOfScreen.ALWAYS),
    SMOKING_OUTSIDE(200, 360, 0.5, OutOfScreen.SOMETIMES);
    

    @moving mouse outside screen, i personally don't believe jagex even has a clue about it,

    but It doesn't hurt and "makes it more human-like" for the state of mind;

     

    So yeah, currently testing the system with fishing to get a good view on the system and find out

    what to change/tweak & whatever...

     

     

     

    Edit: I just encountered a nice example of something that a human would encounter but a bot usually does not:

    Ive been standing here for a minute with a full inventory because "I" was at the toilet.

    mzLvaGE.png

    • Like 1
  2. The account is about 2,5 months old.

    No infractions or anything.

     

     

     1. Pictures of the account stats

    WZs7aAw.png

     

     2. Pictures of the login details

    0oOJdyo.png

     

    3. Pictures of the total wealth (if there is any)

    None

     

    4. Pictures of the quests completed

    Only Sheep Shearer and R&J

     

    5. The price you will be starting bids at

    1.75m

     

    6. The A/W (Auto-win) for your account

    4m

     

    7. The methods of payment you are accepting

    07GP

     

    8. Your trading conditions

    You go first

     

    9. Pictures of the account status

    f2Znb0j.png

     

    10. Original/previous owners AND Original Email Address

    Created with a fake email

    B9Y39Gy.png

  3. You cannot implement a behaviour for each individual random event using the OSBot random solving api  (as in actual runescape random events, not the login screen and other stuff in there). RandomEvent is an enum having no fields for each random event, only the DISMISS_RANDOM field which is used for every event. Each event has a RandomBehaviourHook that describes how the bot will behave if it should activate. So you may be able to use the OSBot random event api to write your own behaviour that applies to all random events but not to an individual one.

     

    If you insist to create your own behaviour for every random event in runescape then you can proceed to unregistering the hook for DISMISS_RANDOM so the bot will no longer react to randoms. Now you can define a custom behaviour when a given random is present (context detected using objects/npcs) and you may write your solvers just like any other script functionalities. Finally, create a new RandomBehaviourHook with the solving code and register it using RandomExecutor for the DISMISS_RANDOM field of RandomEvent.

     

    Thanks, all I needed to know :)

  4. All default tutorial island accounts have been sold.

    Stock now contains accounts with tutorial island finished /+ 7 Quest Points

    For that reason price has increased from 90K/ea to 120K/ea

  5. Yeah, I found that out as well long ago when I wrote my thieving script. Trying to bank at Draynor and was wondering why it wasn't banking lol. I only pointed it out because the snippet you posted doesn't filter, it just checks that the object has the action prior to interacting. Theoretically if you walk into the bank and grab a booth

    getObjects.closest("Bank booth")

    you could end up continuously grabbing the same booth and thus would never interact with it if it didn't have the option. Resulting in the script just endlessly looping.

    True when I post what I use I get lambda-lovers on my back tongue.png

    RS2Object booth = null;
    
    for (RS2Object obj : getObjects().getAll()) {
      if (bankArea.contains(obj) && obj.getName().equalsIgnoreCase("Bank booth")) {
        if (obj.hasAction("Bank")) {
          if (booth == null || getMap().distance(booth) > getMap().distance(obj)) {
            booth = obj;
          }
        }
      }
    }
    if (booth == null) {
      log("Error, no bank booth found to use.");
      //Return
    }
    booth.interact("Bank");
    
  6.  

    Depending where you are banking keep in mind there are some bank booths that are closed, I think there is also one in Draynor bank that is sitting inside the bank. opposite the bankers that can't be used and it's named "Bank booth". I'd recommend grabbing objects around you and filtering them based on name such as "Bank booth" and checking to ensure the object has an action, in this case that action being "Bank". This will prevent your script attempting to interact with a booth that you can't actually use.

     

    This, that's why I added action checking in my code.

    I ran into this problem at draynor where it wanted to bank with the "bank booth" that isn't a bank :p

    • Like 1
  7. First of all, don't use ID's as it can change when RS is updated. This also accounts for items as I see you're using ID's everywhere.

    Second, the API has bank areas already so you don't need to define them yourself.

    Area bankArea = Banks.YOUR_BANK;
    

    Next do something similar to this (might want to use sleep):

    if (getWalking().webWalk(bankArea)) {
      if (!getBank().isOpen()) {
        RS2Object bankbooth =  getObjects().closest("Bank booth);
    
        if (bankbooth != null && bankbooth.hasAction("Bank")) {
           bankbooth.interact("Bank");
        }
      }
    }
    
    

    Btw, use code tags so we can read your code more easily

×
×
  • Create New...