Jump to content

Lemons

Lifetime Sponsor
  • Posts

    620
  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    100%

Everything posted by Lemons

  1. For the last loop, hard to understand what you're trying to accomplish. It seems you're trying to wait until you have caught a fish? If so, you method currently would continuously loop until it found a non-empty inventory slot, then I assume go right back into that loop again. This will ofc use a lot of CPU. Try using a conditional sleep: int lastSlots = getInventory().getEmptySlots(); new ConditionalSleep(5000) { // Sleeps are in milliseconds, sleep for 5 secs @0verride public boolean condition() throws InterruptedException { return getInventory().getEmptySlots() == lastSlots; } };
  2. You get 2 boxes, each has a ethernet port and an electrical plug. You plug one side to the router, plug in to wall, go to where you want internet, plug the other in to wall, press the buttons on them to sync, your ready. It'll work with standard electrical ran through the walls, nothing special required. No wifi, you just get an ethernet port at the other end, you can add a router to that tho. The only issue is these basically cause interference over the lines, so any sensitive equipment (my TV with over-the-air would become pure static when I used them, no probs with cable) will pick up the noise. I have a set of those myself, they work great. Got <1ms ping to router consitently, gamed on them fine, data transfer is good enough for most uses (I only got 90mbps internet so poor test, did no lan tests). Easier than running a wire.
  3. The problem you are facing is you are comparing fighters by their initials and combat level. If you add two "a" fighters with same combat, when you go through your loop of fighters in the second for loop (the one nested in the first), you're comparing the initial and Combat enums. This means, it will always pick the first Fighter in the Barracks with those initials/Combat enum, and will think it needs to remove that specific Fighter from the Barracks twice. This results in the -1 you are seeing, as the second time around the Fighter is already gone. If you wanna stick with your current solution, simply replace: if (fghtr.getInitial() == nameInChars.get(i) && fghtr.getCombatStyle().equals(combatStyle) && removedFighters == 0) with if (fghtr == fgt) This will result in the correct fighter being removed. This is because we are checking if its the same fighter object, not that it just has the same initials/Combat enum. Now, you are reiterating through lists for no real reason, and I think your logic is slightly off (calling "aabb" if the array has 4 "a"s would return 4 "a"s instead of 2 a and 2 b), here is a simpler solution: http://pastebin.com/LmngC84M And from there, you could do: barracks.createFighters('a', Combat.MELEE, 3); barracks.createFighters('b', Combat.MELEE, 3); barracks.createFighters('c', Combat.MELEE, 3); barracks.callFighters("aabbcc", Combat.MELEE); which results in: We have 9 fighters. Removing A:MELEE from barracks Removing A:MELEE from barracks Removing B:MELEE from barracks Removing B:MELEE from barracks Removing C:MELEE from barracks Removing C:MELEE from barracks We removed 6 fighters, leaving us with 3 in the barracks.
  4. For example, the pottery interface for the "Make 1", "Make 5", "Make 10", "Make X" is all separate widgets with the "Make X" being the tooltip. Might be only on older content, but it happens (and its the action basically).
  5. Some how my spotify free has no ads, else I would take ya up on this offer.
  6. Also note if its not showing up as an action, it might be a tooltip (.getTooltip())
  7. short[] colors = rock.getDefinition().getModifiedModelColors();
  8. To add to what juggles said, you should also use a mule to bond/stock/dump accs with. This is just one more layer between your bots and your main.
  9. Before I moved, I ran 200+ accs (lots of bans, 2-3 at a time) on same IP over the course of a few months, next script run was never significantly different than the previous. Proxies only prevent chain bans. What you described is a chain ban, not a "flagged IP".
  10. Can look at my paint class here for buffering/caching the paint. https://github.com/Lem0ns/OSBotAPI/blob/master/painters/Painter.java Other than that, drawing anything that isn't 100% opaque is going to be expensive, if you're doing a wireframe best to just have it solid color. Also, possibly allow toggling of these expensive calls for a "low cpu" mode.
  11. What you are experiencing is the fact that the Inventory doesn't update immediately. Either loop all 28 slots in 1 onLoop, or keep an iterator between onLoops to know where to continue from. Also, its < 28 cause indexes 0-27 need to be iterated over :p
  12. Faster, no, but it would be useful in that is would be the exact path your character is going to follow before walking.
  13. To add to what Khal said, simply add a "true" as the first parameter of a EntityApi.closest() class, like: getObjects().closest(true, "Tree");
  14. These aren't really designed for OSRS botting, more of running webservers (High IO, low CPU). You want closer to a consumer desktop computer, you'd prob be better off building one from scratch (just get onboard vid/cheap GPU, its useless for botting).
  15. Either way, 1Gbps out is as good as any other offering at this price range. 40Gbps in is just a bonus :p.
  16. What kind (linux/windows), what specs would you like, price range?
  17. Damn, cost me $50 for my LLC but that is me doing the paperwork/being the registered agent. Smart move either way ^^ Any reason the network in speed is 40x the out speed? Seems a bit backwards to me. Also, what type of processor is the KVM running on, or can you define a "core"? Might be getting one, they are priced nicely.
  18. From what I understand you want to capture if a user clicks somewhere, and add it to the event queue to the bot will execute that sometime in the future. Capturing the user input is actually easier than you'd think: private BotMouseListener listener = new BotMouseListener() { // Required funcs @ Override public void mouseReleased(MouseEvent e) {} @ Override public void mousePressed(MouseEvent e) {} @ Override public void mouseExited(MouseEvent e) {} @ Override public void mouseEntered(MouseEvent e) {} @ Override public void mouseClicked(MouseEvent e) { if (e.getPoint().equals(getMouse().getPosition())) return; // The bot generated this click, ignore it if (getClient().isHumanInputEnabled()) return; // Ignore incase they have human input enabled // Queue human interaction or w/e } } // Then add these lines to script startup getBot().getCanvas().addMouseListener(listener); // Then add these lines to script stop getBot().getCanvas().removeMouseListener(listener); From here you can make a queue that your script can process when it is ready. Edit: Also in the future, its usually easier to explain your end-game (in this case queuing user actions to be performed by the bot). Tends to get more possible solutions quicker. Edit2: OSBot don't like my "@ Override" (references some banned dude lol), so had to add spaces. Heres a pastebin: http://pastebin.com/kVzsuAba
  19. Zulrah clouds are a RS2Object, you can view the IDs using the "Objects" checkbox in the debug. The mouseover doesn't work as I assume they are rendered different than normal RS2Objects.
  20. You seem to be calling "random(xxx, yyy)" when you intend to call "sleep(xxx, yyy)", this will cause a lot of lag especially in the while loops. Try using a ConditionalSleep instead of the while, or a for like: for (int s = 0; s < 10 && someCondition; s++) sleep(100, 200); // Sleeps 1-2s or until someCondition is true Though ConditionalSleeps will be a better solution. I tend to avoid while loops due to these issues they can cause.
  21. Lemons

    survive

    Just remember to switch activities once in a while. They don't like it when you do the same thing over and over, develops a pattern :p
×
×
  • Create New...