JS-скрипт Neverlose indicators [OTCv3]

nixer chmo
Пользователь
Статус
Оффлайн
Регистрация
21 Июн 2019
Сообщения
281
Реакции[?]
63
Поинты[?]
1K
1.2. Запрещено выделять всё сообщение жирным шрифтом, курсивом, подчеркиванием, цветом. Пользуйтесь BB-кодами с умом, выделяя лишь самое важное в теме, на что следует обратить внимание.
Дароу, сегодня я хочу предоставить вам мою JS на индикаторы из Neverlose.cc. (no ad)
В индикаторы входят: Keybinds, Spectators, Watermark.
Также в них есть три стиля: Black, White, Blue.
Watermark практически полностью можно кастомизировать.
Если вы захотели скачать JS, то требуется установить шрифты! (ОБЯЗАТЕЛЬНО!)
Как установить шрифты?
Скачиваете архив который закреплен, открываете архив,
перетаскиваете папку Fonts (Шрифты) на рабочий стол, и выделяете все шрифты, нажимаете по любому шрифту ПКМ и нажимаете установить для всех пользователей.

Screenshot:
dRy-fZKQnuI.jpg
Code:
JavaScript:
UI.AddDropdown("[ALL] Theme", ["Black", "White", "Blue"]);
UI.AddCheckbox("[NL] Keybinds");
UI.AddCheckbox("[NL] Spectators");
UI.AddCheckbox("[NL] Watermark");
UI.AddDropdown("[SP] Type icon", ["Circle", "Rect"]);
UI.AddCheckbox("[WT] Static position watermark");
UI.AddDropdown("[WT] Name watermark", ["Short", "Long"]);
UI.AddMultiDropdown("[WT] Show", ["Name", "Ping", "Time", "FPS", "IP Server"]);
UI.AddCheckbox("[WT] Custom name");
UI.AddTextbox("Name");
UI.AddSliderInt("keybinds_x", 0, Global.GetScreenSize()[0]);
UI.AddSliderInt("keybinds_y", 0, Global.GetScreenSize()[1]);
UI.AddSliderInt("spectator_x", 0, Global.GetScreenSize()[0]);
UI.AddSliderInt("spectator_y", 0, Global.GetScreenSize()[1]);
UI.AddSliderInt("watermark_x", 0, Global.GetScreenSize()[0]);
UI.AddSliderInt("watermark_y", 0, Global.GetScreenSize()[1]);
visible = function(){
    var water = UI.GetValue("[NL] Watermark");
    var keybind = UI.GetValue("[NL] Keybinds");
    var spectator = UI.GetValue("[NL] Spectators");
    var cname = UI.GetValue("[WT] Custom name");

    var active = (water || keybind || spectator);

    UI.SetEnabled("[ALL] Theme", active);

    UI.SetEnabled("[SP] Type icon", spectator);

    UI.SetEnabled("[WT] Show", water);
    UI.SetEnabled("[WT] Name watermark", water);
    UI.SetEnabled("[WT] Static position watermark", water);
    UI.SetEnabled("[WT] Custom name", water);
    UI.SetEnabled("Name", water && cname);

    UI.SetEnabled("keybinds_x", false);
    UI.SetEnabled("keybinds_y", false);
    UI.SetEnabled("spectator_x", false);
    UI.SetEnabled("spectator_y", false);
    UI.SetEnabled("watermark_x", false);
    UI.SetEnabled("watermark_y", false);    
}
var observators = [];
var stored = false,
    x_offs = 0,
    y_offs = 0;
