Начинающий
- Статус
- Оффлайн
- Регистрация
- 6 Янв 2024
- Сообщения
- 58
- Реакции
- 1
Как перенести
TpInfluence из EvaWare на ThunderHack 1.21
Мне чат гпт накинул код для инфлюенца но он не ворк
TpInfluence из EvaWare на ThunderHack 1.21
Мне чат гпт накинул код для инфлюенца но он не ворк
Java:
package thunder.hack.features.modules.combat;
import meteordevelopment.orbit.EventHandler;
import thunder.hack.events.impl.PlayerUpdateEvent;
import thunder.hack.events.impl.PlayerUpdateEvent;
import thunder.hack.features.modules.Module;
import thunder.hack.setting.Setting;
import thunder.hack.utility.render.Render3DEngine;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
import net.minecraft.util.math.Box;
import net.minecraft.util.math.Vec3d;
import java.awt.*;
public class TpInfluence extends Module {
public TpInfluence() {
super("TpInfluence", Category.COMBAT);
}
private final Setting<Mode> mode = new Setting<>("Mode", Mode.VanillaH);
private final Setting<Float> range = new Setting<>("Range", 15f, 10f, 100f);
private final Setting<Boolean> render = new Setting<>("Render", true);
private final Setting<Boolean> autoDisable = new Setting<>("AutoDisable", true);
private Vec3d lastHandledPos = Vec3d.ZERO;
private boolean hasAttacked = false;
public enum Mode {
VanillaH, VanillaV, VanillaHG, VanillaVH,
StepV, StepH, StepVH, StepVG, StepHG
}
@Override
public void onEnable() {
lastHandledPos = Vec3d.ZERO;
hasAttacked = false;
}
@EventHandler
public void onUpdate(PlayerUpdateEvent event) {
if (hasAttacked && autoDisable.getValue()) {
disable();
return;
}
}
// Вызывается из KillAura перед атакой
public void onPreAttack(LivingEntity target) {
if (!isEnabled() || mc.player == null || mc.world == null) return;
Vec3d targetPos = calculateTargetPosition(target, range.getValue());
if (targetPos == null) return;
teleportAction(true, targetPos, mode.getValue());
}
// Вызывается из KillAura после атаки
public void onPostAttack(LivingEntity target) {
if (!isEnabled() || mc.player == null || mc.world == null) return;
Vec3d targetPos = calculateTargetPosition(target, range.getValue());
if (targetPos == null) return;
teleportAction(false, targetPos, mode.getValue());
hasAttacked = true;
}
private void teleportAction(boolean pre, Vec3d to, Mode actionType) {
Vec3d self = mc.player.getPos();
double dx = Math.abs(self.x - to.x);
double dy = Math.abs(self.y - to.y);
double dz = Math.abs(self.z - to.z);
boolean onGround = mc.player.isOnGround();
if (pre) {
switch (actionType) {
case StepVH -> {
double distance = Math.sqrt(dx * dx + dy * dy + dz * dz);
int packets = (int) (distance / 9.64) + 1;
for (int i = 0; i < packets; i++) {
sendPacket(false);
}
if (onGround) {
sendPacket(to.x, to.y + 0.08, to.z);
}
sendPacket(to.x, to.y + 0.01, to.z);
lastHandledPos = new Vec3d(to.x, to.y + 0.01, to.z);
}
case StepV -> {
double verticalDist = dy;
int packets = 1 + (int) (verticalDist / 9.73);
if (onGround) {
sendPacket(to.x, self.y + 0.08, to.z);
}
for (int i = 0; i < packets; i++) {
sendPacket(false);
}
sendPacket(self.x, to.y + 0.01, self.z);
lastHandledPos = new Vec3d(self.x, to.y + 0.01, self.z);
}
case StepH -> {
double horizontalDist = Math.sqrt(dx * dx + dz * dz);
int packets = (int) (horizontalDist / 8.953) + (onGround ? 1 : 0);
for (int i = 0; i < packets; i++) {
sendPacket(false);
}
sendPacket(to.x, self.y, to.z);
lastHandledPos = new Vec3d(to.x, self.y, to.z);
}
case VanillaH -> {
sendPacket(false);
sendPacket(to.x, self.y, to.z);
lastHandledPos = new Vec3d(to.x, self.y, to.z);
}
case VanillaV -> {
sendPacket(self.x, to.y, self.z);
lastHandledPos = new Vec3d(self.x, to.y, self.z);
}
case VanillaHG -> {
sendPacket(false);
sendPacket(to.x, to.y + 0.1, to.z);
lastHandledPos = new Vec3d(to.x, to.y + 0.1, to.z);
}
case VanillaVH -> {
sendPacket(false);
sendPacket(to.x, to.y, to.z);
lastHandledPos = new Vec3d(to.x, to.y, to.z);
}
case StepVG -> {
double distance = Math.sqrt(dx * dx + dy * dy + dz * dz);
int packets = (int) (distance / 9.64) + 1;
for (int i = 0; i < packets; i++) {
sendPacket(false);
}
sendPacket(to.x, to.y + 0.01, to.z);
lastHandledPos = new Vec3d(to.x, to.y + 0.01, to.z);
}
case StepHG -> {
double horizontalDist = Math.sqrt(dx * dx + dz * dz);
int packets = (int) (horizontalDist / 8.317) + (onGround ? 1 : 0);
for (int i = 0; i < packets; i++) {
sendPacket(false);
}
double yOffset = self.y - (onGround ? 0.0001 * packets : 0);
sendPacket(to.x, yOffset, to.z);
lastHandledPos = new Vec3d(to.x, yOffset, to.z);
if (!onGround) {
mc.player.setPos(self.x, self.y, self.z);
}
}
}
} else {
// Post-attack teleport back
switch (actionType) {
case StepVH -> {
sendPacket(self.x, self.y + 0.15, self.z);
sendPacket(self.x, self.y, self.z);
}
case StepV -> {
sendPacket(self.x, self.y, self.z);
sendPacket(self.x, self.y + (onGround ? 0.1 : -1e-13), self.z);
}
case VanillaV -> {
sendPacket(self.x, self.y + 0.0016, self.z);
}
case VanillaHG, StepVG -> {
sendPacket(self.x, self.y + 0.0016, self.z);
}
case VanillaVH -> {
sendPacket(self.x, self.y + 0.0016, self.z);
}
case StepHG -> {
sendPacket(self.x, self.y - (onGround ? 0.0002 : 0), self.z);
}
default -> {
sendPacket(self.x, self.y, self.z);
}
}
}
}
private Vec3d calculateTargetPosition(LivingEntity target, float distance) {
if (target == null) return null;
Vec3d targetPos = target.getPos();
Vec3d playerPos = mc.player.getPos();
double currentDistance = playerPos.distanceTo(targetPos);
if (currentDistance > distance) return null;
Vec3d direction = targetPos.subtract(playerPos).normalize();
return playerPos.add(direction.multiply(Math.min(distance, currentDistance - 1.5)));
}
private void sendPacket(double x, double y, double z) {
if (mc.getNetworkHandler() == null) return;
mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(x, y, z, mc.player.isOnGround()));
}
private void sendPacket(boolean onGround) {
if (mc.getNetworkHandler() == null) return;
mc.getNetworkHandler().sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), onGround));
}
// Визуализация с использованием системы рендера ThunderHack
public void onRender3D(net.minecraft.client.util.math.MatrixStack stack) {
if (!render.getValue() || lastHandledPos.equals(Vec3d.ZERO)) return;
float halfWidth = mc.player.getWidth() / 2;
Box renderBox = new Box(
lastHandledPos.x - halfWidth, lastHandledPos.y, lastHandledPos.z - halfWidth,
lastHandledPos.x + halfWidth, lastHandledPos.y + mc.player.getHeight(), lastHandledPos.z + halfWidth
);
Render3DEngine.drawBoxOutline(renderBox, Color.RED, 2f);
}
@Override
public void onDisable() {
lastHandledPos = Vec3d.ZERO;
hasAttacked = false;
}
@Override
public String getDisplayInfo() {
return mode.getValue().name();
}
}