-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
//
// DEVELOPER
// LUMMET
//
package dev.lummet.functions.impl.render;
import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.systems.RenderSystem;
import dev.lummet.events.EventDisplay;
import dev.lummet.events.EventDisplay.Type;
import dev.lummet.functions.api.Category;
import dev.lummet.functions.api.Function;
import dev.lummet.functions.api.FunctionRegister;
import dev.lummet.functions.settings.Setting;
import dev.lummet.functions.settings.impl.ModeSetting;
import dev.lummet.utils.math.MathUtil;
import dev.lummet.utils.projections.ProjectionUtil;
import dev.lummet.utils.render.ColorUtils;
import dev.lummet.utils.render.DisplayUtils;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.ItemEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.math.vector.Vector4f;
@FunctionRegister(
name = "VulcanESP",
type = Category.Render
)
public class VulcanESP extends Function {
private final HashMap<Entity, Vector4f> positions = new HashMap();
private final ModeSetting modeSetting = new ModeSetting("Mode", "All", new String[]{"", "", "", "", "All"});
public VulcanESP() {
this.addSettings(new Setting[]{this.modeSetting});
}
@Subscribe
public void onDisplay(EventDisplay e) {
if (mc.world != null && e.getType() == Type.PRE) {
this.positions.clear();
Iterator var2 = mc.world.getAllEntities().iterator();
while(true) {
Entity entity;
boolean isDiamond;
boolean isPlayerHead;
boolean isTotem;
boolean isОТМЫЧКа;
boolean isNetheriteIngot;
boolean isNetheriteSword;
boolean isNetheritePickaxe;
do {
do {
if (!var2.hasNext()) {
RenderSystem.enableBlend();
RenderSystem.disableTexture();
RenderSystem.defaultBlendFunc();
RenderSystem.shadeModel(7425);
BufferBuilder builder = Tessellator.getInstance().getBuffer();
builder.begin(7, DefaultVertexFormats.POSITION_COLOR);
Iterator var25 = this.positions.entrySet().iterator();
while(var25.hasNext()) {
Map.Entry<Entity, Vector4f> entry = (Map.Entry)var25.next();
Vector4f position = (Vector4f)entry.getValue();
ItemEntity itemEntity = (ItemEntity)entry.getKey();
int color = 0;
if (itemEntity instanceof ItemEntity) {
if (itemEntity.getItem().getItem() == Items.DIAMOND) {
color = ColorUtils.rgba(0, 0, 255, 255);
} else if (itemEntity.getItem().getItem() == Items.PLAYER_HEAD) {
color = ColorUtils.rgba(255, 0, 0, 255);
} else if (itemEntity.getItem().getItem() == Items.TOTEM_OF_UNDYING) {
color = ColorUtils.rgba(255, 128, 0, 255);
} else if (itemEntity.getItem().getItem() == Items.TRIPWIRE_HOOK) {
color = ColorUtils.rgba(128, 0, 128, 255);
} else if (itemEntity.getItem().getItem() == Items.NETHERITE_INGOT) {
color = ColorUtils.rgba(0, 255, 0, 255);
} else if (itemEntity.getItem().getItem() == Items.NETHERITE_PICKAXE) {
color = ColorUtils.rgba(255, 0, 127, 255);
} else if (itemEntity.getItem().getItem() == Items.NETHERITE_SWORD) {
color = ColorUtils.rgba(102, 255, 255, 255);
}
DisplayUtils.drawBox((double)position.x, (double)position.y, (double)position.z, (double)position.w, 1.5, color);
}
}
Tessellator.getInstance().draw();
RenderSystem.shadeModel(7424);
RenderSystem.enableTexture();
RenderSystem.disableBlend();
return;
}
entity = (Entity)var2.next();
} while(!(entity instanceof ItemEntity));
ItemEntity itemEntity = (ItemEntity)entity;
ItemStack itemStack = itemEntity.getItem();
isDiamond = itemStack.getItem() == Items.DIAMOND;
isPlayerHead = itemStack.getItem() == Items.PLAYER_HEAD;
isTotem = itemStack.getItem() == Items.TOTEM_OF_UNDYING;
isОТМЫЧКа = itemStack.getItem() == Items.TRIPWIRE_HOOK;
isNetheriteIngot = itemStack.getItem() == Items.NETHERITE_INGOT;
isNetheriteSword = itemStack.getItem() == Items.NETHERITE_SWORD;
isNetheritePickaxe = itemStack.getItem() == Items.NETHERITE_PICKAXE;
} while(!this.isEntityVisible(isDiamond, isPlayerHead, isTotem, isОТМЫЧКа, isNetheriteIngot, isNetheritePickaxe, isNetheriteSword));
double x = MathUtil.interpolate(entity.getPosX(), entity.lastTickPosX, (double)e.getPartialTicks());
double y = MathUtil.interpolate(entity.getPosY(), entity.lastTickPosY, (double)e.getPartialTicks());
double z = MathUtil.interpolate(entity.getPosZ(), entity.lastTickPosZ, (double)e.getPartialTicks());
Vector3d size = new Vector3d(entity.getBoundingBox().maxX - entity.getBoundingBox().minX, entity.getBoundingBox().maxY - entity.getBoundingBox().minY, entity.getBoundingBox().maxZ - entity.getBoundingBox().minZ);
AxisAlignedBB aabb = new AxisAlignedBB(x - size.x / 1.5, y, z - size.z / 1.5, x + size.x / 1.5, y + size.y + 0.10000000149011612, z + size.z / 1.5);
Vector4f position = null;
for(int i = 0; i < 8; ++i) {
Vector2f vector = ProjectionUtil.project(i % 2 == 0 ? aabb.minX : aabb.maxX, i / 2 % 2 == 0 ? aabb.minY : aabb.maxY, i / 4 % 2 == 0 ? aabb.minZ : aabb.maxZ);
if (position == null) {
position = new Vector4f(vector.x, vector.y, 1.0F, 1.0F);
} else {
position.x = Math.min(vector.x, position.x);
position.y = Math.min(vector.y, position.y);
position.z = Math.max(vector.x, position.z);
position.w = Math.max(vector.y, position.w);
}
}
this.positions.put(entity, position);
}
}
}
private boolean isEntityVisible(boolean isDiamond, boolean isPlayerHead, boolean isTotem, boolean isОТМЫЧКА, boolean isNetheriteIngot, boolean isNetheritePickaxe, boolean isNetheriteSword) {
switch (this.modeSetting.getName()) {
case "Diamonds":
return isDiamond;
case "Player_Heads":
return isPlayerHead;
case "Totems":
return isTotem;
case "NetheriteIngot":
return isNetheriteIngot;
case "NetheritePickaxe":
return isNetheriteIngot;
case "NetheriteSword":
return isNetheriteIngot;
case "TRIPWIRE_HOOK":
return isОТМЫЧКА;
case "All":
default:
return isDiamond || isPlayerHead || isTotem || isОТМЫЧКА || isNetheriteIngot || isNetheritePickaxe || isNetheriteSword;
}
}
}
// DEVELOPER
// LUMMET
//
package dev.lummet.functions.impl.render;
import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.systems.RenderSystem;
import dev.lummet.events.EventDisplay;
import dev.lummet.events.EventDisplay.Type;
import dev.lummet.functions.api.Category;
import dev.lummet.functions.api.Function;
import dev.lummet.functions.api.FunctionRegister;
import dev.lummet.functions.settings.Setting;
import dev.lummet.functions.settings.impl.ModeSetting;
import dev.lummet.utils.math.MathUtil;
import dev.lummet.utils.projections.ProjectionUtil;
import dev.lummet.utils.render.ColorUtils;
import dev.lummet.utils.render.DisplayUtils;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.ItemEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.math.vector.Vector4f;
@FunctionRegister(
name = "VulcanESP",
type = Category.Render
)
public class VulcanESP extends Function {
private final HashMap<Entity, Vector4f> positions = new HashMap();
private final ModeSetting modeSetting = new ModeSetting("Mode", "All", new String[]{"", "", "", "", "All"});
public VulcanESP() {
this.addSettings(new Setting[]{this.modeSetting});
}
@Subscribe
public void onDisplay(EventDisplay e) {
if (mc.world != null && e.getType() == Type.PRE) {
this.positions.clear();
Iterator var2 = mc.world.getAllEntities().iterator();
while(true) {
Entity entity;
boolean isDiamond;
boolean isPlayerHead;
boolean isTotem;
boolean isОТМЫЧКа;
boolean isNetheriteIngot;
boolean isNetheriteSword;
boolean isNetheritePickaxe;
do {
do {
if (!var2.hasNext()) {
RenderSystem.enableBlend();
RenderSystem.disableTexture();
RenderSystem.defaultBlendFunc();
RenderSystem.shadeModel(7425);
BufferBuilder builder = Tessellator.getInstance().getBuffer();
builder.begin(7, DefaultVertexFormats.POSITION_COLOR);
Iterator var25 = this.positions.entrySet().iterator();
while(var25.hasNext()) {
Map.Entry<Entity, Vector4f> entry = (Map.Entry)var25.next();
Vector4f position = (Vector4f)entry.getValue();
ItemEntity itemEntity = (ItemEntity)entry.getKey();
int color = 0;
if (itemEntity instanceof ItemEntity) {
if (itemEntity.getItem().getItem() == Items.DIAMOND) {
color = ColorUtils.rgba(0, 0, 255, 255);
} else if (itemEntity.getItem().getItem() == Items.PLAYER_HEAD) {
color = ColorUtils.rgba(255, 0, 0, 255);
} else if (itemEntity.getItem().getItem() == Items.TOTEM_OF_UNDYING) {
color = ColorUtils.rgba(255, 128, 0, 255);
} else if (itemEntity.getItem().getItem() == Items.TRIPWIRE_HOOK) {
color = ColorUtils.rgba(128, 0, 128, 255);
} else if (itemEntity.getItem().getItem() == Items.NETHERITE_INGOT) {
color = ColorUtils.rgba(0, 255, 0, 255);
} else if (itemEntity.getItem().getItem() == Items.NETHERITE_PICKAXE) {
color = ColorUtils.rgba(255, 0, 127, 255);
} else if (itemEntity.getItem().getItem() == Items.NETHERITE_SWORD) {
color = ColorUtils.rgba(102, 255, 255, 255);
}
DisplayUtils.drawBox((double)position.x, (double)position.y, (double)position.z, (double)position.w, 1.5, color);
}
}
Tessellator.getInstance().draw();
RenderSystem.shadeModel(7424);
RenderSystem.enableTexture();
RenderSystem.disableBlend();
return;
}
entity = (Entity)var2.next();
} while(!(entity instanceof ItemEntity));
ItemEntity itemEntity = (ItemEntity)entity;
ItemStack itemStack = itemEntity.getItem();
isDiamond = itemStack.getItem() == Items.DIAMOND;
isPlayerHead = itemStack.getItem() == Items.PLAYER_HEAD;
isTotem = itemStack.getItem() == Items.TOTEM_OF_UNDYING;
isОТМЫЧКа = itemStack.getItem() == Items.TRIPWIRE_HOOK;
isNetheriteIngot = itemStack.getItem() == Items.NETHERITE_INGOT;
isNetheriteSword = itemStack.getItem() == Items.NETHERITE_SWORD;
isNetheritePickaxe = itemStack.getItem() == Items.NETHERITE_PICKAXE;
} while(!this.isEntityVisible(isDiamond, isPlayerHead, isTotem, isОТМЫЧКа, isNetheriteIngot, isNetheritePickaxe, isNetheriteSword));
double x = MathUtil.interpolate(entity.getPosX(), entity.lastTickPosX, (double)e.getPartialTicks());
double y = MathUtil.interpolate(entity.getPosY(), entity.lastTickPosY, (double)e.getPartialTicks());
double z = MathUtil.interpolate(entity.getPosZ(), entity.lastTickPosZ, (double)e.getPartialTicks());
Vector3d size = new Vector3d(entity.getBoundingBox().maxX - entity.getBoundingBox().minX, entity.getBoundingBox().maxY - entity.getBoundingBox().minY, entity.getBoundingBox().maxZ - entity.getBoundingBox().minZ);
AxisAlignedBB aabb = new AxisAlignedBB(x - size.x / 1.5, y, z - size.z / 1.5, x + size.x / 1.5, y + size.y + 0.10000000149011612, z + size.z / 1.5);
Vector4f position = null;
for(int i = 0; i < 8; ++i) {
Vector2f vector = ProjectionUtil.project(i % 2 == 0 ? aabb.minX : aabb.maxX, i / 2 % 2 == 0 ? aabb.minY : aabb.maxY, i / 4 % 2 == 0 ? aabb.minZ : aabb.maxZ);
if (position == null) {
position = new Vector4f(vector.x, vector.y, 1.0F, 1.0F);
} else {
position.x = Math.min(vector.x, position.x);
position.y = Math.min(vector.y, position.y);
position.z = Math.max(vector.x, position.z);
position.w = Math.max(vector.y, position.w);
}
}
this.positions.put(entity, position);
}
}
}
private boolean isEntityVisible(boolean isDiamond, boolean isPlayerHead, boolean isTotem, boolean isОТМЫЧКА, boolean isNetheriteIngot, boolean isNetheritePickaxe, boolean isNetheriteSword) {
switch (this.modeSetting.getName()) {
case "Diamonds":
return isDiamond;
case "Player_Heads":
return isPlayerHead;
case "Totems":
return isTotem;
case "NetheriteIngot":
return isNetheriteIngot;
case "NetheritePickaxe":
return isNetheriteIngot;
case "NetheriteSword":
return isNetheriteIngot;
case "TRIPWIRE_HOOK":
return isОТМЫЧКА;
case "All":
default:
return isDiamond || isPlayerHead || isTotem || isОТМЫЧКА || isNetheriteIngot || isNetheritePickaxe || isNetheriteSword;
}
}
}
Вложения
-
1.2 MB Просмотры: 331