const in_bounds = function(vec, x, y, x2, y2) {
    return (vec[0] > x) && (vec[1] > y) && (vec[0] < x2) && (vec[1] < y2)
},
move = function (x, y, width, height, name) {
    if (UI.IsMenuOpen() && Input.IsKeyPressed(0x1)) {
      const mouse_pos = Global.GetCursorPosition();
      if (in_bounds(mouse_pos, x, y, x + width, y + height)) {
         if(!stored){
            x_offs = mouse_pos[0] - x;
            y_offs = mouse_pos[1] - y;
            stored = true;
         }
         UI.SetValue("Script items", name + "_x", mouse_pos[0] - x_offs);
         UI.SetValue("Script items", name + "_y", mouse_pos[1] - y_offs);
      }
   } else if(stored) stored = false;
},
getObservators = function() {
    var ents = Entity.GetPlayers();
    var local = Entity.GetLocalPlayer();
    var localtarget = Entity.GetProp(local, "CBasePlayer", "m_hObserverTarget");
    if (!local) return;
    observators = [];
    for (i = 0; i < ents.length; i++) {
        if (Entity.IsAlive(local)) {
            if (!ents[i] || Entity.IsAlive(ents[i])) continue;
            var observer = Entity.GetProp(ents[i], "CBasePlayer", "m_hObserverTarget");
            if (!observer || observer == "m_hObserverTarget") continue;
            const names = Entity.GetName(ents[i])
            if (observer == local) observators.push(names.length >= 19 ? names.substr(0, 16) + "..." : names);
        } else {
            if (!ents[i] || Entity.IsAlive(ents[i])) continue;
            var observer = Entity.GetProp(ents[i], "CBasePlayer", "m_hObserverTarget");
            if (!observer || observer == "m_hObserverTarget") continue;
            const names = Entity.GetName(ents[i])
            if (observer == localtarget) observators.push(names.length >= 19 ? names.substr(0, 16) + "..." : names);
        }
    }
};

var kalpha = [];

function keybind_func() {
    var font = Render.AddFont("MuseoSansCyrl-700", 10, 500);
    var bfont = Render.AddFont("MuseoSansCyrl-500", 10, 500);
    var icon = Render.AddFont("untitled-font-1", 13, 500);
    var theme = UI.GetValue("[ALL] Theme")
    var x = UI.GetValue("keybinds_x");
    var y = UI.GetValue("keybinds_y");
    var keybind = [];

    var swmode = UI.GetValue("Anti-Aim", "Extra", "Slow walk mode")
    var swmodes = (swmode == 0) ? "Accuracy" :
    (swmode == 1) ? "Slide fast" :
    (swmode == 2) ? "Slide slow" : "";

    keybind_info = [
    ["Trigger Bot", ["Legit", "GENERAL", "Triggerbot", "Enabled"], "on"],
    ["Double Tap", ["Rage", "GENERAL", "Exploits", "Doubletap"], "on"],
    ["Hide Shots", ["Rage", "GENERAL", "Exploits", "Hide shots"], "on"],
    ["Safe Point", ["Rage", "GENERAL", "General", "Force safe point"], "on"],
    ["Body Aim", ["Rage", "GENERAL", "General", "Force body aim"], "on"],
    ["Resolver Override", ["Rage", "GENERAL", "General", "Resolver override"], "on"],
    ["Minimum Damage", ["Misc", "JAVASCRIPT", "Script items", "Damage override key"], "on"],
    ["Fake Duck", ["Anti-Aim", "Extra", "Fake duck"], "on"],
    ["Slow Walk", ["Anti-Aim", "Extra", "Slow walk"], swmodes],
    ["Inverter", ["Anti-Aim", "Fake angles", "Inverter"], "on"],
    ["Edge Jump", ["Misc", "GENERAL", "Movement", "Edge jump"], "on"],
    ["Auto Peek", ["Misc", "GENERAL", "Movement", "Auto peek"], "on"],  
    ];
    //["name bind", ["position bind"], "state"]

    for(var i in keybind_info) {
        bind_path = keybind_info[i][1];
        if(UI.IsHotkeyActive.apply(null, bind_path)){
            keybind.push(i);
        }
    }

    if (keybind.length > 0 || UI.IsMenuOpen()) {
        kalpha = Math.min(kalpha + (8 * Globals.Frametime()), 1);
    } else {
        kalpha = kalpha - (8 * Globals.Frametime());
        if (kalpha < 0) kalpha = 0;
    }

    var color = (theme == 0) ? [0, 20, 20, kalpha * 170] :
    (theme == 1) ? [255, 255, 255, kalpha * 170] :
    (theme == 2) ? [15, 15, 50, kalpha * 170] : "";

    var colortext = (theme == 0) ? [255, 255, 255, kalpha * 255] :
    (theme == 1) ? [0, 0, 0, kalpha * 255] :
    (theme == 2) ? [255, 255, 255, kalpha * 255] : "";

    if (!UI.GetValue("[NL] Keybinds")) return;
    Render.FilledRect(x - 1, y + 22, 171, 3 + (21 * keybind.length), [200, 200, 200, kalpha * 15]);
    Render.FilledRect(x, y + 25 + (21 * keybind.length), 169, 1 , [200, 200, 200, kalpha * 15]);
    Render.FilledRect(x, y - 1, 169, 1, color);
    Render.FilledRect(x - 1, y, 171, 21, color);
    Render.FilledRect(x - 1, y + 21, 171, 2, [244, 244, 244, kalpha * 55]);

    Render.StringCustom(x + 6, y + 2, 0, "a", [3, 128, 205, kalpha * 255], icon);
    Render.StringCustom(x + 30, y + 3, 0, "Binds", colortext, font);

    for(var j in keybind){
        bind = keybind[j];
        name = keybind_info[bind][0];
        state = keybind_info[bind][2];
        Render.StringCustom(x + 3, y + 26 + (j * 21), 0, name, [255, 255, 255, kalpha * 255], bfont);
        Render.StringCustom(x + 169 - Render.TextSizeCustom(state, bfont)[0] - 3, y + 26 + (j * 21), 0, state, [255, 255, 255, kalpha * 255], bfont);
    }
    move(x, y, 171, 25, "keybinds");
}
var salpha = [];

