- Выберите загрузчик игры
- Fabric
Короче видел тему с этим таргет есп (noad) и решил перенести на фабрик 1.21.4
импорты самы сделаете
code -
ss -
импорты самы сделаете
code -
Java:
public class PigESP extends Module {
private final SelectSetting mode = new SelectSetting("Вид", "Кого рендерить")
.value("Свэня").selected("Свэня");
private final ValueSetting speed = new ValueSetting("Скрст", "speed")
.setValue(1.5F).range(0.5f, 3.0f);
private LivingEntity target;
private boolean rendering = false;
private PigEntity cachedPig;
public PigESP() {
super("PigESP", "PigESP", ModuleCategory.MISC);
setup(mode, speed);
}
@EventHandler
private void onTick(TickEvent event) {
KillAura aura = KillAura.getInstance();
if (aura != null && aura.isState()) {
LivingEntity auraTarget = aura.getTarget();
if (auraTarget != null && auraTarget != mc.player) {
target = auraTarget;
rendering = true;
return;
}
}
rendering = false;
}
@SuppressWarnings("unchecked")
@EventHandler
public void onWorldRender(WorldRenderEvent e) {
if (!rendering || target == null || mc.world == null) return;
if (!mode.isSelected("Свэня")) return;
float partialTicks = e.getPartialTicks();
double interpX = MathUtil.interpolate(target.prevX, target.getX());
double interpY = MathUtil.interpolate(target.prevY, target.getY());
double interpZ = MathUtil.interpolate(target.prevZ, target.getZ());
Camera camera = mc.getEntityRenderDispatcher().camera;
Vec3d camPos = camera.getPos();
double x = interpX - camPos.x;
double y = interpY - camPos.y;
double z = interpZ - camPos.z;
float radius = 0.7f;
float orbitHeight = 1.0f;
float speedMul = 0.00025f * speed.getValue();
float time = -(System.currentTimeMillis() % 1000000) * speedMul;
double[] px = new double[8];
double[] py = new double[8];
double[] pz = new double[8];
float baseAngle = time * 360;
for (int i = 0; i < 8; i++) {
float angle = baseAngle + (i / 8.0f) * 360f;
double rad = Math.toRadians(angle);
float verticalOffset = (i % 2 == 0) ? 0.1f : -0.1f;
px[i] = x + Math.cos(rad) * radius;
py[i] = y + orbitHeight + verticalOffset - 0.2f;
pz[i] = z + Math.sin(rad) * radius;
}
double topPigX = x;
double topPigY = y + 2.2f;
double topPigZ = z;
float timeAlt = (System.currentTimeMillis() % 1000000) * speed.getValue() * 0.00100f;
float topYaw = timeAlt * 180;
float topPitch = (float) (Math.sin(timeAlt * 1.5) * 120);
float topRoll = (float) (Math.cos(timeAlt * 1.2) * 90);
if (cachedPig == null || !cachedPig.isAlive()) {
cachedPig = new PigEntity(EntityType.PIG, mc.world);
}
EntityRenderDispatcher dispatcher = mc.getEntityRenderDispatcher();
VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers();
EntityRenderer<? super PigEntity, ?> pigRenderer = dispatcher.getRenderer(cachedPig);
if (pigRenderer == null) return;
for (int i = 0; i < 9; i++) {
double posX, posY, posZ;
double nextX, nextY, nextZ;
if (i < 8) {
posX = px[i];
posY = py[i];
posZ = pz[i];
int nextIndex = (i + 1) % 8;
nextX = px[nextIndex];
nextY = py[nextIndex];
nextZ = pz[nextIndex];
} else {
posX = topPigX;
posY = topPigY;
posZ = topPigZ;
nextX = px[0];
nextY = py[0];
nextZ = pz[0];
}
MatrixStack stack = new MatrixStack();
stack.push();
stack.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));
stack.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(camera.getYaw() + 180.0F));
stack.translate(posX, posY, posZ);
if (i == 8) {
stack.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(topYaw));
stack.multiply(RotationAxis.POSITIVE_X.rotationDegrees(topPitch));
stack.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(topRoll));
} else {
double lX = nextX - posX;
double lZ = nextZ - posZ;
float yaw = (float) Math.toDegrees(Math.atan2(-lZ, lX)) - 95;
stack.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(yaw));
}
float scale = (i == 8) ? 0.4f : 0.3f;
stack.scale(scale, scale, scale);
try {
cachedPig.limbAnimator.setSpeed(0);
cachedPig.age = 0;
cachedPig.bodyYaw = 0;
cachedPig.prevBodyYaw = 0;
cachedPig.headYaw = 0;
cachedPig.prevHeadYaw = 0;
cachedPig.setPitch(0);
cachedPig.prevPitch = 0;
RenderSystem.disableDepthTest();
renderEntity(
dispatcher,
cachedPig,
0, 0, 0,
partialTicks,
stack,
immediate,
LightmapTextureManager.MAX_LIGHT_COORDINATE,
pigRenderer
);
} catch (Exception ignored) {}
stack.pop();
}
immediate.draw();
RenderSystem.enableDepthTest();
}
@SuppressWarnings("unchecked")
private <E extends net.minecraft.entity.Entity, S extends net.minecraft.client.render.entity.state.EntityRenderState>
void renderEntity(
EntityRenderDispatcher dispatcher,
E entity,
double x, double y, double z,
float tickDelta,
MatrixStack matrices,
VertexConsumerProvider vertexConsumers,
int light,
EntityRenderer<? super E, ?> renderer
) {
try {
java.lang.reflect.Method renderMethod = EntityRenderDispatcher.class.getDeclaredMethod(
"render",
net.minecraft.entity.Entity.class,
double.class, double.class, double.class,
float.class,
MatrixStack.class,
VertexConsumerProvider.class,
int.class,
EntityRenderer.class
);
renderMethod.setAccessible(true);
renderMethod.invoke(dispatcher, entity, x, y, z, tickDelta, matrices, vertexConsumers, light, renderer);
} catch (Exception ex) {
ex.printStackTrace();
}
}
@Override
public void deactivate() {
super.deactivate();
rendering = false;
target = null;
cachedPig = null;
}
}
ss -
