Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Часть функционала ElytraBooster - Auto - Custom | Zenith recode

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
23 Июн 2025
Сообщения
47
Реакции
0
Выберите загрузчик игры
  1. Fabric
ElytraBooster:
Expand Collapse Copy
package im.sclo.client.modules.impl.movement;

import lombok.Generated;
import im.sclo.client.modules.api.Category;
import im.sclo.client.modules.api.Module;
import im.sclo.client.modules.api.ModuleAnnotation;
import im.sclo.client.modules.api.setting.impl.ModeSetting;
import im.sclo.client.modules.api.setting.impl.NumberSetting;

@ModuleAnnotation(
   name = "ElytraBooster",
   category = Category.MOVEMENT,
   description = "Усиливает ваш фейерверк"
)
public final class ElytraBooster extends Module {
   public static final ElytraBooster INSTANCE = new ElytraBooster();
   private final ModeSetting mode = new ModeSetting("Mode", new String[]{""});
   private final NumberSetting boost = new NumberSetting("Boost", 1.0F, 0.1F, 5.0F, 0.1F, () -> {
      return !this.mode.getValue().getName().equals("Auto");
   });
   private ModeSetting.Value custom;
   private ModeSetting.Value auto;

   private ElytraBooster() {
      this.custom = new ModeSetting.Value(this.mode, "Custom", "");
      this.auto = new ModeSetting.Value(this.mode, "Auto", "");
      this.mode.setValue(this.custom);
   }

   @Generated
   public ModeSetting getMode() {
      return this.mode;
   }

   @Generated
   public NumberSetting getBoost() {
      return this.boost;
   }

   @Generated
   public ModeSetting.Value getCustom() {
      return this.custom;
   }

   @Generated
   public ModeSetting.Value getAuto() {
      return this.auto;
   }
}
FireworkRocketEntityMixin:
Expand Collapse Copy
package im.sclo.utility.mixin.minecraft.entity;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.projectile.FireworkRocketEntity;
import net.minecraft.entity.projectile.ProjectileEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
import im.sclo.client.modules.impl.movement.ElytraBooster;
import im.sclo.utility.math.BoostUtils;

@Mixin({FireworkRocketEntity.class})
public abstract class FireworkRocketEntityMixin extends ProjectileEntity {
   @Unique
   private Vec3d rotation;
   @Shadow
   private LivingEntity field_7616;

   public FireworkRocketEntityMixin(EntityType<? extends ProjectileEntity> entityType, World world) {
      super(entityType, world);
   }

   @ModifyExpressionValue(
      method = {"tick"},
      at = {@At(
   value = "INVOKE",
   target = "Lnet/minecraft/entity/LivingEntity;getRotationVector()Lnet/minecraft/util/math/Vec3d;"
)}
   )
   public Vec3d tick(Vec3d original) {
      this.rotation = original;
      return this.rotation;
   }

   @Redirect(
      method = {"tick"},
      at = @At(
   value = "INVOKE",
   target = "Lnet/minecraft/util/math/Vec3d;add(DDD)Lnet/minecraft/util/math/Vec3d;",
   ordinal = 0
)
   )
   public Vec3d tick(Vec3d instance, double x, double y, double z) {
      ElytraBooster elytraBooster = ElytraBooster.INSTANCE;
      if (elytraBooster != null && elytraBooster.isEnabled() && MinecraftClient.getInstance().player.isGliding()) {
         if (elytraBooster.getMode().getValue().getName().equals("Auto")) {
            return instance.add(this.rotation.x * 0.1D + (this.rotation.x * BoostUtils.getBoost(MinecraftClient.getInstance().player).x - instance.x) * 0.5D, this.rotation.y * 0.1D + (this.rotation.y * BoostUtils.getBoost(MinecraftClient.getInstance().player).y - instance.y) * 0.5D, this.rotation.z * 0.1D + (this.rotation.z * BoostUtils.getBoost(MinecraftClient.getInstance().player).z - instance.z) * 0.5D);
         } else {
            double boostValue = (double)elytraBooster.getBoost().getCurrent();
            return instance.add(this.rotation.x * 0.1D + (this.rotation.x * boostValue - instance.x) * 0.5D, this.rotation.y * 0.1D + (this.rotation.y * boostValue - instance.y) * 0.5D, this.rotation.z * 0.1D + (this.rotation.z * boostValue - instance.z) * 0.5D);
         }
      } else {
         return instance.add(this.rotation.x * 0.1D + (this.rotation.x * 1.5D - instance.x) * 0.5D, this.rotation.y * 0.1D + (this.rotation.y * 1.5D - instance.y) * 0.5D, this.rotation.z * 0.1D + (this.rotation.z * 1.5D - instance.z) * 0.5D);
      }
   }