function spectator_func() {
    var theme = UI.GetValue("[ALL] Theme")
    var ticon = UI.GetValue("[SP] Type icon")
    var font = Render.AddFont("MuseoSansCyrl-700", 10, 500);
    var bfont = Render.AddFont("MuseoSansCyrl-500", 10, 500);
    var icon = Render.AddFont("untitled-font-1", 13, 500);
    var icons = Render.AddFont("untitled-font-1", ticon == 0 ? 12 : 13, 500);
    var x = UI.GetValue("spectator_x");
    var y = UI.GetValue("spectator_y");
    getObservators();

    if (observators.length > 0 || UI.IsMenuOpen()) {
        salpha = Math.min(salpha + (8 * Globals.Frametime()), 1);
    } else {
        salpha = salpha - (8 * Globals.Frametime());
        if (salpha < 0) salpha = 0;
    }

    var color = (theme == 0) ? [0, 20, 20, salpha * 170] :
    (theme == 1) ? [255, 255, 255, salpha * 170] :
    (theme == 2) ? [15, 15, 50, salpha * 170] : "";

    var coloricon = (theme == 0) ? [0, 20, 20, salpha * 100] :
    (theme == 1) ? [190, 190, 190, salpha * 100] :
    (theme == 2) ? [15, 15, 50, salpha * 100] : "";

    var colortext = (theme == 0) ? [255, 255, 255, salpha * 255] :
    (theme == 1) ? [0, 0, 0, salpha * 255] :
    (theme == 2) ? [255, 255, 255, salpha * 255] : "";

    if (!UI.GetValue("[NL] Spectators")) return;
    Render.FilledRect(x - 1, y + 22, 183, 3 + (21 * observators.length), [200, 200, 200, salpha * 15]);
    Render.FilledRect(x, y + 25 + (21 * observators.length), 181, 1, [200, 200, 200, salpha * 15]);
    Render.FilledRect(x, y - 1, 181, 1, color);
    Render.FilledRect(x - 1, y, 183, 21, color);
    Render.FilledRect(x - 1, y + 21, 183, 2, [244, 244, 244, salpha * 55]);

    Render.StringCustom(x + 6, y + 2, 0, "b", [3, 128, 205, salpha * 255], icon);
    Render.StringCustom(x + 30, y + 3, 0, "Spectators", colortext, font);

    for (i = 0; i < observators.length; i++){
    names = observators[i]
    plus = ticon == 0 ? 4 : 3;
    Render.StringCustom(x + 25, y + 26 + (21 * i), 0, names, [255, 255, 255, salpha * 255], bfont);
    if(ticon == 0){
    Render.FilledCircle(x + 11, y + 34 + 21 * i, 10, coloricon);
    }else{
    Render.FilledRect(x + 3, y + 25 + 21 * i, 16, 1, coloricon);
    Render.FilledRect(x + 2, y + 26 + 21 * i, 18, 17, coloricon);
    Render.FilledRect(x + 3, y + 43 + 21 * i, 16, 1, coloricon);}
    Render.StringCustom(x + plus, y + 26 + (21 * i), 0, "d", [220, 220, 220, salpha * 255], icons);
    }
    move(x, y, 183, 25, "spectator");
}

