Welcome to TRiBot Forums

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.


  • Content count

  • Joined

  • Last visited

  • Feedback


Community Reputation

61 Excellent

1 Follower

About IceKontroI

  • Rank
    Senior Botter
  • Birthday 03/01/1994


  • Sex
  • Location

Recent Profile Visitors

940 profile views
  1. That's true with things you can click through, but you're still more likely to click close to the area the target is visible rather than estimate a further position. Also if there's a different NPC thats's not on your attack list obscuring your vision of the main target and there's only like 10% of the target visible a real player would probably just rotate the screen to get a better view or pick a different target altogether.
  2. Oh that's an interesting idea actually. I looked into areas just now. Couldn't you just public static Area findVisibleSpace(RSModel mainObject, RSModel[] obstructors) { Area areaMain = new Area(mainObject.getEnclosedArea()); Area[] obstructingAreas = new Area[obstructors.length]; for (int i = 0; i < obstructingAreas.length; i++) { obstructingAreas[i] = new Area(obstructors[i].getEnclosedArea()); } for (int j = 0; j < obstructingAreas.length; j++) { areaMain.subtract(obstructingAreas[j]); } return areaMain; } And then convert the returned area back into a polygon? Then that can be used as the visible clickable area for that target. If that works, the only problem I can see is then applying the human clicking algorithm to the selected region for antiban purposes.
  3. I'm also trying to accomplish this. One idea I had was to map all the points on the original object's model, and then check for any overlap between that map and the maps generated for nearby objects. Unfortunately calling the getModel() function on one object more than a few times each second lags the bot quite a bit and uses a pretty large amount of CPU power.
  4. Those aren't covered in the Tribot API are they? Would that even be possible to do from outside of a tribot function? I wouldn't expect a custom method to be capable of getting info from the game engine without interfacing with RuneScape through Tribot.
  5. I am interested in creating methods capable of deciding what to click based on visibility, or calculating a misclick chance based on the size of the model, and how quickly it is moving. For now I want to focus on deciding whether or not an Object's Model is being obscured by a surrounding model. Using Object.isTargetOnScreen() or Object.getModel.getAllVisiblePoints() will only tell me if it's being rendered. A bot knows the bounds of the NPC's clickable model even if it's behind a wall so it just clicks but a player would move the player or rotate the screen, or choose a new viable click target. I haven't been able to figure out a way to calculate this that doesn't eat up a crazy amount of CPU power. The main way I've been doing this is calculating the space the model normally takes up, getting surrounding models that could obscure the target model (based on the height and width of the main object and surrounding objects, and the player's camera angle) and then calculating what triangles from what Object Model overlap with the triangles in the main Object Model. Well this works somewhat but it takes an insane amount of processing per instance so imagine applying this to several targets several times per second while you're trying to move the mouse. I understand that this may end up being overly complicated, but I'm going to do it anyway just to see if it's possible. Anyone that decides to help me out will be greatly reducing the massive amount of time it's going to require to complete this, and to those I say thank you in advance.
  6. I would probably just use preset destination points for smaller paths and then use DPath to walk to them each individually since they'll be connected. This of course isn't universal but it beats WebWalking which gets stuck sometimes.
  7. That's really what I was looking for. Ty
  8. Yeah it does. I was going to write a more in-depth walking method for my scripts and I wanted to learn about the two options I saw.
  9. Which one is better to use? I know DPath is limited by the currently loaded map; does this apply to A* as well? Are there any other limitations or benefits to using one or another? EDIT: Anyone know if PathFinding. generatePath(Positionable start, Positionable end, boolean is_object) is also limited by currently loaded map?
  10. There was a banwave like this a few weeks ago, but nobody heard about it because all the posts were deleted.
  11. I found a bandage solution to the problem. DynamicClicking.clickRSNPC(target, 1); int i = 0; while ( i < 50 && target.getHPBarCycle() == -1) { sleep(100); i++; // waits a maximum of 5 seconds until forcibly exiting the loop as a failsafe. } i = 0; while (i < 25 && target.getHPBarCycle() != -1 && target.getHealthPercent() != 0) { fightIdle(15, 2); // my own custom sleep method to be used in combat. i++; } sleepIdle(17, 3.5); // another custom sleep method to be used when not in combat. It involves 2 loops and the getHPBarCycle() method. The first loop tells us when the target hasn't yet been attacked. When that loop exits the second loop will begin. Then it waits until the target is dead and then the script moves onto the next target.
  12. This crossed my mind but I would have to code in exceptions for each weapon's attack time and any unique animations. I was hoping there was a more universal solution but it may have to be done this way unfortunately.
  13. I've made a script that sometimes safespots enemies when it fights them. As a result I can't use the standard while (Player.getRSPlayer().isInCombat() { sleep(150); } because the target is not attacking the player back so the condition never returns true. Additionally sometimes it even returns false for a brief moment when we are both attacking each other and the loop exits, proceeding to the next block of code which causes all sorts of botlike actions. I've tried using combinations of conditions like Combat.getAttackingEntities().length > 0 Combat.getTargetEntity() == target Combat.getTargetEntity() != null Combat.isUnderAttack()) target.getHealthPercent != 0 where target is an RSNPC but none of them do what I need. What I need is something that tells me if my player is attacking something, or my combat target is getting hit by something. Either of those would be perfect for a safespot combat sleep loop. We have Combat.getAttackingEntities() which works for the player in the way I would like it to work for the target RSNPC. Is there anything out there in the API that can perform this function? Or any alterntive I haven't thought of?
  14. So I've implemented a custom version of this because I wasn't able to figure out how to do it through the Tribot API. I believe the ABCUtil.BOOL_TRACKER GO_TO_ANTICIPATED is used in telling the bot when it should mouse-over the resource it's anticipating to be available next in preparation for clicking it. I can't find a way to properly get it to work but I suspect it's used like this. if (MOVE_TO_ANTICIPATED) { // hover over the next anticipated resource. // sleep until the current resource is drained // click the resource you've been hoving } But I've had no luck trying to implement it this way. If I try to initialize it as a bool, it seems to just function as a regular bool. I'm also assuming that if you have General.useAntiBanCompliance(true); the boolean will get automatically initiated based on some sort of internal pre-calculated timer, is this correct?
  15. I haven't yet learned the Tribot API very well yet as I'm new to this type of. I'm looking to create some realistic idle mouse movement patterns, specifically smoothly dragging the screen with the middle mouse button. Anything that does something similar would be really helpful as I've seen this one used in other scripts but haven't been able to find it myself.