-
Posts
1430 -
Joined
-
Last visited
-
Days Won
82 -
Feedback
0%
Posts posted by Maxi
-
-
http://osbot.org/forum/topic/66800-osbot-mirror-client-your-guide/
Download the latest mirrorclient.java there
-
http://osbot.org/forum/topic/66800-osbot-mirror-client-your-guide/
Download the latest mirrorclient.jar there.
-
-
- Popular Post
- Popular Post
Quoted from: http://osbot.org/forum/topic/66338-reducing-banning-rates-behind-the-scenes-at-osbot-27-febuary-2015/
Mac is supported now
On 2/26/2015 at 8:25 PM, Maxi said:Dear community,
Prepare for a long but awesome read!
I feel like giving you all an insight in what has been happening behind the scenes of OSBot lately and what is to come. We have been working hard in the last couple of months to get the bot back where it used to be in the summer/autumn days of 2013. Fixing issues with the API and the bot is one part of that. The other part exists of creating new innovations and adding new features to keep up with other bots or to make OSBot unique and innovative. These were things we were doing quite nicely back in the days and it's time to reclaim this glory.
Many of you must have noticed that MGI was added to the team as a developer. With this promotion we also promised to find a solution for the high ban rates that we, but also other bots, are facing.
Ban rates.
Detection of bots can be divided in two main strategies. The first strategy is detection on a low level, this means detection of the modified RS client. The second strategy is by analysing behaviour of players. Both can be extremely efficient at what they do. Combined they do a pretty good job, considering the banning rates some people are facing on any bot they use.
The first strategy is done by detecting whether the RS client that runs is modified or not and whether it is running in it's natural environment. The way current way most bots work is by downloading the RS client and modifying the client to be able to communicate information of the game with the bot engine. There are ways around it, but the way RS currently has their system set up means that battling their strategies to detect bots on a code level are meant to break and would require a lot of updating. Basically using a bot these days or for example RSBuddy (a runescape helper, not a bot) just plain out tell RS that they are bots.
The second strategy is behavioural analysis. By having intelligent systems that compare behaviour of players/bots and compare it to statistics they have of players that are proven to be bots, they spin an entire web of intelligence that could recognise bots. This they can't obviously do for every player, so they most likely have different monitor levels, where each level higher means that the behaviour is analysed in more detail.
Those two strategies are then probably combined, where the first strategy is probably the main flagging system to be upgraded to monitor tier 1. Monitor tier 1 then monitors on a global big picture view. Botting times, activities, quests being done, experience gain, trading activity etc. If monitor tier 1 suspects suspicious behaviour, your account will be moved in to monitor tier 2 which might analyse mouse behaviour or other more in depth and resource intensive analysis. From there there might be more tiers until you get banned. This of course is speculation.
Having good scripts does lower the chance on detection by a lot. Changing scripts, having different behaviour on the same scripts by two different users, intelligent and human like action etc can all make a difference. But these won't make a difference if a bot basically says it's a bot based on a technical level of the code.
So what is the solution? The theoretical solution seems simple. Come up with an idea that has no possible detection on a code based level. The implementation of it however is far from easy. Now to the interesting part: MGI has been working on an idea conceived several months ago and is nearing its completion. We call it the mirror system. The mirror system should tackle strategy one completely.
OSBot's new Client Mirror System.
Before blabbing about all kinds of technical details here is a picture of what it looks like. A picture is worth a thousand words they say.
MGI called this feature the Client Mirror System. It leaves NO trace in the RS client of our bot and is by no means visible on the JVM. The RS client runs in its own environment which makes it even better. You still have all the controls you had in the past. This could potentially knock out the initial flagging system that takes your account in to monitoring. We don't know for sure how their system works though, but this completely diminishes the detection on a code level base.
This feature does require additional CPU, so the future will have to show how much of an impact it will have if you use this for big bot farms. We will however provide you with the option to use the old injection system or the new Client Mirror System and they will be able to be used in a mixed fashion if you prefer. In any way, the performance overhead might be worth it for everyone in the end.
Sincerely,
The OSBot team
-
28
-
-
Dear community,
We are happy to announce the release of the Mirror Client technology written by @MGI. You can read about the Mirror Client here: Article on Mirror Client and ban rates.
This feature will be available for VIP, staff and scripters. You can read how to use it here: OSBot Mirror Client Guide
Also there were various little patches regarding widgets in this update.
NOTE: Do not post errors related to the Mirror Client here but post in the designated forum section here: Mirror Client Bug Report Section
Make sure you read the rules here: Article on Mirror Client and ban rates.
Sincerely,
The OSBot team
-
4
-
-
REQUIREMENTS:
- CPU: Dual core+
- Operating System: Windows/Linux/OS X(MAC)
- Java: At least java 8
- VIP, Sponsor, Scripter or Staff rank
- NOT HAVING THE REQUIRED RANK WILL NOT LET YOU START IT!
HOW TO USE:- Start runescape client on your browser or the official OSRS launcher
- Open new bot tab on OSBot and select to use mirror client
-
Make sure you are not logged in before starting your script. Preferably with a freshly loaded OSRS client.
And continue like you are used to!
HOW TO REPORT BUGS:
Reports missing the following will get ignored and deleted:- Mirror client version
- Console output / terminal output
- Crash report if a crash occurred
- Script that you ran
- Hooks that failed
- JVM/Browser bit version (32 / 64)
Known bugs & suggested/required fixes:
Scripts are not starting/buggy: Please attach to rs client right after it loads BEFORE logging in.
-
16
-
I can verify that simply updating the banking/inventory from script.getBanking/script.getInventory to script.widgets.getBanking/script.widgets.getInventory will work fine. I have changed Omega script over to use the new methods and it seems to be running just fine now.
That doesn't matter at all, both instances of bank are the same. widgets is an API instance like all other API instance containing references to other API instances.
I'm glad I read your post. Thanks for letting us know.
Major change should be RS2Interface/RS2InterfaceChild -> RS2Widget && MethodProvider.interface.blabla -> MethodProvider.widgets.blabla
-
2
-
-
RS2Object bankBooth = objects.closest("Bank booth"); if (bankBooth != null) { if (bankBooth.interact("Bank")) { while (bank.isOpen()) { sleep(random(800, 1200)); bank.depositAll(); sleep(random(800, 1200)); bank.close(); sleep(random(800, 1200)); } } }
This one just hovers the close button, so am guessing that isOpen() works in this case but i also tried widgets.bank.close(); & widgets.bank.isOpen(); & widgets.bank.depositAll(); and it doesn't do anything, i guess i must be doing something wrong then.There is no need to do widgets.bank, it is the same instance as bank. That code will of course not work, because at the moment the interact method returns the interface is not open so the code between the while block is never executed.
pseudo code if booth.interact("Bank") { // wait for the bank to be open new ConditionalSleep... { boolean { return bank.isOpen } }.sleep // perform banking logic here if (logic performed correctly) { close bank conditional sleep to make sure bank is closed continue what you want to do }
There is a method in the API to open banks, you know that right?This is the actual code:
/** * Searches for the best bank, based on type and distance from player. This * method will only interact with RS2Objects. * * @return If bank was already open, or opened successfully. */ public boolean open() throws InterruptedException { if (isOpen()) return true; final RS2Object bankObject = bot.getMethods().objects.closest( new NameFilter<RS2Object>("Bank booth", "Bank chest"), new ActionFilter<RS2Object>("Bank", "Use")); if (bankObject != null && map.canReach(bankObject)) { Event event = new InteractionEvent(bankObject, "Bank", "Use"); execute(event); if (event.hasFinished()) { return new ConditionalSleep(5000) { @Override public boolean condition() throws InterruptedException { return isOpen(); } }.sleep(); } } return isOpen(); }
-
To check if the bank interface is open.
bank.isOpen(), bank.depositAll() none of them works.
I don't see why not. I've been running a NON ported script that runs fine, banking, interacting etc.
-
You just broke all my scripts and depending on how much time it'll take for scripters to update it'll take anything from 1 to 7 days, am I getting a refund on my VIP or something? Old versions of OSBot worked flawlessly for me, I'd use that but guess what, they won't load RS.
And what's this bullshit I keep having to login whenever I start a client on my computer, it used to do that automatically when I started a client?
Go ahead and do what you what I can't stop you from doing. We are doing necessary maintenance that all scripters were aware of ahead of time. I have spent 36 hours straight in mitigation of the issues that occurred as I couldn't foresee all of them with over a 100 classes changed, partially rewritten in an effort to not break scripts. The other option was to just not try port the old to the new system and force all the scripts to be broken and wait for the script writers to update.
Customer is always important, but don't take it too far calling bullshit.
Thanks for the update, also, could someone please let me know if i am doing this right ?
Banking;
if (widgets.isVisible(12)) { inventory.interact("Deposit-All", new String[] { "Bones" }); }
It works, but is it the right way of doing it ?I really don't know yet how this Widget system works yet.
EDIT://
Still wondering if interacting is still broke .. kinda ? or isVisible()
It doesn't always pick up the bones even though they're visible, and when am using localWalker to walk to the bone, it simply won't. It'll just stand there and wait until a bone spawns pretty much close to your character, look at my code and pls let me know if am doing something wrong;
if (!myPlayer().isAnimating() && !inventory.isFull() && !myPlayer().isMoving() && GOBLINS_AREA.contains(bonesOnFloor)){ if(bonesOnFloor.isVisible()){ if (bonesOnFloor != null) { bonesOnFloor.interact(new String[] { "Take" }); while (myPlayer().isMoving()) { sleep(300); } sleep(random(600, 1700)); } } else{ getCamera().toEntity(bonesOnFloor, true); }
This is not a help thread. Please post in the correct section of the forums with programming related questions.
-
3
-
-
I've reported this bug in the last 3 release threads now with no recognition.
if you are withdrawing an unset amount from the bank (lets say 11), if withdraw-11 is already in the menu option, it will click it AND say to chat "11"
huge bug and it just screams BOT
bank.withdraw("item", 11);
You are not being ignored. If you haven't noticed we are in the middle of a big transition between two systems whilst trying to minimise damage.
-
Dear community,
This update contains further patches to the port between the old and the new interface system. I would like to point out that we should all encourage scripters to update their scripts to the new system. We are doing our best to make sure the old system will work as it used to however in some cases we won't be able to do so.
Also there is a temporary widget explorer available again. R stand for root, - is second level and -- is third level id.
Any reports are welcome.
Sincerely,
The OSBot team
-
2
-
-
Guys, the point is to get RID of interfaces. So get your scripts updated! In the meanwhile I'll be working my ass of to see if I can minimise damage by checking out bugs and see if I can make a quick fix for it.
-
1
-
-
Keep them reports coming, I'll patch them as I go.
-
Yep, 100x better, definitely usable now!
Edit: Seems turning on "Low CPU" in the menu makes the script nearly unable to do basic dialogue (didn't test interactions). This was with the Customs Officer on Karamja, would move the move a few pixels at the time and lag. Without "Low CPU" enabled it works like a charm though!
Yes dialogues require some optimisations with the new widget system. They will get optimised during this or next week.
On another note, API javadocs have been updated.
-
Dear community,
With the new widget system affecting a large area of our code it was inevitable there would occur performance issues. I have profiled the bot and applied a first set of optimisations. I know there are more optimisations to be done on the new system, but this should already make a big difference.
Scripts might spike a little cpu usage on start up when the system caches some data. If you still experience issues with performance, please report in detail so I can investigate and optimise further. Your help is appreciated.
I will upload the javadocs shortly after.
Sincerely,
The OSBot team
Edit:
API java docs have been updated. A packaged version of the docs to use in your IDE's can be found here: https://osbot.org/api/javadocs.zip
-
4
-
-
I will profile the bot for the issue with interactions. I have now experienced it myself as well. Due to the nature of the size of these updates it might have affected something unnoticed. I'll report on my findings asap.
I have found the source of the issue. I will upload a new version asap.
-
1
-
-
I will profile the bot for the issue with interactions. I have now experienced it myself as well. Due to the nature of the size of these updates it might have affected something unnoticed. I'll report on my findings asap.
-
1
-
-
I will review this bug tomorrow.
-
Re-download the jar here: http://osbot.org
-
The issue is with the script. Some scripts were affected by the changes in v2.3.34. These scripts will have to be updated in order to function properly again. Report on the script thread of the specific script(s).
-
You won't be able to load any version prior to 2.3.34 because the hooks were changed and are not compatible with those versions. Scripts that are broken by v2.3.34 and later will have to get patched by the script writers. They are aware of this and any scripts affected should get updated soon. If you're experiencing problems with scripts post on the script threads of the specific script and script developer.
-
1
-
-
Read first post.
Double typing
in Archive
Posted
Download the latest mirrorclient.jar here: http://osbot.org/forum/topic/66800-osbot-mirror-client-your-guide/