function watermark_func() {
    var font = Render.AddFont("MuseoSansCyrl-700", 10, 500)
    var ifont = Render.AddFont("MuseoSansCyrl-900", 11, 500)
    var theme = UI.GetValue("[ALL] Theme")
    var x = UI.GetValue("watermark_x");
    var y = UI.GetValue("watermark_y");
    var show = UI.GetValue("[WT] Show")
    var static = UI.GetValue("[WT] Static position watermark");
    var name = UI.GetValue("[WT] Name watermark")

    var username = UI.GetValue("[WT] Custom name") ? UI.GetString("Script items", "Name") : Cheat.GetUsername();
    var fps = Math.floor(1 / Global.Frametime());
    var today = new Date();
    var ping = Math.round(Entity.GetProp(Entity.GetLocalPlayer(), "CPlayerResource", "m_iPing")).toString();
    var ip = World.GetServerString();
    var hours1 = today.getHours();
    var minutes1 = today.getMinutes();
    var seconds1 = today.getSeconds();
    var hours = hours1 <= 9 ? "0" + today.getHours() + ":" : today.getHours() + ":";
    var minutes = minutes1 <= 9 ? "0" + today.getMinutes() + ":" : today.getMinutes() + ":";
    var seconds = seconds1 <= 9 ? "0" + today.getSeconds() : today.getSeconds();

    var color = (theme == 0) ? [0, 20, 20, 170] :
    (theme == 1) ? [255, 255, 255, 170] :
    (theme == 2) ? [15, 15, 50, 170] : "";

    var colortext = (theme == 0) ? [255, 255, 255, 255] :
    (theme == 1) ? [0, 0, 0, 255] :
    (theme == 2) ? [255, 255, 255, 255] : "";

    var namep = name == 0 ? "NL" : "NEVERLOSE"
    if (name == 0){
    text = ""
    }else{
    text = "                      "
    }
    if (show & (1 << 0) ){
        text += ("| " + username)
    }
    if (show & (1 << 1) && World.GetServerString() != "") {
        text += (" | " + ping + " mc")
    }
    if (show & (1 << 2)) {
        text += (" | " + hours + minutes + seconds)
    }
    if (show & (1 << 3)) {
        text += (" | " + fps + " fps")
    }
    if (show & (1 << 4) && World.GetServerString() != "") {
        text += (" | " + ip)
    }
    var plus = show ? 34 : 31
    var w = Render.TextSizeCustom(text, font)[0] + plus;
    var x2 = Global.GetScreenSize()[0] - 2;
    x1 = x2 - w - 10;

    x_1 = static ? x1 : x
    y_1 = static ? 12 : y
    if (!UI.GetValue("[NL] Watermark")) return;
    Render.FilledRect(x_1, y_1 - 1, w - 2, 1, color);
    Render.FilledRect(x_1, y_1 + 21, w - 2, 1, color);
    Render.FilledRect(x_1 - 1, y_1, w, 23 - 2, color);
    Render.StringCustom(x_1 + 28, y_1 + 3, 0, text, colortext, font)

    Render.StringCustom(x_1 + 4, y_1 + 1, 0, namep, [34, 179, 246, 255], ifont)
    Render.StringCustom(x_1 + 5, y_1 + 2, 0, namep, colortext, ifont)

    if (static) return;
    move(x, y, w, 25, "watermark");
}

function roundstart(){
    observators = [];
}

Global.RegisterCallback("Draw", "visible");
Global.RegisterCallback("Draw", "keybind_func");
Global.RegisterCallback("Draw", "spectator_func");
Global.RegisterCallback("Draw", "watermark_func");
Global.RegisterCallback("round_start", "roundstart");
JS и Шрифты в закреп. архиве.
 

Вложения

Последнее редактирование:
nixer chmo
Пользователь
Статус
Оффлайн
Регистрация
21 Июн 2019
Сообщения
281
Реакции[?]
63
Поинты[?]
1K
Перед установкой шрифтов, нужно закрыть CS:GO!
 
Участник
Статус
Оффлайн
Регистрация
14 Сен 2019
Сообщения
856
Реакции[?]
248
Поинты[?]
2K
Дароу, сегодня я хочу предоставить вам мою JS на индикаторы из Neverlose.cc. (no ad)
В индикаторы входят: Keybinds, Spectators, Watermark.
Также в них есть три стиля:
Black, White, Blue.
Watermark практически полностью можно кастомизировать.
Если вы захотели скачать
JS, то требуется установить шрифты! (ОБЯЗАТЕЛЬНО!)
Как установить шрифты?
Скачиваете архив который закреплен, открываете архив,
перетаскиваете папку Fonts (Шрифты) на рабочий стол, и выделяете все шрифты, нажимаете по любому шрифту ПКМ и нажимаете установить для всех пользователей.


Screenshot:

Code:
JavaScript:
UI.AddDropdown("[ALL] Theme", ["Black", "White", "Blue"]);
UI.AddCheckbox("[NL] Keybinds");
UI.AddCheckbox("[NL] Spectators");
UI.AddCheckbox("[NL] Watermark");
UI.AddDropdown("[SP] Type icon", ["Circle", "Rect"]);
UI.AddCheckbox("[WT] Static position watermark");
UI.AddDropdown("[WT] Name watermark", ["Short", "Long"]);
UI.AddMultiDropdown("[WT] Show", ["Name", "Ping", "Time", "FPS", "IP Server"]);
UI.AddCheckbox("[WT] Custom name");
UI.AddTextbox("Name");
UI.AddSliderInt("keybinds_x", 0, Global.GetScreenSize()[0]);
UI.AddSliderInt("keybinds_y", 0, Global.GetScreenSize()[1]);
UI.AddSliderInt("spectator_x", 0, Global.GetScreenSize()[0]);
UI.AddSliderInt("spectator_y", 0, Global.GetScreenSize()[1]);
UI.AddSliderInt("watermark_x", 0, Global.GetScreenSize()[0]);
UI.AddSliderInt("watermark_y", 0, Global.GetScreenSize()[1]);
visible = function(){
    var water = UI.GetValue("[NL] Watermark");
    var keybind = UI.GetValue("[NL] Keybinds");
    var spectator = UI.GetValue("[NL] Spectators");
    var cname = UI.GetValue("[WT] Custom name");

    var active = (water || keybind || spectator);

    UI.SetEnabled("[ALL] Theme", active);

    UI.SetEnabled("[SP] Type icon", spectator);

    UI.SetEnabled("[WT] Show", water);
    UI.SetEnabled("[WT] Name watermark", water);
    UI.SetEnabled("[WT] Static position watermark", water);
    UI.SetEnabled("[WT] Custom name", water);
    UI.SetEnabled("Name", water && cname);

    UI.SetEnabled("keybinds_x", false);
    UI.SetEnabled("keybinds_y", false);
    UI.SetEnabled("spectator_x", false);
    UI.SetEnabled("spectator_y", false);
    UI.SetEnabled("watermark_x", false);
    UI.SetEnabled("watermark_y", false);     
}
var observators = [];
var stored = false,
    x_offs = 0,
    y_offs = 0;
