Посмотри другие кейбинды, как там сделана анимация.шапка, я только начинаю изучать джс в плане индикаторов и без понятия как сделать анимацию для кей биндов)
Я смотрел код и там для меня вообще не понятно, то есть там упрощенный кодПосмотри другие кейбинды, как там сделана анимация.
Не знаю, как в кряке, но в в4 это просто используется, как доп.анимка к стрингу.
Покажи код, откуда ты смотрел.Я смотрел код и там для меня вообще не понятно, то есть там упрощенный код
Покажи код, откуда ты смотрел.
Я попытаюсь тебе объяснить.
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");
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz