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.

IceKontroI

Reading TRiBot source code for certain methods

9 posts in this topic

I've been trying to read the source code for various tribot functions such as Mouse.leaveGame() or Mouse.sendClickEvent() so I can create similar but more updated versions of them as part of a small API I'm creating ATM. The problem is that when I decompile TRiBot.jar and look at the source code for those methods it's very difficult to understand how everything ties together. I get that this is Java's way of reducing jar file size but I'm wondering if there is a more conventional way of doing this. It also seems like there's missing code but that could just be me misreading the data structures. If anyone knows of a better way of doing this I would greatly appreciate it as it would speed up my API generation by quite a large amount.

Share this post


Link to post
Share on other sites
3 minutes ago, halfway said:

smh if anyone can just "decompile" this bot 

you can decompile TRiBot.jar just like you can do with any .jar file. Other users have mentioned that they've viewed the source code so either they decompiled it themselves or had access to the real source.

Share this post


Link to post
Share on other sites

The majority of TRiBot's source code is obfuscated. That is done by TRiLeZ; by "default", decompiled code is generally easy to read.

Share this post


Link to post
Share on other sites
9 minutes ago, IceKontroI said:

you can decompile TRiBot.jar just like you can do with any .jar file. Other users have mentioned that they've viewed the source code so either they decompiled it themselves or had access to the real source.

public static void leaveGame(boolean lose_focus) {
        boolean var10000;
        Point a;
        if((a = getPos()) == null) {
            move(General.random(-50, 550), General.random(-15, -40));
            var10000 = lose_focus;
        } else {
            move(General.random(a.x - 100, a.x + 100), General.random(-15, -40));
            var10000 = lose_focus;
        }

        if(var10000) {
            General.sleep(1400, 4600);
            mm.DE().jH().iN().UH(true);
        }

    }

 

It randomizes your x position, and randomizes ur Y position outside of the screen. To duplicate a function like this and add in any side of the screen, you would modify that part along with adding the ability to leave any side of the screen, you also probably wouldn't be able to call mm.DE.W/E in your script so you may need to find out what that does to actually emulate it.

Edited by Deluxes

Share this post


Link to post
Share on other sites
1 minute ago, Deluxes said:

public static void leaveGame(boolean lose_focus) {
        boolean var10000;
        Point a;
        if((a = getPos()) == null) {
            move(General.random(-50, 550), General.random(-15, -40));
            var10000 = lose_focus;
        } else {
            move(General.random(a.x - 100, a.x + 100), General.random(-15, -40));
            var10000 = lose_focus;
        }

        if(var10000) {
            General.sleep(1400, 4600);
            mm.DE().jH().iN().UH(true);
        }

    }

 

It randomizes your x position, and randomizes ur Y position outside of the screen. To duplicate a function like this and add in any side of the screen, you would modify that part along with adding the ability to leave any side of the screen, you also probably wouldn't be able to call mm.DE.W/E in your script so you may need to find out what that does to actually emulate it.

That's the basics of it, yes, but there's more to it than just that which is what I'm getting at. This line of code

mm.DE().jH().iN.UH(true);

is likely the way it "loses focus" to the game screen which I'm unable to replicate on my own because it's obfuscated. I was going to create a method that expanded on this whole process by combining elements of Mouse.leaveGame() and Mouse.sendClickEvent() that would allow the mouse to re-enter the game screen through a different point than the one it left from. This would simulate a player tabbing out and re-entering the screen afterward much more realistically.

Also what decompiler are you using? Your code seems slightly clearer than mine.

Share this post


Link to post
Share on other sites
Just now, IceKontroI said:

That's the basics of it, yes, but there's more to it than just that which is what I'm getting at. This line of code


mm.DE().jH().iN.UH(true);

is likely the way it "loses focus" to the game screen which I'm unable to replicate on my own because it's obfuscated. I was going to create a method that expanded on this whole process by combining elements of Mouse.leaveGame() and Mouse.sendClickEvent() that would allow the mouse to re-enter the game screen through a different point than the one it left from. This would simulate a player tabbing out and re-entering the screen afterward much more realistically.

Also what decompiler are you using? Your code seems slightly clearer than mine.

Actually you can call 

mm.DE().jH().iN.UH(true)

As long as you do not upload the script to the repository. I use Bytecode Viewer 3.0.0.

Share this post


Link to post
Share on other sites
2 minutes ago, Deluxes said:

Actually you can call 


mm.DE().jH().iN.UH(true)

As long as you do not upload the script to the repository. I use Bytecode Viewer 3.0.0.

I didn't realize that, thanks!

Share this post


Link to post
Share on other sites
3 minutes ago, IceKontroI said:

I didn't realize that, thanks!

You can also do some useful stuff like this.

public static void setGraphics(boolean value) {
        if (!TRiBot.a.j.get("Disable Graphics").isSelected() && !value)
            TRiBot.a.j.get("Disable Graphics").doClick();
        else if (TRiBot.a.j.get("Disable Graphics").isSelected() && value)
            TRiBot.a.j.get("Disable Graphics").doClick();
    }

You can also change Disable Graphics to Block User Input and such to disable those automatically :)

1 person likes this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.