const in_bounds = function(vec, x, y, x2, y2) {
    return (vec[0] > x) && (vec[1] > y) && (vec[0] < x2) && (vec[1] < y2)
},
move = function (x, y, width, height, name) {
    if (UI.IsMenuOpen() && Input.IsKeyPressed(0x1)) {
      const mouse_pos = Global.GetCursorPosition();
      if (in_bounds(mouse_pos, x, y, x + width, y + height)) {
         if(!stored){
            x_offs = mouse_pos[0] - x;
            y_offs = mouse_pos[1] - y;
            stored = true;
         }
         UI.SetValue("Script items", name + "_x", mouse_pos[0] - x_offs);
         UI.SetValue("Script items", name + "_y", mouse_pos[1] - y_offs);
      }
   } else if(stored) stored = false;
},
getObservators = function() {
    var ents = Entity.GetPlayers();
    var local = Entity.GetLocalPlayer();
    var localtarget = Entity.GetProp(local, "CBasePlayer", "m_hObserverTarget");
    if (!local) return;
    observators = [];
    for (i = 0; i < ents.length; i++) {
        if (Entity.IsAlive(local)) {
            if (!ents[i] || Entity.IsAlive(ents[i])) continue;
            var observer = Entity.GetProp(ents[i], "CBasePlayer", "m_hObserverTarget");
            if (!observer || observer == "m_hObserverTarget") continue;
            const names = Entity.GetName(ents[i])
            if (observer == local) observators.push(names.length >= 19 ? names.substr(0, 16) + "..." : names);
        } else {
            if (!ents[i] || Entity.IsAlive(ents[i])) continue;
            var observer = Entity.GetProp(ents[i], "CBasePlayer", "m_hObserverTarget");
            if (!observer || observer == "m_hObserverTarget") continue;
            const names = Entity.GetName(ents[i])
            if (observer == localtarget) observators.push(names.length >= 19 ? names.substr(0, 16) + "..." : names);
        }
    }
};

var kalpha = [];

function keybind_func() {
    var font = Render.AddFont("MuseoSansCyrl-700", 10, 500);
    var bfont = Render.AddFont("MuseoSansCyrl-500", 10, 500);
    var icon = Render.AddFont("untitled-font-1", 13, 500);
    var theme = UI.GetValue("[ALL] Theme")
    var x = UI.GetValue("keybinds_x");
    var y = UI.GetValue("keybinds_y");
    var keybind = [];

    var swmode = UI.GetValue("Anti-Aim", "Extra", "Slow walk mode")
    var swmodes = (swmode == 0) ? "Accuracy" :
    (swmode == 1) ? "Slide fast" :
    (swmode == 2) ? "Slide slow" : "";

    keybind_info = [
    ["Trigger Bot", ["Legit", "GENERAL", "Triggerbot", "Enabled"], "on"],
    ["Double Tap", ["Rage", "GENERAL", "Exploits", "Doubletap"], "on"],
    ["Hide Shots", ["Rage", "GENERAL", "Exploits", "Hide shots"], "on"],
    ["Safe Point", ["Rage", "GENERAL", "General", "Force safe point"], "on"],
    ["Body Aim", ["Rage", "GENERAL", "General", "Force body aim"], "on"],
    ["Resolver Override", ["Rage", "GENERAL", "General", "Resolver override"], "on"],
    ["Minimum Damage", ["Misc", "JAVASCRIPT", "Script items", "Damage override key"], "on"],
    ["Fake Duck", ["Anti-Aim", "Extra", "Fake duck"], "on"],
    ["Slow Walk", ["Anti-Aim", "Extra", "Slow walk"], swmodes],
    ["Inverter", ["Anti-Aim", "Fake angles", "Inverter"], "on"],
    ["Edge Jump", ["Misc", "GENERAL", "Movement", "Edge jump"], "on"],
    ["Auto Peek", ["Misc", "GENERAL", "Movement", "Auto peek"], "on"],   
    ];
    //["name bind", ["position bind"], "state"]

    for(var i in keybind_info) {
        bind_path = keybind_info[i][1];
        if(UI.IsHotkeyActive.apply(null, bind_path)){
            keybind.push(i);
        }
    }

    if (keybind.length > 0 || UI.IsMenuOpen()) {
        kalpha = Math.min(kalpha + (8 * Globals.Frametime()), 1);
    } else {
        kalpha = kalpha - (8 * Globals.Frametime());
        if (kalpha < 0) kalpha = 0;
    }

    var color = (theme == 0) ? [0, 20, 20, kalpha * 170] :
    (theme == 1) ? [255, 255, 255, kalpha * 170] :
    (theme == 2) ? [15, 15, 50, kalpha * 170] : "";

    var colortext = (theme == 0) ? [255, 255, 255, kalpha * 255] :
    (theme == 1) ? [0, 0, 0, kalpha * 255] :
    (theme == 2) ? [255, 255, 255, kalpha * 255] : ""; 

    if (!UI.GetValue("[NL] Keybinds")) return;
    Render.FilledRect(x - 1, y + 22, 171, 3 + (21 * keybind.length), [200, 200, 200, kalpha * 15]);
    Render.FilledRect(x, y + 25 + (21 * keybind.length), 169, 1 , [200, 200, 200, kalpha * 15]);
    Render.FilledRect(x, y - 1, 169, 1, color);
    Render.FilledRect(x - 1, y, 171, 21, color);
    Render.FilledRect(x - 1, y + 21, 171, 2, [244, 244, 244, kalpha * 55]);

    Render.StringCustom(x + 6, y + 2, 0, "a", [3, 128, 205, kalpha * 255], icon);
    Render.StringCustom(x + 30, y + 3, 0, "Binds", colortext, font);

    for(var j in keybind){
        bind = keybind[j];
        name = keybind_info[bind][0];
        state = keybind_info[bind][2];
        Render.StringCustom(x + 3, y + 26 + (j * 21), 0, name, [255, 255, 255, kalpha * 255], bfont);
        Render.StringCustom(x + 169 - Render.TextSizeCustom(state, bfont)[0] - 3, y + 26 + (j * 21), 0, state, [255, 255, 255, kalpha * 255], bfont);
    }
    move(x, y, 171, 25, "keybinds");
}
var salpha = [];

