Jump to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

3D to 2D source code.

Featured Replies

Ye, osbot's api is f closed source but that doesnt mean i can't decompile it and release.
 

 public static short[][] getScreenCoordinates(Client client, int gridX, int gridY, int gridZ, Model model) {

        int cameraX = client.getCameraX();
        int cameraY = client.getCameraY();
        int cameraZ = client.getCameraZ();
        int sinP = Utilities.CAMERA_SIN[client.getCameraPitch()];
        int cosP = Utilities.CAMERA_COS[client.getCameraPitch()];
        int sinY = Utilities.CAMERA_SIN[client.getCameraYaw()];
        int cosY = Utilities.CAMERA_COS[client.getCameraYaw()];
        if (model.getTriangleCount() < 0) {
            return new short[0][];
        }
        short[][] screenCoords = new short[model.getVerticeCount()][];
        for (int n = 0; n < model.getVerticeCount(); n++) {
            int x0 = model.getVerticesX()[n] + gridX;
            int z0 = model.getVerticesZ()[n] + gridY;
            int y0 = model.getVerticesY()[n] + Utilities.getTileHeight(client.getBot(), x0, z0, gridZ) - cameraZ;

            int n15 = (z0 -= cameraY) * sinY + (x0 -= cameraX) * cosY >> 16;
            z0 = z0 * cosY - x0 * sinY >> 16;
            x0 = n15;
            n15 = y0 * cosP - z0 * sinP >> 16;
            z0 = y0 * sinP + z0 * cosP >> 16;
            y0 = n15;
            if (z0 >= 50) {
                x0 = 260 + (x0 << 9) / z0;
                y0 = 171 + (y0 << 9) / z0;
                if (x0 >= 0 && y0 >= 0) {
                    screenCoords[n] = new short[2];
                    screenCoords[n][0] = (short) x0;
                    screenCoords[n][1] = (short) y0;
                }
            }
        }

        return screenCoords;
    }

Its just exact copy of Utilities.getScreenCoordinates
It could be used in faster model debugging (u need add some edits ofc, thats why its snippet) for new scripters.

Yeah, if you want anything more (not engine) pm me, and i will see what i can do.

Sweet. So basically, the short[][] that it's reurning is a 2d grid system of all the co-ords of all the model's vertices. rite? biggrin.png

Edited by Deffiliate

  • Author

You don't even need to decompile osbot for this lol >_>

 

Ye, lol. But this is decompiled, not my version. You get it or not?

 

Sweet. So basically, the short[][] that it's reurning is a 2d grid system of all the co-ords of all the model's vertices. rite? biggrin.png

http://freespace.virgin.net/hugo.elias/routines/3d_to_2d.htm

http://en.wikipedia.org/wiki/Fixed-point_arithmetic

 

Rite.

Edited by PolishCivil

  • Author

   
    public static final int minimapX = 545;
    public static final int minimapY = 4;

    public static Point getMinimapScreenCoordinate(Client client, int localX, int localY, boolean clipOval) {
 
        int minimapX = localX * 4 + 2 - client.getMyPlayer().getGridX() / 32;
        int minimapY = localY * 4 + 2 - client.getMyPlayer().getGridY() / 32;
        if (clipOval && (minimapX < -73 || minimapX >= 73 || minimapY < -75 || minimapY > 75))
            return new Point(-1, -1);
        int rotation = client.getMinimapX() + client.getMinimapRotation() & 2047;
        int minimapZoom = 256 + client.getMinimapZoom();

        int sine = 256 * Utilities.CAMERA_SIN[rotation] / minimapZoom;
        int cosine = 256 * Utilities.CAMERA_COS[rotation] / minimapZoom;

        int i1 = -minimapX * sine + minimapY * cosine >> 16;
        int i2 = minimapX * cosine + minimapY * sine >> 16;

        int posX = Calculations.minimapX + 98 + i2;
        int posY = Calculations.minimapY + 80 - i1;

        return new Point(posX, posY);
    }

Old:

 

2014-05-03_16-32-15.png

Mine: 

2014-05-03_17-12-37.png

 

Why?

client.getInterface(548).getChild(71);

Edited by PolishCivil

Guest
This topic is now closed to further replies.

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.