Начинающий
-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
хз просто партиклы на экспу (мб кому-то надо)
Particle
и ешё point
ещё в function manager это и это
картинки сами найдёте
Particle
Код:
package ru.shield.modules.impl.combat;
import java.awt.Color;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.EnderPearlEntity;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CUseEntityPacket;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.vector.Vector3d;
import org.joml.Vector2d;
import ru.shield.events.Event;
import ru.shield.events.impl.packet.EventPacket;
import ru.shield.events.impl.player.EventMotion;
import ru.shield.events.impl.render.EventRender;
import ru.shield.managment.Managment;
import ru.shield.modules.Function;
import ru.shield.modules.FunctionAnnotation;
import ru.shield.modules.Type;
import ru.shield.modules.settings.imp.BooleanOption;
import ru.shield.modules.settings.imp.ModeSetting;
import ru.shield.modules.settings.imp.SliderSetting;
import ru.shield.util.math.PlayerPositionTracker;
import ru.shield.util.render.BloomHelper;
import ru.shield.util.render.ColorUtil;
import ru.shield.util.render.ProjectionUtils;
import ru.shield.util.render.RenderUtil;
@FunctionAnnotation(name="Particles", type=Type.Combat)
public class Particles
extends Function {
public BooleanOption hit = new BooleanOption("Только при уроне", true);
public SliderSetting Size = new SliderSetting("Размер", 10.0f, 10.0f, 20.0f, 1.0f);
private ModeSetting mode = new ModeSetting("Мод", "Шарики", "Шарики","Снежинки","Сердечки","Звезда");
CopyOnWriteArrayList<Point> points = new CopyOnWriteArrayList();
public Particles() {
this.addSettings(this.mode, this.hit, this.Size);
}
@Override
public void onEvent(Event event) {
Event e;
CUseEntityPacket use;
EventPacket e2;
IPacket var4;
if (Managment.FUNCTION_MANAGER.particleses.hit.get() && event instanceof EventPacket && (var4 = (e2 = (EventPacket)event).getPacket()) instanceof CUseEntityPacket && (use = (CUseEntityPacket)var4).getAction() == CUseEntityPacket.Action.ATTACK) {
Entity entity = use.getEntityFromWorld(Particles.mc.world);
if (Particles.mc.world != null && entity != null) {
this.createPoints(entity.getPositionVec().add(0.0, 1.0, 0.0));
}
}
if (event instanceof EventMotion) {
e = (EventMotion)event;
for (Entity entity : Particles.mc.world.getAllEntities()) {
if (entity instanceof LivingEntity) {
LivingEntity l = (LivingEntity)entity;
if (l.hurtTime == 9) {
this.createPoints(l.getPositionVec().add(0.0, 1.0, 0.0));
}
}
if (!(entity instanceof EnderPearlEntity)) continue;
EnderPearlEntity p = (EnderPearlEntity)entity;
this.points.add(new Point(this, p.getPositionVec()));
}
}
if (event instanceof EventRender && ((EventRender)(e = (EventRender)event)).isRender2D()) {
if (this.points.size() > 100) {
this.points.remove(0);
}
for (Point point : this.points) {
long alive = System.currentTimeMillis() - point.createdTime;
if (alive <= point.aliveTime) {
Minecraft var10000 = mc;
if (Minecraft.player.canVectorBeSeenFixed(point.position) && PlayerPositionTracker.isInView(point.position)) {
Vector2d pos = ProjectionUtils.project(point.position.x, point.position.y, point.position.z);
if (pos == null) continue;
float sizeDefault = point.size;
point.update();
float size = 1.0f - (float)alive / (float)point.aliveTime;
float sized = this.Size.getValue().floatValue();
BloomHelper.registerRenderCall(() -> {
switch (this.mode.get()) {
case "Шарики": {
RenderUtil.Render2D.drawRoundCircle((float)pos.x, (float)pos.y, (sizeDefault + 1.0f) * size, Color.BLACK.getRGB());//картинка шарика
RenderUtil.Render2D.drawRoundCircle((float)pos.x, (float)pos.y, sizeDefault * size, ColorUtil.getColorStyle(this.points.indexOf(point)));//картинка шарика
break;
}
case "Снежинки": {
RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/snowflake.png"), (float)pos.x, (float)pos.y, sized, sized, Color.BLACK.getRGB());//картинка снежинки
RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/snowflake.png"), (float)pos.x, (float)pos.y, sized, sized, ColorUtil.getColorStyle(this.points.indexOf(point)));//картинка снежинки
break;
}
case "Сердечки": {
RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/heart.png"), (float)pos.x, (float)pos.y, sized, sized, Color.BLACK.getRGB());//картинка сердечка
RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/heart.png"), (float)pos.x, (float)pos.y, sized, sized, ColorUtil.getColorStyle(this.points.indexOf(point)));//картинка сердечка
break;
}
case "Звезда": {
RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/star.png"), (float)pos.x, (float)pos.y, sized, sized, Color.BLACK.getRGB());//картинка звезды
RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/star.png"), (float)pos.x, (float)pos.y, sized, sized, ColorUtil.getColorStyle(this.points.indexOf(point)));//картинка звезды
}
}
});
switch (this.mode.get()) {
case "Шарики": {
RenderUtil.Render2D.drawRoundCircle((float)pos.x, (float)pos.y, (sizeDefault + 1.0f) * size, Color.BLACK.getRGB());//картинка шарика
RenderUtil.Render2D.drawRoundCircle((float)pos.x, (float)pos.y, sizeDefault * size, ColorUtil.getColorStyle(this.points.indexOf(point)));//картинка шарика
break;
}
case "Снежинки": {
RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/snowflake.png"), (float)pos.x, (float)pos.y, sized, sized, Color.BLACK.getRGB());//картинка снежинки
RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/snowflake.png"), (float)pos.x, (float)pos.y, sized, sized, ColorUtil.getColorStyle(this.points.indexOf(point)));//картинка снежинки
break;
}
case "Сердечки": {
RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/heart.png"), (float)pos.x, (float)pos.y, sized, sized, Color.BLACK.getRGB());//картинка сердечка
RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/heart.png"), (float)pos.x, (float)pos.y, sized, sized, ColorUtil.getColorStyle(this.points.indexOf(point)));//картинка сердечка
break;
}
case "Звезда": {
RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/star.png"), (float)pos.x, (float)pos.y, sized, sized, Color.BLACK.getRGB());//картинка звезды
RenderUtil.Render2D.drawImage(new ResourceLocation("expensive/images/star.png"), (float)pos.x, (float)pos.y, sized, sized, ColorUtil.getColorStyle(this.points.indexOf(point)));//картинка звезды
}
}
continue;
}
}
this.points.remove(point);
}
return;
}
}
private void createPoints(Vector3d position2) {
for (int i = 0; i < ThreadLocalRandom.current().nextInt(5, 20); ++i) {
this.points.add(new Point(this, position2));
}
}
}
Код:
package ru.shield.modules.impl.combat;
import java.util.concurrent.ThreadLocalRandom;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.vector.Vector3d;
import ru.shield.modules.impl.combat.Particles;
import ru.shield.util.IMinecraft;
import ru.shield.util.animations.Direction;
import ru.shield.util.render.animation.AnimationMath;
import ru.shield.util.world.WorldUtil;
final class Point {
private final Particles this$0;
public Vector3d position;
public Vector3d motion;
public Vector3d animatedMotion;
public long aliveTime;
public float size;
public long createdTime;
public Point(Particles var1, Vector3d position2) {
this.this$0 = var1;
this.createdTime = System.currentTimeMillis();
this.position = new Vector3d(position2.x, position2.y, position2.z);
this.motion = new Vector3d(ThreadLocalRandom.current().nextFloat(-0.01f, 0.01f), 0.0, ThreadLocalRandom.current().nextFloat(-0.01f, 0.01f));
this.animatedMotion = new Vector3d(0.0, 0.0, 0.0);
this.size = ThreadLocalRandom.current().nextFloat(4.0f, 7.0f);
this.aliveTime = ThreadLocalRandom.current().nextLong(3000L, 10000L);
}
public void update() {
if (this.isGround()) {
this.motion.y = 1.0;
Vector3d var10000 = this.motion;
var10000.x *= 1.05;
var10000 = this.motion;
var10000.z *= 1.05;
} else {
this.motion.y = -0.01;
Vector3d var10000 = this.motion;
var10000.y *= 2.0;
}
this.animatedMotion.x = AnimationMath.fast((float)this.animatedMotion.x, (float)this.motion.x, 3.0f);
this.animatedMotion.y = AnimationMath.fast((float)this.animatedMotion.y, (float)this.motion.y, 3.0f);
this.animatedMotion.z = AnimationMath.fast((float)this.animatedMotion.z, (float)this.motion.z, 3.0f);
this.position = this.position.add(this.animatedMotion);
}
boolean isGround() {
Vector3d position2 = this.position.add(this.animatedMotion);
AxisAlignedBB bb = new AxisAlignedBB(position2.x - 0.1, position2.y - 0.1, position2.z - 0.1, position2.x + 0.1, position2.y + 0.1, position2.z + 0.1);
return WorldUtil.TotemUtil.getSphere(new BlockPos(position2), 2.0f, 4, false, true, 0).stream().anyMatch(blockPos -> !IMinecraft.mc.world.getBlockState((BlockPos)blockPos).isAir() && bb.intersects(new AxisAlignedBB((BlockPos)blockPos)) && AxisAlignedBB.calcSideHit(new AxisAlignedBB(blockPos.add(0, 1, 0)), position2, new double[]{2.0}, (Direction)null, (double)0.1f, (double)0.1f, (double)0.1f) == Direction.DOWN);
}
}
картинки сами найдёте