function spectator_func() {
    var theme = UI.GetValue("[ALL] Theme")
    var ticon = UI.GetValue("[SP] Type icon")
    var font = Render.AddFont("MuseoSansCyrl-700", 10, 500);
    var bfont = Render.AddFont("MuseoSansCyrl-500", 10, 500);
    var icon = Render.AddFont("untitled-font-1", 13, 500);
    var icons = Render.AddFont("untitled-font-1", ticon == 0 ? 12 : 13, 500);
    var x = UI.GetValue("spectator_x");
    var y = UI.GetValue("spectator_y");
    getObservators();

    if (observators.length > 0 || UI.IsMenuOpen()) {
        salpha = Math.min(salpha + (8 * Globals.Frametime()), 1);
    } else {
        salpha = salpha - (8 * Globals.Frametime());
        if (salpha < 0) salpha = 0;
    }

    var color = (theme == 0) ? [0, 20, 20, salpha * 170] :
    (theme == 1) ? [255, 255, 255, salpha * 170] :
    (theme == 2) ? [15, 15, 50, salpha * 170] : "";

    var coloricon = (theme == 0) ? [0, 20, 20, salpha * 100] :
    (theme == 1) ? [190, 190, 190, salpha * 100] :
    (theme == 2) ? [15, 15, 50, salpha * 100] : "";

    var colortext = (theme == 0) ? [255, 255, 255, salpha * 255] :
    (theme == 1) ? [0, 0, 0, salpha * 255] :
    (theme == 2) ? [255, 255, 255, salpha * 255] : ""; 

    if (!UI.GetValue("[NL] Spectators")) return;
    Render.FilledRect(x - 1, y + 22, 183, 3 + (21 * observators.length), [200, 200, 200, salpha * 15]);
    Render.FilledRect(x, y + 25 + (21 * observators.length), 181, 1, [200, 200, 200, salpha * 15]);
    Render.FilledRect(x, y - 1, 181, 1, color);
    Render.FilledRect(x - 1, y, 183, 21, color);
    Render.FilledRect(x - 1, y + 21, 183, 2, [244, 244, 244, salpha * 55]);

    Render.StringCustom(x + 6, y + 2, 0, "b", [3, 128, 205, salpha * 255], icon);
    Render.StringCustom(x + 30, y + 3, 0, "Spectators", colortext, font);

    for (i = 0; i < observators.length; i++){
    names = observators[i]
    plus = ticon == 0 ? 4 : 3;
    Render.StringCustom(x + 25, y + 26 + (21 * i), 0, names, [255, 255, 255, salpha * 255], bfont);
    if(ticon == 0){
    Render.FilledCircle(x + 11, y + 34 + 21 * i, 10, coloricon);
    }else{
    Render.FilledRect(x + 3, y + 25 + 21 * i, 16, 1, coloricon);
    Render.FilledRect(x + 2, y + 26 + 21 * i, 18, 17, coloricon);
    Render.FilledRect(x + 3, y + 43 + 21 * i, 16, 1, coloricon);}
    Render.StringCustom(x + plus, y + 26 + (21 * i), 0, "d", [220, 220, 220, salpha * 255], icons);
    }
    move(x, y, 183, 25, "spectator");
}

