Advertisement
GamingLVScripts

mySilentStrafe

Apr 1st, 2024
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.58 KB | None | 0 0
  1. public float[] mySilentStrafe(final float strafe, final float forward, final float yaw, final boolean advanced) {
  2.         final Minecraft mc = Minecraft.getMinecraft();
  3.         final float diff = MathHelper.wrapAngleTo180_float(yaw - PlayerHandler.yaw);
  4.         float newForward = 0.0f;
  5.         float newStrafe = 0.0f;
  6.         if (!advanced) {
  7.             if (diff >= 22.5 && diff < 67.5) {
  8.                 newStrafe += strafe;
  9.                 newForward += forward;
  10.                 newStrafe -= forward;
  11.                 newForward += strafe;
  12.             }
  13.             else if (diff >= 67.5 && diff < 112.5) {
  14.                 newStrafe -= forward;
  15.                 newForward += strafe;
  16.             }
  17.             else if (diff >= 112.5 && diff < 157.5) {
  18.                 newStrafe -= strafe;
  19.                 newForward -= forward;
  20.                 newStrafe -= forward;
  21.                 newForward += strafe;
  22.             }
  23.             else if (diff >= 157.5 || diff <= -157.5) {
  24.                 newStrafe -= strafe;
  25.                 newForward -= forward;
  26.             }
  27.             else if (diff > -157.5 && diff <= -112.5) {
  28.                 newStrafe -= strafe;
  29.                 newForward -= forward;
  30.                 newStrafe += forward;
  31.                 newForward -= strafe;
  32.             }
  33.             else if (diff > -112.5 && diff <= -67.5) {
  34.                 newStrafe += forward;
  35.                 newForward -= strafe;
  36.             }
  37.             else if (diff > -67.5 && diff <= -22.5) {
  38.                 newStrafe += strafe;
  39.                 newForward += forward;
  40.                 newStrafe += forward;
  41.                 newForward -= strafe;
  42.             }
  43.             else {
  44.                 newStrafe += strafe;
  45.                 newForward += forward;
  46.             }
  47.             return new float[] { newStrafe, newForward };
  48.         }
  49.         final double[] realMotion = MoveUtil.getMotion(0.22, strafe, forward, mc.thePlayer.rotationYaw);
  50.         final double[] array;
  51.         final double[] realPos = array = new double[] { mc.thePlayer.posX, mc.thePlayer.posZ };
  52.         final int n = 0;
  53.         array[n] += realMotion[0];
  54.         final double[] array2 = realPos;
  55.         final int n2 = 1;
  56.         array2[n2] += realMotion[1];
  57.         final ArrayList<float[]> possibleForwardStrafe = new ArrayList<float[]>();
  58.         int i = 0;
  59.         boolean b = false;
  60.         while (!b) {
  61.             newForward = 0.0f;
  62.             newStrafe = 0.0f;
  63.             if (i == 0) {
  64.                 newStrafe += strafe;
  65.                 newForward += forward;
  66.                 newStrafe -= forward;
  67.                 newForward += strafe;
  68.                 possibleForwardStrafe.add(new float[] { newForward, newStrafe });
  69.             }
  70.             else if (i == 1) {
  71.                 newStrafe -= forward;
  72.                 newForward += strafe;
  73.                 possibleForwardStrafe.add(new float[] { newForward, newStrafe });
  74.             }
  75.             else if (i == 2) {
  76.                 newStrafe -= strafe;
  77.                 newForward -= forward;
  78.                 newStrafe -= forward;
  79.                 newForward += strafe;
  80.                 possibleForwardStrafe.add(new float[] { newForward, newStrafe });
  81.             }
  82.             else if (i == 3) {
  83.                 newStrafe -= strafe;
  84.                 newForward -= forward;
  85.                 possibleForwardStrafe.add(new float[] { newForward, newStrafe });
  86.             }
  87.             else if (i == 4) {
  88.                 newStrafe -= strafe;
  89.                 newForward -= forward;
  90.                 newStrafe += forward;
  91.                 newForward -= strafe;
  92.                 possibleForwardStrafe.add(new float[] { newForward, newStrafe });
  93.             }
  94.             else if (i == 5) {
  95.                 newStrafe += forward;
  96.                 newForward -= strafe;
  97.                 possibleForwardStrafe.add(new float[] { newForward, newStrafe });
  98.             }
  99.             else if (i == 6) {
  100.                 newStrafe += strafe;
  101.                 newForward += forward;
  102.                 newStrafe += forward;
  103.                 newForward -= strafe;
  104.                 possibleForwardStrafe.add(new float[] { newForward, newStrafe });
  105.             }
  106.             else {
  107.                 newStrafe += strafe;
  108.                 newForward += forward;
  109.                 possibleForwardStrafe.add(new float[] { newForward, newStrafe });
  110.                 b = true;
  111.             }
  112.             ++i;
  113.         }
  114.         double distance = 5000.0;
  115.         float[] floats = new float[2];
  116.         for (final float[] flo : possibleForwardStrafe) {
  117.             if (flo[0] > 1.0f) {
  118.                 flo[0] = 1.0f;
  119.             }
  120.             else if (flo[0] < -1.0f) {
  121.                 flo[0] = -1.0f;
  122.             }
  123.             if (flo[1] > 1.0f) {
  124.                 flo[1] = 1.0f;
  125.             }
  126.             else if (flo[1] < -1.0f) {
  127.                 flo[1] = -1.0f;
  128.             }
  129.             final double[] motion2;
  130.             final double[] motion = motion2 = MoveUtil.getMotion(0.22, flo[1], flo[0], PlayerHandler.yaw);
  131.             final int n3 = 0;
  132.             motion2[n3] += mc.thePlayer.posX;
  133.             final double[] array3 = motion;
  134.             final int n4 = 1;
  135.             array3[n4] += mc.thePlayer.posZ;
  136.             final double diffX = Math.abs(realPos[0] - motion[0]);
  137.             final double diffZ = Math.abs(realPos[1] - motion[1]);
  138.             final double d0 = diffX * diffX + diffZ * diffZ;
  139.             if (d0 < distance) {
  140.                 distance = d0;
  141.                 floats = flo;
  142.             }
  143.         }
  144.         return new float[] { floats[1], floats[0] };
  145.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement