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

Визуальная часть Кольцо Rockstar Skid | Zenith Recode

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
9 Май 2023
Сообщения
193
Реакции
2
Выберите загрузчик игры
  1. Fabric
Сливаю вам скид кольца из рокстара/эксселента
До этого не хотел сливать, но сейчас оно мне банально уже не нравится ну и его оптимизация я бы сказал хромает
Думаю кому-то будет полезно
Мб на реке чуууть-чууть по другому выглядит, но не сильно
Пожалуйста, авторизуйтесь для просмотра ссылки.

Кольцо + Покраснение при дамаге:
Expand Collapse Copy
private void renderKolco2(EventRender3D event, float interpolatedAlpha) {
        float alpha = Math.max(this.animationProgress, interpolatedAlpha);
        if (alpha <= 0.0F) return;

        LivingEntity targetEntity = this.target != null ? this.target : this.lastTarget;
        if (targetEntity == null) return;

        Camera camera = mc.getEntityRenderDispatcher().camera;
        Vec3d renderPos = MathUtil.interpolate(targetEntity).subtract(camera.getPos());

        float entityWidth = targetEntity.getWidth() * 0.9f;
        float entityHeight = targetEntity.getHeight();
        float animationAlpha = easeOutCubic(interpolatedAlpha);

        boolean canSee = Objects.requireNonNull(mc.player).canSee(targetEntity);
        boolean useDepth = !throughWalls.isEnabled() && canSee;

        if (!throughWalls.isEnabled() && !canSee) return;

        MatrixStack matrices = event.getMatrix();

        RenderSystem.enableBlend();
        RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE);
        RenderSystem.disableCull();

        if (useDepth) {
            RenderSystem.enableDepthTest();
            RenderSystem.depthMask(false);
        } else {
            RenderSystem.disableDepthTest();
        }

        double currentStep = MathUtil.interpolate(kolcoStep - ring2Speed, kolcoStep);
       
        double golovkaY = MathUtil.absSinAnimation(currentStep) * entityHeight;
        double tailBaseY = MathUtil.absSinAnimation(currentStep - 0.4) * entityHeight;

        float golovkaSize = 0.12f;
        float tailSize = 0.08f;

        int totalPoints = 138;
        int tailSegments = 16;
       
        long currentTime = System.currentTimeMillis();

        for (int i = 0; i < totalPoints; i++) {
            double angleRadians = 2 * Math.PI * i / totalPoints;
           
            float xOffset = (float) (Math.cos(angleRadians) * entityWidth);
            float zOffset = (float) (Math.sin(angleRadians) * entityWidth);

            int baseColor = getThemeColorAngle(i * (360 / totalPoints), currentTime);

            matrices.push();
            matrices.translate(renderPos.x + xOffset, renderPos.y + golovkaY, renderPos.z + zOffset);
            matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-camera.getYaw()));
            matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));

            MatrixStack.Entry golovkaEntry = matrices.peek().copy();

            int coreColor = ColorUtil.multAlpha(baseColor, animationAlpha * 0.9f);
            Vector4i coreVec = new Vector4i(coreColor, coreColor, coreColor, coreColor);
            Render3DUtil.drawGlowTexture(golovkaEntry, glowTexture, -golovkaSize / 2, -golovkaSize / 2, golovkaSize, golovkaSize, coreVec, useDepth);

            matrices.pop();

            for (int t = 1; t <= tailSegments; t++) {
                float tailProgress = (float) t / (tailSegments + 1);
               
                double currentTailY = golovkaY + (tailBaseY - golovkaY) * tailProgress;
                float currentTailAlpha = animationAlpha * (1f - tailProgress) * 0.6f;

                matrices.push();
                matrices.translate(renderPos.x + xOffset, renderPos.y + currentTailY, renderPos.z + zOffset);
                matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-camera.getYaw()));
                matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));

                MatrixStack.Entry tailEntry = matrices.peek().copy();

                int tailCoreColor = ColorUtil.multAlpha(baseColor, currentTailAlpha);
                Vector4i tailCoreVec = new Vector4i(tailCoreColor, tailCoreColor, tailCoreColor, tailCoreColor);
                Render3DUtil.drawGlowTexture(tailEntry, glowTexture, -tailSize / 2, -tailSize / 2, tailSize, tailSize, tailCoreVec, useDepth);

                matrices.pop();
            }
        }

        if (useDepth) RenderSystem.depthMask(true);
        RenderSystem.enableDepthTest();
        RenderSystem.enableCull();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableBlend();
    }

    private int getThemeColorAngle(int offsetAngle, long currentTime) {
        int color;
        try {
            float timeFactor = (currentTime % 3000) / 3000.0f;
            int colorAngle = (int) (timeFactor * 360) + offsetAngle;
            color = Zenith.getInstance().getThemeManager().getClientColor(colorAngle % 360).getRGB();
        } catch (Exception e) {
            color = 0xFF42A5F5;
        }
        return applyDamageFlash(color);
    }

    private int applyDamageFlash(int color) {
        if (!damageRed.isEnabled()) return color;

        float targetIntensity = 0f;
        long timeSinceDamage = System.currentTimeMillis() - lastDamageTime;
       
        if (timeSinceDamage < DAMAGE_FLASH_DURATION) {
            float progress = (float) timeSinceDamage / DAMAGE_FLASH_DURATION;
            targetIntensity = 1.0f - easeOutCubic(progress);
        }

        damageFlashIntensity = MathHelper.lerp(1f, damageFlashIntensity, targetIntensity);
       
        if (damageFlashIntensity < 0.05f) return color;

        int alpha = (color >> 24) & 0xFF;
        int red = (color >> 16) & 0xFF;
        int green = (color >> 8) & 0xFF;
        int blue = color & 0xFF;

        int finalRed = (int) MathHelper.lerp(damageFlashIntensity, red, 255);
        int finalGreen = (int) MathHelper.lerp(damageFlashIntensity, green, 50);
        int finalBlue = (int) MathHelper.lerp(damageFlashIntensity, blue, 50);

        return (alpha << 24) | (finalRed << 16) | (finalGreen << 8) | finalBlue;
    }
 
Последнее редактирование:
Сливаю вам скид кольца из рокстара/эксселента
До этого не хотел сливать, но сейчас оно мне банально уже не нравится ну и его оптимизация я бы сказал хромает
Думаю кому-то будет полезно:4Head:
Мб на реке чуууть-чууть по другому выглядит, но не сильно
Пожалуйста, авторизуйтесь для просмотра ссылки.

Кольцо + Покраснение при дамаге:
Expand Collapse Copy
private void renderKolco2(EventRender3D event, float interpolatedAlpha) {
        float alpha = Math.max(this.animationProgress, interpolatedAlpha);
        if (alpha <= 0.0F) return;

        LivingEntity targetEntity = this.target != null ? this.target : this.lastTarget;
        if (targetEntity == null) return;

        Camera camera = mc.getEntityRenderDispatcher().camera;
        Vec3d renderPos = MathUtil.interpolate(targetEntity).subtract(camera.getPos());

        float entityWidth = targetEntity.getWidth() * 0.9f;
        float entityHeight = targetEntity.getHeight();
        float animationAlpha = easeOutCubic(interpolatedAlpha);

        boolean canSee = Objects.requireNonNull(mc.player).canSee(targetEntity);
        boolean useDepth = !throughWalls.isEnabled() && canSee;

        if (!throughWalls.isEnabled() && !canSee) return;

        MatrixStack matrices = event.getMatrix();

        RenderSystem.enableBlend();
        RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE);
        RenderSystem.disableCull();

        if (useDepth) {
            RenderSystem.enableDepthTest();
            RenderSystem.depthMask(false);
        } else {
            RenderSystem.disableDepthTest();
        }

        double currentStep = MathUtil.interpolate(kolcoStep - ring2Speed, kolcoStep);
       
        double golovkaY = MathUtil.absSinAnimation(currentStep) * entityHeight;
        double tailBaseY = MathUtil.absSinAnimation(currentStep - 0.4) * entityHeight;

        float golovkaSize = 0.12f;
        float tailSize = 0.08f;

        int totalPoints = 138;
        int tailSegments = 16;
       
        long currentTime = System.currentTimeMillis();

        for (int i = 0; i < totalPoints; i++) {
            double angleRadians = 2 * Math.PI * i / totalPoints;
           
            float xOffset = (float) (Math.cos(angleRadians) * entityWidth);
            float zOffset = (float) (Math.sin(angleRadians) * entityWidth);

            int baseColor = getThemeColorAngle(i * (360 / totalPoints), currentTime);

            matrices.push();
            matrices.translate(renderPos.x + xOffset, renderPos.y + golovkaY, renderPos.z + zOffset);
            matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-camera.getYaw()));
            matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));

            MatrixStack.Entry golovkaEntry = matrices.peek().copy();

            int coreColor = ColorUtil.multAlpha(baseColor, animationAlpha * 0.9f);
            Vector4i coreVec = new Vector4i(coreColor, coreColor, coreColor, coreColor);
            Render3DUtil.drawGlowTexture(golovkaEntry, glowTexture, -golovkaSize / 2, -golovkaSize / 2, golovkaSize, golovkaSize, coreVec, useDepth);

            matrices.pop();

            for (int t = 1; t <= tailSegments; t++) {
                float tailProgress = (float) t / (tailSegments + 1);
               
                double currentTailY = golovkaY + (tailBaseY - golovkaY) * tailProgress;
                float currentTailAlpha = animationAlpha * (1f - tailProgress) * 0.6f;

                matrices.push();
                matrices.translate(renderPos.x + xOffset, renderPos.y + currentTailY, renderPos.z + zOffset);
                matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-camera.getYaw()));
                matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));

                MatrixStack.Entry tailEntry = matrices.peek().copy();

                int tailCoreColor = ColorUtil.multAlpha(baseColor, currentTailAlpha);
                Vector4i tailCoreVec = new Vector4i(tailCoreColor, tailCoreColor, tailCoreColor, tailCoreColor);
                Render3DUtil.drawGlowTexture(tailEntry, glowTexture, -tailSize / 2, -tailSize / 2, tailSize, tailSize, tailCoreVec, useDepth);

                matrices.pop();
            }
        }

        if (useDepth) RenderSystem.depthMask(true);
        RenderSystem.enableDepthTest();
        RenderSystem.enableCull();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableBlend();
    }

    private int getThemeColorAngle(int offsetAngle, long currentTime) {
        int color;
        try {
            float timeFactor = (currentTime % 3000) / 3000.0f;
            int colorAngle = (int) (timeFactor * 360) + offsetAngle;
            color = Zenith.getInstance().getThemeManager().getClientColor(colorAngle % 360).getRGB();
        } catch (Exception e) {
            color = 0xFF42A5F5;
        }
        return applyDamageFlash(color);
    }

    private int applyDamageFlash(int color) {
        if (!damageRed.isEnabled()) return color;

        float targetIntensity = 0f;
        long timeSinceDamage = System.currentTimeMillis() - lastDamageTime;
       
        if (timeSinceDamage < DAMAGE_FLASH_DURATION) {
            float progress = (float) timeSinceDamage / DAMAGE_FLASH_DURATION;
            targetIntensity = 1.0f - easeOutCubic(progress);
        }

        damageFlashIntensity = MathHelper.lerp(1f, damageFlashIntensity, targetIntensity);
       
        if (damageFlashIntensity < 0.05f) return color;

        int alpha = (color >> 24) & 0xFF;
        int red = (color >> 16) & 0xFF;
        int green = (color >> 8) & 0xFF;
        int blue = color & 0xFF;

        int finalRed = (int) MathHelper.lerp(damageFlashIntensity, red, 255);
        int finalGreen = (int) MathHelper.lerp(damageFlashIntensity, green, 50);
        int finalBlue = (int) MathHelper.lerp(damageFlashIntensity, blue, 50);

        return (alpha << 24) | (finalRed << 16) | (finalGreen << 8) | finalBlue;
    }
крутое +rep
 
Сливаю вам скид кольца из рокстара/эксселента
До этого не хотел сливать, но сейчас оно мне банально уже не нравится ну и его оптимизация я бы сказал хромает
Думаю кому-то будет полезно
Мб на реке чуууть-чууть по другому выглядит, но не сильно
Пожалуйста, авторизуйтесь для просмотра ссылки.

Кольцо + Покраснение при дамаге:
Expand Collapse Copy
private void renderKolco2(EventRender3D event, float interpolatedAlpha) {
        float alpha = Math.max(this.animationProgress, interpolatedAlpha);
        if (alpha <= 0.0F) return;

        LivingEntity targetEntity = this.target != null ? this.target : this.lastTarget;
        if (targetEntity == null) return;

        Camera camera = mc.getEntityRenderDispatcher().camera;
        Vec3d renderPos = MathUtil.interpolate(targetEntity).subtract(camera.getPos());

        float entityWidth = targetEntity.getWidth() * 0.9f;
        float entityHeight = targetEntity.getHeight();
        float animationAlpha = easeOutCubic(interpolatedAlpha);

        boolean canSee = Objects.requireNonNull(mc.player).canSee(targetEntity);
        boolean useDepth = !throughWalls.isEnabled() && canSee;

        if (!throughWalls.isEnabled() && !canSee) return;

        MatrixStack matrices = event.getMatrix();

        RenderSystem.enableBlend();
        RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE);
        RenderSystem.disableCull();

        if (useDepth) {
            RenderSystem.enableDepthTest();
            RenderSystem.depthMask(false);
        } else {
            RenderSystem.disableDepthTest();
        }

        double currentStep = MathUtil.interpolate(kolcoStep - ring2Speed, kolcoStep);
      
        double golovkaY = MathUtil.absSinAnimation(currentStep) * entityHeight;
        double tailBaseY = MathUtil.absSinAnimation(currentStep - 0.4) * entityHeight;

        float golovkaSize = 0.12f;
        float tailSize = 0.08f;

        int totalPoints = 138;
        int tailSegments = 16;
      
        long currentTime = System.currentTimeMillis();

        for (int i = 0; i < totalPoints; i++) {
            double angleRadians = 2 * Math.PI * i / totalPoints;
          
            float xOffset = (float) (Math.cos(angleRadians) * entityWidth);
            float zOffset = (float) (Math.sin(angleRadians) * entityWidth);

            int baseColor = getThemeColorAngle(i * (360 / totalPoints), currentTime);

            matrices.push();
            matrices.translate(renderPos.x + xOffset, renderPos.y + golovkaY, renderPos.z + zOffset);
            matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-camera.getYaw()));
            matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));

            MatrixStack.Entry golovkaEntry = matrices.peek().copy();

            int coreColor = ColorUtil.multAlpha(baseColor, animationAlpha * 0.9f);
            Vector4i coreVec = new Vector4i(coreColor, coreColor, coreColor, coreColor);
            Render3DUtil.drawGlowTexture(golovkaEntry, glowTexture, -golovkaSize / 2, -golovkaSize / 2, golovkaSize, golovkaSize, coreVec, useDepth);

            matrices.pop();

            for (int t = 1; t <= tailSegments; t++) {
                float tailProgress = (float) t / (tailSegments + 1);
              
                double currentTailY = golovkaY + (tailBaseY - golovkaY) * tailProgress;
                float currentTailAlpha = animationAlpha * (1f - tailProgress) * 0.6f;

                matrices.push();
                matrices.translate(renderPos.x + xOffset, renderPos.y + currentTailY, renderPos.z + zOffset);
                matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-camera.getYaw()));
                matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));

                MatrixStack.Entry tailEntry = matrices.peek().copy();

                int tailCoreColor = ColorUtil.multAlpha(baseColor, currentTailAlpha);
                Vector4i tailCoreVec = new Vector4i(tailCoreColor, tailCoreColor, tailCoreColor, tailCoreColor);
                Render3DUtil.drawGlowTexture(tailEntry, glowTexture, -tailSize / 2, -tailSize / 2, tailSize, tailSize, tailCoreVec, useDepth);

                matrices.pop();
            }
        }

        if (useDepth) RenderSystem.depthMask(true);
        RenderSystem.enableDepthTest();
        RenderSystem.enableCull();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableBlend();
    }

    private int getThemeColorAngle(int offsetAngle, long currentTime) {
        int color;
        try {
            float timeFactor = (currentTime % 3000) / 3000.0f;
            int colorAngle = (int) (timeFactor * 360) + offsetAngle;
            color = Zenith.getInstance().getThemeManager().getClientColor(colorAngle % 360).getRGB();
        } catch (Exception e) {
            color = 0xFF42A5F5;
        }
        return applyDamageFlash(color);
    }

    private int applyDamageFlash(int color) {
        if (!damageRed.isEnabled()) return color;

        float targetIntensity = 0f;
        long timeSinceDamage = System.currentTimeMillis() - lastDamageTime;
      
        if (timeSinceDamage < DAMAGE_FLASH_DURATION) {
            float progress = (float) timeSinceDamage / DAMAGE_FLASH_DURATION;
            targetIntensity = 1.0f - easeOutCubic(progress);
        }

        damageFlashIntensity = MathHelper.lerp(1f, damageFlashIntensity, targetIntensity);
      
        if (damageFlashIntensity < 0.05f) return color;

        int alpha = (color >> 24) & 0xFF;
        int red = (color >> 16) & 0xFF;
        int green = (color >> 8) & 0xFF;
        int blue = color & 0xFF;

        int finalRed = (int) MathHelper.lerp(damageFlashIntensity, red, 255);
        int finalGreen = (int) MathHelper.lerp(damageFlashIntensity, green, 50);
        int finalBlue = (int) MathHelper.lerp(damageFlashIntensity, blue, 50);

        return (alpha << 24) | (finalRed << 16) | (finalGreen << 8) | finalBlue;
    }
санчез прекращай
 
Сливаю вам скид кольца из рокстара/эксселента
До этого не хотел сливать, но сейчас оно мне банально уже не нравится ну и его оптимизация я бы сказал хромает
Думаю кому-то будет полезно
Мб на реке чуууть-чууть по другому выглядит, но не сильно
Пожалуйста, авторизуйтесь для просмотра ссылки.

Кольцо + Покраснение при дамаге:
Expand Collapse Copy
private void renderKolco2(EventRender3D event, float interpolatedAlpha) {
        float alpha = Math.max(this.animationProgress, interpolatedAlpha);
        if (alpha <= 0.0F) return;

        LivingEntity targetEntity = this.target != null ? this.target : this.lastTarget;
        if (targetEntity == null) return;

        Camera camera = mc.getEntityRenderDispatcher().camera;
        Vec3d renderPos = MathUtil.interpolate(targetEntity).subtract(camera.getPos());

        float entityWidth = targetEntity.getWidth() * 0.9f;
        float entityHeight = targetEntity.getHeight();
        float animationAlpha = easeOutCubic(interpolatedAlpha);

        boolean canSee = Objects.requireNonNull(mc.player).canSee(targetEntity);
        boolean useDepth = !throughWalls.isEnabled() && canSee;

        if (!throughWalls.isEnabled() && !canSee) return;

        MatrixStack matrices = event.getMatrix();

        RenderSystem.enableBlend();
        RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE);
        RenderSystem.disableCull();

        if (useDepth) {
            RenderSystem.enableDepthTest();
            RenderSystem.depthMask(false);
        } else {
            RenderSystem.disableDepthTest();
        }

        double currentStep = MathUtil.interpolate(kolcoStep - ring2Speed, kolcoStep);
     
        double golovkaY = MathUtil.absSinAnimation(currentStep) * entityHeight;
        double tailBaseY = MathUtil.absSinAnimation(currentStep - 0.4) * entityHeight;

        float golovkaSize = 0.12f;
        float tailSize = 0.08f;

        int totalPoints = 138;
        int tailSegments = 16;
     
        long currentTime = System.currentTimeMillis();

        for (int i = 0; i < totalPoints; i++) {
            double angleRadians = 2 * Math.PI * i / totalPoints;
         
            float xOffset = (float) (Math.cos(angleRadians) * entityWidth);
            float zOffset = (float) (Math.sin(angleRadians) * entityWidth);

            int baseColor = getThemeColorAngle(i * (360 / totalPoints), currentTime);

            matrices.push();
            matrices.translate(renderPos.x + xOffset, renderPos.y + golovkaY, renderPos.z + zOffset);
            matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-camera.getYaw()));
            matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));

            MatrixStack.Entry golovkaEntry = matrices.peek().copy();

            int coreColor = ColorUtil.multAlpha(baseColor, animationAlpha * 0.9f);
            Vector4i coreVec = new Vector4i(coreColor, coreColor, coreColor, coreColor);
            Render3DUtil.drawGlowTexture(golovkaEntry, glowTexture, -golovkaSize / 2, -golovkaSize / 2, golovkaSize, golovkaSize, coreVec, useDepth);

            matrices.pop();

            for (int t = 1; t <= tailSegments; t++) {
                float tailProgress = (float) t / (tailSegments + 1);
             
                double currentTailY = golovkaY + (tailBaseY - golovkaY) * tailProgress;
                float currentTailAlpha = animationAlpha * (1f - tailProgress) * 0.6f;

                matrices.push();
                matrices.translate(renderPos.x + xOffset, renderPos.y + currentTailY, renderPos.z + zOffset);
                matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-camera.getYaw()));
                matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));

                MatrixStack.Entry tailEntry = matrices.peek().copy();

                int tailCoreColor = ColorUtil.multAlpha(baseColor, currentTailAlpha);
                Vector4i tailCoreVec = new Vector4i(tailCoreColor, tailCoreColor, tailCoreColor, tailCoreColor);
                Render3DUtil.drawGlowTexture(tailEntry, glowTexture, -tailSize / 2, -tailSize / 2, tailSize, tailSize, tailCoreVec, useDepth);

                matrices.pop();
            }
        }

        if (useDepth) RenderSystem.depthMask(true);
        RenderSystem.enableDepthTest();
        RenderSystem.enableCull();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableBlend();
    }

    private int getThemeColorAngle(int offsetAngle, long currentTime) {
        int color;
        try {
            float timeFactor = (currentTime % 3000) / 3000.0f;
            int colorAngle = (int) (timeFactor * 360) + offsetAngle;
            color = Zenith.getInstance().getThemeManager().getClientColor(colorAngle % 360).getRGB();
        } catch (Exception e) {
            color = 0xFF42A5F5;
        }
        return applyDamageFlash(color);
    }

    private int applyDamageFlash(int color) {
        if (!damageRed.isEnabled()) return color;

        float targetIntensity = 0f;
        long timeSinceDamage = System.currentTimeMillis() - lastDamageTime;
     
        if (timeSinceDamage < DAMAGE_FLASH_DURATION) {
            float progress = (float) timeSinceDamage / DAMAGE_FLASH_DURATION;
            targetIntensity = 1.0f - easeOutCubic(progress);
        }

        damageFlashIntensity = MathHelper.lerp(1f, damageFlashIntensity, targetIntensity);
     
        if (damageFlashIntensity < 0.05f) return color;

        int alpha = (color >> 24) & 0xFF;
        int red = (color >> 16) & 0xFF;
        int green = (color >> 8) & 0xFF;
        int blue = color & 0xFF;

        int finalRed = (int) MathHelper.lerp(damageFlashIntensity, red, 255);
        int finalGreen = (int) MathHelper.lerp(damageFlashIntensity, green, 50);
        int finalBlue = (int) MathHelper.lerp(damageFlashIntensity, blue, 50);

        return (alpha << 24) | (finalRed << 16) | (finalGreen << 8) | finalBlue;
    }