   @Unique
   private Vec3d calculateRotationVector(float pitch, float yaw) {
      float f = pitch * 0.017453292F;
      float g = -yaw * 0.017453292F;
      float h = MathHelper.cos(g);
      float i = MathHelper.sin(g);
      float j = MathHelper.cos(f);
      float k = MathHelper.sin(f);
      return new Vec3d((double)(i * j), (double)(-k), (double)(h * j));
   }
}
 
ElytraBooster:
Expand Collapse Copy
package im.sclo.client.modules.impl.movement;

import lombok.Generated;
import im.sclo.client.modules.api.Category;
import im.sclo.client.modules.api.Module;
import im.sclo.client.modules.api.ModuleAnnotation;
import im.sclo.client.modules.api.setting.impl.ModeSetting;
import im.sclo.client.modules.api.setting.impl.NumberSetting;

@ModuleAnnotation(
   name = "ElytraBooster",
   category = Category.MOVEMENT,
   description = "Усиливает ваш фейерверк"
)
public final class ElytraBooster extends Module {
   public static final ElytraBooster INSTANCE = new ElytraBooster();
   private final ModeSetting mode = new ModeSetting("Mode", new String[]{""});
   private final NumberSetting boost = new NumberSetting("Boost", 1.0F, 0.1F, 5.0F, 0.1F, () -> {
      return !this.mode.getValue().getName().equals("Auto");
   });
   private ModeSetting.Value custom;
   private ModeSetting.Value auto;

   private ElytraBooster() {
      this.custom = new ModeSetting.Value(this.mode, "Custom", "");
      this.auto = new ModeSetting.Value(this.mode, "Auto", "");
      this.mode.setValue(this.custom);
   }

   @Generated
   public ModeSetting getMode() {
      return this.mode;
   }

   @Generated
   public NumberSetting getBoost() {
      return this.boost;
   }

   @Generated
   public ModeSetting.Value getCustom() {
      return this.custom;
   }

   @Generated
   public ModeSetting.Value getAuto() {
      return this.auto;
   }
}
FireworkRocketEntityMixin:
Expand Collapse Copy
package im.sclo.utility.mixin.minecraft.entity;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.projectile.FireworkRocketEntity;
import net.minecraft.entity.projectile.ProjectileEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
import im.sclo.client.modules.impl.movement.ElytraBooster;
import im.sclo.utility.math.BoostUtils;

@Mixin({FireworkRocketEntity.class})
public abstract class FireworkRocketEntityMixin extends ProjectileEntity {
   @Unique
   private Vec3d rotation;
   @Shadow
   private LivingEntity field_7616;

   public FireworkRocketEntityMixin(EntityType<? extends ProjectileEntity> entityType, World world) {
      super(entityType, world);
   }

   @ModifyExpressionValue(
      method = {"tick"},
      at = {@At(
   value = "INVOKE",
   target = "Lnet/minecraft/entity/LivingEntity;getRotationVector()Lnet/minecraft/util/math/Vec3d;"
)}
   )
   public Vec3d tick(Vec3d original) {
      this.rotation = original;
      return this.rotation;
   }

