Вопрос Как делается анимация для кей биндов

Начинающий
Статус
Оффлайн
Регистрация
11 Июл 2021
Сообщения
55
Реакции[?]
10
Поинты[?]
0
шапка, я только начинаю изучать джс в плане индикаторов и без понятия как сделать анимацию для кей биндов)
 
>.<
Участник
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
541
Реакции[?]
173
Поинты[?]
4K
1626347960622.png <--- Вот эту штуку для кого придумали?
 
Забаненный
Статус
Оффлайн
Регистрация
23 Авг 2020
Сообщения
2,113
Реакции[?]
597
Поинты[?]
10K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
шапка, я только начинаю изучать джс в плане индикаторов и без понятия как сделать анимацию для кей биндов)
Посмотри другие кейбинды, как там сделана анимация.
Не знаю, как в кряке, но в в4 это просто используется, как доп.анимка к стрингу.
 
Начинающий
Статус
Оффлайн
Регистрация
11 Июл 2021
Сообщения
55
Реакции[?]
10
Поинты[?]
0
Посмотри другие кейбинды, как там сделана анимация.
Не знаю, как в кряке, но в в4 это просто используется, как доп.анимка к стрингу.
Я смотрел код и там для меня вообще не понятно, то есть там упрощенный код
 
Забаненный
Статус
Оффлайн
Регистрация
23 Авг 2020
Сообщения
2,113
Реакции[?]
597
Поинты[?]
10K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
11 Июл 2021
Сообщения
55
Реакции[?]
10
Поинты[?]
0
Покажи код, откуда ты смотрел.
Я попытаюсь тебе объяснить.
JavaScript:
const CRender = {
    ShadowText(x, y, align, text, color1, color2, font) {
        Render.StringCustom(x+1, y+1, align, text, color2, font);
        Render.StringCustom(x, y, align, text, color1, font);
    },
    HSV2RGB(h,s,v) {
        var r, g, b, i, f, p, q, t;

        i = Math.floor(h * 6);
        f = h*6-i;
        p = v*(1-s);
        q = v*(1-f*s);
        t = v*(1-(1-f)*s);

        switch (i % 6) {
          case 0: r = v, g = t, b = p; break;
          case 1: r = q, g = v, b = p; break;
          case 2: r = p, g = v, b = t; break;
          case 3: r = p, g = q, b = v; break;
          case 4: r = t, g = p, b = v; break;
          case 5: r = v, g = p, b = q; break;
        }
        return { r: Math.round(r * 255), g: Math.round(g * 255), b: Math.round(b * 255) };
    },
    FilledRect(x, y, w, h){
        const t = UI.GetValue("Style line");
        const c = UI.GetColor("Script items", "Color line");
        const d = UI.GetValue("Chroma direction");
        const background = UI.GetColor("Script items", "Background alpha");
        var alp = background[3];
        var rgb = CRender.HSV2RGB(Global.Realtime() / 4, 0.9, 1)

        if (t != 4){
            Render.FilledRect(x, y, w, h, [15, 15, 15, alp]);
            var gradinetdir = t == 0 ? [c[0], c[1], c[2], 255] : t == 1 ? [0, 0, 0, 255] :  t == 2 ? [c[0], c[1], c[2], 255] : t == 3 ? [0, 213, 255, 255] : [d==0?rgb.r:d==1?rgb.g:rgb.r, d==0?rgb.g:d==1?rgb.b:rgb.g, d==0?rgb.b:d==1?rgb.r:rgb.b, 255];
            var gradinetdir2 = t == 0 ? [c[0], c[1], c[2], 255] : t == 1 ? [c[0], c[1], c[2], 255] : t == 2 ? [0, 0, 0, 255] : t == 3 ? [204, 18, 204, 255] : [d==2?rgb.r:rgb.b, d==2?rgb.g:rgb.r, d==2?rgb.b:rgb.g, 255];
            var gradinetdir3 = t == 0 ? [c[0], c[1], c[2], 255] : t == 1 ? [0, 0, 0, 255] : t == 2 ? [c[0], c[1], c[2], 255] : t == 3 ? [255, 250, 0, 255] : [d==0?rgb.g:rgb.r, d==0?rgb.b:rgb.g, d==0?rgb.r:rgb.b, 255];
            Render.GradientRect(x, y - 2, w / 2, 2, 1, gradinetdir, gradinetdir2);
            Render.GradientRect(x + w / 2, y - 2, w / 2, 2, 1, gradinetdir2, gradinetdir3);
        } else {
            Render.FilledRect(x, y - 2, w, h + 2, [15, 15, 15, alp]);
            Render.GradientRect(x + 1, y - 1, w / 2 - 1, 1, 1, [0, 213, 255, 255], [204, 18, 204, 255]);
            Render.GradientRect(x + w / 2, y - 1, w / 2 - 1, 1, 1, [204, 18, 204, 255], [255, 250, 0, 255]);
        }
    },
    Drag(x, y, width, height, menu, item){
        var cursor = Global.GetCursorPosition();
        if ((cursor[0] >= x) && (cursor[0] <= x + width) && (cursor[1] >= y) && (cursor[1] <= y + height)) {
            if ((Global.IsKeyPressed(0x01)) && (item[0] == 0)) {
                item[0] = 1;
                item[1] = x - cursor[0];
                item[2] = y - cursor[1];
            }
        }
        if (!Global.IsKeyPressed(0x01)) item[0] = 0;
        if (item[0] == 1 && UI.IsMenuOpen()) {
            UI.SetValue("Script items", menu + "_x", cursor[0] + item[1]);
            UI.SetValue("Script items", menu + "_y", cursor[1] + item[2]);
        }
    },
},
Anim = {
    Clamp(val, min, max) { return Math.min(Math.max(val, min), max) },
};

