Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Buy OSRS Gold

Sell OSRS Gold

Search the Community

Showing results for tags 'abc'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • TRiBot
    • News and Announcements
    • Old School Scripts
    • Help and Guidance
    • Development
    • Bugs and Errors
    • Tutorials
  • Scripters' Forums
    • Scripter Application
  • RuneScape®
    • General
    • Guides/Tutorials
    • Achievements
  • General
    • General
    • Questions
    • Discussions & Debates
    • Introductions
    • Suggestions
    • Feedback
  • The Black Market
    • Disputes
    • Repository Credits
    • Gold Exchange
    • Item Exchange
    • Membership Sales
    • Services
    • Other
    • Middleman Services

Blogs

  • Getting Started With TRiBot
  • The Best Way To Get Rid Of Termites
  • How to Generate Real Estate Leads Using Twitter
  • A Guide to Landing Pages
  • Dog Grooming in Sydney – 5 steps to finding a grooming salon
  • Cheap RS 2007 Gold for Spring 2020!
  • Logo Design Mistakes- Your Business Should Avoid at All Cost
  • Effective Pest Control Measures
  • В Алматы карантин из-за коронавируса: жизнь в условиях пандемии
  • Preschool Educational Toys, Helping One's Child Prepare For the Future
  • Automating Tribot
  • Payment error
  • Animal Crossing: New Horizons Cuts Player Interest Rates
  • network-security-engineer
  • SERVICES 100% BY HAND

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Location


Bio