выглядит не очень я бы даже сказал плохо и не похоже
 
Сливаю вам скид кольца из рокстара/эксселента
До этого не хотел сливать, но сейчас оно мне банально уже не нравится ну и его оптимизация я бы сказал хромает
Думаю кому-то будет полезно
Мб на реке чуууть-чууть по другому выглядит, но не сильно
Пожалуйста, авторизуйтесь для просмотра ссылки.

Кольцо + Покраснение при дамаге:
Expand Collapse Copy
private void renderKolco2(EventRender3D event, float interpolatedAlpha) {
        float alpha = Math.max(this.animationProgress, interpolatedAlpha);
        if (alpha <= 0.0F) return;

        LivingEntity targetEntity = this.target != null ? this.target : this.lastTarget;
        if (targetEntity == null) return;

        Camera camera = mc.getEntityRenderDispatcher().camera;
        Vec3d renderPos = MathUtil.interpolate(targetEntity).subtract(camera.getPos());

        float entityWidth = targetEntity.getWidth() * 0.9f;
        float entityHeight = targetEntity.getHeight();
        float animationAlpha = easeOutCubic(interpolatedAlpha);

        boolean canSee = Objects.requireNonNull(mc.player).canSee(targetEntity);
        boolean useDepth = !throughWalls.isEnabled() && canSee;

        if (!throughWalls.isEnabled() && !canSee) return;

        MatrixStack matrices = event.getMatrix();

        RenderSystem.enableBlend();
        RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE);
        RenderSystem.disableCull();

        if (useDepth) {
            RenderSystem.enableDepthTest();
            RenderSystem.depthMask(false);
        } else {
            RenderSystem.disableDepthTest();
        }

        double currentStep = MathUtil.interpolate(kolcoStep - ring2Speed, kolcoStep);
      
        double golovkaY = MathUtil.absSinAnimation(currentStep) * entityHeight;
        double tailBaseY = MathUtil.absSinAnimation(currentStep - 0.4) * entityHeight;

        float golovkaSize = 0.12f;
        float tailSize = 0.08f;

        int totalPoints = 138;
        int tailSegments = 16;
      
        long currentTime = System.currentTimeMillis();

        for (int i = 0; i < totalPoints; i++) {
            double angleRadians = 2 * Math.PI * i / totalPoints;
          
            float xOffset = (float) (Math.cos(angleRadians) * entityWidth);
            float zOffset = (float) (Math.sin(angleRadians) * entityWidth);

            int baseColor = getThemeColorAngle(i * (360 / totalPoints), currentTime);

            matrices.push();
            matrices.translate(renderPos.x + xOffset, renderPos.y + golovkaY, renderPos.z + zOffset);
            matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-camera.getYaw()));
            matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));

            MatrixStack.Entry golovkaEntry = matrices.peek().copy();

            int coreColor = ColorUtil.multAlpha(baseColor, animationAlpha * 0.9f);
            Vector4i coreVec = new Vector4i(coreColor, coreColor, coreColor, coreColor);
            Render3DUtil.drawGlowTexture(golovkaEntry, glowTexture, -golovkaSize / 2, -golovkaSize / 2, golovkaSize, golovkaSize, coreVec, useDepth);

            matrices.pop();

            for (int t = 1; t <= tailSegments; t++) {
                float tailProgress = (float) t / (tailSegments + 1);
              
                double currentTailY = golovkaY + (tailBaseY - golovkaY) * tailProgress;
                float currentTailAlpha = animationAlpha * (1f - tailProgress) * 0.6f;

                matrices.push();
                matrices.translate(renderPos.x + xOffset, renderPos.y + currentTailY, renderPos.z + zOffset);
                matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-camera.getYaw()));
                matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));

                MatrixStack.Entry tailEntry = matrices.peek().copy();

                int tailCoreColor = ColorUtil.multAlpha(baseColor, currentTailAlpha);
                Vector4i tailCoreVec = new Vector4i(tailCoreColor, tailCoreColor, tailCoreColor, tailCoreColor);
                Render3DUtil.drawGlowTexture(tailEntry, glowTexture, -tailSize / 2, -tailSize / 2, tailSize, tailSize, tailCoreVec, useDepth);

                matrices.pop();
            }
        }

        if (useDepth) RenderSystem.depthMask(true);
        RenderSystem.enableDepthTest();
        RenderSystem.enableCull();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableBlend();
    }

    private int getThemeColorAngle(int offsetAngle, long currentTime) {
        int color;
        try {
            float timeFactor = (currentTime % 3000) / 3000.0f;
            int colorAngle = (int) (timeFactor * 360) + offsetAngle;
            color = Zenith.getInstance().getThemeManager().getClientColor(colorAngle % 360).getRGB();
        } catch (Exception e) {
            color = 0xFF42A5F5;
        }
        return applyDamageFlash(color);
    }

    private int applyDamageFlash(int color) {
        if (!damageRed.isEnabled()) return color;

        float targetIntensity = 0f;
        long timeSinceDamage = System.currentTimeMillis() - lastDamageTime;
      
        if (timeSinceDamage < DAMAGE_FLASH_DURATION) {
            float progress = (float) timeSinceDamage / DAMAGE_FLASH_DURATION;
            targetIntensity = 1.0f - easeOutCubic(progress);
        }

        damageFlashIntensity = MathHelper.lerp(1f, damageFlashIntensity, targetIntensity);
      
        if (damageFlashIntensity < 0.05f) return color;

        int alpha = (color >> 24) & 0xFF;
        int red = (color >> 16) & 0xFF;
        int green = (color >> 8) & 0xFF;
        int blue = color & 0xFF;

        int finalRed = (int) MathHelper.lerp(damageFlashIntensity, red, 255);
        int finalGreen = (int) MathHelper.lerp(damageFlashIntensity, green, 50);
        int finalBlue = (int) MathHelper.lerp(damageFlashIntensity, blue, 50);

        return (alpha << 24) | (finalRed << 16) | (finalGreen << 8) | finalBlue;
    }
