Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Визуальная часть HitEffects 1.21.4 fabric Rich 1.21.4

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
2 Июл 2025
Сообщения
41
Реакции
1
Выберите загрузчик игры
  1. Fabric
Всем привет, прикольная штучка, знаю что она итак была в этой базе, но баганная + не рабочая
Перенести принципе можно

Пожалуйста, авторизуйтесь для просмотра ссылки.


wexside(((:
Expand Collapse Copy
package fun.rich.features.impl.render;

import fun.rich.events.player.AttackEvent;
import fun.rich.events.render.WorldRenderEvent;
import fun.rich.features.module.Module;
import fun.rich.features.module.ModuleCategory;
import fun.rich.utils.client.Instance;
import fun.rich.utils.client.managers.event.EventHandler;
import fun.rich.utils.display.color.ColorAssist;
import fun.rich.utils.display.geometry.Render3D;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.block.BlockState;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.shape.VoxelShape;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
public class HitEffect extends Module {

    public static HitEffect getInstance() {
        return Instance.get(HitEffect.class);
    }

    final List<WaveEffect> waveEffects = new ArrayList<>();

    public HitEffect() {
        super("HitEffect", "Hit Effect", ModuleCategory.RENDER);
    }

    @EventHandler
    public void onAttack(AttackEvent e) {
        if (e.getEntity() == null) return;

        Vec3d pos = e.getEntity().getPos();
        BlockPos basePos = BlockPos.ofFloored(pos.x, pos.y - 0.1, pos.z);

        addWave(basePos);
    }

    public void addWave(BlockPos pos) {
        if (mc.world != null) {
            waveEffects.add(new WaveEffect(pos, System.currentTimeMillis()));
        }
    }

    @EventHandler
    public void onWorldRender(WorldRenderEvent e) {
        if (waveEffects.isEmpty() || mc.world == null) return;

        Iterator<WaveEffect> iterator = waveEffects.iterator();
        while (iterator.hasNext()) {
            WaveEffect wave = iterator.next();
            if (wave.isExpired()) {
                iterator.remove();
                continue;
            }
            wave.render();
        }
    }

    private class WaveEffect {
        private final BlockPos centerPos;
        private final long startTime;
        private final long duration = 1500;
        private final int maxRadius = 12;

        public WaveEffect(BlockPos centerPos, long startTime) {
            this.centerPos = centerPos;
            this.startTime = startTime;
        }

        public boolean isExpired() {
            return System.currentTimeMillis() - startTime > duration;
        }

        public void render() {
            if (mc.world == null) return;

            long elapsed = System.currentTimeMillis() - startTime;
            float progress = (float) elapsed / duration;

            float currentRadius = progress * maxRadius;
            float waveWidth = 2.5f;
            float globalAlpha = (float) Math.pow(1.0f - progress, 0.6);

            int rendered = 0;
            int maxPerFrame = 400;

            float minRadSq = (currentRadius - waveWidth) * (currentRadius - waveWidth);
            float maxRadSq = (currentRadius + 0.5f) * (currentRadius + 0.5f);

            int clientColor = ColorAssist.getClientColor();

            for (int x = -maxRadius; x <= maxRadius; x++) {
                for (int z = -maxRadius; z <= maxRadius; z++) {
                    if (rendered >= maxPerFrame) return;

                    float distSq = x * x + z * z;

                    if (distSq < minRadSq || distSq > maxRadSq) continue;

                    BlockPos checkPos = centerPos.add(x, 0, z);
                    BlockPos renderPos = findSurface(checkPos);

                    if (renderPos == null) continue;

                    BlockState state = mc.world.getBlockState(renderPos);
                    VoxelShape shape = state.getOutlineShape(mc.world, renderPos);
                    if (shape.isEmpty()) continue;

                    rendered++;

                    float distance = (float) Math.sqrt(distSq);

                    float localAlpha = 1.0f - Math.abs(distance - currentRadius) / waveWidth;
                    localAlpha = Math.max(0, Math.min(1, localAlpha)) * globalAlpha;

                    if (localAlpha > 0.05f) {
                        int color = ColorAssist.setAlpha(clientColor, (int) (localAlpha * 255));

                        float lineWidth = 1.0f + (localAlpha * 2.5f);

                        try {
                            Render3D.drawShapeAlternative(
                                    renderPos,
                                    shape,
                                    color,
                                    lineWidth,
                                    true,
                                    true
                            );
                        } catch (Exception ignored) {
                        }
                    }
                }
            }
        }

        private BlockPos findSurface(BlockPos pos) {
            for (int y = 2; y >= -4; y--) {
                BlockPos p = pos.up(y);
                if (!mc.world.getBlockState(p).isAir() && mc.world.getBlockState(p.up()).isAir()) {
                    return p;
                }
            }
            return null;
        }
    }
}
 
Всем привет, прикольная штучка, знаю что она итак была в этой базе, но баганная + не рабочая
Перенести принципе можно

Пожалуйста, авторизуйтесь для просмотра ссылки.


wexside(((:
Expand Collapse Copy
package fun.rich.features.impl.render;

import fun.rich.events.player.AttackEvent;
import fun.rich.events.render.WorldRenderEvent;
import fun.rich.features.module.Module;
import fun.rich.features.module.ModuleCategory;
import fun.rich.utils.client.Instance;
import fun.rich.utils.client.managers.event.EventHandler;
import fun.rich.utils.display.color.ColorAssist;
import fun.rich.utils.display.geometry.Render3D;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.block.BlockState;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.shape.VoxelShape;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
public class HitEffect extends Module {

    public static HitEffect getInstance() {
        return Instance.get(HitEffect.class);
    }

    final List<WaveEffect> waveEffects = new ArrayList<>();

    public HitEffect() {
        super("HitEffect", "Hit Effect", ModuleCategory.RENDER);
    }

    @EventHandler
    public void onAttack(AttackEvent e) {
        if (e.getEntity() == null) return;

        Vec3d pos = e.getEntity().getPos();
        BlockPos basePos = BlockPos.ofFloored(pos.x, pos.y - 0.1, pos.z);

        addWave(basePos);
    }

    public void addWave(BlockPos pos) {
        if (mc.world != null) {
            waveEffects.add(new WaveEffect(pos, System.currentTimeMillis()));
        }
    }

    @EventHandler
    public void onWorldRender(WorldRenderEvent e) {
        if (waveEffects.isEmpty() || mc.world == null) return;

        Iterator<WaveEffect> iterator = waveEffects.iterator();
        while (iterator.hasNext()) {
            WaveEffect wave = iterator.next();
            if (wave.isExpired()) {
                iterator.remove();
                continue;
            }
            wave.render();
        }
    }

    private class WaveEffect {
        private final BlockPos centerPos;
        private final long startTime;
        private final long duration = 1500;
        private final int maxRadius = 12;

        public WaveEffect(BlockPos centerPos, long startTime) {
            this.centerPos = centerPos;
            this.startTime = startTime;
        }

        public boolean isExpired() {
            return System.currentTimeMillis() - startTime > duration;
        }

        public void render() {
            if (mc.world == null) return;

            long elapsed = System.currentTimeMillis() - startTime;
            float progress = (float) elapsed / duration;

            float currentRadius = progress * maxRadius;
            float waveWidth = 2.5f;
            float globalAlpha = (float) Math.pow(1.0f - progress, 0.6);

            int rendered = 0;
            int maxPerFrame = 400;

            float minRadSq = (currentRadius - waveWidth) * (currentRadius - waveWidth);
            float maxRadSq = (currentRadius + 0.5f) * (currentRadius + 0.5f);

            int clientColor = ColorAssist.getClientColor();

            for (int x = -maxRadius; x <= maxRadius; x++) {
                for (int z = -maxRadius; z <= maxRadius; z++) {
                    if (rendered >= maxPerFrame) return;

                    float distSq = x * x + z * z;

                    if (distSq < minRadSq || distSq > maxRadSq) continue;

                    BlockPos checkPos = centerPos.add(x, 0, z);
                    BlockPos renderPos = findSurface(checkPos);

                    if (renderPos == null) continue;

                    BlockState state = mc.world.getBlockState(renderPos);
                    VoxelShape shape = state.getOutlineShape(mc.world, renderPos);
                    if (shape.isEmpty()) continue;

                    rendered++;

                    float distance = (float) Math.sqrt(distSq);

                    float localAlpha = 1.0f - Math.abs(distance - currentRadius) / waveWidth;
                    localAlpha = Math.max(0, Math.min(1, localAlpha)) * globalAlpha;

                    if (localAlpha > 0.05f) {
                        int color = ColorAssist.setAlpha(clientColor, (int) (localAlpha * 255));

                        float lineWidth = 1.0f + (localAlpha * 2.5f);

                        try {
                            Render3D.drawShapeAlternative(
                                    renderPos,
                                    shape,
                                    color,
                                    lineWidth,
                                    true,
                                    true
                            );
                        } catch (Exception ignored) {
                        }
                    }
                }
            }
        }

        private BlockPos findSurface(BlockPos pos) {
            for (int y = 2; y >= -4; y--) {
                BlockPos p = pos.up(y);
                if (!mc.world.getBlockState(p).isAir() && mc.world.getBlockState(p.up()).isAir()) {
                    return p;
                }
            }
            return null;
        }
    }
}
пойдет
 
Всем привет, прикольная штучка, знаю что она итак была в этой базе, но баганная + не рабочая
Перенести принципе можно

Пожалуйста, авторизуйтесь для просмотра ссылки.


wexside(((:
Expand Collapse Copy
package fun.rich.features.impl.render;

import fun.rich.events.player.AttackEvent;
import fun.rich.events.render.WorldRenderEvent;
import fun.rich.features.module.Module;
import fun.rich.features.module.ModuleCategory;
import fun.rich.utils.client.Instance;
import fun.rich.utils.client.managers.event.EventHandler;
import fun.rich.utils.display.color.ColorAssist;
import fun.rich.utils.display.geometry.Render3D;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.block.BlockState;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.shape.VoxelShape;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
public class HitEffect extends Module {

    public static HitEffect getInstance() {
        return Instance.get(HitEffect.class);
    }

    final List<WaveEffect> waveEffects = new ArrayList<>();

    public HitEffect() {
        super("HitEffect", "Hit Effect", ModuleCategory.RENDER);
    }

    @EventHandler
    public void onAttack(AttackEvent e) {
        if (e.getEntity() == null) return;

        Vec3d pos = e.getEntity().getPos();
        BlockPos basePos = BlockPos.ofFloored(pos.x, pos.y - 0.1, pos.z);

        addWave(basePos);
    }

    public void addWave(BlockPos pos) {
        if (mc.world != null) {
            waveEffects.add(new WaveEffect(pos, System.currentTimeMillis()));
        }
    }

    @EventHandler
    public void onWorldRender(WorldRenderEvent e) {
        if (waveEffects.isEmpty() || mc.world == null) return;

        Iterator<WaveEffect> iterator = waveEffects.iterator();
        while (iterator.hasNext()) {
            WaveEffect wave = iterator.next();
            if (wave.isExpired()) {
                iterator.remove();
                continue;
            }
            wave.render();
        }
    }

    private class WaveEffect {
        private final BlockPos centerPos;
        private final long startTime;
        private final long duration = 1500;
        private final int maxRadius = 12;

        public WaveEffect(BlockPos centerPos, long startTime) {
            this.centerPos = centerPos;
            this.startTime = startTime;
        }

        public boolean isExpired() {
            return System.currentTimeMillis() - startTime > duration;
        }

        public void render() {
            if (mc.world == null) return;

            long elapsed = System.currentTimeMillis() - startTime;
            float progress = (float) elapsed / duration;

            float currentRadius = progress * maxRadius;
            float waveWidth = 2.5f;
            float globalAlpha = (float) Math.pow(1.0f - progress, 0.6);

            int rendered = 0;
            int maxPerFrame = 400;

            float minRadSq = (currentRadius - waveWidth) * (currentRadius - waveWidth);
            float maxRadSq = (currentRadius + 0.5f) * (currentRadius + 0.5f);

            int clientColor = ColorAssist.getClientColor();

            for (int x = -maxRadius; x <= maxRadius; x++) {
                for (int z = -maxRadius; z <= maxRadius; z++) {
                    if (rendered >= maxPerFrame) return;

                    float distSq = x * x + z * z;

                    if (distSq < minRadSq || distSq > maxRadSq) continue;

                    BlockPos checkPos = centerPos.add(x, 0, z);
                    BlockPos renderPos = findSurface(checkPos);

                    if (renderPos == null) continue;

                    BlockState state = mc.world.getBlockState(renderPos);
                    VoxelShape shape = state.getOutlineShape(mc.world, renderPos);
                    if (shape.isEmpty()) continue;

                    rendered++;

                    float distance = (float) Math.sqrt(distSq);

                    float localAlpha = 1.0f - Math.abs(distance - currentRadius) / waveWidth;
                    localAlpha = Math.max(0, Math.min(1, localAlpha)) * globalAlpha;

                    if (localAlpha > 0.05f) {
                        int color = ColorAssist.setAlpha(clientColor, (int) (localAlpha * 255));

                        float lineWidth = 1.0f + (localAlpha * 2.5f);

                        try {
                            Render3D.drawShapeAlternative(
                                    renderPos,
                                    shape,
                                    color,
                                    lineWidth,
                                    true,
                                    true
                            );
                        } catch (Exception ignored) {
                        }
                    }
                }
            }
        }

        private BlockPos findSurface(BlockPos pos) {
            for (int y = 2; y >= -4; y--) {
                BlockPos p = pos.up(y);
                if (!mc.world.getBlockState(p).isAir() && mc.world.getBlockState(p.up()).isAir()) {
                    return p;
                }
            }
            return null;
        }
    }
}
вчера утром видел в тиктоке какой то визуал клиент с этой штукой
 
вы че тупые? какой нахуй пойдет такое на югейм сливают раз в полгода тут только аплодировать автору за эту имбу
 
Всем привет, прикольная штучка, знаю что она итак была в этой базе, но баганная + не рабочая
Перенести принципе можно

Пожалуйста, авторизуйтесь для просмотра ссылки.


wexside(((:
Expand Collapse Copy
package fun.rich.features.impl.render;

import fun.rich.events.player.AttackEvent;
import fun.rich.events.render.WorldRenderEvent;
import fun.rich.features.module.Module;
import fun.rich.features.module.ModuleCategory;
import fun.rich.utils.client.Instance;
import fun.rich.utils.client.managers.event.EventHandler;
import fun.rich.utils.display.color.ColorAssist;
import fun.rich.utils.display.geometry.Render3D;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.block.BlockState;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.shape.VoxelShape;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@FieldDefaults(level = AccessLevel.PRIVATE)
public class HitEffect extends Module {

    public static HitEffect getInstance() {
        return Instance.get(HitEffect.class);
    }

    final List<WaveEffect> waveEffects = new ArrayList<>();

    public HitEffect() {
        super("HitEffect", "Hit Effect", ModuleCategory.RENDER);
    }

    @EventHandler
    public void onAttack(AttackEvent e) {
        if (e.getEntity() == null) return;

        Vec3d pos = e.getEntity().getPos();
        BlockPos basePos = BlockPos.ofFloored(pos.x, pos.y - 0.1, pos.z);

        addWave(basePos);
    }

    public void addWave(BlockPos pos) {
        if (mc.world != null) {
            waveEffects.add(new WaveEffect(pos, System.currentTimeMillis()));
        }
    }

    @EventHandler
    public void onWorldRender(WorldRenderEvent e) {
        if (waveEffects.isEmpty() || mc.world == null) return;

        Iterator<WaveEffect> iterator = waveEffects.iterator();
        while (iterator.hasNext()) {
            WaveEffect wave = iterator.next();
            if (wave.isExpired()) {
                iterator.remove();
                continue;
            }
            wave.render();
        }
    }

    private class WaveEffect {
        private final BlockPos centerPos;
        private final long startTime;
        private final long duration = 1500;
        private final int maxRadius = 12;

        public WaveEffect(BlockPos centerPos, long startTime) {
            this.centerPos = centerPos;
            this.startTime = startTime;
        }

        public boolean isExpired() {
            return System.currentTimeMillis() - startTime > duration;
        }

        public void render() {
            if (mc.world == null) return;

            long elapsed = System.currentTimeMillis() - startTime;
            float progress = (float) elapsed / duration;

            float currentRadius = progress * maxRadius;
            float waveWidth = 2.5f;
            float globalAlpha = (float) Math.pow(1.0f - progress, 0.6);

            int rendered = 0;
            int maxPerFrame = 400;

            float minRadSq = (currentRadius - waveWidth) * (currentRadius - waveWidth);
            float maxRadSq = (currentRadius + 0.5f) * (currentRadius + 0.5f);

            int clientColor = ColorAssist.getClientColor();

            for (int x = -maxRadius; x <= maxRadius; x++) {
                for (int z = -maxRadius; z <= maxRadius; z++) {
                    if (rendered >= maxPerFrame) return;

                    float distSq = x * x + z * z;

                    if (distSq < minRadSq || distSq > maxRadSq) continue;

                    BlockPos checkPos = centerPos.add(x, 0, z);
                    BlockPos renderPos = findSurface(checkPos);

                    if (renderPos == null) continue;

                    BlockState state = mc.world.getBlockState(renderPos);
                    VoxelShape shape = state.getOutlineShape(mc.world, renderPos);
                    if (shape.isEmpty()) continue;

                    rendered++;

                    float distance = (float) Math.sqrt(distSq);

                    float localAlpha = 1.0f - Math.abs(distance - currentRadius) / waveWidth;
                    localAlpha = Math.max(0, Math.min(1, localAlpha)) * globalAlpha;

                    if (localAlpha > 0.05f) {
                        int color = ColorAssist.setAlpha(clientColor, (int) (localAlpha * 255));

                        float lineWidth = 1.0f + (localAlpha * 2.5f);

                        try {
                            Render3D.drawShapeAlternative(
                                    renderPos,
                                    shape,
                                    color,
                                    lineWidth,
                                    true,
                                    true
                            );
                        } catch (Exception ignored) {
                        }
                    }
                }
            }
        }

        private BlockPos findSurface(BlockPos pos) {
            for (int y = 2; y >= -4; y--) {
                BlockPos p = pos.up(y);
                if (!mc.world.getBlockState(p).isAir() && mc.world.getBlockState(p.up()).isAir()) {
                    return p;
                }
            }
            return null;
        }
    }
}
прикольная идея но для пвп не пойдёт
 
вы че тупые? какой нахуй пойдет такое на югейм сливают раз в полгода тут только аплодировать автору за эту имбу
хз это легко нейронкой сделать я это помню делал в своей пасте просто промт пишешь чтобы при ударе создавался круг который обводит block overlay и все
 
Назад
Сверху Снизу