-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Сделал все не прозрачным
Убрал сердечки
убрал рофлы (удалили за 4.1(жаль что не за 3.1))
Добавил доллары
Добавил звездочки
Сделал все чтобы было PNG
BASE - base
качаем пнг
вставляем код
и еще этот
Убрал сердечки
убрал рофлы (удалили за 4.1(жаль что не за 3.1))
Добавил доллары
Добавил звездочки
Сделал все чтобы было PNG
BASE - base
качаем пнг
Пожалуйста, авторизуйтесь для просмотра ссылки.
вставляем код
particles:
package ru.ancientmc.functions.impl.render;
import com.google.common.eventbus.Subscribe;
import ru.ancientmc.events.AttackEvent;
import ru.ancientmc.events.EventDisplay;
import ru.ancientmc.functions.api.Category;
import ru.ancientmc.functions.api.Function;
import ru.ancientmc.functions.api.FunctionRegister;
import ru.ancientmc.functions.settings.impl.ModeSetting;
import ru.ancientmc.functions.settings.impl.SliderSetting;
import ru.ancientmc.utils.projections.ProjectionUtil;
import ru.ancientmc.utils.render.ColorUtils;
import ru.ancientmc.utils.render.DisplayUtils;
import ru.ancientmc.utils.render.font.Fonts;
import net.minecraft.block.BlockState;
import net.minecraft.entity.LivingEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.*;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;
import static net.minecraft.client.renderer.WorldRenderer.frustum;
@FunctionRegister(name = "Particles", type = Category.Render)
public class Particles extends Function {
private final ModeSetting setting = new ModeSetting("Вид", "Доллары", "Доллары", "Снежинки", "Орбизы", "Звездочки");
private final SliderSetting value = new SliderSetting("Кол-во за удар", 20.0f, 1.0f, 50.0f, 1.0f);
private final CopyOnWriteArrayList<Particle> particles = new CopyOnWriteArrayList<>();
public Particles() {
addSettings(setting, value);
}
@Override
public void updateEntity() {
}
private boolean isInView(Vector3d pos) {
frustum.setCameraPosition(mc.getRenderManager().info.getProjectedView().x,
mc.getRenderManager().info.getProjectedView().y,
mc.getRenderManager().info.getProjectedView().z);
return frustum.isBoundingBoxInFrustum(new AxisAlignedBB(pos.add(-0.2, -0.2, -0.2), pos.add(0.2, 0.2, 0.2)));
}
private boolean isVisible(Vector3d pos) {
Vector3d cameraPos = mc.getRenderManager().info.getProjectedView();
RayTraceContext context = new RayTraceContext(cameraPos, pos, RayTraceContext.BlockMode.OUTLINE, RayTraceContext.FluidMode.NONE, mc.player);
BlockRayTraceResult result = mc.world.rayTraceBlocks(context);
return result.getType() == RayTraceResult.Type.MISS;
}
@Subscribe
private void onUpdate(AttackEvent e) {
if (e.entity == mc.player) return;
if (e.entity instanceof LivingEntity livingEntity) {
Vector3d center = livingEntity.getPositionVec().add(0, livingEntity.getHeight() / 2f, 0);
for (int i = 0; i < value.get(); i++) {
particles.add(new Particle(center));
}
}
}
@Subscribe
private void onDisplay(EventDisplay e) {
if (mc.player == null || mc.world == null || e.getType() != EventDisplay.Type.PRE) {
return;
}
for (Particle p : particles) {
if (System.currentTimeMillis() - p.time > 7000 || p.alpha <= 0) {
particles.remove(p);
} else if (mc.player.getPositionVec().distanceTo(p.pos) > 30) {
particles.remove(p);
} else if (isInView(p.pos) && isVisible(p.pos)) {
p.update();
Vector2f pos = ProjectionUtil.project(p.pos.x, p.pos.y, p.pos.z);
float size = 1 - ((System.currentTimeMillis() - p.time) / 7000f);
final ResourceLocation star = new ResourceLocation("expensive/images/star.png");
final ResourceLocation snow = new ResourceLocation("expensive/images/snow.png");
final ResourceLocation orbiz = new ResourceLocation("expensive/images/orbiz.png");
final ResourceLocation dollar = new ResourceLocation("expensive/images/dollar.png");
switch (setting.get()) {
case "Доллары" -> {
DisplayUtils.drawImage(dollar, pos.x, pos.y, 30 * size, 30 * size, ColorUtils.setAlpha(HUD.getColor(particles.indexOf(p), 1), (int) ((255 * p.alpha) * size))); }
case "Снежинки" -> {
DisplayUtils.drawImage(snow, pos.x, pos.y, 30 * size, 30 * size, ColorUtils.setAlpha(HUD.getColor(particles.indexOf(p), 1), (int) ((255 * p.alpha) * size))); }
case "Орбизы" -> {
DisplayUtils.drawImage(orbiz, pos.x, pos.y, 30 * size, 30 * size, ColorUtils.setAlpha(HUD.getColor(particles.indexOf(p), 1), (int) ((255 * p.alpha) * size))); }
case "Звездочки" -> {
DisplayUtils.drawImage(star, pos.x, pos.y, 30 * size, 30 * size, ColorUtils.setAlpha(HUD.getColor(particles.indexOf(p), 1), (int) ((255 * p.alpha) * size)));
}
}
} else {
particles.remove(p);
}
}
}
private class Particle {
private Vector3d pos;
private Vector3d end;
private long time;
private long collisionTime = -1;
private Vector3d velocity;
private float alpha;
public Particle(Vector3d pos) {
this.pos = pos;
this.end = pos.add(-ThreadLocalRandom.current().nextFloat(-1, 1), -ThreadLocalRandom.current().nextFloat(-1, 1), -ThreadLocalRandom.current().nextFloat(-1, 1));
this.time = System.currentTimeMillis();
this.velocity = new Vector3d(
ThreadLocalRandom.current().nextDouble(-0.01, 0.01),
ThreadLocalRandom.current().nextDouble(0.01, 0.02),
ThreadLocalRandom.current().nextDouble(-0.01, 0.01)
);
this.alpha = 1.0f;
}
public void update() {
if (collisionTime != -1) {
long timeSinceCollision = System.currentTimeMillis() - collisionTime;
alpha = Math.max(0, 1 - (timeSinceCollision / 3000f));
}
velocity = velocity.add(0, -0.0001, 0);
Vector3d newPos = pos.add(velocity);
BlockPos particlePos = new BlockPos(newPos);
BlockState blockState = mc.world.getBlockState(particlePos);
if (!blockState.isAir()) {
if (collisionTime == -1) {
collisionTime = System.currentTimeMillis();
}
if (!mc.world.getBlockState(new BlockPos(pos.x + velocity.x, pos.y, pos.z)).isAir()) {
velocity = new Vector3d(0, velocity.y, velocity.z);
}
if (!mc.world.getBlockState(new BlockPos(pos.x, pos.y + velocity.y, pos.z)).isAir()) {
velocity = new Vector3d(velocity.x, -velocity.y * 0.5f, velocity.z); // Отскок с уменьшением скорости
}
if (!mc.world.getBlockState(new BlockPos(pos.x, pos.y, pos.z + velocity.z)).isAir()) {
velocity = new Vector3d(velocity.x, velocity.y, 0);
}
pos = pos.add(velocity);
} else {
pos = newPos;
}
}
}
}
worldparticles:
package ru.ancientmc.functions.impl.render;
import com.google.common.eventbus.Subscribe;
import net.minecraft.util.ResourceLocation;
import ru.ancientmc.events.EventDisplay;
import ru.ancientmc.functions.api.Category;
import ru.ancientmc.functions.api.Function;
import ru.ancientmc.functions.api.FunctionRegister;
import ru.ancientmc.functions.settings.impl.ModeSetting;
import ru.ancientmc.utils.client.IMinecraft;
import ru.ancientmc.utils.math.MathUtil;
import ru.ancientmc.utils.projections.ProjectionUtil;
import ru.ancientmc.utils.render.ColorUtils;
import ru.ancientmc.utils.render.DisplayUtils;
import ru.ancientmc.utils.render.font.Fonts;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;
import static net.minecraft.client.renderer.WorldRenderer.frustum;
@FunctionRegister(name = "WorldParticles", type = Category.Render)
public class WorldParticles extends Function {
private final ModeSetting setting = new ModeSetting("Вид", "Доллары", "Доллары", "Снежинки", "Орбизы", "Звездочки");
private final CopyOnWriteArrayList<Particle> particles = new CopyOnWriteArrayList<>();
public WorldParticles() {
addSettings(setting);
}
private boolean isInView(Vector3d pos) {
frustum.setCameraPosition(IMinecraft.mc.getRenderManager().info.getProjectedView().x,
IMinecraft.mc.getRenderManager().info.getProjectedView().y,
IMinecraft.mc.getRenderManager().info.getProjectedView().z);
return frustum.isBoundingBoxInFrustum(new AxisAlignedBB(pos.add(-0.2, -0.2, -0.2), pos.add(0.2, 0.2, 0.2)));
}
@Subscribe
private void onDisplay(EventDisplay e) {
if (mc.player == null || mc.world == null || e.getType() != EventDisplay.Type.PRE) {
return;
}
particles.add(new Particle());
for (Particle p : particles) {
if (System.currentTimeMillis() - p.time > 5000) {
particles.remove(p);
}
if (mc.player.getPositionVec().distanceTo(p.pos) > 30) {
particles.remove(p);
}
if (isInView(p.pos)) {
if (!mc.player.canEntityBeSeen(p.pos)) {
particles.remove(p);
}
p.update();
Vector2f pos = ProjectionUtil.project(p.pos.x, p.pos.y, p.pos.z);
final ResourceLocation star = new ResourceLocation("expensive/images/star.png");
final ResourceLocation snow = new ResourceLocation("expensive/images/snow.png");
final ResourceLocation orbiz = new ResourceLocation("expensive/images/orbiz.png");
final ResourceLocation dollar = new ResourceLocation("expensive/images/dollar.png");
float size = 1 - ((System.currentTimeMillis() - p.time) / 5000f);
switch (setting.get()) {
case "Доллары" -> {
DisplayUtils.drawImage(dollar, pos.x, pos.y, 30 * size, 30 * size, ColorUtils.setAlpha(HUD.getColor(particles.indexOf(p), 1), (int) ((255 * p.alpha) * size))); }
case "Снежинки" -> {
DisplayUtils.drawImage(snow, pos.x, pos.y, 30 * size, 30 * size, ColorUtils.setAlpha(HUD.getColor(particles.indexOf(p), 1), (int) ((255 * p.alpha) * size))); }
case "Орбизы" -> {
DisplayUtils.drawImage(orbiz, pos.x, pos.y, 30 * size, 30 * size, ColorUtils.setAlpha(HUD.getColor(particles.indexOf(p), 1), (int) ((255 * p.alpha) * size))); }
case "Звездочки" -> {
DisplayUtils.drawImage(star, pos.x, pos.y, 30 * size, 30 * size, ColorUtils.setAlpha(HUD.getColor(particles.indexOf(p), 1), (int) ((255 * p.alpha) * size)));
}
}
} else {
particles.remove(p);
}
}
}
private class Particle {
private Vector3d pos;
private final Vector3d end;
private final long time;
private float alpha;
public Particle() {
pos = mc.player.getPositionVec().add(-ThreadLocalRandom.current().nextFloat(-20, 20), ThreadLocalRandom.current().nextFloat(-5, 20), -ThreadLocalRandom.current().nextFloat(-20, 20));
end = pos.add(-ThreadLocalRandom.current().nextFloat(-3, 3), -ThreadLocalRandom.current().nextFloat(-3, 3), -ThreadLocalRandom.current().nextFloat(-3, 3));
time = System.currentTimeMillis();
}
public void update() {
alpha = MathUtil.fast(alpha, 1, 10);
pos = MathUtil.fast(pos, end, 0.5f);
}
}
@Override
public void onDisable() {
particles.clear();
super.onDisable();
}
@Override
public void updateEntity() {
}
}
Пожалуйста, авторизуйтесь для просмотра ссылки.