Начинающий
- Статус
- Оффлайн
- Регистрация
- 27 Ноя 2024
- Сообщения
- 126
- Реакции
- 0
- Выберите загрузчик игры
- Forge
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
привет, вот vulcan esp вроде не было прошу не бить палками
VulcanESP::
package astraa.cc.modules.impl.render;
import astraa.cc.modules.api.Category;
import astraa.cc.modules.api.Module;
import astraa.cc.modules.api.ModuleRegister;
import astraa.cc.modules.settings.impl.BooleanSetting;
import astraa.cc.utils.projections.ProjectionUtil;
import astraa.cc.utils.render.rect.DisplayUtils;
import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.matrix.MatrixStack;
import astraa.cc.events.EventDisplay;
import astraa.cc.utils.render.font.Fonts;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.ItemEntity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector2f;
import org.lwjgl.opengl.GL11;
import java.util.HashMap;
@ModuleRegister(name = "VulcanESP", category = Category.Render)
public class VulcanESP extends Module {
private final HashMap<Entity, Vector4i> positions = new HashMap<>();
private final BooleanSetting showItemName = new BooleanSetting("VulcanESP", true);
public VulcanESP() {
addSettings(showItemName);
}
[USER=1474073]@Subscribe[/USER]
public void onDisplay(EventDisplay e) {
if (mc.world == null || e.getType() != EventDisplay.Type.PRE) return;
positions.clear();
for (Entity entity : mc.world.getAllEntities()) {
if (!(entity instanceof ItemEntity)) continue;
double x = entity.getPosX();
double y = entity.getPosY() + entity.getHeight() + 0.5;
double z = entity.getPosZ();
AxisAlignedBB aabb = entity.getBoundingBox();
Vector4i position = projectAABB(aabb, x, y, z);
if (position != null) {
positions.put(entity, position);
}
}
for (Entity entity : positions.keySet()) {
if (entity instanceof ItemEntity itemEntity) {
if (showItemName.get()) {
renderItemNametag(e.getMatrixStack(), itemEntity, positions.get(entity));
}
}
}
}
private Vector4i projectAABB(AxisAlignedBB aabb, double x, double y, double z) {
Vector4i position = null;
for (int i = 0; i < 8; i++) {
Vector2f vector = ProjectionUtil.project(
(i & 1) == 0 ? aabb.minX : aabb.maxX,
(i & 2) == 0 ? aabb.minY : aabb.maxY,
(i & 4) == 0 ? aabb.minZ : aabb.maxZ
);
if (position == null) {
position = new Vector4i(vector.x, vector.y, vector.x, vector.y);
} else {
position.x = Math.min(position.x, vector.x);
position.y = Math.min(position.y, vector.y);
position.z = Math.max(position.z, vector.x);
position.w = Math.max(position.w, vector.y);
}
}
return position;
}
private void renderItemNametag(MatrixStack stack, ItemEntity itemEntity, Vector4i position) {
String name = itemEntity.getItem().getDisplayName().getString();
float midX = (position.x + position.z) / 2f;
float yOffset = position.y;
float nameWidth = Fonts.montserrat.getWidth(name, 8);
GL11.glPushMatrix();
GL11.glPopMatrix();
Fonts.montserrat.drawText(stack, name, midX - nameWidth / 2f, yOffset - 8, -1, 8, 0.05f);
}
private static class Vector4i {
public float x, y, z, w;
public Vector4i(float x, float y, float z, float w) {
this.x = x;
this.y = y;
this.z = z;
this.w = w;
}
}
}
Пожалуйста, авторизуйтесь для просмотра ссылки.