function watermark_func() {
    var font = Render.AddFont("MuseoSansCyrl-700", 10, 500)
    var ifont = Render.AddFont("MuseoSansCyrl-900", 11, 500)
    var theme = UI.GetValue("[ALL] Theme")
    var x = UI.GetValue("watermark_x");
    var y = UI.GetValue("watermark_y");
    var show = UI.GetValue("[WT] Show")
    var static = UI.GetValue("[WT] Static position watermark");
    var name = UI.GetValue("[WT] Name watermark")

    var username = UI.GetValue("[WT] Custom name") ? UI.GetString("Script items", "Name") : Cheat.GetUsername();
    var fps = Math.floor(1 / Global.Frametime());
    var today = new Date();
    var ping = Math.round(Entity.GetProp(Entity.GetLocalPlayer(), "CPlayerResource", "m_iPing")).toString();
    var ip = World.GetServerString();
    var hours1 = today.getHours();
    var minutes1 = today.getMinutes();
    var seconds1 = today.getSeconds();
    var hours = hours1 <= 9 ? "0" + today.getHours() + ":" : today.getHours() + ":";
    var minutes = minutes1 <= 9 ? "0" + today.getMinutes() + ":" : today.getMinutes() + ":";
    var seconds = seconds1 <= 9 ? "0" + today.getSeconds() : today.getSeconds();

    var color = (theme == 0) ? [0, 20, 20, 170] :
    (theme == 1) ? [255, 255, 255, 170] :
    (theme == 2) ? [15, 15, 50, 170] : "";

    var colortext = (theme == 0) ? [255, 255, 255, 255] :
    (theme == 1) ? [0, 0, 0, 255] :
    (theme == 2) ? [255, 255, 255, 255] : "";

    var namep = name == 0 ? "NL" : "NEVERLOSE"
    if (name == 0){
    text = ""
    }else{
    text = "                      "
    }
    if (show & (1 << 0) ){
        text += ("| " + username)
    }
    if (show & (1 << 1) && World.GetServerString() != "") {
        text += (" | " + ping + " mc")
    }
    if (show & (1 << 2)) {
        text += (" | " + hours + minutes + seconds)
    }
    if (show & (1 << 3)) {
        text += (" | " + fps + " fps")
    }
    if (show & (1 << 4) && World.GetServerString() != "") {
        text += (" | " + ip)
    }
    var plus = show ? 34 : 31
    var w = Render.TextSizeCustom(text, font)[0] + plus;
    var x2 = Global.GetScreenSize()[0] - 2;
    x1 = x2 - w - 10;

    x_1 = static ? x1 : x
    y_1 = static ? 12 : y
    if (!UI.GetValue("[NL] Watermark")) return;
    Render.FilledRect(x_1, y_1 - 1, w - 2, 1, color);
    Render.FilledRect(x_1, y_1 + 21, w - 2, 1, color);
    Render.FilledRect(x_1 - 1, y_1, w, 23 - 2, color);
    Render.StringCustom(x_1 + 28, y_1 + 3, 0, text, colortext, font)

    Render.StringCustom(x_1 + 4, y_1 + 1, 0, namep, [34, 179, 246, 255], ifont)
    Render.StringCustom(x_1 + 5, y_1 + 2, 0, namep, colortext, ifont)

    if (static) return;
    move(x, y, w, 25, "watermark");
}

function roundstart(){
    observators = [];
}

Global.RegisterCallback("Draw", "visible");
Global.RegisterCallback("Draw", "keybind_func");
Global.RegisterCallback("Draw", "spectator_func");
Global.RegisterCallback("Draw", "watermark_func");
Global.RegisterCallback("round_start", "roundstart");
JS и Шрифты в закреп. архиве.
Как же заебали с нлом. Его кейбинды уже 3 темы есть.
 
Сверху Снизу