ты будешь сливать срц найта?
 
Последнее редактирование:
Сливаю вам скид кольца из рокстара/эксселента
До этого не хотел сливать, но сейчас оно мне банально уже не нравится ну и его оптимизация я бы сказал хромает
Думаю кому-то будет полезно
Мб на реке чуууть-чууть по другому выглядит, но не сильно
Пожалуйста, авторизуйтесь для просмотра ссылки.

Кольцо + Покраснение при дамаге:
Expand Collapse Copy
private void renderKolco2(EventRender3D event, float interpolatedAlpha) {
        float alpha = Math.max(this.animationProgress, interpolatedAlpha);
        if (alpha <= 0.0F) return;

        LivingEntity targetEntity = this.target != null ? this.target : this.lastTarget;
        if (targetEntity == null) return;

        Camera camera = mc.getEntityRenderDispatcher().camera;
        Vec3d renderPos = MathUtil.interpolate(targetEntity).subtract(camera.getPos());

        float entityWidth = targetEntity.getWidth() * 0.9f;
        float entityHeight = targetEntity.getHeight();
        float animationAlpha = easeOutCubic(interpolatedAlpha);

        boolean canSee = Objects.requireNonNull(mc.player).canSee(targetEntity);
        boolean useDepth = !throughWalls.isEnabled() && canSee;

        if (!throughWalls.isEnabled() && !canSee) return;

        MatrixStack matrices = event.getMatrix();

        RenderSystem.enableBlend();
        RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE);
        RenderSystem.disableCull();

        if (useDepth) {
            RenderSystem.enableDepthTest();
            RenderSystem.depthMask(false);
        } else {
            RenderSystem.disableDepthTest();
        }

        double currentStep = MathUtil.interpolate(kolcoStep - ring2Speed, kolcoStep);
      
        double golovkaY = MathUtil.absSinAnimation(currentStep) * entityHeight;
        double tailBaseY = MathUtil.absSinAnimation(currentStep - 0.4) * entityHeight;

        float golovkaSize = 0.12f;
        float tailSize = 0.08f;

        int totalPoints = 138;
        int tailSegments = 16;
      
        long currentTime = System.currentTimeMillis();

        for (int i = 0; i < totalPoints; i++) {
            double angleRadians = 2 * Math.PI * i / totalPoints;
          
            float xOffset = (float) (Math.cos(angleRadians) * entityWidth);
            float zOffset = (float) (Math.sin(angleRadians) * entityWidth);

            int baseColor = getThemeColorAngle(i * (360 / totalPoints), currentTime);

            matrices.push();
            matrices.translate(renderPos.x + xOffset, renderPos.y + golovkaY, renderPos.z + zOffset);
            matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-camera.getYaw()));
            matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));

            MatrixStack.Entry golovkaEntry = matrices.peek().copy();

            int coreColor = ColorUtil.multAlpha(baseColor, animationAlpha * 0.9f);
            Vector4i coreVec = new Vector4i(coreColor, coreColor, coreColor, coreColor);
            Render3DUtil.drawGlowTexture(golovkaEntry, glowTexture, -golovkaSize / 2, -golovkaSize / 2, golovkaSize, golovkaSize, coreVec, useDepth);

            matrices.pop();

            for (int t = 1; t <= tailSegments; t++) {
                float tailProgress = (float) t / (tailSegments + 1);
              
                double currentTailY = golovkaY + (tailBaseY - golovkaY) * tailProgress;
                float currentTailAlpha = animationAlpha * (1f - tailProgress) * 0.6f;

                matrices.push();
                matrices.translate(renderPos.x + xOffset, renderPos.y + currentTailY, renderPos.z + zOffset);
                matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(-camera.getYaw()));
                matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));

                MatrixStack.Entry tailEntry = matrices.peek().copy();

                int tailCoreColor = ColorUtil.multAlpha(baseColor, currentTailAlpha);
                Vector4i tailCoreVec = new Vector4i(tailCoreColor, tailCoreColor, tailCoreColor, tailCoreColor);
                Render3DUtil.drawGlowTexture(tailEntry, glowTexture, -tailSize / 2, -tailSize / 2, tailSize, tailSize, tailCoreVec, useDepth);

                matrices.pop();
            }
        }

        if (useDepth) RenderSystem.depthMask(true);
        RenderSystem.enableDepthTest();
        RenderSystem.enableCull();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableBlend();
    }

    private int getThemeColorAngle(int offsetAngle, long currentTime) {
        int color;
        try {
            float timeFactor = (currentTime % 3000) / 3000.0f;
            int colorAngle = (int) (timeFactor * 360) + offsetAngle;
            color = Zenith.getInstance().getThemeManager().getClientColor(colorAngle % 360).getRGB();
        } catch (Exception e) {
            color = 0xFF42A5F5;
        }
        return applyDamageFlash(color);
    }

    private int applyDamageFlash(int color) {
        if (!damageRed.isEnabled()) return color;

        float targetIntensity = 0f;
        long timeSinceDamage = System.currentTimeMillis() - lastDamageTime;
      
        if (timeSinceDamage < DAMAGE_FLASH_DURATION) {
            float progress = (float) timeSinceDamage / DAMAGE_FLASH_DURATION;
            targetIntensity = 1.0f - easeOutCubic(progress);
        }

        damageFlashIntensity = MathHelper.lerp(1f, damageFlashIntensity, targetIntensity);
      
        if (damageFlashIntensity < 0.05f) return color;

        int alpha = (color >> 24) & 0xFF;
        int red = (color >> 16) & 0xFF;
        int green = (color >> 8) & 0xFF;
        int blue = color & 0xFF;

        int finalRed = (int) MathHelper.lerp(damageFlashIntensity, red, 255);
        int finalGreen = (int) MathHelper.lerp(damageFlashIntensity, green, 50);
        int finalBlue = (int) MathHelper.lerp(damageFlashIntensity, blue, 50);

        return (alpha << 24) | (finalRed << 16) | (finalGreen << 8) | finalBlue;
    }

это странный вопрос но ты делаешь фулл скид rockstar 2.0? за код + rep то выглядит хуйня у всех такое
 
1768763365106.png
кольцо сука скид а не худ
 
Назад
Сверху Снизу