UI.AddCheckbox("Enable keybinds");
UI.AddDropdown("Style line", ["Static", "Fade", "Reverse fade", "Gradient", "Skeet", "Chroma"]);
UI.AddDropdown("Chroma direction", ["Left", "Right", "Static"]);
UI.AddDropdown("Type animation", ["Skeet [Salvatore]", "Misini [not author]"]);
UI.AddColorPicker("Color line");
UI.AddColorPicker("Background alpha");
UI.AddSliderInt("kb_x", 0, Render.GetScreenSize()[0]);
UI.AddSliderInt("kb_y", 0, Render.GetScreenSize()[1]);

var drag = [0, 0, 0];
var binds = [
    ["Resolver override", ["Rage", "General", "Resolver override"], "[toggled]", 0, 0],
    ["Slow motion", ["Anti-Aim", "Extra", "Slow walk"], "[toggled]", 0, 0],
    ["Force body aim", ["Rage", "General", "Force body aim"], "[toggled]", 0, 0],
    ["Force safe point", ["Rage", "General", "Force safe point"], "[toggled]", 0, 0],
    ["Anti-aim inverter", ["Anti-Aim", "Fake angles", "Inverter"], "[toggled]", 0, 0],
    ["Auto peek", ["Misc", "Movement", "Auto peek"], "[toggled]", 0, 0],
    ["Jump at edge", ["Misc", "Movement", "Edge jump"], "[toggled]", 0, 0],
    ["Duck peek assist", ["Anti-Aim", "Extra", "Fake duck"], "[toggled]", 0, 0],
    ["On-shot anti-aim", ["Rage", "Exploits", "Hide shots"], "[toggled]", 0, 0],
    ["Double tap", ["Rage", "Exploits", "Doubletap"], "[toggled]", 0, 0],
]
const Keybinds = function(){
    const pos = [UI.GetValue("kb_x"), UI.GetValue("kb_y")];
    const font = Render.AddFont("Verdana", 7, 0);
    var w = 146, h = 17, y = 4;

    for(var i = 0; i < binds.length; i++){
        if(UI.IsHotkeyActive.apply(null, binds[i][1])){
        binds[i][3] = 1; binds[i][4] = Anim.Clamp(binds[i][4] + (1 / .1) * Globals.Frametime(), 0, 1), 0, 1 - Math.pow(1 - 0.0025, 5)
        }if(!UI.IsHotkeyActive.apply(null, binds[i][1])){
        binds[i][4] = Anim.Clamp(binds[i][4] - (1 / .1) * Globals.Frametime(), 0, 1), 0, 1 - Math.pow(1 - 0.0025, 5); if (binds[i][4] <= 0) binds[i][3] = 0; }
        var name = binds[i][0], state = binds[i][2], add = binds[i][3], add2 = binds[i][4];
        y += 18 * (UI.GetValue("Type animation")==0 ? add : add2);
        CRender.ShadowText(pos[0] + 4, pos[1] + y, 0, name, [255, 255, 255, 255 * add2], [0, 0, 0, 200 * add2], font);
        CRender.ShadowText(pos[0] + w - Render.TextSizeCustom(state, font)[0] - 5, pos[1] + y, 0, state, [255, 255, 255, 255 * add2], [0, 0, 0, 200 * add2], font);
    }
    CRender.FilledRect(pos[0], pos[1], w, h);
    CRender.ShadowText(pos[0] + (w / 2) - Render.TextSizeCustom("keybinds", font)[0] / 2, pos[1] + 2, 0, "keybinds", [255, 255, 255, 255], [0, 0, 0, 200], font);
    CRender.Drag(pos[0], pos[1], w, 17, "kb", drag);
},
DrawMenu = function(){
    const keybinds = UI.GetValue("Enable keybinds");
    const styleline = UI.GetValue("Style line");

    UI.SetEnabled("Style line", keybinds);
    UI.SetEnabled("Chroma direction", keybinds && styleline == 5);
    UI.SetEnabled("Type animation", keybinds);
    UI.SetEnabled("Color line", keybinds);
    UI.SetEnabled("Background alpha", keybinds);
    UI.SetEnabled("kb_x", false);
    UI.SetEnabled("kb_y", false);
};

Cheat.RegisterCallback("Draw", "Keybinds");
Cheat.RegisterCallback("Draw", "DrawMenu");
 
Сверху Снизу