Found 11 results

  1. Bbuu20's Miner (Open Source) (Progressive Mining) (World Hopping) (ABC2 Level 10 + Additional Custom Antiban) (Arguments) Hi, and thanks for checking out my AIO mining script! This script features: 3 Tick Mining so players can reach xp rates of up to 115k/hr! Iron, Sandstone, and Granite all supported (Mouse variance must be set to 0) *Removed For Now, Will Be Added Back Soon* Progressive Mining so you can run your bots through multiple tasks with just a few clicks Custom Paint to display the current runtime, xp/hr, and more Full ABC2 Level 10 Implementation to significantly lower the script's ban rate Universal Mining and Banking so players can run the bot wherever they want, on whatever ore they want Java FX GUI to adjust antiban, and mining settings Profile saving/loading so players can easily reload previous settings Arguments to allow instant profile loading, and gui bypassing Let me know if you encounter any issues, or have any feedback. To Do: Re-implement 3 tick mining Add motherlode support And anything else you may suggest! Join my discord server: https://discordapp.com/invite/nF7fsjx Source Code: https://github.com/zperkins11/Bbuu20-s-Miner Get It On The Repository: https://tribot.org/repository/script/id/3417 How to use arguments: Enter the name of the profile, and the task code, separated by a colon (:) Task codes are as follows: 0: Traditional Mining 1: Progressive Mining More info can be found on my discord server
  2. Bbuu20's Firemaker (ABC2 Level 10) Welcome to Bbuu20's Fire Maker. This script features: Custom GUI to select what log/logs to use Full ABC2 Level 10 Implementation to significantly lower the script's ban rate Universal Firemaking and Banking so players can run the bot wherever they want, with whatever log/logs they want I am very open to any suggestions on how I could improve this script. Please let me know if you experience any issue at all with the script, I will do my best to fix it and reply to you quickly. If you enjoy the script, some positive feedback would be greatly appreciated! To Do: Add custom paint to display current log, xp/hr, etc... And anything else you may suggest! Links: Join my discord server: https://discordapp.com/invite/nF7fsjx Source Code: https://github.com/zperkins11/Tribot/tree/master/scripts/firemaker Get It On The Repository: https://tribot.org/repository/script/id/3425 Screenshots:
  3. ABC2 is the second version of TRiBot's Anti-Ban Compliance utility, whose aim is to provide scripts with a standardized anti-ban, backed by character profiles. ABC2 has been built upon statistical analysis of human playing data, making our anti-ban the most human-like on the market. Read more about the importance of modeling human playing data here: https://tribot.org/forums/topic/60719-tribot-release-9300-0-abc2/. So now you must be wondering how to implement ABC2 in your script. First, I will link the main utility: https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html. Each script should use one instance of ABCUtil, unless the script switches RuneScape accounts during runtime. Since each ABCUtil instance is tied to a single character profile for an account, the script must create a new ABCUtil instance if a new RuneScape account starts to be used throughout the runtime of the script. Upon creating a new ABCUtil instance, a thread will be started which is in charge of tracking XP gains, and making the mouse enter/leave the game screen. For this reason, it is important to call ABCUtil#close when you are finished with a specific ABCUtil instance to stop the background thread from executing, and to clean-up. Now, there are four types of scenarios which ABCUtil oversees: Timed Actions Tab Checking (Pts: 2) ABCUtil#shouldCheckTabs ABCUtil#checkTabs XP Checking (Pts: 4) ABCUtil#shouldCheckXP ABCUtil#checkXP Entity Examining (Pts: 1) ABCUtil#shouldExamineEntity ABCUtil#examineEntity Mouse Exiting (Game Screen) (Pts: 10) ABCUtil#shouldLeaveGame ABCUtil#leaveGame Mouse Movement (Pts: 2) ABCUtil#shouldMoveMouse ABCUtil#moveMouse Mouse Pickup (Pts: 2) ABCUtil#shouldPickupMouse ABCUtil#pickupMouse Mouse Right Click (Pts: 2) ABCUtil#shouldRightClick ABCUtil#rightClick Camera Rotating (Pts: 2) ABCUtil#shouldRotateCamera ABCUtil#rotateCamera Preferences Open Bank Preference (Pts: 2) ABCUtil#generateOpenBankPreference Tab Switch Preference (Pts: 2) ABCUtil#generateTabSwitchPreference Walking Preference (Pts: 2) ABCUtil#generateWalkingPreference Next Target Preference (Pts: 4) ABCUtil#selectNextTarget Action Conditions HP to Eat At (Pts: 4) ABCUtil#generateEatAtHP Energy to Activate Run At (Pts: 4) ABCUtil#generateRunActivation Moving to Anticipated Location (Pts: 3) ABCUtil#shouldMoveToAnticipated Resource Switching Upon High Competition (Pts: 1) ABCUtil#shouldSwitchResources Next Target Hovering (Pts: 8) ABCUtil#shouldHover Next Target Menu Opening (Pts: 6) ABCUtil#shouldOpenMenu Reaction Times Generating Reaction Times (Pts: 20) ABCUtil#generateReactionTime https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html#generateReactionTime-- or https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html#generateReactionTime-long- Generating Supporting Tracker Information (Pts: 10) ABCUtil#generateTrackers https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html#generateTrackers-- or https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html#generateTrackers-long- Sleeping for the Length of the Reaction Time (Pts: 10) ABCUtil#sleep Timed Actions These are actions which are performed based on internal timers. For each timed action, simply use the should method to check if you should perform the action. If true, call the other corresponding method to perform the action. These actions should only be performed when the player isn't particularly busy at the time. Ex: If the player is woodcutting, these actions should be checked/performed while chopping down the tree. Example on how to use the methods: // Here our player is idling, so we can check/perform the timed actions. if (this.abc_util.shouldCheckTabs()) this.abc_util.checkTabs(); if (this.abc_util.shouldCheckXP()) this.abc_util.checkXP(); if (this.abc_util.shouldExamineEntity()) this.abc_util.examineEntity(); if (this.abc_util.shouldMoveMouse()) this.abc_util.moveMouse(); if (this.abc_util.shouldPickupMouse()) this.abc_util.pickupMouse(); if (this.abc_util.shouldRightClick()) this.abc_util.rightClick(); if (this.abc_util.shouldRotateCamera()) this.abc_util.rotateCamera(); if (this.abc_util.shouldLeaveGame()) this.abc_util.leaveGame(); Preferences These are preferred ways of doing things as specified by the player's character profile. Note that the preference generated by each method isn't constant, so we should not store the returned value of the generation method. So when an area covered by ABC preferences comes up, we must call the generation method, and act upon the returned value. Example: Let's say we want to open the bank using custom methods. We then use ABCUtil#generateOpenBankPreference to generate the preferred way to open the bank. final OpenBankPreference pref = this.abc_util.generateOpenBankPreference(); switch (pref) { case BANKER: openBankBanker(); break; case BOOTH: openBankBooth(); break; default: throw new RuntimeException("Unhandled open bank preference."); } Note that Banking#openBank, GameTab#open, and web walking all take ABC preferences into account, so we don't have to worry about handling preferences if we use those methods. Next Target Preference ABCUtil#selectNextTarget selects the positionable entity from the given list which should be our next target. We should store this value until we switch targets (i.e. the entity which we are interacting with), because the output of this method isn't constant. I.e. We call this method to determine which entity to interact with next, and store the returned value so we aren't constantly calling this method. We can re-call this method and re-store the returned value when we move on to a different target entity. If an entity spawns which is closer than the original closest entity, then we can re-call this method to re-select the next target entity. Otherwise, we should stick with the stored value. Note that when we chose an entity which is not the closest, that entity will be within a close distance to the closest, and if the entity implements Clickable07, we will check if it is clickable via Clickable07#isClickable. Example: final RSObject[] objects = getPossibleTargets(); if (objects == null || objects.length < 1) return; final RSObject next_target = (RSObject) this.abc_util.selectNextTarget(objects); Action Conditions These are actions which depend on a condition generated by ABCUtil. Note that the conditions generated by each method isn't persistent, and we want a certain level of persistence for each type of action. Therefore, we must store the returned value of the methods for a certain period of time, specified below. HP to Eat At ABCUtil#generateEatAtHP will generate the hitpoints percentage at which we should eat at. We store the generated value and use it until we eat the next food item. At that time, we generate a new value and store it. Example: int eat_at = this.abc_util.generateEatAtHP(); // Global variable, persistent... // Inside of a local method if (getHPPercent() <= this.eat_at) { eatFood(); this.eat_at = this.abc_util.generateEatAtHP(); // Generate a new HP percentage to eat at } Energy to Activate Run At ABCUtil#generateRunActivation will generate the run energy at which we should activate run at. We store the generated value and use it until we turn run on. At that time, we generate a new value and store it. Example: int run_at = this.abc_util.generateRunActivation(); // Global variable, persistent... // Inside of a local method if (!Game.isRunOn() && Game.getRunEnergy() >= this.run_at) { Options.setRunOn(true); this.run_at = this.abc_util.generateRunActivation(); // Generate a new run energy to activate run at } Moving to Anticipated Location When we finish interacting with our latest target/resource, there may or may not be a next target/resource available. If there is, then we simply go to that target/resource as usual and ignore this action condition. However, if there is no next target/resource currently available, then we check this action condition. We check ABCUtil#shouldMoveToAnticipated immediately after we finish up with our latest target/resource. If the method returns true, we move to the location in which we anticipate our next target/resource will spawn. If it returns false, we do nothing. Example: // Here we just finished cutting a yew tree if (!findNextTarget()) { // If we are here, then there does not exist a next target/resource yet if (this.abc_util.shouldMoveToAnticipated()) { // Check if we should move to the anticipated location... performReactionTimeWait(); // Sleep for the generated reaction time moveToAnticipated(); // Move to the anticipated location } // Now we simply wait until a new target/resource spawns // Do not keep checking if we should move to the anticipated location // Only perform this check once after each target/resource becomes unavailable } Resource Switching Upon High Competition ABCUtil#shouldSwitchResources will decide if we should switch targets/resources based on the amount of competing players. We should check this condition every 20-30 seconds, but only if we are not winning very many resources from the other competing players. This is vague because it depends on the script and individual preferences. Example: // Here we start mining a rock long check_time = Timing.currentTimeMillis() + General.random(20000, 30000); while (isMining()) { if (notWinningManyResources() && Timing.currentTimeMillis() >= check_time) { // Check if we should switch resources if (this.abc_util.shouldSwitchResources(getCompetitionCount()) { switchResources(); //Switch resources return; } check_time = Timing.currentTimeMillis() + General.random(20000, 30000); // Generate a new check time } } Next Target Hovering and Menu Opening ABCUtil#shouldHover will decide if we should hover the mouse over our next target. We should use this method to determine if we should hover when we start interacting with each new target entity, and we store the returned value. While interacting with our current target, if the stored value indicates we should hover our next target, then we should do so. Note that we should only employ hovering when the mouse is in the screen boundary. ABCUtil#shouldOpenMenu will decide if we should open the menu for our next target. We should use this method to determine if we should hover when we start interacting with each new target entity, and we store the returned value. While interacting with our current target, if the stored value indicated we should open the menu for our next target, AND if we are hovering the mouse over the next target, then we should open the menu. Menu opening should only be performed if we are also hovering the next target. Note that we should only employ menu opening when the mouse is in the screen boundary. Example: boolean should_hover = false; // Global variable, persistent boolean open_menu = false; // Global variable, persistent... // Inside of a local method if (the_object.click("Chop down")) { this.should_hover = this.abc_util.shouldHover(); this.open_menu = this.abc_util.shouldOpenMenu(); // Generate other conditions for actions handleChopping(); } // Inside of a different local method, handleChoppingwhile(isChopping) { if (Mouse.isInBounds() && this.is_hovering) { hoverNextTarget(); if (this.open_menu) openMenuForNextTarget(); } // Other code } Reaction Times ABC2's reaction time generator relies on about nine different factors, many of which must be specified by the script. There are two different ways to specify these factors: bit flags and properties. With bit flags, you call ABCUtil#generateBitFlags with the necessary options, and that method will generate the bit flags. With properties, you call ABCUtil#getProperties and set the necessary properties with the returned instance of ABCProperties. Generating Reaction Times You must use ABC2 to generate reaction times, instead of using random sleeps. ABC2's reaction time generator was designed to be very generic, allowing it to be used for all things which require a variable response time. However, we are still in need of some human data to allow us to have it totally generic. When generating reaction times for events with a fixed, very low waiting time, the reaction times are often much higher than a human reaction time. Hence, until we collect some more data and adjust our algorithms, ABC2's reaction time generator should be used for the following circumstances: Waiting in response to a condition where we had to wait a variable amount of time typically greater than a second. Examples: Reacting to when our character stops fishing. The response time will be used before we move on to the next fishing spot, or before we walk to the bank. Reacting to when our character stops mining. The response time will be used before we move on to the next rock, or before we walk to the bank. Reacting to when our character kills our target NPC. The response time will be used before we attack our next target, or before we walk to the bank. We currently will not use ABC2's reaction time generator for the following circumstances, until more data has been collected and we have adjusted our algorithms: Waiting in response to finishing an alchemy spell (the waiting period for casting the spell is fixed, and thus not covered by ABC2 yet) Waiting in response to us finishing our wait for items to be deposited to the bank after clicking the "Deposit All" button (once again, the waiting period is fixed). These are only limited scenarios which we specified. There are obviously more scenarios than this, but I'm hoping you're able to figure it out based on the examples. Now, to generate reaction times, you have the chose of two methods: https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html#generateReactionTime-- or https://tribot.org/doc/org/tribot/api/util/abc/ABCUtil.html#generateReactionTime-long- The first method uses properties, and the second uses bit flags, as discussed above. For generating reaction times, there are currently four factors which must be specified by scripts: Waiting Time: The amount of time we were waiting for in order to perform the action we are wanting to do now. Hovering: If we were hovering over the entity we are about to click immediately prior to calling the method. Menu Open: If we have the menu open for the entity we are about to click immediately prior to calling the method. Under Attack: If we are under attack now, or if we were under attack while waiting. Fixed Waiting: Whether the time at which we were waiting can be fixed to a number of client clock cycles or time (currently not used since we lack data for this, but this is here for the future). This will typically not be set because of the reason explained above. Example using bit flags: final int waiting_time = getWaitingTime(); final boolean menu_open = this.abc_util.shouldOpenMenu() && this.abc_util.shouldHover(); final boolean hovering = this.abc_util.shouldHover(); // If the condition is met, we specify the relevant flag, otherwise we set the variable to 0 // When we pass 0 into generateReactionTime as a bit flag option, it will not change anything final long hover_option = hovering ? ABCUtil.OPTION_HOVERING : 0; final long menu_open_option = menu_open ? ABCUtil.OPTION_MENU_OPEN : 0; // Generate the reaction time final int reaction_time = this.abc_util.generateReactionTime(this.abc_util.generateBitFlags(waiting_time, hover_option, menu_open_option)); // Sleep for the reaction time try { this.abc_util.sleep(reaction_time); } catch (final InterruptedException e) { } Example using properties: final int waiting_time = getWaitingTime(); final boolean menu_open = this.abc_util.shouldOpenMenu() && this.abc_util.shouldHover(); final boolean hovering = this.abc_util.shouldHover(); final ABCProperties props = this.abc_util.getProperties(); props.setWaitingTime(waiting_time); props.setHovering(hovering); props.setMenuOpen(menu_open); props.setUnderAttack(Combat.isUnderAttack() || wasJustUnderAttack()); props.setWaitingFixed(false); // Generate the reaction time final int reaction_time = this.abc_util.generateReactionTime(); // Sleep for the reaction time try { this.abc_util.sleep(reaction_time); } catch (final InterruptedException e) { } When using properties, remember to explicitly set all applicable options so that you don't use old data from previous uses. Generating Supporting Tracker Information A core factor in generating reaction times is whether or not the mouse is currently within the game screen boundary, along with other linked factors which I am keeping secret. ABCUtil's background thread will be responsible for manipulating these factors. In order for it to do so, it must know certain information about the activity being performed. We give it this information via ABCUtil#generateTrackers. ABCUtil#generateTrackers generates variables for performing anti-ban while waiting for something. Specifically, variables relating to how often and when to make the mouse leave the game area. This method should be called right after clicking something which requires us to wait a variable amount of time, or a time which we have to try and count off; i.e. where we will produce a variable reaction time. This includes, but is not limited to, clicking a tree, clicking an interface which we have to wai, say, approx. 10 seconds for. This method requires the script to supply two pieces of information: Estimated waiting time: An estimate for the amount of time we will be waiting for, i.e. how long it takes to perform the action at hand. Example: When woodcutting, the estimated waiting time would be an estimate for how long we are going to be chopping the current tree. Typically, using the average waiting time for the specific action is a good estimate. Under Attack: If we think we are going to be under attack for any of the duration of the waiting time. Like generating reaction times, calling this method can either be done using bit flags or properties. Example using bit flags: if (successfullyClickedTree()) { final int est_waiting; if (this.chopping_count > ) est_waiting = (int)(this.chopping_time / this.chopping_count); else est_waiting = 3000; // An arbitrary value, only used at the very beginning of the script this.abc_util.generateTrackers(this.abc_util.generateBitFlags(est_waiting)); while (isChopping()) { if (this.abc_util.shouldLeaveGame()) this.abc_util.shouldLeaveGame(); // Do other things here, such as hovering and menu opening if the mouse is still in the game screen boundary } } Example using properties: if (successfullyClickedTree()) { final int est_waiting; if (this.chopping_count > ) est_waiting = (int)(this.chopping_time / this.chopping_count); else est_waiting = 3000; // An arbitrary value, only used at the very beginning of the script final ABCProperties props = this.abc_util.getProperties(); props.setWaitingTime(est_waiting); props.setUnderAttack(false); props.setWaitingFixed(false); this.abc_util.generateTrackers(); while (isChopping()) { if (this.abc_util.shouldLeaveGame()) this.abc_util.shouldLeaveGame(); // Do other things here, such as hovering and menu opening if the mouse is still in the game screen boundary } } Now you may be wondering where exactly to call this method. Generally, you'd call this after generating a reaction time using ABC2, after we call ABCUtil#sleep for that reaction time, and after we perform the action which we are reacting to. It's important to keep in mind that calling ABCUtil#generateTrackers is very important because it sets up variables which greatly affect reaction times. Also note that we should be calling ABCUtil#shouldLeaveGame and ABCUtil#leaveGame in the period after calling ABCUtil#generateTrackers, as the method is to be used in conjunction with ABCUtil#shouldLeaveGame and ABCUtil#leaveGame. If we do not ever call those two methods, or don't call them often enough, calling ABCUtil#generateTrackers would be essentially useless, and our reaction times wouldn't be the most human-like. Sleeping for the Length of the Reaction Time it is important to use ABCUtil#sleep to perform all of the reaction time sleeps. ABC2's background thread is in charge of making the mouse return to the game screen boundary if the mouse has been outside of the boundary for a certain period of time. Now, the times at which the background thread makes the mouse return has been pre-determined. It's possible that it makes the mouse return while we are sleeping for the duration of the reaction time. If it does this, then why do we have to continue our reaction time sleep if the mouse is moving (i.e. the player is active)? Simply put, when the mouse returns to the game screen, we should stop sleeping the duration of the reaction time because the player is active. When the script calls ABCUtil#sleep, it allows the background thread to interrupt the reaction time sleep immediately after the bot makes the mouse return to the game screen. The method also prevents two mouse movements from happening at the same time, since the background thread doesn't pause the script while moving the mouse back to the game screen. Calculating Anti-Ban Compliance Levels (ABCL) Refer to the first list. Beside each element is an amount of points (Pts). If your script successfully implements the element, then add those points to your score. Scores are out of 100, which determine the ABCL: [99, 100] Points: ABCL 10 [90, 99) Points: ABCL 9 [80, 90) Points: ABCL 8 [70, 80) Points: ABCL 7 [60, 70) Points: ABCL 6 [50, 60) Points: ABCL 5 [40, 50) Points: ABCL 4 [30, 40) Points: ABCL 3 [20, 30) Points: ABCL 2 [10, 20) Points: ABCL 1 [0, 10) Points: ABCL 0 Note: "[" is an inclusive boundary, and ")" is an exclusive boundary. Conclusion There you have it, the guide to implementing Anti-Ban Compliance version two. I hope I have made it clear how to implement ABC2. Make sure to read all of the documentation. I am including a persistent extension of ABCUtil, which makes this utility more like the first version, and easier to use: PersistentABCUtil.java
  4. Zainy

    zAlcher by Zainy

    As i have had requests for an alcher with anti-ban and abc, I decided to make a simple alcher with high anti-ban and randomness to reduce the ban rate while alching. Its just an alcher with antiban. It has no other features. Link: https://tribot.org/repository/script/id/860 Thanks I may be open to suggestions if you guys request them.
  5. Tri Al-Kharid Warrior Fighter V2 The perfect way to train up medium level accounts and make a lot of money looting herbs! Features: Kills level 18 Al-Kharid warriors in Al-Kharid Earns a lot of xp! Makes you a lot of money looting herbs in p2p ( up to 150k+ an hour! ) Start the script from anywhere Supports all food and can been used without food Supports all weapons and special attacks Re-equips ammo and can withdraw more from the bank Supports nearly all potions Customisable banking Customisable looting ABC2 antiban with a 10/10 rating Telekinetic grab support Can bury bones Load & save GUI settings Profit calculations and xp tracking To activate the script from the repository click the button below: Note: I also have a premium script available that can do all of this plus it has the following extra features: VIP is not required! Complete all in one combat system that can fight every single monster in Runescape. Extended banking features Built in AIO magic script that can train magic with every spell available from alching, curses, to teleports, to lunar spells. It does it all! Dwarf multicannon support Herb cleaning and dropping Full prayer support Progressive training including changing attack styles, upgrading gear and switching training spots when you level up! Bones to peaches support Improved potion features Rock crab support Safe spotting optional Full worldhopping system that can worldhop when many different conditions are met And much more! If you're interested in this script check out the tribot thread below: Thanks for reading.
  6. Summary Hello everyone, I've started a project that I hope can benefit our antiban technology. Since ABCv2, there really hasn't been much improvement in antiban. I think the concepts behind Trilez's creation are the key to staying under the heuristic radar of Jagex and prolong bot life. This project is an extension of the current implementation of ABCUtil, and serves to replace some functionality, and also add some. Since my class extends ABCUtil, you still have access to everything ABC has to offer. I'm not replacing all of it! Why? There are three main reasons behind this project: Put simply, ABCv2 is cumbersome. It's annoying to implement in most cases, and very difficult to implement correctly in a lot of cases. This mainly applies to the new addition of Reactions, which requires a lot of unnecessary input from the script. Some of the human data behind the new Reactions of ABCv2 isn't ideal. Bots should not emulate the average player, because the average player plays RS like an AFK game. That's how these reactions were recorded. We want our bot to be very efficient, but not abnormally efficient. We want our bot to be a no-life, caffeine-driven player, but still human. (Though we still want each bot to be heuristically different than other bots, but we'll get to that). There are more things to add! Replacements Reactions I've already pointed out the problems with the current Reactions System. Anyone who's watched their bot wait 13 seconds between killing seagulls are likely also frustrated. Not to mention, ABCv2 does not cover reactions for predictable events. ABCv3 will offer a set of Reaction Types that allow the scripter to replace nearly all arbitrary sleep times with something that looks human, and takes into account RS username, mouse position, and a dynamic sleep. Here are some examples of Reactions that you can use in your script. Each one will use an equation that produces data that matches human data that I will collect: SHORT (generally around 200-600 milliseconds) MEDIUM (500-1000) LONG (1000,3000) BANK_APPEARS (used after bank screen opens. Based solely off of human data collected from people opening the bank) BANK_CLOSES (used after bank is closed) INTERFACE_APPEARS (used for non-bank interfaces) INTERFACE_CLOSES (used for non-bank interfaces) Now, we must also account for AFK Reactions, which are performed after long, idling tasks, such as chopping a tree. The current implementation takes into account 9 factors. My system will take into account the majority of those factors, and some of them will be auto-detected. For example, ABCv2 forces you to tell it whether or not you're in combat. My reactions will determine that for you. Also, the Abc3Util class will now provide helper classes for keeping track of idle events so that it can take into account average idle time. It will also make it easy to keep tasks separate. ABCv2 is really only meant for generating reaction times based off of a single Idle Task. But let's say your bot chops oaks AND Willows. Those each require separate reaction generating variables. Abc3Util will allow you to easily track data for any number of events at the same time, and generate reactions based on them, with only a few lines of code. All of the old Reaction Methods will be Overriden and marked "Deprecated" (they will still function normally, however). Preferred Target ABC preferred target is annoying to implement, and sometimes doesn't make sense. For example, it requires you to call it for hovering the next Target, then you must store that target for when you decide to actually click something. The problem, however, is that in order for this to make sense, you must make sure that not only is the Target valid, but also that it hasn't moved or anything else has spawned or even if your mouse isn't on it. Also, this method only takes into account distance, which isn't a good metric, because it ignores any and all obstacles. In effect, the ABCLv2 Preferred target system is useless. .... but it's a good idea. I'm going to replace this by calculating many of the above variables I mentioned inside the API. Therefore, instead of calling the method when going to hover and storing the result, you can just call it whenever. It will be a more expensive call, but it will take into account Mouse Position, Weighted Distance to targets, Competition, and it will be adjusted to allow for human-like decisions, which include not always picking the absolute most optimal targets. New Features Timed Action - Accidental Input Performing actions in a human way is important, but our input in general must also look human. Even though our actions are performed at human times, they still all have a purpose. Hell, even most of the times actions have specific purposes. How many times have we accidentally pressed a key on the keyboard while playing a video game? A lot. This action in meant to be performed while the game screen is focused, and it simply presses 1 or more keys on the keyboard. It works the same as all timed actions, except the "should" method will rarely return true when the mouse is on screen (though it's possible, to avoid heuristic detection). The method will also return different results (over time) based on the RS account username (like normal ABC). This method will also be affected by fatigue. Basically speaking, the longer the script running, the more likely these accidents (although they will still be rare). Predictive Inputs Now that we have human reactions, we must explore how humans have compensated for our slow nervous system! The answer is predicting the future. It's not hard. When we click the banker, we expect the bank screen to appear. Our reaction may be slow, but we compensate by moving our mouse near where we think the deposit button will appear. My API will simply provide a "shouldPredict()" method, which will return true most of the time, but the actual calculation will be complex. The implementation will be up to the scripter, except for APIs that I package with this project (for example, I might offer a Banking extension that uses this). The method will also return different results (over time) based on the RS account username (like normal ABC). This method will also be affected by fatigue. Simply put, the longer the script time, the fewer predictions (although it will normally still be true). Improvements Easier Implementation Singleton In ABCv2, you must get a new instance of the class and use it in all of your code, until a new RS account logs in. That's not necessary, and really annoying if you have a lot of source files. My implementation stores an instance of itself in a thread-local variable (works with tabs, but can only be retrieved on the main thread). Here's how you use it now: Abc3Util.instance().shouldHover(); You're of course welcome to store the result of "instance()" in your script for easier use, but now you don't have to pass it to all of your objects if you don't want to. Timed Actions In ABCv2, you must do something like "if(shouldDoX) { doX(); }" for each action. You probably have a method that goes through each action and performs it if needed. My implementation has a built in method for that. As a bonus, it randomizes the order in which it checks and performs the actions. By doing so avoids certain behavioral patterns. Even though checking your stats and moving the mouse are humanized behaviors, always performing them in the same order can be dangerous, even if it doesn't happen often. Abc3Util.instance().performTimedActions(); Release Schedule I have not yet decided if I will release this publicly. If it ends up truly helping with banrates, it will be a very valuable tool. I don't want to sound greedy, but I might have to charge for this (maybe offer it to Patreon subscribers?). How You Can Help? I will be asking for private Beta Testers eventually. I will need human data. But the human data I collect will be much more controlled than what Trilez collected in order to produce the results I want. Remember, we want to be human, but an efficient human. If I had enough developer support, I would consider allowing this to be open-sourced for contributions. Other than that, I have no way you can help other that be loyal to Tribot and spread the word. I may eventually have a Patreon where you can subscribe for certain benefits and I will put the money towards things that will speed this development along. Let me know if you'd be behind that. Credits Shotdox - For providing a base set of calculation methods for generating distributions (jogged my statistics memories) TRiLez - For inventing ABC and showing that human data is important. If we want to fight against heuristics, we need to implement heuristics of our own! If you have any question, feel free to post below, or contact me on Discord (wastedbro#9955).
  7. Tri Monestary Monk Fighter V2 The perfect way to train up low level accounts for free, no food is required and it can loot arrows. Features: Kills level 5 Monks in the Edgeville Monestary Earns a lot of xp! Start the script from anywhere The script will heal by talking to the monks so no food is required! Supports all weapons Customisable mouse speed Can loot and re-equip ammo Can bury bones ABC2 antiban with a 10/10 rating Load & save GUI settings Xp tracking To activate the script from the repository click the button below: Pictures: Note: I also have a premium script available that can do all of this plus it has the following extra features: VIP is not required! Complete all in one combat system that can fight every single monster in Runescape. Extended banking features Telekinetic grab support Supports all weapons and special attacks Built in AIO magic script that can train magic with every spell available from alchin Supports all weapons and special attacksg, curses, to teleports, to lunar spells. It does it all! Dwarf multicannon support Herb cleaning and dropping Full prayer support Progressive training including changing attack styles, upgrading gear and switching training spots when you level up! Bones to peaches support Improved potion features Rock crab support Safe spotting optional Full worldhopping system that can worldhop when many different conditions are met And much more! If you're interested in this script check out the tribot thread below: Thanks for reading.
  8. Hello script developers, This is a class I wrote that is designed to help you implement ABC2 into your scripts quickly and efficiently. If you have any questions, please post them on this thread. IMPORTANT NOTE: This class contains some code that is from my own API. You will need to replace it with your own code, or code from the TRiBot API. AntiBan.zip
  9. Simply; a tar maker. Use item(herb) with swamp tar & have a pestle & mortar in your invent. The exp is better(I believe) and it's a considerably cheaper method of training
  10. Has this been confirmed by @TRiLeZ? If so, what improvements does v2 aim to improve or newly release? Edit: Thank you @Stan0606 https://tribot.org/doc/org/tribot/api/util/ABC2Util.html
  11. Ok so I was wondering if someone could please help me with implementing ABC to my scripts, for some reason I just canno get my head around it (even though it is more than likely really simple) say I am woodcutting and I want it to check the exp while it is chopping, do I just need to call the PerformXPcheck function? Do I need to call something else before I call that function? If someone can clear this first little issue up for me first I will then continue to ask about more of the features lol Thanks Littlered
×
×
  • Create New...