   @Redirect(
      method = {"tick"},
      at = @At(
   value = "INVOKE",
   target = "Lnet/minecraft/util/math/Vec3d;add(DDD)Lnet/minecraft/util/math/Vec3d;",
   ordinal = 0
)
   )
   public Vec3d tick(Vec3d instance, double x, double y, double z) {
      ElytraBooster elytraBooster = ElytraBooster.INSTANCE;
      if (elytraBooster != null && elytraBooster.isEnabled() && MinecraftClient.getInstance().player.isGliding()) {
         if (elytraBooster.getMode().getValue().getName().equals("Auto")) {
            return instance.add(this.rotation.x * 0.1D + (this.rotation.x * BoostUtils.getBoost(MinecraftClient.getInstance().player).x - instance.x) * 0.5D, this.rotation.y * 0.1D + (this.rotation.y * BoostUtils.getBoost(MinecraftClient.getInstance().player).y - instance.y) * 0.5D, this.rotation.z * 0.1D + (this.rotation.z * BoostUtils.getBoost(MinecraftClient.getInstance().player).z - instance.z) * 0.5D);
         } else {
            double boostValue = (double)elytraBooster.getBoost().getCurrent();
            return instance.add(this.rotation.x * 0.1D + (this.rotation.x * boostValue - instance.x) * 0.5D, this.rotation.y * 0.1D + (this.rotation.y * boostValue - instance.y) * 0.5D, this.rotation.z * 0.1D + (this.rotation.z * boostValue - instance.z) * 0.5D);
         }
      } else {
         return instance.add(this.rotation.x * 0.1D + (this.rotation.x * 1.5D - instance.x) * 0.5D, this.rotation.y * 0.1D + (this.rotation.y * 1.5D - instance.y) * 0.5D, this.rotation.z * 0.1D + (this.rotation.z * 1.5D - instance.z) * 0.5D);
      }
   }

   @Unique
   private Vec3d calculateRotationVector(float pitch, float yaw) {
      float f = pitch * 0.017453292F;
      float g = -yaw * 0.017453292F;
      float h = MathHelper.cos(g);
      float i = MathHelper.sin(g);
      float j = MathHelper.cos(f);
      float k = MathHelper.sin(f);
      return new Vec3d((double)(i * j), (double)(-k), (double)(h * j));
   }
}
дай
BoostUtils
 
Паста паста ленд:
Expand Collapse Copy
package Zenith.utility.math;

import lombok.Generated;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffects;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import zenith.utility.interfaces.IClient;

public final class BoostUtils implements IClient {
   public static Vec3d getBoost(LivingEntity entity) {
      float yaw = Math.abs((entity.getYaw() - 360.0F) % 360.0F);
      float maxSpeed = 2.4F;
      float[] centers = new float[]{45.0F, 135.0F, 225.0F, 315.0F};
      float center = centers[0];
      float minDiff = 9999.0F;
      float[] var6 = centers;
      int var7 = centers.length;

      float f;
      for(int var8 = 0; var8 < var7; ++var8) {
         float c = var6[var8];
         f = Math.abs(yaw - c);
         if (f < minDiff) {
            minDiff = f;
            center = c;
         }
      }

      float diff = Math.abs(yaw - center);
      float speed = maxSpeed - diff * 0.05F;
      Vec3d vec3d = entity.getRotationVector();
      Vec3d oldVelocity = Vec3d.fromPolar(entity.getPitch(), entity.getYaw()).multiply((double)Math.max(speed, 1.61F));
      f = entity.getPitch() * 0.017453292F;
      double d = Math.sqrt(vec3d.x * vec3d.x + vec3d.z * vec3d.z);
      double e = oldVelocity.horizontalLength();
      boolean bl = entity.getVelocity().y <= 0.0D;
      double g = bl && entity.hasStatusEffect(StatusEffects.SLOW_FALLING) ? Math.min(entity.getFinalGravity(), 0.01D) : entity.getFinalGravity();
      double h = MathHelper.square(Math.cos((double)f));
      oldVelocity = oldVelocity.add(0.0D, g * (-1.0D + h * 0.75D), 0.0D);
      double i;
      if (oldVelocity.y < 0.0D && d > 0.0D) {
         i = oldVelocity.y * -0.1D * h;
         oldVelocity = oldVelocity.add(vec3d.x * i / d, i, vec3d.z * i / d);
      }

      if (f < 0.0F && d > 0.0D) {
         i = e * (double)(-MathHelper.sin(f)) * 0.04D;
         oldVelocity = oldVelocity.add(-vec3d.x * i / d, i * 3.2D, -vec3d.z * i / d);
      }

      if (d > 0.0D) {
         oldVelocity = oldVelocity.add((vec3d.x / d * e - oldVelocity.x) * 0.1D, 0.0D, (vec3d.z / d * e - oldVelocity.z) * 0.1D);
      }

      return (new Vec3d((new Vec3d(oldVelocity.x, oldVelocity.y, oldVelocity.z)).length(), (new Vec3d(oldVelocity.x, oldVelocity.y, oldVelocity.z)).length(), (new Vec3d(oldVelocity.x, oldVelocity.y, oldVelocity.z)).length())).multiply(0.99D, 0.98D, 0.99D);
   }

