CCBlueX Forum

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    A SelfInfo as Akrien Client

    Kotlin/Java
    3
    5
    271
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • YounKoo
      YounKoo last edited by

      I'm using novoline's font system, you can use LiquidBounce instead, note that novoline's font size is twice as large as Liquidbounce's

      Effect image:2022-11-24_22.53.11.png

      Code:

      @ElementInfo(name = "SelfInfo")
      public class SelfInfo extends Element {
          //code by younkoo(littledye or 情染)
          public static IntegerValue rRed = new IntegerValue("Red", 0, 0, 255);
          public static IntegerValue rGreen = new IntegerValue("Green", 0, 0, 255);
          public static IntegerValue rBlue = new IntegerValue("Blue", 0, 0, 255);
      
          //fix jitter
          public IntegerValue indx = new IntegerValue("noting",120,0,1000);
          public IntegerValue indy = new IntegerValue("noting2",80,0,1000);
      
          public static Color mainColor() {
              return new Color(rRed.get(), rGreen.get(), rBlue.get());
          }
      
          private double armorBarWidth;
      
          private double hurttimeBarWidth;
      
          private double bpsBarWidth;
      
          private double healthBarWidth;
      
          public int x2 = indx.get(), y3 = indy.get();
      
          TimerUtil timerHelper = new TimerUtil();
      
          ScaledResolution sr = new ScaledResolution(mc);
          final float scaledWidth = sr.getScaledWidth();
          final float scaledHeight = sr.getScaledHeight();
      
          //code by younkoo(littledye or 情染)
          //code by younkoo(littledye or 情染)
          //code by younkoo(littledye or 情染)
      
          @Override
          public Border drawElement(float partialTicks) {
              double prevZ = mc.thePlayer.posZ - mc.thePlayer.prevPosZ;
              double prevX = mc.thePlayer.posX - mc.thePlayer.prevPosX;
              double lastDist = Math.sqrt(prevX * prevX + prevZ * prevZ);
              double currSpeed = lastDist * 15.3571428571D / 4;
      
              final float xX = scaledWidth / 2.0f -x2;
              final float yX = scaledHeight / 2.0f + y3;
              VisualBase.drawNewRect(xX + 4.5, yX  + 196.5 - 405, xX + 100.5, yX + 246.5 - 408, new Color(11, 11, 11, 255).getRGB());
              VisualBase.drawNewRect(xX + 5, yX + 198 - 405, xX + 100, yX + 246 - 408, new Color(28, 28, 28, 255).getRGB());
              VisualBase.drawNewRect(xX + 5, yX  + 198 - 405, xX + 100, yX + 208 - 408, new Color(21, 19, 20, 255).getRGB());
              VisualBase.drawNewRect(xX + 44, yX + 210 - 406, xX + 95, yX + 213.5 - 406, new Color(41, 41, 41, 255).getRGB());
              VisualBase.drawNewRect(xX + 44, yX + 219 - 406, xX + 95, yX + 222.5 - 406, new Color(41, 41, 41, 255).getRGB());
              VisualBase.drawNewRect(xX + 44, yX + 228 - 406, xX + 95, yX + 231.5 - 406, new Color(41, 41, 41, 255).getRGB());
              VisualBase.drawNewRect(xX + 44, yX + 237 - 406, xX + 95, yX + 240.5 - 406, new Color(41, 41, 41, 255).getRGB());
              VisualBase.drawNewRect(xX + 5, yX + 197 - 405, xX + 100, yX + 198 - 405, mainColor().getRGB());
      
              Fonts.SF.SF_14.SF_14.drawString("Indicators", xX + 37, yX + 202 - 406, -1);
      
              // armor
              final float armorValue = mc.thePlayer.getTotalArmorValue();
              double armorPercentage = armorValue / 20;
              armorPercentage = MathHelper.clamp_double(armorPercentage, 0.0, 1.0);
      
              final double armorWidth = 51 * armorPercentage;
              this.armorBarWidth = AnimationHelper.animate(armorWidth, this.armorBarWidth, 0.0229999852180481);
              VisualUtils.drawRect(xX + 44, yX + 210 - 406, xX + 44 + this.armorBarWidth, yX + 213.5 - 406, mainColor().getRGB());
      
              Fonts.SF.SF_14.SF_14.drawString("Armor", xX + 8, yX + 211 - 406, -1);
      
              // HurtTime
              double hurttimePercentage = MathHelper.clamp_double(mc.thePlayer.hurtTime, 0.0, 0.6);
              final double hurttimeWidth = 51.0 * hurttimePercentage;
              this.hurttimeBarWidth = AnimationHelper.animate(hurttimeWidth, this.hurttimeBarWidth, 0.0429999852180481);
              VisualUtils.drawRect(xX + 44, yX + 219 - 406, xX + 44 + this.hurttimeBarWidth, yX + 222.5 - 406, mainColor().getRGB());
      
              Fonts.SF.SF_14.SF_14.drawString("HurtTime", xX + 8, yX + 220 - 406, -1);
      
              // HurtTime
              double bpsPercentage = MathHelper.clamp_double(currSpeed, 0.0, 1.0);
              final double bpsBarWidth = 51.0 * bpsPercentage;
              this.bpsBarWidth = AnimationHelper.animate(bpsBarWidth, this.bpsBarWidth, 0.0329999852180481);
      
              VisualUtils.drawRect(xX + 44, yX + 228 - 406, xX + 44 + this.bpsBarWidth, yX + 231.5 - 406, mainColor().getRGB());
      
              Fonts.SF.SF_14.SF_14.drawString("BPS", xX + 8, yX + 229 - 406, -1);
      
              // HurtTime
              final float health = mc.thePlayer.getHealth();
              double hpPercentage = health / mc.thePlayer.getMaxHealth();
              hpPercentage = MathHelper.clamp_double(hpPercentage, 0.0, 1.0);
              final double hpWidth = 51.0 * hpPercentage;
              final String healthStr = String.valueOf((int) mc.thePlayer.getHealth() / 2.0f);
      
              if (timerHelper.hasReached(15L)) {
                  this.healthBarWidth = AnimationHelper.animate(hpWidth, this.healthBarWidth, 0.2029999852180481);
                  timerHelper.reset();
              }
      
              VisualUtils.drawRect(xX + 44, yX + 237 - 406, xX + 44 + this.healthBarWidth, yX + 240.5 - 406, mainColor().getRGB());
      
              Fonts.SF.SF_14.SF_14.drawString("HP", xX + 8, yX + 238 - 406, -1);
              return new Border(98,-8,194,39);
          }
      
      }
      

      DrawNewRect

      public static void drawNewRect(double left, double top, double right, double bottom, int color) {
              if (left < right) {
                  double i = left;
                  left = right;
                  right = i;
              }
              if (top < bottom) {
                  double j = top;
                  top = bottom;
                  bottom = j;
              }
              float f3 = (float)(color >> 24 & 0xFF) / 255.0f;
              float f = (float)(color >> 16 & 0xFF) / 255.0f;
              float f1 = (float)(color >> 8 & 0xFF) / 255.0f;
              float f2 = (float)(color & 0xFF) / 255.0f;
              Tessellator tessellator = Tessellator.getInstance();
              WorldRenderer vertexbuffer = tessellator.getWorldRenderer();
              GlStateManager.enableBlend();
              GlStateManager.disableTexture2D();
              GlStateManager.tryBlendFuncSeparate(770, 771, 0, 1);
              GlStateManager.color(f, f1, f2, f3);
              vertexbuffer.begin(7, DefaultVertexFormats.POSITION);
              vertexbuffer.pos(left, bottom, 0.0).endVertex();
              vertexbuffer.pos(right, bottom, 0.0).endVertex();
              vertexbuffer.pos(right, top, 0.0).endVertex();
              vertexbuffer.pos(left, top, 0.0).endVertex();
              tessellator.draw();
              GlStateManager.enableTexture2D();
              GlStateManager.disableBlend();
          }
      

      Animate

      public static double animate(double target, double current, double speed) {
              boolean larger;
              boolean bl = larger = target > current;
              if (speed < 0.0) {
                  speed = 0.0;
              } else if (speed > 1.0) {
                  speed = 1.0;
              }
              double dif = Math.max(target, current) - Math.min(target, current);
              double factor = dif * speed;
              if (factor < 0.1) {
                  factor = 0.1;
              }
              current = larger ? (current += factor) : (current -= factor);
              return current;
          }
      
      P 1 Reply Last reply Reply Quote 0
      • P
        P1ayerLk_ 0 @YounKoo last edited by

        very sexy indicators, copied

        YounKoo 1 Reply Last reply Reply Quote 0
        • YounKoo
          YounKoo @P1ayerLk_ 0 last edited by

          @P1ayerLk_-0 thx

          1 Reply Last reply Reply Quote 0
          • ukvaporwaves
            ukvaporwaves last edited by

            nice information ver useful

            YounKoo 1 Reply Last reply Reply Quote 0
            • YounKoo
              YounKoo @ukvaporwaves last edited by

              @ukvaporwaves thx

              1 Reply Last reply Reply Quote 0
              • First post
                Last post
              About
              • Terms of Service
              • Privacy Policy
              • Status
              • Contact Us
              Downloads
              • Releases
              • Source code
              • License
              Docs
              • Tutorials
              • CustomHUD
              • AutoSettings
              • ScriptAPI
              Community
              • Forum
              • Guilded
              • YouTube
              • Twitter
              • D.Tube