Lazy coder's "Xray"

Posts 1–3 of 3 · Page 1 of 1
Lazy coder's "Xray"
This technically isn't an "xray" per say, but it accomplishes the same thing.

To start this off you'll need to make a hook for your render call.

Code:
//In EntityRenderer.java
 public void fireRenderer(float renderPartialTicks, int position)
    {    enableGL3D();//note the call
    boolean oldViewBobbing = this.mc.gameSettings.viewBobbing;
    this.mc.gameSettings.viewBobbing = false;
    GL11.glPushMatrix();
    setupCameraTransform(renderPartialTicks, position);
    for (HackBase h : Obsidian.getHackHandler().getHacks()) //This should loop though your arraylist of hacks
    {
        if (h.getEnabled() == true) //if the hack is enabled we will call the onRenderWorld (which is in your base class which you extend for each hack)
        {
            t.onRenderWorld();
        }
    }
    this.mc.gameSettings.viewBobbing = oldViewBobbing;
    GL11.glPopMatrix();
    disableGL3D();//note the call
    }

    }
Code:
public static void enableGL3D()
    {
        GL11.glDisable(3008);
        GL11.glEnable(3042);
        GL11.glBlendFunc(770, 771);
        GL11.glDisable(3553);
        GL11.glDisable(2929);
        GL11.glDepthMask(false);
        GL11.glEnable(2884);
        mc.entityRenderer.disableLightmap(0.0D);
        GL11.glLineWidth(1.0f);
    }


    public static void disableGL3D()
    {
        GL11.glEnable(3553);
        GL11.glEnable(2929);
        GL11.glDisable(3042);
        GL11.glEnable(3008);
        GL11.glDepthMask(true);
        GL11.glCullFace(1029);
    }
Now that that's set up, make a new module called "Search" or "BlockESP".

Code:
 @override
    public void onRenderWorld()
    {
        final BlockRenderUtil util = <spoiler>
        for (int x = range; x > -range; x--)
        {
            for (int y = range; y > -range; y--)
            {
                for (int z = range; z > -range; z--)
                {
                    final double d1 = mc.thePlayer.posX + (double) x;
                    final double d3 = mc.thePlayer.posY + (double) y;
                    final double d5 = mc.thePlayer.posZ + (double) z;
                    final int xx = (int) d1 - 2;
                    final int yy = (int) d3;
                    final int zz = (int) d5 - 2;

                    //Find a function which will allow you to get a block from coordinates, then use this code to get the material of that block, then check if it's not air.
                    if (util.getBlockFromCoords(xx, yy, zz).func_149688_o() != Material.air)
                    {
                        //Personally this makes it a bit less bulky. Plus this is important for some code I use that is not pasted here
                        SearchBlock block = new SearchBlock(xx,yy,zz,util.getBlockFromCoords(xx, yy, zz).blockName);
                        if (block.name == "diamond_block")
                        {
                                                        // R       G       B     Transperency
                            util .drawBlockESP(block.x, block.y, block.z, 0.1F, 0.5F, 1.0F, 0.1F);
                        }
                    }
                }
            }
        }
    }

class SearchBlock
    {
        private int x;
        private int y;
        private int z;
        private String name;
        
        public SearchBlock(int x, int y, int z, String name)
        {
            this.x = x;
            this.y = y;
            this.z = z;
            this.name = name;
        }
    }
If you can manage to find the missing code bits through the obfuscated names in the 1.7.2 code you'll have yourself a working block ESP.




No super long modifications to dozens of classes.
nice bro, will work decent in my new client.
Posts 1–3 of 3 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Talk with us