• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Визуальная часть CustomParticle Totem eva/3.1/mcp

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
6 Янв 2025
Сообщения
148
Реакции
0
Выберите загрузчик игры
  1. Forge
  2. Fabric
  3. NeoForge
Всем ку , сделал такое говно как у Нурика(ноад) суть в том что спавнить кастомные партиклы вместо обычных партиклов у тотема жду в Hudas Rename$$$(noad)

Ищем класс ClientPlayNetHandler и где-то в 1100строке заменяем


фу:
Expand Collapse Copy
 public void handleEntityStatus(SEntityStatusPacket packetIn) {
        PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.client);
        Entity entity = packetIn.getEntity(this.world);

        if (entity != null) {
            if (packetIn.getOpCode() == 21) {
                this.client.getSoundHandler().play(new GuardianSound((GuardianEntity) entity));
            } else if (packetIn.getOpCode() == 35) {
                this.client.particles.emitParticleAtEntity(entity, ParticleTypes.TOTEM_OF_UNDYING, 30);
                this.world.playSound(entity.getPosX(), entity.getPosY(), entity.getPosZ(), SoundEvents.ITEM_TOTEM_USE,
                        entity.getSoundCategory(), 1.0F, 1.0F, false);

                Particles particlesModule = NuckerDLC.getInstance().getModuleManager().getParticles();
                if (particlesModule != null && particlesModule.totem.get()) {
                    particlesModule.spawnTotemParticles(entity);
                }

                EventCancelOverlay eventCancelOverlay = new EventCancelOverlay(EventCancelOverlay.Overlays.TOTEM);
                NuckerDLC.getInstance().getEventBus().post(eventCancelOverlay);

                if (entity == this.client.player && !eventCancelOverlay.isCancel()) {
                    this.client.gameRenderer.displayItemActivation(getTotemItem(this.client.player));
                }
            }


после этого заходим туда где у вас партиклы и туда в самом вверху


фу:
Expand Collapse Copy
public final BooleanSetting totem = new BooleanSetting("Показывать тотем",true);
    public final SliderSetting totemParticles = new SliderSetting("Партиклы при тотеме", 20, 3, 50, 1)
            .setVisible(() -> totem.get());

потом где .addsettings регаем totem,totemParticles чтобы он показывался в модуле

потом после метода с рендером


фу:
Expand Collapse Copy
 public void spawnTotemParticles(Entity entity) {
        if (!totem.get()) return;

        float motion = 3;
        for (int i = 0; i < totemParticles.get(); i++) {
            targetParticles.add(new Particle3D(
                    new org.joml.Vector3d(
                            entity.getPosX(),
                            entity.getPosY() + MathUtil.random(0, entity.getHeight()),
                            entity.getPosZ()
                    ),
                    new org.joml.Vector3d(
                            MathUtil.random(-motion, motion),
                            MathUtil.random(-2, 0.1f),
                            MathUtil.random(-motion, motion)
                    ),
                    targetParticles.size(),
                    ColorUtils.random().hashCode()
            ));
        }
    }

он отвечает за рендер и также он берет пнг из того же партиклов так что он меняется можно ставить любое короче прошу лайк за тутор и оценку так то легко

кому помочь тг - @whyprizmell(noad)

Пожалуйста, авторизуйтесь для просмотра ссылки.
- норм не видно но в пластах и т.д супер красиво!
модеры одобрите пж
Одобрите пля
 
не нужная херня
 
Всем ку , сделал такое говно как у Нурика(ноад) суть в том что спавнить кастомные партиклы вместо обычных партиклов у тотема жду в Hudas Rename$$$(noad)

Ищем класс ClientPlayNetHandler и где-то в 1100строке заменяем


фу:
Expand Collapse Copy
 public void handleEntityStatus(SEntityStatusPacket packetIn) {
        PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.client);
        Entity entity = packetIn.getEntity(this.world);

        if (entity != null) {
            if (packetIn.getOpCode() == 21) {
                this.client.getSoundHandler().play(new GuardianSound((GuardianEntity) entity));
            } else if (packetIn.getOpCode() == 35) {
                this.client.particles.emitParticleAtEntity(entity, ParticleTypes.TOTEM_OF_UNDYING, 30);
                this.world.playSound(entity.getPosX(), entity.getPosY(), entity.getPosZ(), SoundEvents.ITEM_TOTEM_USE,
                        entity.getSoundCategory(), 1.0F, 1.0F, false);

                Particles particlesModule = NuckerDLC.getInstance().getModuleManager().getParticles();
                if (particlesModule != null && particlesModule.totem.get()) {
                    particlesModule.spawnTotemParticles(entity);
                }

                EventCancelOverlay eventCancelOverlay = new EventCancelOverlay(EventCancelOverlay.Overlays.TOTEM);
                NuckerDLC.getInstance().getEventBus().post(eventCancelOverlay);

                if (entity == this.client.player && !eventCancelOverlay.isCancel()) {
                    this.client.gameRenderer.displayItemActivation(getTotemItem(this.client.player));
                }
            }


после этого заходим туда где у вас партиклы и туда в самом вверху


фу:
Expand Collapse Copy
public final BooleanSetting totem = new BooleanSetting("Показывать тотем",true);
    public final SliderSetting totemParticles = new SliderSetting("Партиклы при тотеме", 20, 3, 50, 1)
            .setVisible(() -> totem.get());

потом где .addsettings регаем totem,totemParticles чтобы он показывался в модуле

потом после метода с рендером


фу:
Expand Collapse Copy
 public void spawnTotemParticles(Entity entity) {
        if (!totem.get()) return;

        float motion = 3;
        for (int i = 0; i < totemParticles.get(); i++) {
            targetParticles.add(new Particle3D(
                    new org.joml.Vector3d(
                            entity.getPosX(),
                            entity.getPosY() + MathUtil.random(0, entity.getHeight()),
                            entity.getPosZ()
                    ),
                    new org.joml.Vector3d(
                            MathUtil.random(-motion, motion),
                            MathUtil.random(-2, 0.1f),
                            MathUtil.random(-motion, motion)
                    ),
                    targetParticles.size(),
                    ColorUtils.random().hashCode()
            ));
        }
    }

он отвечает за рендер и также он берет пнг из того же партиклов так что он меняется можно ставить любое короче прошу лайк за тутор и оценку так то легко

кому помочь тг - @whyprizmell(noad)

Пожалуйста, авторизуйтесь для просмотра ссылки.
- норм не видно но в пластах и т.д супер красиво!
модеры одобрите пж
Одобрите пля
ебать ты умом сделал, +реп
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
/del недо кривой скид
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем ку , сделал такое говно как у Нурика(ноад) суть в том что спавнить кастомные партиклы вместо обычных партиклов у тотема жду в Hudas Rename$$$(noad)

Ищем класс ClientPlayNetHandler и где-то в 1100строке заменяем


фу:
Expand Collapse Copy
 public void handleEntityStatus(SEntityStatusPacket packetIn) {
        PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.client);
        Entity entity = packetIn.getEntity(this.world);

        if (entity != null) {
            if (packetIn.getOpCode() == 21) {
                this.client.getSoundHandler().play(new GuardianSound((GuardianEntity) entity));
            } else if (packetIn.getOpCode() == 35) {
                this.client.particles.emitParticleAtEntity(entity, ParticleTypes.TOTEM_OF_UNDYING, 30);
                this.world.playSound(entity.getPosX(), entity.getPosY(), entity.getPosZ(), SoundEvents.ITEM_TOTEM_USE,
                        entity.getSoundCategory(), 1.0F, 1.0F, false);

                Particles particlesModule = NuckerDLC.getInstance().getModuleManager().getParticles();
                if (particlesModule != null && particlesModule.totem.get()) {
                    particlesModule.spawnTotemParticles(entity);
                }

                EventCancelOverlay eventCancelOverlay = new EventCancelOverlay(EventCancelOverlay.Overlays.TOTEM);
                NuckerDLC.getInstance().getEventBus().post(eventCancelOverlay);

                if (entity == this.client.player && !eventCancelOverlay.isCancel()) {
                    this.client.gameRenderer.displayItemActivation(getTotemItem(this.client.player));
                }
            }


после этого заходим туда где у вас партиклы и туда в самом вверху


фу:
Expand Collapse Copy
public final BooleanSetting totem = new BooleanSetting("Показывать тотем",true);
    public final SliderSetting totemParticles = new SliderSetting("Партиклы при тотеме", 20, 3, 50, 1)
            .setVisible(() -> totem.get());

потом где .addsettings регаем totem,totemParticles чтобы он показывался в модуле

потом после метода с рендером


фу:
Expand Collapse Copy
 public void spawnTotemParticles(Entity entity) {
        if (!totem.get()) return;

        float motion = 3;
        for (int i = 0; i < totemParticles.get(); i++) {
            targetParticles.add(new Particle3D(
                    new org.joml.Vector3d(
                            entity.getPosX(),
                            entity.getPosY() + MathUtil.random(0, entity.getHeight()),
                            entity.getPosZ()
                    ),
                    new org.joml.Vector3d(
                            MathUtil.random(-motion, motion),
                            MathUtil.random(-2, 0.1f),
                            MathUtil.random(-motion, motion)
                    ),
                    targetParticles.size(),
                    ColorUtils.random().hashCode()
            ));
        }
    }

он отвечает за рендер и также он берет пнг из того же партиклов так что он меняется можно ставить любое короче прошу лайк за тутор и оценку так то легко

кому помочь тг - @whyprizmell(noad)

Пожалуйста, авторизуйтесь для просмотра ссылки.
- норм не видно но в пластах и т.д супер красиво!
модеры одобрите пж
Одобрите пля
За два месяца — и хоть один нормальный пост появился
 
Всем ку , сделал такое говно как у Нурика(ноад) суть в том что спавнить кастомные партиклы вместо обычных партиклов у тотема жду в Hudas Rename$$$(noad)

Ищем класс ClientPlayNetHandler и где-то в 1100строке заменяем


фу:
Expand Collapse Copy
 public void handleEntityStatus(SEntityStatusPacket packetIn) {
        PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.client);
        Entity entity = packetIn.getEntity(this.world);

        if (entity != null) {
            if (packetIn.getOpCode() == 21) {
                this.client.getSoundHandler().play(new GuardianSound((GuardianEntity) entity));
            } else if (packetIn.getOpCode() == 35) {
                this.client.particles.emitParticleAtEntity(entity, ParticleTypes.TOTEM_OF_UNDYING, 30);
                this.world.playSound(entity.getPosX(), entity.getPosY(), entity.getPosZ(), SoundEvents.ITEM_TOTEM_USE,
                        entity.getSoundCategory(), 1.0F, 1.0F, false);

                Particles particlesModule = NuckerDLC.getInstance().getModuleManager().getParticles();
                if (particlesModule != null && particlesModule.totem.get()) {
                    particlesModule.spawnTotemParticles(entity);
                }

                EventCancelOverlay eventCancelOverlay = new EventCancelOverlay(EventCancelOverlay.Overlays.TOTEM);
                NuckerDLC.getInstance().getEventBus().post(eventCancelOverlay);

                if (entity == this.client.player && !eventCancelOverlay.isCancel()) {
                    this.client.gameRenderer.displayItemActivation(getTotemItem(this.client.player));
                }
            }


после этого заходим туда где у вас партиклы и туда в самом вверху


фу:
Expand Collapse Copy
public final BooleanSetting totem = new BooleanSetting("Показывать тотем",true);
    public final SliderSetting totemParticles = new SliderSetting("Партиклы при тотеме", 20, 3, 50, 1)
            .setVisible(() -> totem.get());

потом где .addsettings регаем totem,totemParticles чтобы он показывался в модуле

потом после метода с рендером


фу:
Expand Collapse Copy
 public void spawnTotemParticles(Entity entity) {
        if (!totem.get()) return;

        float motion = 3;
        for (int i = 0; i < totemParticles.get(); i++) {
            targetParticles.add(new Particle3D(
                    new org.joml.Vector3d(
                            entity.getPosX(),
                            entity.getPosY() + MathUtil.random(0, entity.getHeight()),
                            entity.getPosZ()
                    ),
                    new org.joml.Vector3d(
                            MathUtil.random(-motion, motion),
                            MathUtil.random(-2, 0.1f),
                            MathUtil.random(-motion, motion)
                    ),
                    targetParticles.size(),
                    ColorUtils.random().hashCode()
            ));
        }
    }

он отвечает за рендер и также он берет пнг из того же партиклов так что он меняется можно ставить любое короче прошу лайк за тутор и оценку так то легко

кому помочь тг - @whyprizmell(noad)

Пожалуйста, авторизуйтесь для просмотра ссылки.
- норм не видно но в пластах и т.д супер красиво!
модеры одобрите пж
Одобрите пля
а ты случайно не с neverclose взял ректы на худа? noad
 
Всем ку , сделал такое говно как у Нурика(ноад) суть в том что спавнить кастомные партиклы вместо обычных партиклов у тотема жду в Hudas Rename$$$(noad)

Ищем класс ClientPlayNetHandler и где-то в 1100строке заменяем


фу:
Expand Collapse Copy
 public void handleEntityStatus(SEntityStatusPacket packetIn) {
        PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.client);
        Entity entity = packetIn.getEntity(this.world);

        if (entity != null) {
            if (packetIn.getOpCode() == 21) {
                this.client.getSoundHandler().play(new GuardianSound((GuardianEntity) entity));
            } else if (packetIn.getOpCode() == 35) {
                this.client.particles.emitParticleAtEntity(entity, ParticleTypes.TOTEM_OF_UNDYING, 30);
                this.world.playSound(entity.getPosX(), entity.getPosY(), entity.getPosZ(), SoundEvents.ITEM_TOTEM_USE,
                        entity.getSoundCategory(), 1.0F, 1.0F, false);

                Particles particlesModule = NuckerDLC.getInstance().getModuleManager().getParticles();
                if (particlesModule != null && particlesModule.totem.get()) {
                    particlesModule.spawnTotemParticles(entity);
                }

                EventCancelOverlay eventCancelOverlay = new EventCancelOverlay(EventCancelOverlay.Overlays.TOTEM);
                NuckerDLC.getInstance().getEventBus().post(eventCancelOverlay);

                if (entity == this.client.player && !eventCancelOverlay.isCancel()) {
                    this.client.gameRenderer.displayItemActivation(getTotemItem(this.client.player));
                }
            }


после этого заходим туда где у вас партиклы и туда в самом вверху


фу:
Expand Collapse Copy
public final BooleanSetting totem = new BooleanSetting("Показывать тотем",true);
    public final SliderSetting totemParticles = new SliderSetting("Партиклы при тотеме", 20, 3, 50, 1)
            .setVisible(() -> totem.get());

потом где .addsettings регаем totem,totemParticles чтобы он показывался в модуле

потом после метода с рендером


фу:
Expand Collapse Copy
 public void spawnTotemParticles(Entity entity) {
        if (!totem.get()) return;

        float motion = 3;
        for (int i = 0; i < totemParticles.get(); i++) {
            targetParticles.add(new Particle3D(
                    new org.joml.Vector3d(
                            entity.getPosX(),
                            entity.getPosY() + MathUtil.random(0, entity.getHeight()),
                            entity.getPosZ()
                    ),
                    new org.joml.Vector3d(
                            MathUtil.random(-motion, motion),
                            MathUtil.random(-2, 0.1f),
                            MathUtil.random(-motion, motion)
                    ),
                    targetParticles.size(),
                    ColorUtils.random().hashCode()
            ));
        }
    }

он отвечает за рендер и также он берет пнг из того же партиклов так что он меняется можно ставить любое короче прошу лайк за тутор и оценку так то легко

кому помочь тг - @whyprizmell(noad)

Пожалуйста, авторизуйтесь для просмотра ссылки.
- норм не видно но в пластах и т.д супер красиво!
модеры одобрите пж
Одобрите пля
Максимально уебищно.Можно было перехватить тот же пакет что вызывается при тотеме с таким же unicode (или чо там) == 35 и вызывать в том же классе партиклы,нежели там все блять весь кислород перекрывать и проверки эти на «включен модуль,мод» и тд.
 

Похожие темы

Ответы
35
Просмотры
2K
Ответы
14
Просмотры
2K
Ответы
6
Просмотры
1K
Назад
Сверху Снизу