   @Generated
   private BoostUtils() {
      throw new UnsupportedOperationException("This is a utility class and cannot be instantiated");
   }
}
 
Паста паста ленд:
Expand Collapse Copy
package Zenith.utility.math;

import lombok.Generated;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffects;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import zenith.utility.interfaces.IClient;

public final class BoostUtils implements IClient {
   public static Vec3d getBoost(LivingEntity entity) {
      float yaw = Math.abs((entity.getYaw() - 360.0F) % 360.0F);
      float maxSpeed = 2.4F;
      float[] centers = new float[]{45.0F, 135.0F, 225.0F, 315.0F};
      float center = centers[0];
      float minDiff = 9999.0F;
      float[] var6 = centers;
      int var7 = centers.length;

      float f;
      for(int var8 = 0; var8 < var7; ++var8) {
         float c = var6[var8];
         f = Math.abs(yaw - c);
         if (f < minDiff) {
            minDiff = f;
            center = c;
         }
      }

      float diff = Math.abs(yaw - center);
      float speed = maxSpeed - diff * 0.05F;
      Vec3d vec3d = entity.getRotationVector();
      Vec3d oldVelocity = Vec3d.fromPolar(entity.getPitch(), entity.getYaw()).multiply((double)Math.max(speed, 1.61F));
      f = entity.getPitch() * 0.017453292F;
      double d = Math.sqrt(vec3d.x * vec3d.x + vec3d.z * vec3d.z);
      double e = oldVelocity.horizontalLength();
      boolean bl = entity.getVelocity().y <= 0.0D;
      double g = bl && entity.hasStatusEffect(StatusEffects.SLOW_FALLING) ? Math.min(entity.getFinalGravity(), 0.01D) : entity.getFinalGravity();
      double h = MathHelper.square(Math.cos((double)f));
      oldVelocity = oldVelocity.add(0.0D, g * (-1.0D + h * 0.75D), 0.0D);
      double i;
      if (oldVelocity.y < 0.0D && d > 0.0D) {
         i = oldVelocity.y * -0.1D * h;
         oldVelocity = oldVelocity.add(vec3d.x * i / d, i, vec3d.z * i / d);
      }

      if (f < 0.0F && d > 0.0D) {
         i = e * (double)(-MathHelper.sin(f)) * 0.04D;
         oldVelocity = oldVelocity.add(-vec3d.x * i / d, i * 3.2D, -vec3d.z * i / d);
      }

      if (d > 0.0D) {
         oldVelocity = oldVelocity.add((vec3d.x / d * e - oldVelocity.x) * 0.1D, 0.0D, (vec3d.z / d * e - oldVelocity.z) * 0.1D);
      }

      return (new Vec3d((new Vec3d(oldVelocity.x, oldVelocity.y, oldVelocity.z)).length(), (new Vec3d(oldVelocity.x, oldVelocity.y, oldVelocity.z)).length(), (new Vec3d(oldVelocity.x, oldVelocity.y, oldVelocity.z)).length())).multiply(0.99D, 0.98D, 0.99D);
   }

   @Generated
   private BoostUtils() {
      throw new UnsupportedOperationException("This is a utility class and cannot be instantiated");
   }
}
спасибо
 
Назад
Сверху Снизу