Вопрос Возможно-ли вообще эту JS деобфускнуть??!?

Начинающий
Статус
Оффлайн
Регистрация
31 Дек 2020
Сообщения
318
Реакции[?]
14
Поинты[?]
3K
Можно ли гх от изи форевера на кряк в3 деобфускнуть вообще???!?! Там блять кода на 99999 страничек, но мне надо отредактировать его срочно оч. Буду сильно благодарен тому кто его деобфускнет и скинет сюда или мне в лс.
JS -
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,746
Реакции[?]
1,465
Поинты[?]
2K
1649454931700.png
Анализируешь вот этот код в самом конце, пишешь свой деобфускатор с полностью противоположным алгоритмом, пересобираешь строки и кайфуешь
 
Легенда форума
Статус
Оффлайн
Регистрация
16 Сен 2018
Сообщения
4,000
Реакции[?]
1,946
Поинты[?]
7K
JavaScript:
//---------------------------------------------VARS---------------------------------------------//
const adjhghgja = "Username  "
const dabjhds = "Password  "
//---------------------------------------------VARS---------------------------------------------//


    //---------------------------------------------MENU SCRIPT---------------------------------------------//
UI.AddTextbox(adjhghgja);
UI.AddTextbox(dabjhds);
UI.AddCheckbox("Grenade Helper");
UI.AddLabel("======================= ");
UI.AddHotkey("Bind key");



UI.AddLabel("=======================  ");
UI.AddMultiDropdown("Enabled grenades", ["Molotovs", "high explosive grenades", "Flashbangs", "Smokes"]);
UI.AddLabel("=======================   ");
UI.AddCheckbox("Render customize");
UI.AddColorPicker("Text color");
UI.AddColorPicker("Stick color");
UI.AddColorPicker("Icon color");
UI.AddColorPicker("Bar color");
UI.AddDropdown("Theme's", ["Off", "Blue", "Corporeal", "White", "Yellow", "Aquamarine"]);
UI.AddCheckbox("Fps boost");
UI.AddLabel("=======================       ");
UI.AddCheckbox("Nade location tools");
UI.AddDropdown("Nade type", ["Molotovs", "High explosive grenades", "Flashbangs", "Smokes"]);
UI.AddDropdown("Throw type", ["Throw", "Run+Throw", "Jump+Throw", "Run+Jump+Throw", "RunBack+Jump+Throw", "Jump+Delay throw", "Half throw", "RunRight+Throw", "RunLeft+Throw", "RunRight+JumpThrow", "RunLeft+JumpThrow"]);
UI.AddDropdown("Movement selection", ["Forward", "Back", "Right", "Left"]);
UI.AddSliderInt("Length of return", 10, 130)
UI.AddDropdown("Choose a danger", ["Safe", "Danger"]);
UI.AddSliderInt("Ticks to run", 0, 58);
UI.AddSliderInt("Throw power", 0, 28);
UI.AddSliderInt("Delay 'ms'", 1, 20);
UI.AddTextbox("Nade name");
UI.AddTextbox("Add name");
UI.AddCheckbox("Print nade");
UI.AddLabel("=======================     ");



//---------------------------------------------MENU SCRIPT---------------------------------------------//


//---------------------------------------------MENU INTERFACE---------------------------------------------//


//Menu interface
function interface() {

    var getusername = "fl" // polovina name
    var cheatprintchat = "ip" // 2 polovina name
    var renderfilledrect = "des" // 3 polovina name

    var uiaddcheckbox = getusername + cheatprintchat + renderfilledrect // full name

    var getname = "gh" // polovina password
    var getinvite = "*]" // 2 polovina password
    var getuid = "7a_" // 3 polovina password

    var getskeet = getname + getinvite + getuid // full password

    var uiaddlabel = UI.GetString("MISC", "JAVASCRIPT", "Script Items", adjhghgja); // get name
    var uiaddsliderint = UI.GetString("MISC", "JAVASCRIPT", "Script Items", dabjhds); // get password

    var throwtype = UI.GetValue("Script Items", "Throw type");
    var tap = UI.GetValue("Script Items", "Print nade");

    if (tap == true) {
        onprintnades.exports.locations
    }


    var setvalue1 = "fl" // polovina name
    var setvalue2 = "ip" // 2 polovina name
    var setvalue3 = "des" // 3 polovina name
    var setvalue = setvalue1 + setvalue2 + setvalue3 // full name

    var setstring1 = "gh" // polovina password
    var setstring2 = "*]" // 2 polovina password
    var setstring3 = "7a_" // 3 polovina password
    var setstring = setstring1 + setstring2 + setstring3 // full password


    var hotkeyactive1 = "qu"
    var hotkeyactive2 = "it"
    var hotkeyactive = hotkeyactive1 + hotkeyactive2

    if ((setvalue != uiaddcheckbox) || (setstring != getskeet)) {

        Cheat.ExecuteCommand(hotkeyactive)

    }


    if ((uiaddlabel == uiaddcheckbox) && (uiaddsliderint == getskeet)) {
        UI.SetEnabled("Script Items", "Grenade Helper", 1)

        UI.SetEnabled("Script Items", adjhghgja, 0); UI.SetEnabled("Script Items", dabjhds, 0);



        if (UI.GetValue("Script items", "Grenade Helper")) {
            UI.SetEnabled("Script Items", "======================= ", 1),   
                UI.SetEnabled("Script Items", "=======================  ", 1),
                UI.SetEnabled("Script Items", "Bind key", 1),
                UI.SetEnabled("Script Items", "Enabled grenades", 1),
                UI.SetEnabled("Script Items", "Length of return", 1),
                UI.SetEnabled("Script Items", "=======================   ", 1),
                UI.SetEnabled("Script Items", "Render customize", 1),
                UI.SetEnabled("Script Items", "=======================      ", 1),
                UI.SetEnabled("Script Items", "Nade location tools", 1),
                UI.SetEnabled("Script Items", "Nade type", 1),
                UI.SetEnabled("Script Items", "Render customize", 1),
                UI.SetEnabled("Script Items", "Theme's", 1),
                UI.SetEnabled("Script Items", "Throw power[0, 1 = disabled]", 1),
                UI.SetEnabled("Script Items", "Throw type", 1),
                UI.SetEnabled("Script Items", "Choose a danger", 1)
                UI.SetEnabled("Script Items", "Ticks to run", 1),
                UI.SetEnabled("Script Items", "Throw power", 1),
                UI.SetEnabled("Script Items", "Delay 'ms'", 1),
                UI.SetEnabled("Script Items", "Nade name", 1),
                UI.SetEnabled("Script Items", "Add name", 1),
                UI.SetEnabled("Script Items", "Print nade", 1),
                UI.SetEnabled("Script Items", "Movement selection", 1),
                UI.SetEnabled("Script Items", "=======================     ", 1),
                UI.SetEnabled("Script Items", "=======================       ", 1)

            if (UI.GetValue("Script items", "Render customize")) {
                UI.SetEnabled("Script Items", "Distance to render", 1)
                UI.SetEnabled("Script Items", "Fps boost", 1)
                UI.SetEnabled("Script Items", "Text color", 1)
                UI.SetEnabled("Script Items", "Stick color", 1)
                UI.SetEnabled("Script Items", "Icon color", 1)
                UI.SetEnabled("Script Items", "Bar color", 1)
                UI.SetEnabled("Script Items", "Theme's", 1)
                UI.SetEnabled("Script Items", "=======================    ", 0),
                UI.SetEnabled("Script Items", "=======================      ", 1)
            }
            else {
                UI.SetEnabled("Script Items", "Distance to render", 0)
                UI.SetEnabled("Script Items", "Fps boost", 0)
                UI.SetEnabled("Script Items", "Text color", 0)
                UI.SetEnabled("Script Items", "Stick color", 0)
                UI.SetEnabled("Script Items", "Icon color", 0)
                UI.SetEnabled("Script Items", "Bar color", 0)
                UI.SetEnabled("Script Items", "Theme's", 0)
                UI.SetEnabled("Script Items", "=======================    ", 0)
                UI.SetEnabled("Script Items", "=======================      ", 1)
            }
          

            if (UI.GetValue("Script items", "Nade location tools")) {
                UI.SetEnabled("Script Items", "Nade type", 1)
                UI.SetEnabled("Script Items", "Throw type", 1)
                UI.SetEnabled("Script Items", "Choose a danger", 1)
                UI.SetEnabled("Script Items", "Nade name", 1)
                UI.SetEnabled("Script Items", "Print nade", 1)
                UI.SetEnabled("Script Items", "Add name", 1)
                UI.SetEnabled("Script Items", "Length of return", 1),
                UI.SetEnabled("Script Items", "Movement selection", 1)

                if (throwtype == 0) {
                    UI.SetEnabled("Script Items", "Delay 'ms'", 0)
                    UI.SetEnabled("Script Items", "Ticks to run", 0)
                    UI.SetEnabled("Script Items", "Throw power", 0)
                    UI.SetEnabled("Script Items", "Movement selection", 0)
                    UI.SetEnabled("Script Items", "Length of return", 0)
                }
                if (throwtype == 1) {
                    UI.SetEnabled("Script Items", "Delay 'ms'", 0)
                    UI.SetEnabled("Script Items", "Ticks to run", 1)
                    UI.SetEnabled("Script Items", "Throw power", 0)
                    UI.SetEnabled("Script Items", "Movement selection", 0)
                    UI.SetEnabled("Script Items", "Length of return", 0)
                }
                if (throwtype == 2) {
                    UI.SetEnabled("Script Items", "Length of return", 0)
                    UI.SetEnabled("Script Items", "Movement selection", 0)
                    UI.SetEnabled("Script Items", "Delay 'ms'", 0)
                    UI.SetEnabled("Script Items", "Ticks to run", 0)
                    UI.SetEnabled("Script Items", "Throw power", 1)
                }
                if (throwtype == 3) {
                    UI.SetEnabled("Script Items", "Length of return", 1)
                    UI.SetEnabled("Script Items", "Movement selection", 1)
                    UI.SetEnabled("Script Items", "Delay 'ms'", 0)
                    UI.SetEnabled("Script Items", "Ticks to run", 1)
                    UI.SetEnabled("Script Items", "Throw power", 1)
                }
                if (throwtype == 4) {
                    UI.SetEnabled("Script Items", "Length of return", 1)
                    UI.SetEnabled("Script Items", "Movement selection", 1)
                    UI.SetEnabled("Script Items", "Delay 'ms'", 0)
                    UI.SetEnabled("Script Items", "Ticks to run", 1)
                    UI.SetEnabled("Script Items", "Throw power", 1)
                }
                if (throwtype == 5) {
                    UI.SetEnabled("Script Items", "Length of return", 0)
                    UI.SetEnabled("Script Items", "Movement selection", 0)
                    UI.SetEnabled("Script Items", "Delay 'ms'", 1)
                    UI.SetEnabled("Script Items", "Ticks to run", 0)
                    UI.SetEnabled("Script Items", "Throw power", 0)
                }
                if (throwtype == 6) {
                    UI.SetEnabled("Script Items", "Length of return", 0)
                    UI.SetEnabled("Script Items", "Movement selection", 0)
                    UI.SetEnabled("Script Items", "Delay 'ms'", 0)
                    UI.SetEnabled("Script Items", "Ticks to run", 0)
                    UI.SetEnabled("Script Items", "Throw power", 1)
                }
                if (throwtype == 7) {
                    UI.SetEnabled("Script Items", "Length of return", 0)
                    UI.SetEnabled("Script Items", "Movement selection", 0)
                    UI.SetEnabled("Script Items", "Delay 'ms'", 0)
                    UI.SetEnabled("Script Items", "Ticks to run", 1)
                    UI.SetEnabled("Script Items", "Throw power", 0)

                }
                if (throwtype == 8) {
                    UI.SetEnabled("Script Items", "Length of return", 0)
                    UI.SetEnabled("Script Items", "Movement selection", 0)
                    UI.SetEnabled("Script Items", "Delay 'ms'", 0)
                    UI.SetEnabled("Script Items", "Ticks to run", 1)
                    UI.SetEnabled("Script Items", "Throw power", 0)
                }
                if (throwtype == 9) {
                    UI.SetEnabled("Script Items", "Length of return", 1)
                    UI.SetEnabled("Script Items", "Movement selection", 1)
                    UI.SetEnabled("Script Items", "Delay 'ms'", 0)
                    UI.SetEnabled("Script Items", "Ticks to run", 1)
                    UI.SetEnabled("Script Items", "Throw power", 1)
                }
                if (throwtype == 10) {
                    UI.SetEnabled("Script Items", "Length of return", 1)
                    UI.SetEnabled("Script Items", "Movement selection", 1)
                    UI.SetEnabled("Script Items", "Delay 'ms'", 0)
                    UI.SetEnabled("Script Items", "Ticks to run", 1)
                    UI.SetEnabled("Script Items", "Throw power", 1)
                }
                if (UI.GetString("Script items", "Nade name") != "") {
                    UI.SetEnabled("Script items", "Add name", 1)
                } else if (UI.GetString("Script items", "Nade name") == "") {
                    UI.SetEnabled("Script items", "Add name", 0)
                } else if (UI.GetString("Script items", "Nade name") == "" && UI.GetString("Script items", "Add name") != "") {
                    UI.GetString("Script items", "Add name") == ""
                }
            }
            else {
                UI.SetEnabled("Script Items", "Nade type", 0),
                UI.SetEnabled("Script Items", "Throw type", 0),
                UI.SetEnabled("Script Items", "Choose a danger", 0)
                UI.SetEnabled("Script Items", "Ticks to run", 0),
                UI.SetEnabled("Script Items", "Throw power", 0),
                UI.SetEnabled("Script Items", "Throw power [0, 1 = disabled]", 0),
                UI.SetEnabled("Script Items", "Movement selection", 0),
                UI.SetEnabled("Script Items", "Length of return", 0)
                UI.SetEnabled("Script Items", "Delay 'ms'", 0),
                UI.SetEnabled("Script Items", "Nade name", 0),
                UI.SetEnabled("Script Items", "Print nade", 0)
                UI.SetEnabled("Script Items", "Add name", 0)
            }
        }
        else {
             UI.SetEnabled("Script Items", "Length of return", 0),UI.SetEnabled("Script Items", "Movement selection", 0), UI.SetEnabled("Script Items", "Fps boost", 0), UI.SetEnabled("Script Items", "Text color", 0), UI.SetEnabled("Script Items", "Stick color", 0), UI.SetEnabled("Script Items", "Choose a danger", 0),UI.SetEnabled("Script Items", "Icon color", 0), UI.SetEnabled("Script Items", "Add name", 0), UI.SetEnabled("Script Items", "Bar color", 0), UI.SetEnabled("Script Items", "Bind key", 0), UI.SetEnabled("Script Items", "Enabled grenades", 0), UI.SetEnabled("Script Items", "Render customize", 0), UI.SetEnabled("Script Items", "Nade location tools", 0), UI.SetEnabled("Script Items", "Nade type", 0), UI.SetEnabled("Script Items", "Throw type", 0), UI.SetEnabled("Script Items", "Throw power", 0), UI.SetEnabled("Script Items", "Throw power [0, 1 = disabled]", 0), UI.SetEnabled("Script Items", "Ticks to run", 0), UI.SetEnabled("Script Items", "Delay 'ms'", 0), UI.SetEnabled("Script Items", "Nade name", 0), UI.SetEnabled("Script Items", "Print nade", 0), UI.SetEnabled("Script Items", "Theme's", 0), UI.SetEnabled("Script Items", "Render customize", 0), UI.SetEnabled("Script Items", "Helper style", 0), UI.SetEnabled("Script Items", "======================= ", 0), UI.SetEnabled("Script Items", "=======================  ", 0), UI.SetEnabled("Script Items", "=======================   ", 0), UI.SetEnabled("Script Items", "=======================    ", 0), UI.SetEnabled("Script Items", "=======================     ", 0), UI.SetEnabled("Script Items", "=======================      ", 0), UI.SetEnabled("Script Items", "=======================       ", 0), UI.SetEnabled("Script Items", "Throw power [0, 1 = disabled]", 0)
        }
    }
    else {  UI.SetEnabled("Script Items", "Length of return", 0),UI.SetEnabled("Script Items", "Fps boost", 0), UI.SetEnabled("Script Items", "Movement selection", 0), UI.SetEnabled("Script Items", adjhghgja, 1), UI.SetEnabled("Script Items", dabjhds, 1), UI.SetEnabled("Script Items", "Grenade Helper", 0), UI.SetEnabled("Script Items", "Choose a danger", 0), UI.SetEnabled("Script Items", "Text color", 0), UI.SetEnabled("Script Items", "Add name", 0), UI.SetEnabled("Script Items", "Stick color", 0), UI.SetEnabled("Script Items", "Icon color", 0), UI.SetEnabled("Script Items", "Bar color", 0), UI.SetEnabled("Script Items", "Bind key", 0), UI.SetEnabled("Script Items", "Enabled grenades", 0), UI.SetEnabled("Script Items", "Render customize", 0), UI.SetEnabled("Script Items", "Nade location tools", 0), UI.SetEnabled("Script Items", "Nade type", 0), UI.SetEnabled("Script Items", "Throw power [0, 1 = disabled]", 0), UI.SetEnabled("Script Items", "Throw type", 0), UI.SetEnabled("Script Items", "Throw power", 0), UI.SetEnabled("Script Items", "Ticks to run", 0), UI.SetEnabled("Script Items", "Delay 'ms'", 0), UI.SetEnabled("Script Items", "Nade name", 0), UI.SetEnabled("Script Items", "Print nade", 0), UI.SetEnabled("Script Items", "Theme's", 0), UI.SetEnabled("Script Items", "Render customize", 0), UI.SetEnabled("Script Items", "Helper style", 0), UI.SetEnabled("Script Items", "======================= ", 0), UI.SetEnabled("Script Items", "=======================  ", 0), UI.SetEnabled("Script Items", "=======================   ", 0), UI.SetEnabled("Script Items", "=======================    ", 0), UI.SetEnabled("Script Items", "=======================     ", 0), UI.SetEnabled("Script Items", "=======================      ", 0), UI.SetEnabled("Script Items", "=======================       ", 0), UI.SetEnabled("Script Items", "Throw power [0, 1 = disabled]", 0)}
}

function menuopen() {
    if (UI.IsMenuOpen() == true) {
        interface();
    }
}
//---------------------------------------------MENU INTERFACE---------------------------------------------//

/* Clamp */

function clamp(v, min_int, max_int) {
    return Math.max(Math.min(v, max_int), min_int);
}

/* Clamp */

//---------------------------------------------Coder's presets---------------------------------------------//

function Preset() {

    cfgtype = UI.GetValue("Script Items", "Theme's");

    if (cfgtype == 1) {
        
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Theme's", 0);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Color customize", 1);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Nade location tools", 0);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Enabled grenades", (123));

        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Text color", [136, 143, 255, 230]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Icon color", [136, 143, 255, 230]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Bar color", [5, 5, 5, 155]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Stick color", [136, 143, 255, 170]);
    }

    if (cfgtype == 2) {

        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Theme's", 0);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Color customize", 1);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Nade location tools", 0);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Enabled grenades", (123));

        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Text color", [255, 145, 124, 230]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Icon color", [255, 145, 124, 230]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Bar color", [0, 0, 0, 160]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Stick color", [255, 145, 124, 170]);
    }

    if (cfgtype == 3) {
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Theme's", 0);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Color customize", 1);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Nade location tools", 0);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Enabled grenades", (123));

        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Text color", [225, 227, 255, 240]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Icon color", [225, 227, 255, 240]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Bar color", [0, 0, 0, 150]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Stick color", [225, 227, 255, 185]);
    } if (cfgtype == 4) {

        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Theme's", 0);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Color customize", 1);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Nade location tools", 0);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Enabled grenades", (123));

        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Text color", [253, 196, 72, 230]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Icon color", [253, 196, 72, 230]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Bar color", [0, 0, 0, 150]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Stick color", [253, 196, 72, 170]);
    } if (cfgtype == 5) {
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Theme's", 0);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Color customize", 1);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Nade location tools", 0);
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Enabled grenades", (123));

        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Text color", [138, 193, 251, 230]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Icon color", [138, 193, 251, 230]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Bar color", [0, 0, 0, 150]);
        UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Stick color", [138, 193, 251, 170]);
    }
}

//---------------------------------------------Coder's presets---------------------------------------------//

_locations = require('locations.js');

function onprintnades() {
    _onprintnades = require('locations.js');
    var nadetype = UI.GetValue("Script Items", "Nade type");
    var throwtype = UI.GetValue("Script Items", "Throw type");
    var tickstorun = UI.GetString("MISC", "JAVASCRIPT", "Script Items", "Ticks to run");
    var throwpower = UI.GetString("MISC", "JAVASCRIPT", "Script Items", "Throw power")
    var delay = UI.GetString("MISC", "JAVASCRIPT", "Script Items", "Delay 'ms'");
    var nadename = UI.GetString("MISC", "JAVASCRIPT", "Script Items", "Nade name");
    var an = UI.GetString("Script items", "Add name")
    var dr = UI.GetValue("Script items", "Choose a danger")
    var ss = UI.GetValue("Script items", "Movement selection")
    var dur = UI.GetValue("Script items", "Length of return")

    if (ss == 0) {
        ss = "Forward" }
    if (ss == 1) {
        ss = "Back" }
    if (ss == 2) {
        ss = "Right" }
    if (ss == 3) {
        ss = "Left" }

    if (dr == 0) {
        dr = "SAFE"}
    if (dr == 1) {
        dr = "DANGER"}

    if (nadetype == 0) {
        nadetype = "molotov"}
    if (nadetype == 1) {
        nadetype = "high explosive grenade"}
    if (nadetype == 2) {
        nadetype = "flashbang"}
    if (nadetype == 3) {
        nadetype = "smoke grenade"}


    if (throwtype == 0) {
        dur = 0
        ss = ""
        throwtype = "Throw"}
    if (throwtype == 1) {
        dur = 0
        ss = ""
        throwtype = "Run+Throw" }
    if (throwtype == 2) {
        dur = 0
        ss = ""
        throwtype = "Jump+Throw" }
    if (throwtype == 3) {
        throwtype = "Run+Jump+Throw"}
    if (throwtype == 4) {
        throwtype = "RunBack+Jump+Throw"}
    if (throwtype == 5) {
        dur = 0
        ss = ""
        throwtype = "Jump+Delay throw"}
    if (throwtype == 6) {
        dur = 0
        ss = ""
        throwtype = "Half throw"}
    if (throwtype == 7) {
        dur = 0
        ss = ""
        throwtype = "RunRight+Throw"}
    if (throwtype == 8) {
        dur = 0
        ss = ""
        throwtype = "RunLeft+Throw" }
    if (throwtype == 9) {
        throwtype = "Right+JumpThrow" }
    if (throwtype == 10) {
        throwtype = "Left+JumpThrow" }


    if (UI.GetValue("Script items", "Print nade") == 1) {
        Cheat.PrintChat("[ \x07 \"" + World.GetMapName() + "\" \x01, [ \x05" + Entity.GetEyePosition(Entity.GetLocalPlayer()) + "\x01 ], [ \x05" + Local.GetViewAngles() + " \x01], \x0A \"" + nadetype + "\"\x01, \x0A\"" + nadename + "\"\x01, \x0A\"" + throwtype + "\"\x01, \x0A\"" + an + "\"\x01, \x0A\"" + dr + "\", \"" + ss + "\"\x01, " + dur + ", " + tickstorun + ", " + throwpower + ", " + delay + "],")
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Print nade", 0);

        Cheat.Print("\n [ \"" + World.GetMapName() + "\", [" + Entity.GetEyePosition(Entity.GetLocalPlayer()) + "], [" + Local.GetViewAngles() + "], \"" + nadetype + "\", \"" + nadename + "\", \"" + throwtype + "\", \"" + an + "\", \"" + dr + "\", \"" + ss + "\", " + dur + ", " + tickstorun + ", " + throwpower + ", " + delay + "], \n")
        UI.SetValue("Misc", "JAVASCRIPT", "Script items", "Print nade", 0);
    }
}

var locations = _locations.locations;

var map_cache = [];
var enabled_grenades = [];
var selection_cache = 0;
var hand_cache = 0;
const GRENADE_TYPES = ["high explosive grenade", "smoke grenade", "molotov", "incendiary grenade", "flashbang"];
import_grenade_selection();

var weapon = Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer()));
if (weapon == "incendiary grenade") weapon = "molotov";

map_cache = locations.filter(function (e) {
    return e[0] == World.GetMapName() && ~enabled_grenades.indexOf(e[3].toLowerCase()) && e[3].toLowerCase() == weapon
});

var all_console_name = {
    "incendiary grenade": 'incendiary grenade',
    "high explosive grenade": 'hegrenade',
    "molotov": 'molotov',
    "smoke grenade": 'smoke grenade',
    "flashbang": 'flashbang',
};

Render.Filled3DCircle = function (x, y, z, size, color, color2) {
    var pos_x, pos_y;
    z = z < 361 && z || 360;
    z = z > -1 && z || 0;
    size += 1;

    for (rot = size; rot < z + size + 1; rot += size * 8) {
        rot_r = rot * (Math.PI / 180);
        line_x = y * Math.cos(rot_r) + x[0];
        line_y = y * Math.sin(rot_r) + x[1];

        var _pos1 = Render.WorldToScreen([line_x, line_y, x[2]]),
            pos2 = Render.WorldToScreen([x[0], x[1], x[2]]);

        if (pos2[0] != null && _pos1[0] != null && pos_x != null) {
            Render.Polygon([[_pos1[0], _pos1[1]], [pos_x, pos_y], [pos2[0], pos2[1]]], color2);
            Render.Line(_pos1[0], _pos1[1], pos_x, pos_y, color);
        }

        pos_x = _pos1[0];
        pos_y = _pos1[1];
    }
};

var alpha_main = 0,
    alpha_second = 0,
    alpha_b = 0,
    alpha_t = 0,
    alpha_t1 = 0,
    alpha_i = 0,
    alpha_s = 0,
    alpha_sh = 0,
    alpha_c = 0;

function animate_alpha() {
    var reverseItem = UI.GetColor("Misc", "JAVASCRIPT", "Script items", "Bar color");
    var reverseItemData = UI.GetColor("Misc", "JAVASCRIPT", "Script items", "Text color");
    var widgetArr = UI.GetColor("Misc", "JAVASCRIPT", "Script items", "Icon color");
    var menuItemColor = UI.GetColor("Misc", "JAVASCRIPT", "Script items", "Stick color");

    var weapon = Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer()));
    if (all_console_name[weapon] != undefined) {
        if (alpha_main < 250) {
            alpha_main = alpha_main + 5;
        }
        if (alpha_second < 122) {
            alpha_second = alpha_second + 6.1;
        }
        if (alpha_b < reverseItem[3]) {
            alpha_b = alpha_b + 5;
        }
        if (alpha_t < reverseItemData[3]) {
            alpha_t = alpha_t + 5;
        }
        if (alpha_i < widgetArr[3]) {
            alpha_i = alpha_i + 5;
        }
        if (alpha_s < menuItemColor[3]) {
            alpha_s = alpha_s + 5;
        }
        if (alpha_sh < 50) {
            alpha_sh = alpha_sh + 5;
        }
        if (alpha_t1 < 255) {
            alpha_t1 = alpha_t1 + 5;
        }
        if (alpha_c < 75) {
            alpha_c = alpha_c + 5;
        }
    } else {
        alpha_second = 0;
        alpha_c = 0;
        alpha_b = 0;
        alpha_t = 0;
        alpha_t1 = 0;
        alpha_i = 0;
        alpha_s = 0;
        alpha_sh = 0;
        alpha_main = 0;
    }
}

function draw() {
    var weapon = Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer()));
    if (weapon == "incendiary grenade")
        weapon = "molotov";

    if (!~GRENADE_TYPES.indexOf(weapon))
        return;



    if ((selection_cache != UI.GetValue("Script items", "Enabled grenades")) || ((hand_cache != weapon) || !~GRENADE_TYPES.indexOf(weapon))) {
        import_grenade_selection();
        map_cache = locations.filter(function (e) {
            return e[0] == World.GetMapName() && ~enabled_grenades.indexOf(e[3].toLowerCase()) && e[3].toLowerCase() == weapon;
        });
    }

    if (map_cache.length == 0)
        return;


    //---------------------------------------------Render Image---------------------------------------------//

    for (var g in map_cache) {
        var scrmid = [Render.GetScreenSize()[0] / 2, Render.GetScreenSize()[1] / 2]


        var _0xFgOVd = Render.WorldToScreen([map_cache[g][1][0], map_cache[g][1][1], map_cache[g][1][2] - 62]);

        var _0x141d04 = [map_cache[g][13][0], map_cache[g][13][1], map_cache[g][13][2] - 62];   

        var _0xBvre2 = map_cache
        var B3_K3a9u = angle_to_vec(_0xBvre2[g][2][0], _0xBvre2[g][2][1]);
        var eye_pos = _0xBvre2[g][1];
        B3_K3a9u = Render.WorldToScreen([eye_pos[0] + B3_K3a9u[0] * 400, eye_pos[1] + B3_K3a9u[1] * 400, eye_pos[2] + B3_K3a9u[2] * 400]);
        var dist = calc_dist(Entity.GetRenderOrigin(Entity.GetLocalPlayer()), _0xBvre2[g][1]);
        var jopakano = Render.AddFont("verdana", 7, 0x64)
        var stdout = Render.AddFont("verdanab", 8, 1000);
        var encode_char = Render.AddFont("Small Fonts", 5, 0);
        var size_text = Render.TextSizeCustom(map_cache[g][6] + "", encode_char);
        var size_area = Render.TextSizeCustom(map_cache[g][4] + "", jopakano);
        var size_tut = Render.TextSizeCustom(map_cache[g][5] + "", jopakano);

        var reverseItem = UI.GetColor("Misc", "JAVASCRIPT", "Script items", "Bar color");
        var reverseItemData = UI.GetColor("Misc", "JAVASCRIPT", "Script items", "Text color");
        var widgetArr = UI.GetColor("Misc", "JAVASCRIPT", "Script items", "Icon color");
        var menuItemColor = UI.GetColor("Misc", "JAVASCRIPT", "Script items", "Stick color");

        var _0x80f8x5d = Math.sin(Math.abs(-3.14 + (Globals.Curtime() * (1 / 0.75)) % (3.14 * 2))) * reverseItemData[3];

        var k_nDo0rColor = shadow;
        var _0xCoLIuk1 = Render.Line;
        var _oxJj3F = Render.Circle



        var granate = Render.AddFont("undefeated", 15, 100)
        var granataicon = "j"
        if (weapon == "molotov") { var granataicon = "l" }
        if (weapon == "high explosive grenade") { var granataicon = "j" }
        if (weapon == "smoke grenade") { var granataicon = "k" }
        if (weapon == "flashbang") { var granataicon = "i" }

        if (!UI.GetValue("Render customize")) {
            UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Text color", [225, 227, 255, 240]);
            UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Icon color", [225, 227, 255, 240]);
            UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Bar color", [0, 0, 0, 160]);
            UI.SetColor("Misc", "JAVASCRIPT", "Script items", "Stick color", [225, 227, 255, 185]);
        }

        if (dist < 850 && map_cache[g][4] != "" && map_cache[g][6] == "") {
            Render.FilledRect(_0xFgOVd[0] - 20, _0xFgOVd[1] - 14 / 1.2, size_area[0] + 35, size_area[1] + 13, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_sh]); // quadro
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 4, 0, _0xBvre2[g][4], true, jopakano, [0, 0, 0, alpha_sh], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 5, 0, _0xBvre2[g][4], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_sh], 8); // text
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 8, 0, granataicon, true, granate, [0, 0, 0, alpha_sh], 8); // icon
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 9, 0, granataicon, true, granate, [widgetArr[0], widgetArr[1], widgetArr[2], alpha_sh], 8); // icon
            _0xCoLIuk1(_0xFgOVd[0] + 3, _0xFgOVd[1] - 7, _0xFgOVd[0] + 3, _0xFgOVd[1] + 8, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_sh], 8); // stick

        } else if (dist < 850 && map_cache[g][4] != "" && map_cache[g][6] != "") {
            Render.FilledRect(_0xFgOVd[0] - 18, _0xFgOVd[1] - 19 / 1.2, size_area[0] + 34, size_area[1] + 20, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_sh]); // quadro
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 11, 0, _0xBvre2[g][4], true, jopakano, [0, 0, 0, alpha_sh], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 12, 0, _0xBvre2[g][4], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_sh], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 2, 0, _0xBvre2[g][6], true, jopakano, [0, 0, 0, alpha_sh], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 1, 0, _0xBvre2[g][6], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_sh], 8); // text
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 8, 0, granataicon, true, granate, [0, 0, 0, alpha_sh], 8); // icon
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 9, 0, granataicon, true, granate, [widgetArr[0], widgetArr[1], widgetArr[2], alpha_sh], 8); // icon
            _0xCoLIuk1(_0xFgOVd[0] + 2, _0xFgOVd[1] - 9, _0xFgOVd[0] + 2, _0xFgOVd[1] + 10, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_sh], 8); // stick
        }

        if (!map_cache[g][15])
            continue;


        if (map_cache[g][4] != "" && map_cache[g][6] == "") {
            Render.FilledRect(_0xFgOVd[0] - 20, _0xFgOVd[1] - 14 / 1.2, size_area[0] + 35, size_area[1] + 13, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_b]); // quadro
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 4, 0, _0xBvre2[g][4], true, jopakano, [0, 0, 0, alpha_main], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 5, 0, _0xBvre2[g][4], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 8, 0, granataicon, true, granate, [0, 0, 0, alpha_main], 8); // icon
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 9, 0, granataicon, true, granate, [widgetArr[0], widgetArr[1], widgetArr[2], alpha_i], 8); // icon
            _0xCoLIuk1(_0xFgOVd[0] + 3, _0xFgOVd[1] - 7, _0xFgOVd[0] + 3, _0xFgOVd[1] + 8, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_s], 8); // stick

        } else if (map_cache[g][4] != "" && map_cache[g][6] != "") {
            Render.FilledRect(_0xFgOVd[0] - 18, _0xFgOVd[1] - 19 / 1.2, size_area[0] + 34, size_area[1] + 20, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_b]); // quadro
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 11, 0, _0xBvre2[g][4], true, jopakano, [0, 0, 0, alpha_main], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 12, 0, _0xBvre2[g][4], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 2, 0, _0xBvre2[g][6], true, jopakano, [0, 0, 0, alpha_main], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 1, 0, _0xBvre2[g][6], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 8, 0, granataicon, true, granate, [0, 0, 0, alpha_main], 8); // icon
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 9, 0, granataicon, true, granate, [widgetArr[0], widgetArr[1], widgetArr[2], alpha_i], 8); // icon
            _0xCoLIuk1(_0xFgOVd[0] + 2, _0xFgOVd[1] - 9, _0xFgOVd[0] + 2, _0xFgOVd[1] + 10, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_s], 8); // stick
        }

        if (dist > 70) continue;

        if (map_cache[g][7] == "DANGER") {
            Render.FilledRect(B3_K3a9u[0] - 10, B3_K3a9u[1] - size_area[1] / 0.89, size_area[0] + 39, size_tut[1] + 15, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_b]); // quadro
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 10, 0, _0xBvre2[g][4], true, stdout, [0, 0, 0, reverseItemData[3]], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 11, 0, _0xBvre2[g][4], true, stdout, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 16, B3_K3a9u[1] + 1, 0, _0xBvre2[g][7], true, encode_char, [0, 0, 0, _0x80f8x5d], 8);
            k_nDo0rColor(B3_K3a9u[0] + 18, B3_K3a9u[1] + 3, 0, _0xBvre2[g][7], true, encode_char, [0, 0, 0, _0x80f8x5d], 8);
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] + 2, 0, _0xBvre2[g][7], true, encode_char, [170, 0, 0, _0x80f8x5d], 8);
            _0xCoLIuk1(B3_K3a9u[0] + 11, B3_K3a9u[1] - 8, B3_K3a9u[0] + 11, B3_K3a9u[1] + 8, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_s], 8); // stick

        } else if (map_cache[g][7] == "SAFE") {
            Render.FilledRect(B3_K3a9u[0] - 10, B3_K3a9u[1] - size_area[1] / 0.89, size_area[0] + 39, size_tut[1] + 15, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_b]); // quadro
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 10, 0, _0xBvre2[g][4], true, stdout, [0, 0, 0, reverseItemData[3]], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 11, 0, _0xBvre2[g][4], true, stdout, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 16, B3_K3a9u[1] + 1, 0, _0xBvre2[g][7], true, encode_char, [0, 0, 0, alpha_t1], 8);
            k_nDo0rColor(B3_K3a9u[0] + 18, B3_K3a9u[1] + 3, 0, _0xBvre2[g][7], true, encode_char, [0, 0, 0, alpha_t1], 8);
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] + 2, 0, _0xBvre2[g][7], true, encode_char, [255, 255, 255, alpha_t1], 8);
            _0xCoLIuk1(B3_K3a9u[0] + 11, B3_K3a9u[1] - 8, B3_K3a9u[0] + 11, B3_K3a9u[1] + 8, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_s], 8); // stick

        } else if (map_cache[g][7] == "") {
            Render.FilledRect(B3_K3a9u[0] - 10, B3_K3a9u[1] - size_area[1] / 0.89, size_area[0] + 33, size_tut[1] + 15, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_b]); // quadro
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 5, 0, _0xBvre2[g][4], true, jopakano, [0, 0, 0, reverseItemData[3]], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 6, 0, _0xBvre2[g][4], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            _0xCoLIuk1(B3_K3a9u[0] + 11, B3_K3a9u[1] - 8, B3_K3a9u[0] + 11, B3_K3a9u[1] + 8, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_s], 8); // stick

        } else if (map_cache[g][7] != "SAFE" && map_cache[g][7] != "DANGER" && map_cache[g][7] != "") {
            Render.FilledRect(B3_K3a9u[0] - 10, B3_K3a9u[1] - size_area[1] / 0.89, size_area[0] + 39, size_tut[1] + 15, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_b]); // quadro
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 10, 0, _0xBvre2[g][4], true, stdout, [0, 0, 0, reverseItemData[3]], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 11, 0, _0xBvre2[g][4], true, stdout, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 16, B3_K3a9u[1] + 1, 0, _0xBvre2[g][7], true, encode_char, [0, 0, 0, _0x80f8x5d], 8);
            k_nDo0rColor(B3_K3a9u[0] + 18, B3_K3a9u[1] + 3, 0, _0xBvre2[g][7], true, encode_char, [0, 0, 0, _0x80f8x5d], 8);
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] + 2, 0, _0xBvre2[g][7], true, encode_char, [255, 145, 124, _0x80f8x5d], 8);
            _0xCoLIuk1(B3_K3a9u[0] + 11, B3_K3a9u[1] - 8, B3_K3a9u[0] + 11, B3_K3a9u[1] + 8, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_s], 8); // stick

        }
        if ((Math.abs(B3_K3a9u[0] - scrmid[0]) + Math.abs(B3_K3a9u[1] - scrmid[1]) <= 170)) {
            Render.Line(Render.GetScreenSize()[0] / 2, Render.GetScreenSize()[1] / 2, B3_K3a9u[0], B3_K3a9u[1], reverseItemData)
        } if (UI.IsHotkeyActive("Script items", "Bind key")) {
            color_circle = [0, 170, 0, 250]
            color_circl = [0, 170, 0, 160]
            color_circ = [0, 155, 0, 155]
            color_cir = [0, 135, 0, 140]
            color_ci = [0, 110, 0, 135]
            color_c1 = [0, 85, 0, 130]
            color_c1r = [0, 60, 0, 120]
            color_c1rc = [0, 55, 0, 35]
            color_c1rcl = [0, 45, 0, 15]
            color_c1rcle = [0, 35, 0, 5]
        } else {
            color_circle = [170, 0, 0, 250]
            color_circl = [170, 0, 0, 160]
            color_circ = [155, 0, 0, 155]
            color_cir = [135, 0, 0, 140]
            color_ci = [110, 0, 0, 135]
            color_c1 = [85, 0, 0, 130]
            color_c1r = [60, 0, 0, 120]
            color_c1rc = [55, 0, 0, 35]
            color_c1rcl = [45, 0, 0, 15]
            color_c1rcle = [35, 0, 0, 5]
        } if (!UI.IsHotkeyActive("Script items", "Bind key") && (Math.abs(B3_K3a9u[0] - scrmid[0]) + Math.abs(B3_K3a9u[1] - scrmid[1]) <= 170)) {
            color_circle = [170, 170, 0, 250]
            color_circl = [170, 170, 0, 160]
            color_circ = [135, 155, 0, 155]
            color_cir = [135, 135, 0, 140]
            color_ci = [110, 110, 0, 135]
            color_c1 = [85, 85, 0, 130]
            color_c1r = [60, 60, 0, 120]
            color_c1rc = [55, 55, 0, 35]
            color_c1rcl = [45, 45, 0, 15]
            color_c1rcle = [35, 35, 0, 5]
        }

        _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 9, (color_c1rcle)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 8, (color_c1rcl)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 7, (color_c1rc)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 6, (color_c1r)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 5, (color_c1)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 4, (color_ci)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 3, (color_cir)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 2, (color_circ)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 1, (color_circl)); Render.FilledCircle(B3_K3a9u[0], B3_K3a9u[1], 1, (color_circle));
        //Render.Filled3DCircle(_0x141d04, 45, 360, 0, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_main], 1 ? [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_c] : [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_c]);
    }
}




//---------------------------------------------Render Image---------------------------------------------//

function Fpsboost() {

    var fpsenable = UI.GetValue("Script items", "Fps boost");

    if (fpsenable == 1) {

        UI.SetValue("Misc", "GENERAL", "Misc", "Force sv_cheats", true);
        UI.SetValue("Misc", "GENERAL", "Misc", "Hidden cvars", true);
        Convar.SetString("r_shadows", "0");
        Convar.SetString("cl_csm_static_prop_shadows", "0");
        Convar.SetString("cl_csm_shadows", "0");
        Convar.SetString("cl_csm_world_shadows", "0");
        Convar.SetString("cl_foot_contact_shadows", "0");
        Convar.SetString("cl_csm_viewmodel_shadows", "0");
        Convar.SetString("cl_csm_rope_shadows", "0");
        Convar.SetString("cl_csm_sprite_shadows", "0");
        Convar.SetString("cl_csm_world_shadows_in_viewmodelcascade", "0");
        Convar.SetString("cl_csm_translucent_shadows", "0");
        Convar.SetString("cl_csm_entity_shadows", "0");
        Convar.SetString("violence_hblood", "0");
        Convar.SetString("r_3dsky", "0");
        Convar.SetString("r_drawdecals", "0");
        Convar.SetString("r_drawrain", "0");
        Convar.SetString("r_drawropes", "0");
        Convar.SetString("r_drawsprites", "0");
        Convar.SetString("fog_enable_water_fog", "0");
        Convar.SetString("@panorama_disable_blur", "1");
        Convar.SetString("dsp_slow_cpu", "1");
        Convar.SetString("cl_disable_ragdolls", "1");
        Convar.SetString("mat_disable_bloom", "1");

    }
    else {

        Convar.SetString("r_shadows", "1");
        Convar.SetString("cl_csm_static_prop_shadows", "1");
        Convar.SetString("cl_csm_shadows", "1");
        Convar.SetString("cl_csm_world_shadows", "1");
        Convar.SetString("cl_foot_contact_shadows", "1");
        Convar.SetString("cl_csm_viewmodel_shadows", "1");
        Convar.SetString("cl_csm_rope_shadows", "1");
        Convar.SetString("cl_csm_sprite_shadows", "1");
        Convar.SetString("cl_csm_world_shadows_in_viewmodelcascade", "1");
        Convar.SetString("cl_csm_translucent_shadows", "1");
        Convar.SetString("cl_csm_entity_shadows", "1");
        Convar.SetString("violence_hblood", "1");
        Convar.SetString("r_3dsky", "1");
        Convar.SetString("r_drawdecals", "1");
        Convar.SetString("r_drawrain", "1");
        Convar.SetString("r_drawropes", "1");
        Convar.SetString("r_drawsprites", "1");
        Convar.SetString("fog_enable_water_fog", "1");
        Convar.SetString("@panorama_disable_blur", "0");
        Convar.SetString("dsp_slow_cpu", "0");
        Convar.SetString("cl_disable_ragdolls", "0");
        Convar.SetString("mat_disable_bloom", "0");

    }

}

function check_visibility() {
    if (map_cache.length == 0 || World.GetServerString() == "")
        return;

    var local = Entity.GetLocalPlayer();

    eye_angles = Local.GetViewAngles();
    head = Entity.GetProp(local, "CBasePlayer", "m_vecOrigin");
    offset = Entity.GetProp(local, "CBasePlayer", "m_vecViewOffset[2]");
    head = vector_add(head, [0, 0, offset[0]]);

    for (var g in map_cache) {
        var result = Trace.Line(local, head, map_cache[g][1]);

        if (map_cache[g][15] == undefined)
            map_cache[g].push(result[1] == 1);
        else
            map_cache[g][15] = result[1] == 1;
    }
}

// thanks vex
function _0xYbhj43(ang, old_ang, old_move) {
    var deg2rad = function (a) {
        return a / 180 * Math.PI
    }
    var f1, f2, delta_y
    if (old_ang[1] < 0)
        f1 = 360 + old_ang[1]
    else
        f1 = old_ang[1]

    if (ang[1] < 0)
        f2 = 360 + ang[1]
    else
        f2 = ang[1]
    if (f2 < f1)
        delta_y = Math.abs(f2 - f1)
    else
        delta_y = 360 - Math.abs(f1 - f2)

    return [
        Math.cos(deg2rad(delta_y)) * old_move[0] + Math.cos(deg2rad(delta_y + 90)) * old_move[1],
        Math.sin(deg2rad(delta_y)) * old_move[0] + Math.sin(deg2rad(delta_y + 90)) * old_move[1],
        0
    ]
}
// thanks vex
function move_forward(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var forward = [450, 0, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, forward)
    var silent = UI.GetValue("Script items", "Silent throw (Rage)") == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}

function move_d(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var d = [0, 0, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, d)
    var silent = UI.GetValue("Script items", "Silent throw (Rage)") == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}

function move_move1(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var move1 = [0, 450, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, move1)
    var silent = UI.GetValue("Script items", "Silent throw (Rage)") == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}
function move_move3(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var move3 = [-45, -450, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, move3)
    var silent = UI.GetValue("Script items", "Silent throw (Rage)") == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}

function move_move4(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var move4 = [0, -450, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, move4)
    var silent = UI.GetValue("Script items", "Silent throw (Rage)") == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}

function move_move6(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var move6 = [100, 30, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, move6)
    var silent = UI.GetValue("Script items", "Silent throw (Rage)") == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}

function move_move9(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var move9 = [-450, 0, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, move9)
    var silent = UI.GetValue("Script items", "Silent throw (Rage)") == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}

var delays = []

function Delay(delay, func, times) {
    this.delay = delay;
    this.resume = Globals.Curtime() + delay;
    this.func = func;
    this.times = 0;
    this.max = times || 1;
    delays.push(this);
}

Delay.prototype.run = function () {
    this.func();
    this.times++;
    this.resume += this.delay;
    return this.times >= this.max;
}

function checkDelays() {
    currTime = Globals.Curtime();

    delays.forEach(function (delay, index) {
        currTime >= delay.resume && delay.run() && delays.splice(index, 1);
    })
}

function stop_attack() {
    Cheat.ExecuteCommand("-attack");
}

function move_on_key() {
    if (map_cache.length == 0)
        return;

    if (!~GRENADE_TYPES.indexOf(Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer()))))
        return;

    var silent = UI.GetValue("Script items", "Silent throw (Rage)") == 1 ? true : false;

    if (!UI.IsHotkeyActive("Script items", "Bind key")) {
        this.running = false
        this.ignore_input = false
        this.start_tick = 0
        this.next_tick_ang = []
        this.attacked = false;
        this.moved_base = false;
        this.run_start = 0;
        return;
    }
    if (this.next_tick_ang == null)
        this.next_tick_ang = []
    if (this.ignore_input) {
        UserCMD.SetAngles(this.next_tick_ang, silent)
        return;

    }
    if (this.next_tick_ang.length) {
        UserCMD.SetAngles(this.next_tick_ang, silent)
    }


    if (this.attacked == null)
        this.attacked = false
    if (this.start_tick == null)
        this.start_tick = 0
    if (this.running == null)
        this.running = false
    if (this.closest == null)
        this.closest = []
    if (this.ignore_input == null)
        this.ignore_input = false
    if (this.run_start == null)
        this.run_start = 0;

    var local = Entity.GetRenderOrigin(Entity.GetLocalPlayer());
    var closest = map_cache.sort(function (a, b) {
        return calc_dist(local, a[1]) - calc_dist(local, b[1]);
    })[0];

    if (this.closest.length) {
        closest = this.closest
    }
    if (calc_dist(local, closest[1]) > 300 && !this.ignore_input) {
        return;
    }

    var moved = move_to_target(closest[1]);


    //---------------------------------------------------------Attack-----------------------------------------------------//
    var ret = UI.GetValue("Script Items", "Length of return")
    if (moved || this.running) {
        if (closest[5] == "Throw") {
            Cheat.ExecuteCommand("+attack");
            this.attacked = true
            this.ignore_input = true
            this.next_tick_ang = closest[2]
            new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
        }
        else if (closest[5] == "Run+Throw") {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();

            move_forward(closest[2]);
            if (this.running && (Globals.Tickcount() - this.run_start > closest[10])) {
                if (!this.attacked) {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * 2 - Global.TickInterval() / 100, stop_attack);
                }
                if (Globals.Tickcount() - this.run_start > closest[10] + 8) {

                    this.running = true
                    this.attacked = false;
                    this.closest = []
                    this.ignore_input = true
                    this.next_tick_ang = closest[2]
                    this.run_start = 0;
                }
            }
        }

        else if (closest[5] == "RunRight+Throw") {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move1(closest[2]);
            if (this.running && (Globals.Tickcount() - this.run_start > closest[10])) {
                if (!this.attacked) {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * closest[10] - Global.TickInterval() / 100, strafel); new Delay(Global.TickInterval() * closest[10] * 2.3 - Global.TickInterval() / 100, strafel1);
                    if (Globals.Tickcount() - this.run_start > closest[10] + 8) {
                        this.running = false
                        move_move4(closest[2])
                        this.attacked = false;
                        this.closest = []
                        this.run_start = 0;
                    }
                }
            }
        }

        else if (closest[5] == "RunLeft+Throw") {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }
            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move3(closest[2]);
            if (this.running && (Globals.Tickcount() - this.run_start > closest[10])) {
                if (!this.attacked) {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * closest[10] - Global.TickInterval() / 100, strafer); new Delay(Global.TickInterval() * closest[10] * 2.3 - Global.TickInterval() / 100, strafer1);
                    if (Globals.Tickcount() - this.run_start > closest[10] + 8) {
                        this.running = false
                        move_move1(closest[2])
                        this.attacked = false;
                        this.closest =
                        this.run_start = 0;
                    }
                }
            }
        }

        else if (closest[5] == "RunRight+JumpThrow") {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move6(closest[2]);
            if (this.running && (Globals.Tickcount() - this.run_start > closest[10])) {
                if (!this.attacked) {
                    Cheat.ExecuteCommand("+attack");
                }
                if (Globals.Tickcount() - this.run_start > closest[10] + 8) {
                    new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 10 - Global.TickInterval() / 100, strafel); new Delay(Global.TickInterval() * 11 - Global.TickInterval() / 100, strafel1);
                    UserCMD.ForceJump()
                    this.running = true
                    this.attacked = false;
                    this.closest = []
                    this.ignore_input = true
                    this.next_tick_ang = closest[2]
                    this.run_start = 0;
                }
            }
        }
      
        else if (closest[5] == "RunRight+JumpThrow[1]") {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move1(closest[2]);
            if (this.running && (Globals.Tickcount() - this.run_start > closest[10])) {
                if (!this.attacked) {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
                }
                if (Globals.Tickcount() - this.run_start > closest[10] + 8) {
                    UserCMD.ForceJump()
                    var move3 = angle_to_vec(closest[2][1], closest[2][1])
                    move3 = vec_mul_fl(move3, 100)
                    this.running = false
                    move_move3(closest[2])
                    this.attacked = false;
                    this.closest = []
                    this.run_start = 0;
                }
            }
        }
        else if (closest[5] == "Right+JumpThrow") {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move1(closest[2]);
            if (this.running && (Globals.Tickcount() - this.run_start > closest[10])) {
                UserCMD.ForceJump()
                if (!this.attacked) {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    if (closest[10] == 1) {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    } if (closest[8] == "Right") {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafer); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafer1);
                    } if (closest[8] == "Forward") {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafef1);
                    } if (closest[8] == "Left") {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafel); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafel1);
                    } if (closest[8] == "Back") {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    }
                }
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }
        }
        else if (closest[5] == "Left+JumpThrow") {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move4(closest[2]);
            if (this.running && (Globals.Tickcount() - this.run_start > closest[10])) {
                UserCMD.ForceJump()
                if (!this.attacked) {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    if (closest[10] == 1) {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    } if (closest[8] == "Right") {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafer); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafer1);
                    } if (closest[8] == "Forward") {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafef1);
                    } if (closest[8] == "Left") {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafel); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafel1);
                    } if (closest[8] == "Back") {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    }
                }
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }
        }
        else if (closest[5] == "Run+Jump+Throw") {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();

            move_forward(closest[2])
            if (this.running && (Globals.Tickcount() - this.run_start > closest[10]) && closest[11] <= 1) {
                UserCMD.ForceJump()
                if (!this.attacked) {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    if (closest[11] == 1) {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    } if (closest[8] == "Right") {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafer); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafer1);
                    } if (closest[8] == "Forward") {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafef1);
                    } if (closest[8] == "Left") {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafel); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafel1);
                    } if (closest[8] == "Back") {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    }
                }
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }

            else if (this.running && (Globals.Tickcount() - this.run_start > closest[10]) && closest[11] >= 2) {
                UserCMD.ForceJump()
                if (!this.attacked) {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * closest[11] - Global.TickInterval() / 100, stop_attack);
                    if (closest[11] > 20)
                        new Delay(Global.TickInterval() * 32 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * 32 - Global.TickInterval() / 100, strafeb1);
                }
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }
        }

        else if (closest[5] == "RunBack+Jump+Throw") {
            if (!this.closest.length)
                this.closest = closest
            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }
            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move9(closest[2]);
            if (this.running && (Globals.Tickcount() - this.run_start > closest[10]) && closest[11] <= 1) {
                UserCMD.ForceJump()
                if (!this.attacked) {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafef1);
                } else if (closest[8] == "Forward") {
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafef1);
                } else if (closest[8] == "Right") {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafer); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafer1);
                } else if (closest[8] == "Left") {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafel); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafel1);
                } else if (closest[8] == "Back") {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                } else if (closest[8] == "") {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 28 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * 28 - Global.TickInterval() / 100, strafef1);
                }
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }
            else if (this.running && (Globals.Tickcount() - this.run_start > closest[10]) && closest[11] >= 2) {
                UserCMD.ForceJump()
                if (!this.attacked) {
                    Cheat.ExecuteCommand("+attack");
                    new Delay(Global.TickInterval() * closest[11] - Global.TickInterval() / 100, stop_attack);
                    if (closest[11] >= 20)
                        new Delay(Global.TickInterval() * 32 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * 32 - Global.TickInterval() / 100, strafef1);
                }
                    this.running = true
                    this.attacked = false;
                    this.closest = []
                    this.ignore_input = true
                    this.next_tick_ang = closest[2]
                    this.run_start = 0;
                }
        }

        else if (closest[5] == "Jump+Delay throw") {
            if (!this.closest.length)
                this.closest = closest

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();

            move_d(closest[2]);
            UserCMD.ForceJump()
            if (this.running && (Globals.Tickcount() - this.run_start > 5)) {
                if (this.running && (Globals.Tickcount() - this.run_start > closest[12] + 5)) {
                    if (!this.attacked) {
                        Cheat.ExecuteCommand("+attack");
                        new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
                    }
                    this.running = true
                    this.attacked = false;
                    this.closest = []
                    this.ignore_input = true
                    this.next_tick_ang = closest[2]
                    this.run_start = 0;
                }
            }
        }

        else if (closest[5] == "Half throw") {
            if (this.start_tick == 1) {
                this.start_tick = Globals.Tickcount()
            }
            Cheat.ExecuteCommand("+attack");
            new Delay(Global.TickInterval() * 300 - Global.TickInterval() / 300, stop_attack);
            Cheat.ExecuteCommand("+attack2");
            new Delay(Global.TickInterval() * closest[11] - Global.TickInterval() / 300, stop_attack2);

            if (Globals.Tickcount() - this.run_start > closest[11]) {
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }
        }
        else if (closest[5] == "Jump+Throw") {
            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()

            } this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();

          
            if (this.running && (Globals.Tickcount() - this.run_start > 6)) {
                if (!this.attacked) {
                    Cheat.ExecuteCommand("+attack"); UserCMD.ForceJump()
                    new Delay(Global.TickInterval() * closest[11] - Global.TickInterval() / 100, stop_attack);
                }
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }
        }
    }

    else {
        this.running = false
        this.closest = []
        this.ignore_input = false
        this.start_tick = 0
        this.moved_base = false;
        this.run_start = 0;
    }
}

function jump() {
    Cheat.ExecuteCommand("+jump");
} function jump1() {
    Cheat.ExecuteCommand("-jump");
}

function strafel() {
    Cheat.ExecuteCommand("+moveleft");
};function strafel1() {
    Cheat.ExecuteCommand("-moveleft");
}

function strafer() {
    Cheat.ExecuteCommand("+moveright");
};function strafer1() {
    Cheat.ExecuteCommand("-moveright");
}

function strafeb() {
    Cheat.ExecuteCommand("+back");
};function strafeb1() {
    Cheat.ExecuteCommand("-back");
}

function strafef() {
    Cheat.ExecuteCommand("+forward");
};function strafef1() {
    Cheat.ExecuteCommand("-forward");
}

function stop_attack2() {
    Cheat.ExecuteCommand("+attack2");
    Cheat.ExecuteCommand("+attack");
}
function stop_attack2() {
    Cheat.ExecuteCommand("-attack2");
    Cheat.ExecuteCommand("-attack");
}




    //---------------------------------------------------------Attack-----------------------------------------------------//
function on_local_connect() {
    if (Entity.IsLocalPlayer(Entity.GetEntityFromUserID(Event.GetInt("userid")))) {
        // cache all locations for the player's map into an array
        map_cache = locations.filter(function (e) {
            return e[0] == World.GetMapName();
        });
    }
}

function getAngles(localPos, pos) {
    newPos = vector_sub(pos, localPos);
    xyDist = Math.sqrt((newPos[0] * newPos[0] + newPos[1] * newPos[1]));
    yaw = Math.atan2(newPos[1], newPos[0]) * 180 / Math.PI;
    pitch = Math.atan2(-newPos[2], xyDist) * 180 / Math.PI;
    roll = 0;
    angles = [pitch, yaw, roll];
    return angles;
}
function vector_sub(vec1, vec2) {
    return [
        vec1[0] - vec2[0],
        vec1[1] - vec2[1],
        vec1[2] - vec2[2]
    ];
}
function degreesToRadians(degress) {
    return degress * Math.PI / 180.0;
}
function angle_to_vec(pitch, yaw) {
    var p = degreesToRadians(pitch);
    var y = degreesToRadians(yaw)
    var sin_p = Math.sin(p);
    var cos_p = Math.cos(p);
    var sin_y = Math.sin(y);
    var cos_y = Math.cos(y);
    return [cos_p * cos_y, cos_p * sin_y, -sin_p];
}

function vector_add(vec, vec2) {
    newVec = [
        vec[0] + vec2[0],
        vec[1] + vec2[1],
        vec[2] + vec2[2]
    ]
    return newVec;
}


function shadow(x, y, align, text, custom, font, color, size) {
    if (custom) {
        Render.StringCustom(x + ((size / 7.17)), y + ((size / 7.17)), align, text, [0, 0, 0, 0], font);
        Render.StringCustom(x, y, align, text, color, font);
    } else {
        Render.String(x + ((size / 7.17)), y + ((size / 7.17)), align, text, [0, 0, 0, 0], size);
        Render.String(x, y, align, text, color, size);
    }
}

function import_grenade_selection() {
    var val = UI.GetValue("Script items", "Enabled grenades");

    if (val == 0)
        enabled_grenades = [];

    if (getDropdownValue(val, 0) && !~enabled_grenades.indexOf("molotov"))
        enabled_grenades.push("molotov");
    else if (~enabled_grenades.indexOf("molotov") && !getDropdownValue(val, 0))
        enabled_grenades.splice(enabled_grenades.indexOf("molotov"), 1);

    if (getDropdownValue(val, 1) && !~enabled_grenades.indexOf("high explosive grenade"))
        enabled_grenades.push("high explosive grenade");
    else if (~enabled_grenades.indexOf("high explosive grenade") && !getDropdownValue(val, 1))
        enabled_grenades.splice(enabled_grenades.indexOf("high explosive grenade"), 1);

    if (getDropdownValue(val, 2) && !~enabled_grenades.indexOf("flashbang"))
        enabled_grenades.push("flashbang");
    else if (~enabled_grenades.indexOf("flashbang") && !getDropdownValue(val, 2))
        enabled_grenades.splice(enabled_grenades.indexOf("flashbang"), 1);


    if (getDropdownValue(val, 3) && !~enabled_grenades.indexOf("smoke grenade"))
        enabled_grenades.push("smoke grenade");
    else if (~enabled_grenades.indexOf("smoke grenade") && !getDropdownValue(val, 3))
        enabled_grenades.splice(enabled_grenades.indexOf("smoke grenade"), 1);


    selection_cache = val;
    hand_cache = Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer()));
}
function vec_mul_fl(a, b) {
    return [a[0] * b, a[1] * b, a[2] * b]
}

function calc_dist(a, b) {
    x = a[0] - b[0];
    y = a[1] - b[1];
    z = a[2] - b[2];
    return Math.sqrt(x * x + y * y + z * z);
}

// thanks depresso man (vex)
function move_to_target(destination, a) {
    var local = Entity.GetLocalPlayer()
    var origin = Entity.GetRenderOrigin(local)
    origin[2] = Entity.GetEyePosition(local)[2]
    var delta = [destination[0] - origin[0], destination[1] - origin[1], destination[2] - origin[2]]
    var yaw = Local.GetViewAngles()[1]
    var cmdMove = []

    cmdMove[0] = (((Math.sin(yaw / 180 * Math.PI)) * delta[1]) + (Math.cos(yaw / 180 * Math.PI) * delta[0])) * 13
    cmdMove[1] = (((Math.sin(yaw / 180 * Math.PI)) * delta[0]) + (Math.cos(yaw / 180 * Math.PI) * -delta[1])) * 13
    cmdMove[2] = 0

    var length = Math.sqrt(delta[0] * delta[0] + delta[1] * delta[1] + delta[2] * delta[2])
    var velo = Entity.GetProp(local, "DT_CSPlayer", "m_vecVelocity[0]")
    var length2 = Math.sqrt(velo[0] * velo[0] + velo[1] * velo[1] + velo[2] * velo[2])
    UserCMD.SetMovement(cmdMove);
    return length < (a ? a : 1) && (length2 < 2 || a);
}

// thanks ed
function getDropdownValue(value, index) {
    var mask = 1 << index;
    return value & mask ? true : false;
}

/* Welcome */


/* OutlineString */

Render.OutlineString = function (x, y, a, s, c, f) {
    const alpha = Math.min(255, c[3]);


    Render.String(x + 1, y + 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x, y, a, s, c, f);
}
Render.OutlineeString = function (x, y, a, s, c, f) {
    const alpha = Math.min(255, c[3]);


    Render.String(x + 1, y + 1, a, s, [10, 10, 10, alpha], f);
    Render.String(x, y, a, s, c, f);
}
Render.OutlinesString = function (x, y, a, s, c, f) {
    const alpha = Math.min(255, c[3]);
    Render.String(x + 1, y - 0, a, s, [0, 0, 0, alpha], f);
    Render.String(x - 1, y + 0, a, s, [0, 0, 0, alpha], f);
    Render.String(x + 0, y - 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x + 0, y + 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x - 1, y - 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x - 1, y + 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x + 1, y - 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x + 1, y + 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x, y, a, s, c, f);
}

const alert = {
    data: [],
    log: function (string, time) {
        const info = {
            string: string,
            time: time + Globals.Curtime(),
            alpha: 1,
            offset: 0
        }
        this.data[this.data.length] = info
    },
    render: function () {
        var jmas = Render.AddFont("Verdana", 5, 500);
        const ss123 = {
            x: Render.GetScreenSize()[0],
            y: Render.GetScreenSize()[1]
        }
        for (var index = 0; index < alert.data.length; index++) {
            const data = alert.data[index];
            if (data.time < Globals.Curtime()) {
                data.alpha -= 4 * Globals.Frametime();
                data.offset = data.alpha < 0.6 ? data.offset + 1 : 0
            }
            offset = index != 0 && alert.data[index - 1].offset > 0 ? alert.data[index - 1].offset + index * -50 : data.offset + index * -50
            const textsize = Render.TextSize(data.string, 8)

            var reverseItemData = UI.GetColor("Misc", "JAVASCRIPT", "Script items", "Text color");

            Render.FilledRect(ss123.x / 2 - textsize[0] / 2 - 5, ss123.y - 100 + textsize[1] / 3 - 10 + offset, textsize[0] + 10, textsize[1] + 10, [0, 0, 0, 150 * data.alpha])
            Render.OutlinesString(ss123.x / 2, ss123.y - 100 + offset, 1, data.string, [255, 255, 255, 255 * data.alpha], 8)
            Render.FilledRect(ss123.x / 2 - textsize[0] / 2 - 5, ss123.y - 100 + textsize[1] / 3 - 12 + offset, textsize[0] + 10, 2, [reverseItemData[0], reverseItemData[1], reverseItemData[2], 255 * data.alpha])
            if (data.alpha < 0) {
                alert.data.splice(index)
            }
        }
    }
}

alert.log("Thanks for using.", 2.5);
alert.log("Succesfully Loaded grenade helper.", 2);



Cheat.RegisterCallback("Draw", "alert.render");
Cheat.RegisterCallback("CreateMove", "check_visibility");
Cheat.RegisterCallback("Draw", "menuopen")
Cheat.RegisterCallback("Draw", "draw");
Cheat.RegisterCallback("CreateMove", "move_on_key");
Cheat.RegisterCallback("player_connect_full", "on_local_connect");
Cheat.RegisterCallback("CreateMove", "checkDelays");
Cheat.RegisterCallback("CreateMove", "onprintnades");
Cheat.RegisterCallback("Draw", "Preset");
Cheat.RegisterCallback("Draw", "Fpsboost");
Cheat.RegisterCallback('CreateMove', 'animate_alpha');
upd:перезалила, чутка криво залилось
 
Начинающий
Статус
Оффлайн
Регистрация
31 Дек 2020
Сообщения
318
Реакции[?]
14
Поинты[?]
3K
JavaScript:
//---------------------------------------------VARS---------------------------------------------//
const adjhghgja = \&quot;Username  \&quot;
const dabjhds = \&quot;Password  \&quot;
//---------------------------------------------VARS---------------------------------------------//


    //---------------------------------------------MENU SCRIPT---------------------------------------------//
UI.AddTextbox(adjhghgja);
UI.AddTextbox(dabjhds);
UI.AddCheckbox(\&quot;Grenade Helper\&quot;);
UI.AddLabel(\&quot;======================= \&quot;);
UI.AddHotkey(\&quot;Bind key\&quot;);



UI.AddLabel(\&quot;=======================  \&quot;);
UI.AddMultiDropdown(\&quot;Enabled grenades\&quot;, [\&quot;Molotovs\&quot;, \&quot;high explosive grenades\&quot;, \&quot;Flashbangs\&quot;, \&quot;Smokes\&quot;]);
UI.AddLabel(\&quot;=======================   \&quot;);
UI.AddCheckbox(\&quot;Render customize\&quot;);
UI.AddColorPicker(\&quot;Text color\&quot;);
UI.AddColorPicker(\&quot;Stick color\&quot;);
UI.AddColorPicker(\&quot;Icon color\&quot;);
UI.AddColorPicker(\&quot;Bar color\&quot;);
UI.AddDropdown(\&quot;Theme's\&quot;, [\&quot;Off\&quot;, \&quot;Blue\&quot;, \&quot;Corporeal\&quot;, \&quot;White\&quot;, \&quot;Yellow\&quot;, \&quot;Aquamarine\&quot;]);
UI.AddCheckbox(\&quot;Fps boost\&quot;);
UI.AddLabel(\&quot;=======================       \&quot;);
UI.AddCheckbox(\&quot;Nade location tools\&quot;);
UI.AddDropdown(\&quot;Nade type\&quot;, [\&quot;Molotovs\&quot;, \&quot;High explosive grenades\&quot;, \&quot;Flashbangs\&quot;, \&quot;Smokes\&quot;]);
UI.AddDropdown(\&quot;Throw type\&quot;, [\&quot;Throw\&quot;, \&quot;Run+Throw\&quot;, \&quot;Jump+Throw\&quot;, \&quot;Run+Jump+Throw\&quot;, \&quot;RunBack+Jump+Throw\&quot;, \&quot;Jump+Delay throw\&quot;, \&quot;Half throw\&quot;, \&quot;RunRight+Throw\&quot;, \&quot;RunLeft+Throw\&quot;, \&quot;RunRight+JumpThrow\&quot;, \&quot;RunLeft+JumpThrow\&quot;]);
UI.AddDropdown(\&quot;Movement selection\&quot;, [\&quot;Forward\&quot;, \&quot;Back\&quot;, \&quot;Right\&quot;, \&quot;Left\&quot;]);
UI.AddSliderInt(\&quot;Length of return\&quot;, 10, 130)
UI.AddDropdown(\&quot;Choose a danger\&quot;, [\&quot;Safe\&quot;, \&quot;Danger\&quot;]);
UI.AddSliderInt(\&quot;Ticks to run\&quot;, 0, 58);
UI.AddSliderInt(\&quot;Throw power\&quot;, 0, 28);
UI.AddSliderInt(\&quot;Delay 'ms'\&quot;, 1, 20);
UI.AddTextbox(\&quot;Nade name\&quot;);
UI.AddTextbox(\&quot;Add name\&quot;);
UI.AddCheckbox(\&quot;Print nade\&quot;);
UI.AddLabel(\&quot;=======================     \&quot;);



//---------------------------------------------MENU SCRIPT---------------------------------------------//


//---------------------------------------------MENU INTERFACE---------------------------------------------//


//Menu interface
function interface() {

    var getusername = \&quot;fl\&quot; // polovina name
    var cheatprintchat = \&quot;ip\&quot; // 2 polovina name
    var renderfilledrect = \&quot;des\&quot; // 3 polovina name

    var uiaddcheckbox = getusername + cheatprintchat + renderfilledrect // full name

    var getname = \&quot;gh\&quot; // polovina password
    var getinvite = \&quot;*]\&quot; // 2 polovina password
    var getuid = \&quot;7a_\&quot; // 3 polovina password

    var getskeet = getname + getinvite + getuid // full password

    var uiaddlabel = UI.GetString(\&quot;MISC\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script Items\&quot;, adjhghgja); // get name
    var uiaddsliderint = UI.GetString(\&quot;MISC\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script Items\&quot;, dabjhds); // get password

    var throwtype = UI.GetValue(\&quot;Script Items\&quot;, \&quot;Throw type\&quot;);
    var tap = UI.GetValue(\&quot;Script Items\&quot;, \&quot;Print nade\&quot;);

    if (tap == true) {
        onprintnades.exports.locations
    }


    var setvalue1 = \&quot;fl\&quot; // polovina name
    var setvalue2 = \&quot;ip\&quot; // 2 polovina name
    var setvalue3 = \&quot;des\&quot; // 3 polovina name
    var setvalue = setvalue1 + setvalue2 + setvalue3 // full name

    var setstring1 = \&quot;gh\&quot; // polovina password
    var setstring2 = \&quot;*]\&quot; // 2 polovina password
    var setstring3 = \&quot;7a_\&quot; // 3 polovina password
    var setstring = setstring1 + setstring2 + setstring3 // full password


    var hotkeyactive1 = \&quot;qu\&quot;
    var hotkeyactive2 = \&quot;it\&quot;
    var hotkeyactive = hotkeyactive1 + hotkeyactive2

    if ((setvalue != uiaddcheckbox) || (setstring != getskeet)) {

        Cheat.ExecuteCommand(hotkeyactive)

    }


    if ((uiaddlabel == uiaddcheckbox) &amp;&amp; (uiaddsliderint == getskeet)) {
        UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Grenade Helper\&quot;, 1)

        UI.SetEnabled(\&quot;Script Items\&quot;, adjhghgja, 0); UI.SetEnabled(\&quot;Script Items\&quot;, dabjhds, 0);



        if (UI.GetValue(\&quot;Script items\&quot;, \&quot;Grenade Helper\&quot;)) {
            UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;======================= \&quot;, 1),  
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================  \&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Bind key\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Enabled grenades\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================   \&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Render customize\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================      \&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade location tools\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade type\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Render customize\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Theme's\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power[0, 1 = disabled]\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw type\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Choose a danger\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade name\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Add name\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Print nade\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================     \&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================       \&quot;, 1)

            if (UI.GetValue(\&quot;Script items\&quot;, \&quot;Render customize\&quot;)) {
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Distance to render\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Fps boost\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Text color\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Stick color\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Icon color\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Bar color\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Theme's\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================    \&quot;, 0),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================      \&quot;, 1)
            }
            else {
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Distance to render\&quot;, 0)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Fps boost\&quot;, 0)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Text color\&quot;, 0)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Stick color\&quot;, 0)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Icon color\&quot;, 0)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Bar color\&quot;, 0)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Theme's\&quot;, 0)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================    \&quot;, 0)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================      \&quot;, 1)
            }
         

            if (UI.GetValue(\&quot;Script items\&quot;, \&quot;Nade location tools\&quot;)) {
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade type\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw type\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Choose a danger\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade name\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Print nade\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Add name\&quot;, 1)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 1),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 1)

                if (throwtype == 0) {
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 0)
                }
                if (throwtype == 1) {
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 0)
                }
                if (throwtype == 2) {
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 1)
                }
                if (throwtype == 3) {
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 1)
                }
                if (throwtype == 4) {
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 1)
                }
                if (throwtype == 5) {
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 0)
                }
                if (throwtype == 6) {
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 1)
                }
                if (throwtype == 7) {
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 0)

                }
                if (throwtype == 8) {
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 0)
                }
                if (throwtype == 9) {
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 1)
                }
                if (throwtype == 10) {
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 1)
                    UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 1)
                }
                if (UI.GetString(\&quot;Script items\&quot;, \&quot;Nade name\&quot;) != \&quot;\&quot;) {
                    UI.SetEnabled(\&quot;Script items\&quot;, \&quot;Add name\&quot;, 1)
                } else if (UI.GetString(\&quot;Script items\&quot;, \&quot;Nade name\&quot;) == \&quot;\&quot;) {
                    UI.SetEnabled(\&quot;Script items\&quot;, \&quot;Add name\&quot;, 0)
                } else if (UI.GetString(\&quot;Script items\&quot;, \&quot;Nade name\&quot;) == \&quot;\&quot; &amp;&amp; UI.GetString(\&quot;Script items\&quot;, \&quot;Add name\&quot;) != \&quot;\&quot;) {
                    UI.GetString(\&quot;Script items\&quot;, \&quot;Add name\&quot;) == \&quot;\&quot;
                }
            }
            else {
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade type\&quot;, 0),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw type\&quot;, 0),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Choose a danger\&quot;, 0)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 0),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 0),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power [0, 1 = disabled]\&quot;, 0),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 0),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 0)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade name\&quot;, 0),
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Print nade\&quot;, 0)
                UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Add name\&quot;, 0)
            }
        }
        else {
             UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 0),UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Fps boost\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Text color\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Stick color\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Choose a danger\&quot;, 0),UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Icon color\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Add name\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Bar color\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Bind key\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Enabled grenades\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Render customize\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade location tools\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade type\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw type\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power [0, 1 = disabled]\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade name\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Print nade\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Theme's\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Render customize\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Helper style\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;======================= \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================  \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================   \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================    \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================     \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================      \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================       \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power [0, 1 = disabled]\&quot;, 0)
        }
    }
    else {  UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;, 0),UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Fps boost\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Movement selection\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, adjhghgja, 1), UI.SetEnabled(\&quot;Script Items\&quot;, dabjhds, 1), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Grenade Helper\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Choose a danger\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Text color\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Add name\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Stick color\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Icon color\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Bar color\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Bind key\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Enabled grenades\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Render customize\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade location tools\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade type\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power [0, 1 = disabled]\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw type\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Nade name\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Print nade\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Theme's\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Render customize\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Helper style\&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;======================= \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================  \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================   \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================    \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================     \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================      \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;=======================       \&quot;, 0), UI.SetEnabled(\&quot;Script Items\&quot;, \&quot;Throw power [0, 1 = disabled]\&quot;, 0)}
}

function menuopen() {
    if (UI.IsMenuOpen() == true) {
        interface();
    }
}
//---------------------------------------------MENU INTERFACE---------------------------------------------//

/* Clamp */

function clamp(v, min_int, max_int) {
    return Math.max(Math.min(v, max_int), min_int);
}

/* Clamp */

//---------------------------------------------Coder's presets---------------------------------------------//

function Preset() {

    cfgtype = UI.GetValue(\&quot;Script Items\&quot;, \&quot;Theme's\&quot;);

    if (cfgtype == 1) {
       
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Theme's\&quot;, 0);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Color customize\&quot;, 1);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Nade location tools\&quot;, 0);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Enabled grenades\&quot;, (123));

        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Text color\&quot;, [136, 143, 255, 230]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Icon color\&quot;, [136, 143, 255, 230]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Bar color\&quot;, [5, 5, 5, 155]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Stick color\&quot;, [136, 143, 255, 170]);
    }

    if (cfgtype == 2) {

        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Theme's\&quot;, 0);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Color customize\&quot;, 1);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Nade location tools\&quot;, 0);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Enabled grenades\&quot;, (123));

        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Text color\&quot;, [255, 145, 124, 230]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Icon color\&quot;, [255, 145, 124, 230]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Bar color\&quot;, [0, 0, 0, 160]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Stick color\&quot;, [255, 145, 124, 170]);
    }

    if (cfgtype == 3) {
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Theme's\&quot;, 0);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Color customize\&quot;, 1);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Nade location tools\&quot;, 0);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Enabled grenades\&quot;, (123));

        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Text color\&quot;, [225, 227, 255, 240]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Icon color\&quot;, [225, 227, 255, 240]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Bar color\&quot;, [0, 0, 0, 150]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Stick color\&quot;, [225, 227, 255, 185]);
    } if (cfgtype == 4) {

        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Theme's\&quot;, 0);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Color customize\&quot;, 1);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Nade location tools\&quot;, 0);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Enabled grenades\&quot;, (123));

        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Text color\&quot;, [253, 196, 72, 230]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Icon color\&quot;, [253, 196, 72, 230]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Bar color\&quot;, [0, 0, 0, 150]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Stick color\&quot;, [253, 196, 72, 170]);
    } if (cfgtype == 5) {
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Theme's\&quot;, 0);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Color customize\&quot;, 1);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Nade location tools\&quot;, 0);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Enabled grenades\&quot;, (123));

        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Text color\&quot;, [138, 193, 251, 230]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Icon color\&quot;, [138, 193, 251, 230]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Bar color\&quot;, [0, 0, 0, 150]);
        UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Stick color\&quot;, [138, 193, 251, 170]);
    }
}

//---------------------------------------------Coder's presets---------------------------------------------//

_locations = require('locations.js');

function onprintnades() {
    _onprintnades = require('locations.js');
    var nadetype = UI.GetValue(\&quot;Script Items\&quot;, \&quot;Nade type\&quot;);
    var throwtype = UI.GetValue(\&quot;Script Items\&quot;, \&quot;Throw type\&quot;);
    var tickstorun = UI.GetString(\&quot;MISC\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script Items\&quot;, \&quot;Ticks to run\&quot;);
    var throwpower = UI.GetString(\&quot;MISC\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script Items\&quot;, \&quot;Throw power\&quot;)
    var delay = UI.GetString(\&quot;MISC\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script Items\&quot;, \&quot;Delay 'ms'\&quot;);
    var nadename = UI.GetString(\&quot;MISC\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script Items\&quot;, \&quot;Nade name\&quot;);
    var an = UI.GetString(\&quot;Script items\&quot;, \&quot;Add name\&quot;)
    var dr = UI.GetValue(\&quot;Script items\&quot;, \&quot;Choose a danger\&quot;)
    var ss = UI.GetValue(\&quot;Script items\&quot;, \&quot;Movement selection\&quot;)
    var dur = UI.GetValue(\&quot;Script items\&quot;, \&quot;Length of return\&quot;)

    if (ss == 0) {
        ss = \&quot;Forward\&quot; }
    if (ss == 1) {
        ss = \&quot;Back\&quot; }
    if (ss == 2) {
        ss = \&quot;Right\&quot; }
    if (ss == 3) {
        ss = \&quot;Left\&quot; }

    if (dr == 0) {
        dr = \&quot;SAFE\&quot;}
    if (dr == 1) {
        dr = \&quot;DANGER\&quot;}

    if (nadetype == 0) {
        nadetype = \&quot;molotov\&quot;}
    if (nadetype == 1) {
        nadetype = \&quot;high explosive grenade\&quot;}
    if (nadetype == 2) {
        nadetype = \&quot;flashbang\&quot;}
    if (nadetype == 3) {
        nadetype = \&quot;smoke grenade\&quot;}


    if (throwtype == 0) {
        dur = 0
        ss = \&quot;\&quot;
        throwtype = \&quot;Throw\&quot;}
    if (throwtype == 1) {
        dur = 0
        ss = \&quot;\&quot;
        throwtype = \&quot;Run+Throw\&quot; }
    if (throwtype == 2) {
        dur = 0
        ss = \&quot;\&quot;
        throwtype = \&quot;Jump+Throw\&quot; }
    if (throwtype == 3) {
        throwtype = \&quot;Run+Jump+Throw\&quot;}
    if (throwtype == 4) {
        throwtype = \&quot;RunBack+Jump+Throw\&quot;}
    if (throwtype == 5) {
        dur = 0
        ss = \&quot;\&quot;
        throwtype = \&quot;Jump+Delay throw\&quot;}
    if (throwtype == 6) {
        dur = 0
        ss = \&quot;\&quot;
        throwtype = \&quot;Half throw\&quot;}
    if (throwtype == 7) {
        dur = 0
        ss = \&quot;\&quot;
        throwtype = \&quot;RunRight+Throw\&quot;}
    if (throwtype == 8) {
        dur = 0
        ss = \&quot;\&quot;
        throwtype = \&quot;RunLeft+Throw\&quot; }
    if (throwtype == 9) {
        throwtype = \&quot;Right+JumpThrow\&quot; }
    if (throwtype == 10) {
        throwtype = \&quot;Left+JumpThrow\&quot; }


    if (UI.GetValue(\&quot;Script items\&quot;, \&quot;Print nade\&quot;) == 1) {
        Cheat.PrintChat(\&quot;[ \x07 \\&quot;\&quot; + World.GetMapName() + \&quot;\\&quot; \x01, [ \x05\&quot; + Entity.GetEyePosition(Entity.GetLocalPlayer()) + \&quot;\x01 ], [ \x05\&quot; + Local.GetViewAngles() + \&quot; \x01], \x0A \\&quot;\&quot; + nadetype + \&quot;\\&quot;\x01, \x0A\\&quot;\&quot; + nadename + \&quot;\\&quot;\x01, \x0A\\&quot;\&quot; + throwtype + \&quot;\\&quot;\x01, \x0A\\&quot;\&quot; + an + \&quot;\\&quot;\x01, \x0A\\&quot;\&quot; + dr + \&quot;\\&quot;, \\&quot;\&quot; + ss + \&quot;\\&quot;\x01, \&quot; + dur + \&quot;, \&quot; + tickstorun + \&quot;, \&quot; + throwpower + \&quot;, \&quot; + delay + \&quot;],\&quot;)
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Print nade\&quot;, 0);

        Cheat.Print(\&quot;\n [ \\&quot;\&quot; + World.GetMapName() + \&quot;\\&quot;, [\&quot; + Entity.GetEyePosition(Entity.GetLocalPlayer()) + \&quot;], [\&quot; + Local.GetViewAngles() + \&quot;], \\&quot;\&quot; + nadetype + \&quot;\\&quot;, \\&quot;\&quot; + nadename + \&quot;\\&quot;, \\&quot;\&quot; + throwtype + \&quot;\\&quot;, \\&quot;\&quot; + an + \&quot;\\&quot;, \\&quot;\&quot; + dr + \&quot;\\&quot;, \\&quot;\&quot; + ss + \&quot;\\&quot;, \&quot; + dur + \&quot;, \&quot; + tickstorun + \&quot;, \&quot; + throwpower + \&quot;, \&quot; + delay + \&quot;], \n\&quot;)
        UI.SetValue(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Print nade\&quot;, 0);
    }
}

var locations = _locations.locations;

var map_cache = [];
var enabled_grenades = [];
var selection_cache = 0;
var hand_cache = 0;
const GRENADE_TYPES = [\&quot;high explosive grenade\&quot;, \&quot;smoke grenade\&quot;, \&quot;molotov\&quot;, \&quot;incendiary grenade\&quot;, \&quot;flashbang\&quot;];
import_grenade_selection();

var weapon = Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer()));
if (weapon == \&quot;incendiary grenade\&quot;) weapon = \&quot;molotov\&quot;;

map_cache = locations.filter(function (e) {
    return e[0] == World.GetMapName() &amp;&amp; ~enabled_grenades.indexOf(e[3].toLowerCase()) &amp;&amp; e[3].toLowerCase() == weapon
});

var all_console_name = {
    \&quot;incendiary grenade\&quot;: 'incendiary grenade',
    \&quot;high explosive grenade\&quot;: 'hegrenade',
    \&quot;molotov\&quot;: 'molotov',
    \&quot;smoke grenade\&quot;: 'smoke grenade',
    \&quot;flashbang\&quot;: 'flashbang',
};

Render.Filled3DCircle = function (x, y, z, size, color, color2) {
    var pos_x, pos_y;
    z = z &lt; 361 &amp;&amp; z || 360;
    z = z &gt; -1 &amp;&amp; z || 0;
    size += 1;

    for (rot = size; rot &lt; z + size + 1; rot += size * 8) {
        rot_r = rot * (Math.PI / 180);
        line_x = y * Math.cos(rot_r) + x[0];
        line_y = y * Math.sin(rot_r) + x[1];

        var _pos1 = Render.WorldToScreen([line_x, line_y, x[2]]),
            pos2 = Render.WorldToScreen([x[0], x[1], x[2]]);

        if (pos2[0] != null &amp;&amp; _pos1[0] != null &amp;&amp; pos_x != null) {
            Render.Polygon([[_pos1[0], _pos1[1]], [pos_x, pos_y], [pos2[0], pos2[1]]], color2);
            Render.Line(_pos1[0], _pos1[1], pos_x, pos_y, color);
        }

        pos_x = _pos1[0];
        pos_y = _pos1[1];
    }
};

var alpha_main = 0,
    alpha_second = 0,
    alpha_b = 0,
    alpha_t = 0,
    alpha_t1 = 0,
    alpha_i = 0,
    alpha_s = 0,
    alpha_sh = 0,
    alpha_c = 0;

function animate_alpha() {
    var reverseItem = UI.GetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Bar color\&quot;);
    var reverseItemData = UI.GetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Text color\&quot;);
    var widgetArr = UI.GetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Icon color\&quot;);
    var menuItemColor = UI.GetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Stick color\&quot;);

    var weapon = Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer()));
    if (all_console_name[weapon] != undefined) {
        if (alpha_main &lt; 250) {
            alpha_main = alpha_main + 5;
        }
        if (alpha_second &lt; 122) {
            alpha_second = alpha_second + 6.1;
        }
        if (alpha_b &lt; reverseItem[3]) {
            alpha_b = alpha_b + 5;
        }
        if (alpha_t &lt; reverseItemData[3]) {
            alpha_t = alpha_t + 5;
        }
        if (alpha_i &lt; widgetArr[3]) {
            alpha_i = alpha_i + 5;
        }
        if (alpha_s &lt; menuItemColor[3]) {
            alpha_s = alpha_s + 5;
        }
        if (alpha_sh &lt; 50) {
            alpha_sh = alpha_sh + 5;
        }
        if (alpha_t1 &lt; 255) {
            alpha_t1 = alpha_t1 + 5;
        }
        if (alpha_c &lt; 75) {
            alpha_c = alpha_c + 5;
        }
    } else {
        alpha_second = 0;
        alpha_c = 0;
        alpha_b = 0;
        alpha_t = 0;
        alpha_t1 = 0;
        alpha_i = 0;
        alpha_s = 0;
        alpha_sh = 0;
        alpha_main = 0;
    }
}

function draw() {
    var weapon = Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer()));
    if (weapon == \&quot;incendiary grenade\&quot;)
        weapon = \&quot;molotov\&quot;;

    if (!~GRENADE_TYPES.indexOf(weapon))
        return;



    if ((selection_cache != UI.GetValue(\&quot;Script items\&quot;, \&quot;Enabled grenades\&quot;)) || ((hand_cache != weapon) || !~GRENADE_TYPES.indexOf(weapon))) {
        import_grenade_selection();
        map_cache = locations.filter(function (e) {
            return e[0] == World.GetMapName() &amp;&amp; ~enabled_grenades.indexOf(e[3].toLowerCase()) &amp;&amp; e[3].toLowerCase() == weapon;
        });
    }

    if (map_cache.length == 0)
        return;


    //---------------------------------------------Render Image---------------------------------------------//

    for (var g in map_cache) {
        var scrmid = [Render.GetScreenSize()[0] / 2, Render.GetScreenSize()[1] / 2]


        var _0xFgOVd = Render.WorldToScreen([map_cache[g][1][0], map_cache[g][1][1], map_cache[g][1][2] - 62]);

        var _0x141d04 = [map_cache[g][13][0], map_cache[g][13][1], map_cache[g][13][2] - 62];  

        var _0xBvre2 = map_cache
        var B3_K3a9u = angle_to_vec(_0xBvre2[g][2][0], _0xBvre2[g][2][1]);
        var eye_pos = _0xBvre2[g][1];
        B3_K3a9u = Render.WorldToScreen([eye_pos[0] + B3_K3a9u[0] * 400, eye_pos[1] + B3_K3a9u[1] * 400, eye_pos[2] + B3_K3a9u[2] * 400]);
        var dist = calc_dist(Entity.GetRenderOrigin(Entity.GetLocalPlayer()), _0xBvre2[g][1]);
        var jopakano = Render.AddFont(\&quot;verdana\&quot;, 7, 0x64)
        var stdout = Render.AddFont(\&quot;verdanab\&quot;, 8, 1000);
        var encode_char = Render.AddFont(\&quot;Small Fonts\&quot;, 5, 0);
        var size_text = Render.TextSizeCustom(map_cache[g][6] + \&quot;\&quot;, encode_char);
        var size_area = Render.TextSizeCustom(map_cache[g][4] + \&quot;\&quot;, jopakano);
        var size_tut = Render.TextSizeCustom(map_cache[g][5] + \&quot;\&quot;, jopakano);

        var reverseItem = UI.GetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Bar color\&quot;);
        var reverseItemData = UI.GetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Text color\&quot;);
        var widgetArr = UI.GetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Icon color\&quot;);
        var menuItemColor = UI.GetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Stick color\&quot;);

        var _0x80f8x5d = Math.sin(Math.abs(-3.14 + (Globals.Curtime() * (1 / 0.75)) % (3.14 * 2))) * reverseItemData[3];

        var k_nDo0rColor = shadow;
        var _0xCoLIuk1 = Render.Line;
        var _oxJj3F = Render.Circle



        var granate = Render.AddFont(\&quot;undefeated\&quot;, 15, 100)
        var granataicon = \&quot;j\&quot;
        if (weapon == \&quot;molotov\&quot;) { var granataicon = \&quot;l\&quot; }
        if (weapon == \&quot;high explosive grenade\&quot;) { var granataicon = \&quot;j\&quot; }
        if (weapon == \&quot;smoke grenade\&quot;) { var granataicon = \&quot;k\&quot; }
        if (weapon == \&quot;flashbang\&quot;) { var granataicon = \&quot;i\&quot; }

        if (!UI.GetValue(\&quot;Render customize\&quot;)) {
            UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Text color\&quot;, [225, 227, 255, 240]);
            UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Icon color\&quot;, [225, 227, 255, 240]);
            UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Bar color\&quot;, [0, 0, 0, 160]);
            UI.SetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Stick color\&quot;, [225, 227, 255, 185]);
        }

        if (dist &lt; 850 &amp;&amp; map_cache[g][4] != \&quot;\&quot; &amp;&amp; map_cache[g][6] == \&quot;\&quot;) {
            Render.FilledRect(_0xFgOVd[0] - 20, _0xFgOVd[1] - 14 / 1.2, size_area[0] + 35, size_area[1] + 13, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_sh]); // quadro
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 4, 0, _0xBvre2[g][4], true, jopakano, [0, 0, 0, alpha_sh], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 5, 0, _0xBvre2[g][4], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_sh], 8); // text
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 8, 0, granataicon, true, granate, [0, 0, 0, alpha_sh], 8); // icon
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 9, 0, granataicon, true, granate, [widgetArr[0], widgetArr[1], widgetArr[2], alpha_sh], 8); // icon
            _0xCoLIuk1(_0xFgOVd[0] + 3, _0xFgOVd[1] - 7, _0xFgOVd[0] + 3, _0xFgOVd[1] + 8, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_sh], 8); // stick

        } else if (dist &lt; 850 &amp;&amp; map_cache[g][4] != \&quot;\&quot; &amp;&amp; map_cache[g][6] != \&quot;\&quot;) {
            Render.FilledRect(_0xFgOVd[0] - 18, _0xFgOVd[1] - 19 / 1.2, size_area[0] + 34, size_area[1] + 20, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_sh]); // quadro
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 11, 0, _0xBvre2[g][4], true, jopakano, [0, 0, 0, alpha_sh], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 12, 0, _0xBvre2[g][4], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_sh], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 2, 0, _0xBvre2[g][6], true, jopakano, [0, 0, 0, alpha_sh], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 1, 0, _0xBvre2[g][6], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_sh], 8); // text
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 8, 0, granataicon, true, granate, [0, 0, 0, alpha_sh], 8); // icon
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 9, 0, granataicon, true, granate, [widgetArr[0], widgetArr[1], widgetArr[2], alpha_sh], 8); // icon
            _0xCoLIuk1(_0xFgOVd[0] + 2, _0xFgOVd[1] - 9, _0xFgOVd[0] + 2, _0xFgOVd[1] + 10, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_sh], 8); // stick
        }

        if (!map_cache[g][15])
            continue;


        if (map_cache[g][4] != \&quot;\&quot; &amp;&amp; map_cache[g][6] == \&quot;\&quot;) {
            Render.FilledRect(_0xFgOVd[0] - 20, _0xFgOVd[1] - 14 / 1.2, size_area[0] + 35, size_area[1] + 13, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_b]); // quadro
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 4, 0, _0xBvre2[g][4], true, jopakano, [0, 0, 0, alpha_main], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 5, 0, _0xBvre2[g][4], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 8, 0, granataicon, true, granate, [0, 0, 0, alpha_main], 8); // icon
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 9, 0, granataicon, true, granate, [widgetArr[0], widgetArr[1], widgetArr[2], alpha_i], 8); // icon
            _0xCoLIuk1(_0xFgOVd[0] + 3, _0xFgOVd[1] - 7, _0xFgOVd[0] + 3, _0xFgOVd[1] + 8, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_s], 8); // stick

        } else if (map_cache[g][4] != \&quot;\&quot; &amp;&amp; map_cache[g][6] != \&quot;\&quot;) {
            Render.FilledRect(_0xFgOVd[0] - 18, _0xFgOVd[1] - 19 / 1.2, size_area[0] + 34, size_area[1] + 20, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_b]); // quadro
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 11, 0, _0xBvre2[g][4], true, jopakano, [0, 0, 0, alpha_main], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 12, 0, _0xBvre2[g][4], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 2, 0, _0xBvre2[g][6], true, jopakano, [0, 0, 0, alpha_main], 8); // text
            k_nDo0rColor(_0xFgOVd[0] + 9, _0xFgOVd[1] - 1, 0, _0xBvre2[g][6], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 8, 0, granataicon, true, granate, [0, 0, 0, alpha_main], 8); // icon
            k_nDo0rColor(_0xFgOVd[0] - 15, _0xFgOVd[1] - 9, 0, granataicon, true, granate, [widgetArr[0], widgetArr[1], widgetArr[2], alpha_i], 8); // icon
            _0xCoLIuk1(_0xFgOVd[0] + 2, _0xFgOVd[1] - 9, _0xFgOVd[0] + 2, _0xFgOVd[1] + 10, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_s], 8); // stick
        }

        if (dist &gt; 70) continue;

        if (map_cache[g][7] == \&quot;DANGER\&quot;) {
            Render.FilledRect(B3_K3a9u[0] - 10, B3_K3a9u[1] - size_area[1] / 0.89, size_area[0] + 39, size_tut[1] + 15, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_b]); // quadro
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 10, 0, _0xBvre2[g][4], true, stdout, [0, 0, 0, reverseItemData[3]], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 11, 0, _0xBvre2[g][4], true, stdout, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 16, B3_K3a9u[1] + 1, 0, _0xBvre2[g][7], true, encode_char, [0, 0, 0, _0x80f8x5d], 8);
            k_nDo0rColor(B3_K3a9u[0] + 18, B3_K3a9u[1] + 3, 0, _0xBvre2[g][7], true, encode_char, [0, 0, 0, _0x80f8x5d], 8);
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] + 2, 0, _0xBvre2[g][7], true, encode_char, [170, 0, 0, _0x80f8x5d], 8);
            _0xCoLIuk1(B3_K3a9u[0] + 11, B3_K3a9u[1] - 8, B3_K3a9u[0] + 11, B3_K3a9u[1] + 8, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_s], 8); // stick

        } else if (map_cache[g][7] == \&quot;SAFE\&quot;) {
            Render.FilledRect(B3_K3a9u[0] - 10, B3_K3a9u[1] - size_area[1] / 0.89, size_area[0] + 39, size_tut[1] + 15, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_b]); // quadro
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 10, 0, _0xBvre2[g][4], true, stdout, [0, 0, 0, reverseItemData[3]], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 11, 0, _0xBvre2[g][4], true, stdout, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 16, B3_K3a9u[1] + 1, 0, _0xBvre2[g][7], true, encode_char, [0, 0, 0, alpha_t1], 8);
            k_nDo0rColor(B3_K3a9u[0] + 18, B3_K3a9u[1] + 3, 0, _0xBvre2[g][7], true, encode_char, [0, 0, 0, alpha_t1], 8);
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] + 2, 0, _0xBvre2[g][7], true, encode_char, [255, 255, 255, alpha_t1], 8);
            _0xCoLIuk1(B3_K3a9u[0] + 11, B3_K3a9u[1] - 8, B3_K3a9u[0] + 11, B3_K3a9u[1] + 8, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_s], 8); // stick

        } else if (map_cache[g][7] == \&quot;\&quot;) {
            Render.FilledRect(B3_K3a9u[0] - 10, B3_K3a9u[1] - size_area[1] / 0.89, size_area[0] + 33, size_tut[1] + 15, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_b]); // quadro
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 5, 0, _0xBvre2[g][4], true, jopakano, [0, 0, 0, reverseItemData[3]], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 6, 0, _0xBvre2[g][4], true, jopakano, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            _0xCoLIuk1(B3_K3a9u[0] + 11, B3_K3a9u[1] - 8, B3_K3a9u[0] + 11, B3_K3a9u[1] + 8, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_s], 8); // stick

        } else if (map_cache[g][7] != \&quot;SAFE\&quot; &amp;&amp; map_cache[g][7] != \&quot;DANGER\&quot; &amp;&amp; map_cache[g][7] != \&quot;\&quot;) {
            Render.FilledRect(B3_K3a9u[0] - 10, B3_K3a9u[1] - size_area[1] / 0.89, size_area[0] + 39, size_tut[1] + 15, [reverseItem[0], reverseItem[1], reverseItem[2], alpha_b]); // quadro
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 10, 0, _0xBvre2[g][4], true, stdout, [0, 0, 0, reverseItemData[3]], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] - 11, 0, _0xBvre2[g][4], true, stdout, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_t], 8); // text
            k_nDo0rColor(B3_K3a9u[0] + 16, B3_K3a9u[1] + 1, 0, _0xBvre2[g][7], true, encode_char, [0, 0, 0, _0x80f8x5d], 8);
            k_nDo0rColor(B3_K3a9u[0] + 18, B3_K3a9u[1] + 3, 0, _0xBvre2[g][7], true, encode_char, [0, 0, 0, _0x80f8x5d], 8);
            k_nDo0rColor(B3_K3a9u[0] + 17, B3_K3a9u[1] + 2, 0, _0xBvre2[g][7], true, encode_char, [255, 145, 124, _0x80f8x5d], 8);
            _0xCoLIuk1(B3_K3a9u[0] + 11, B3_K3a9u[1] - 8, B3_K3a9u[0] + 11, B3_K3a9u[1] + 8, [menuItemColor[0], menuItemColor[1], menuItemColor[2], alpha_s], 8); // stick

        }
        if ((Math.abs(B3_K3a9u[0] - scrmid[0]) + Math.abs(B3_K3a9u[1] - scrmid[1]) &lt;= 170)) {
            Render.Line(Render.GetScreenSize()[0] / 2, Render.GetScreenSize()[1] / 2, B3_K3a9u[0], B3_K3a9u[1], reverseItemData)
        } if (UI.IsHotkeyActive(\&quot;Script items\&quot;, \&quot;Bind key\&quot;)) {
            color_circle = [0, 170, 0, 250]
            color_circl = [0, 170, 0, 160]
            color_circ = [0, 155, 0, 155]
            color_cir = [0, 135, 0, 140]
            color_ci = [0, 110, 0, 135]
            color_c1 = [0, 85, 0, 130]
            color_c1r = [0, 60, 0, 120]
            color_c1rc = [0, 55, 0, 35]
            color_c1rcl = [0, 45, 0, 15]
            color_c1rcle = [0, 35, 0, 5]
        } else {
            color_circle = [170, 0, 0, 250]
            color_circl = [170, 0, 0, 160]
            color_circ = [155, 0, 0, 155]
            color_cir = [135, 0, 0, 140]
            color_ci = [110, 0, 0, 135]
            color_c1 = [85, 0, 0, 130]
            color_c1r = [60, 0, 0, 120]
            color_c1rc = [55, 0, 0, 35]
            color_c1rcl = [45, 0, 0, 15]
            color_c1rcle = [35, 0, 0, 5]
        } if (!UI.IsHotkeyActive(\&quot;Script items\&quot;, \&quot;Bind key\&quot;) &amp;&amp; (Math.abs(B3_K3a9u[0] - scrmid[0]) + Math.abs(B3_K3a9u[1] - scrmid[1]) &lt;= 170)) {
            color_circle = [170, 170, 0, 250]
            color_circl = [170, 170, 0, 160]
            color_circ = [135, 155, 0, 155]
            color_cir = [135, 135, 0, 140]
            color_ci = [110, 110, 0, 135]
            color_c1 = [85, 85, 0, 130]
            color_c1r = [60, 60, 0, 120]
            color_c1rc = [55, 55, 0, 35]
            color_c1rcl = [45, 45, 0, 15]
            color_c1rcle = [35, 35, 0, 5]
        }

        _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 9, (color_c1rcle)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 8, (color_c1rcl)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 7, (color_c1rc)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 6, (color_c1r)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 5, (color_c1)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 4, (color_ci)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 3, (color_cir)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 2, (color_circ)); _oxJj3F(B3_K3a9u[0], B3_K3a9u[1], 1, (color_circl)); Render.FilledCircle(B3_K3a9u[0], B3_K3a9u[1], 1, (color_circle));
        //Render.Filled3DCircle(_0x141d04, 45, 360, 0, [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_main], 1 ? [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_c] : [reverseItemData[0], reverseItemData[1], reverseItemData[2], alpha_c]);
    }
}




//---------------------------------------------Render Image---------------------------------------------//

function Fpsboost() {

    var fpsenable = UI.GetValue(\&quot;Script items\&quot;, \&quot;Fps boost\&quot;);

    if (fpsenable == 1) {

        UI.SetValue(\&quot;Misc\&quot;, \&quot;GENERAL\&quot;, \&quot;Misc\&quot;, \&quot;Force sv_cheats\&quot;, true);
        UI.SetValue(\&quot;Misc\&quot;, \&quot;GENERAL\&quot;, \&quot;Misc\&quot;, \&quot;Hidden cvars\&quot;, true);
        Convar.SetString(\&quot;r_shadows\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;cl_csm_static_prop_shadows\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;cl_csm_shadows\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;cl_csm_world_shadows\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;cl_foot_contact_shadows\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;cl_csm_viewmodel_shadows\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;cl_csm_rope_shadows\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;cl_csm_sprite_shadows\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;cl_csm_world_shadows_in_viewmodelcascade\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;cl_csm_translucent_shadows\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;cl_csm_entity_shadows\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;violence_hblood\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;r_3dsky\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;r_drawdecals\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;r_drawrain\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;r_drawropes\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;r_drawsprites\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;fog_enable_water_fog\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;@panorama_disable_blur\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;dsp_slow_cpu\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;cl_disable_ragdolls\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;mat_disable_bloom\&quot;, \&quot;1\&quot;);

    }
    else {

        Convar.SetString(\&quot;r_shadows\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;cl_csm_static_prop_shadows\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;cl_csm_shadows\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;cl_csm_world_shadows\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;cl_foot_contact_shadows\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;cl_csm_viewmodel_shadows\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;cl_csm_rope_shadows\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;cl_csm_sprite_shadows\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;cl_csm_world_shadows_in_viewmodelcascade\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;cl_csm_translucent_shadows\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;cl_csm_entity_shadows\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;violence_hblood\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;r_3dsky\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;r_drawdecals\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;r_drawrain\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;r_drawropes\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;r_drawsprites\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;fog_enable_water_fog\&quot;, \&quot;1\&quot;);
        Convar.SetString(\&quot;@panorama_disable_blur\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;dsp_slow_cpu\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;cl_disable_ragdolls\&quot;, \&quot;0\&quot;);
        Convar.SetString(\&quot;mat_disable_bloom\&quot;, \&quot;0\&quot;);

    }

}

function check_visibility() {
    if (map_cache.length == 0 || World.GetServerString() == \&quot;\&quot;)
        return;

    var local = Entity.GetLocalPlayer();

    eye_angles = Local.GetViewAngles();
    head = Entity.GetProp(local, \&quot;CBasePlayer\&quot;, \&quot;m_vecOrigin\&quot;);
    offset = Entity.GetProp(local, \&quot;CBasePlayer\&quot;, \&quot;m_vecViewOffset[2]\&quot;);
    head = vector_add(head, [0, 0, offset[0]]);

    for (var g in map_cache) {
        var result = Trace.Line(local, head, map_cache[g][1]);

        if (map_cache[g][15] == undefined)
            map_cache[g].push(result[1] == 1);
        else
            map_cache[g][15] = result[1] == 1;
    }
}

// thanks vex
function _0xYbhj43(ang, old_ang, old_move) {
    var deg2rad = function (a) {
        return a / 180 * Math.PI
    }
    var f1, f2, delta_y
    if (old_ang[1] &lt; 0)
        f1 = 360 + old_ang[1]
    else
        f1 = old_ang[1]

    if (ang[1] &lt; 0)
        f2 = 360 + ang[1]
    else
        f2 = ang[1]
    if (f2 &lt; f1)
        delta_y = Math.abs(f2 - f1)
    else
        delta_y = 360 - Math.abs(f1 - f2)

    return [
        Math.cos(deg2rad(delta_y)) * old_move[0] + Math.cos(deg2rad(delta_y + 90)) * old_move[1],
        Math.sin(deg2rad(delta_y)) * old_move[0] + Math.sin(deg2rad(delta_y + 90)) * old_move[1],
        0
    ]
}
// thanks vex
function move_forward(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var forward = [450, 0, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, forward)
    var silent = UI.GetValue(\&quot;Script items\&quot;, \&quot;Silent throw (Rage)\&quot;) == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}

function move_d(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var d = [0, 0, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, d)
    var silent = UI.GetValue(\&quot;Script items\&quot;, \&quot;Silent throw (Rage)\&quot;) == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}

function move_move1(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var move1 = [0, 450, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, move1)
    var silent = UI.GetValue(\&quot;Script items\&quot;, \&quot;Silent throw (Rage)\&quot;) == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}
function move_move3(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var move3 = [-45, -450, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, move3)
    var silent = UI.GetValue(\&quot;Script items\&quot;, \&quot;Silent throw (Rage)\&quot;) == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}

function move_move4(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var move4 = [0, -450, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, move4)
    var silent = UI.GetValue(\&quot;Script items\&quot;, \&quot;Silent throw (Rage)\&quot;) == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}

function move_move6(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var move6 = [100, 30, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, move6)
    var silent = UI.GetValue(\&quot;Script items\&quot;, \&quot;Silent throw (Rage)\&quot;) == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}

function move_move9(angle) {
    var _0x82397BHHH = Local.GetViewAngles()
    var move9 = [-450, 0, 0]
    var _0xLlk3 = _0xYbhj43(angle, _0x82397BHHH, move9)
    var silent = UI.GetValue(\&quot;Script items\&quot;, \&quot;Silent throw (Rage)\&quot;) == 1 ? true : false;
    UserCMD.SetMovement(_0xLlk3);
    UserCMD.SetAngles(angle, silent)
}

var delays = []

function Delay(delay, func, times) {
    this.delay = delay;
    this.resume = Globals.Curtime() + delay;
    this.func = func;
    this.times = 0;
    this.max = times || 1;
    delays.push(this);
}

Delay.prototype.run = function () {
    this.func();
    this.times++;
    this.resume += this.delay;
    return this.times &gt;= this.max;
}

function checkDelays() {
    currTime = Globals.Curtime();

    delays.forEach(function (delay, index) {
        currTime &gt;= delay.resume &amp;&amp; delay.run() &amp;&amp; delays.splice(index, 1);
    })
}

function stop_attack() {
    Cheat.ExecuteCommand(\&quot;-attack\&quot;);
}

function move_on_key() {
    if (map_cache.length == 0)
        return;

    if (!~GRENADE_TYPES.indexOf(Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer()))))
        return;

    var silent = UI.GetValue(\&quot;Script items\&quot;, \&quot;Silent throw (Rage)\&quot;) == 1 ? true : false;

    if (!UI.IsHotkeyActive(\&quot;Script items\&quot;, \&quot;Bind key\&quot;)) {
        this.running = false
        this.ignore_input = false
        this.start_tick = 0
        this.next_tick_ang = []
        this.attacked = false;
        this.moved_base = false;
        this.run_start = 0;
        return;
    }
    if (this.next_tick_ang == null)
        this.next_tick_ang = []
    if (this.ignore_input) {
        UserCMD.SetAngles(this.next_tick_ang, silent)
        return;

    }
    if (this.next_tick_ang.length) {
        UserCMD.SetAngles(this.next_tick_ang, silent)
    }


    if (this.attacked == null)
        this.attacked = false
    if (this.start_tick == null)
        this.start_tick = 0
    if (this.running == null)
        this.running = false
    if (this.closest == null)
        this.closest = []
    if (this.ignore_input == null)
        this.ignore_input = false
    if (this.run_start == null)
        this.run_start = 0;

    var local = Entity.GetRenderOrigin(Entity.GetLocalPlayer());
    var closest = map_cache.sort(function (a, b) {
        return calc_dist(local, a[1]) - calc_dist(local, b[1]);
    })[0];

    if (this.closest.length) {
        closest = this.closest
    }
    if (calc_dist(local, closest[1]) &gt; 300 &amp;&amp; !this.ignore_input) {
        return;
    }

    var moved = move_to_target(closest[1]);


    //---------------------------------------------------------Attack-----------------------------------------------------//
    var ret = UI.GetValue(\&quot;Script Items\&quot;, \&quot;Length of return\&quot;)
    if (moved || this.running) {
        if (closest[5] == \&quot;Throw\&quot;) {
            Cheat.ExecuteCommand(\&quot;+attack\&quot;);
            this.attacked = true
            this.ignore_input = true
            this.next_tick_ang = closest[2]
            new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
        }
        else if (closest[5] == \&quot;Run+Throw\&quot;) {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();

            move_forward(closest[2]);
            if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; closest[10])) {
                if (!this.attacked) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * 2 - Global.TickInterval() / 100, stop_attack);
                }
                if (Globals.Tickcount() - this.run_start &gt; closest[10] + 8) {

                    this.running = true
                    this.attacked = false;
                    this.closest = []
                    this.ignore_input = true
                    this.next_tick_ang = closest[2]
                    this.run_start = 0;
                }
            }
        }

        else if (closest[5] == \&quot;RunRight+Throw\&quot;) {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move1(closest[2]);
            if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; closest[10])) {
                if (!this.attacked) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * closest[10] - Global.TickInterval() / 100, strafel); new Delay(Global.TickInterval() * closest[10] * 2.3 - Global.TickInterval() / 100, strafel1);
                    if (Globals.Tickcount() - this.run_start &gt; closest[10] + 8) {
                        this.running = false
                        move_move4(closest[2])
                        this.attacked = false;
                        this.closest = []
                        this.run_start = 0;
                    }
                }
            }
        }

        else if (closest[5] == \&quot;RunLeft+Throw\&quot;) {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }
            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move3(closest[2]);
            if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; closest[10])) {
                if (!this.attacked) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * closest[10] - Global.TickInterval() / 100, strafer); new Delay(Global.TickInterval() * closest[10] * 2.3 - Global.TickInterval() / 100, strafer1);
                    if (Globals.Tickcount() - this.run_start &gt; closest[10] + 8) {
                        this.running = false
                        move_move1(closest[2])
                        this.attacked = false;
                        this.closest =
                        this.run_start = 0;
                    }
                }
            }
        }

        else if (closest[5] == \&quot;RunRight+JumpThrow\&quot;) {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move6(closest[2]);
            if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; closest[10])) {
                if (!this.attacked) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                }
                if (Globals.Tickcount() - this.run_start &gt; closest[10] + 8) {
                    new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 10 - Global.TickInterval() / 100, strafel); new Delay(Global.TickInterval() * 11 - Global.TickInterval() / 100, strafel1);
                    UserCMD.ForceJump()
                    this.running = true
                    this.attacked = false;
                    this.closest = []
                    this.ignore_input = true
                    this.next_tick_ang = closest[2]
                    this.run_start = 0;
                }
            }
        }
     
        else if (closest[5] == \&quot;RunRight+JumpThrow[1]\&quot;) {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move1(closest[2]);
            if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; closest[10])) {
                if (!this.attacked) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
                }
                if (Globals.Tickcount() - this.run_start &gt; closest[10] + 8) {
                    UserCMD.ForceJump()
                    var move3 = angle_to_vec(closest[2][1], closest[2][1])
                    move3 = vec_mul_fl(move3, 100)
                    this.running = false
                    move_move3(closest[2])
                    this.attacked = false;
                    this.closest = []
                    this.run_start = 0;
                }
            }
        }
        else if (closest[5] == \&quot;Right+JumpThrow\&quot;) {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move1(closest[2]);
            if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; closest[10])) {
                UserCMD.ForceJump()
                if (!this.attacked) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    if (closest[10] == 1) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    } if (closest[8] == \&quot;Right\&quot;) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafer); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafer1);
                    } if (closest[8] == \&quot;Forward\&quot;) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafef1);
                    } if (closest[8] == \&quot;Left\&quot;) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafel); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafel1);
                    } if (closest[8] == \&quot;Back\&quot;) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    }
                }
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }
        }
        else if (closest[5] == \&quot;Left+JumpThrow\&quot;) {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move4(closest[2]);
            if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; closest[10])) {
                UserCMD.ForceJump()
                if (!this.attacked) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    if (closest[10] == 1) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    } if (closest[8] == \&quot;Right\&quot;) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafer); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafer1);
                    } if (closest[8] == \&quot;Forward\&quot;) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafef1);
                    } if (closest[8] == \&quot;Left\&quot;) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafel); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafel1);
                    } if (closest[8] == \&quot;Back\&quot;) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    }
                }
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }
        }
        else if (closest[5] == \&quot;Run+Jump+Throw\&quot;) {
            if (!this.closest.length)
                this.closest = closest

            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();

            move_forward(closest[2])
            if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; closest[10]) &amp;&amp; closest[11] &lt;= 1) {
                UserCMD.ForceJump()
                if (!this.attacked) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    if (closest[11] == 1) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    } if (closest[8] == \&quot;Right\&quot;) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafer); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafer1);
                    } if (closest[8] == \&quot;Forward\&quot;) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafef1);
                    } if (closest[8] == \&quot;Left\&quot;) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafel); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafel1);
                    } if (closest[8] == \&quot;Back\&quot;) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                        new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                    }
                }
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }

            else if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; closest[10]) &amp;&amp; closest[11] &gt;= 2) {
                UserCMD.ForceJump()
                if (!this.attacked) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * closest[11] - Global.TickInterval() / 100, stop_attack);
                    if (closest[11] &gt; 20)
                        new Delay(Global.TickInterval() * 32 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * 32 - Global.TickInterval() / 100, strafeb1);
                }
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }
        }

        else if (closest[5] == \&quot;RunBack+Jump+Throw\&quot;) {
            if (!this.closest.length)
                this.closest = closest
            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()
            }
            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();
            move_move9(closest[2]);
            if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; closest[10]) &amp;&amp; closest[11] &lt;= 1) {
                UserCMD.ForceJump()
                if (!this.attacked) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafef1);
                } else if (closest[8] == \&quot;Forward\&quot;) {
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafef1);
                } else if (closest[8] == \&quot;Right\&quot;) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafer); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafer1);
                } else if (closest[8] == \&quot;Left\&quot;) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafel); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafel1);
                } else if (closest[8] == \&quot;Back\&quot;) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 9.9 - Global.TickInterval() / 100, strafeb); new Delay(Global.TickInterval() * closest[9] - Global.TickInterval() / 100, strafeb1);
                } else if (closest[8] == \&quot;\&quot;) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * closest[11] + 0.0259 - Global.TickInterval() / 100, stop_attack);
                    new Delay(Global.TickInterval() * 28 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * 28 - Global.TickInterval() / 100, strafef1);
                }
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }
            else if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; closest[10]) &amp;&amp; closest[11] &gt;= 2) {
                UserCMD.ForceJump()
                if (!this.attacked) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                    new Delay(Global.TickInterval() * closest[11] - Global.TickInterval() / 100, stop_attack);
                    if (closest[11] &gt;= 20)
                        new Delay(Global.TickInterval() * 32 - Global.TickInterval() / 100, strafef); new Delay(Global.TickInterval() * 32 - Global.TickInterval() / 100, strafef1);
                }
                    this.running = true
                    this.attacked = false;
                    this.closest = []
                    this.ignore_input = true
                    this.next_tick_ang = closest[2]
                    this.run_start = 0;
                }
        }

        else if (closest[5] == \&quot;Jump+Delay throw\&quot;) {
            if (!this.closest.length)
                this.closest = closest

            this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();

            move_d(closest[2]);
            UserCMD.ForceJump()
            if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; 5)) {
                if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; closest[12] + 5)) {
                    if (!this.attacked) {
                        Cheat.ExecuteCommand(\&quot;+attack\&quot;);
                        new Delay(Global.TickInterval() * 1 - Global.TickInterval() / 100, stop_attack);
                    }
                    this.running = true
                    this.attacked = false;
                    this.closest = []
                    this.ignore_input = true
                    this.next_tick_ang = closest[2]
                    this.run_start = 0;
                }
            }
        }

        else if (closest[5] == \&quot;Half throw\&quot;) {
            if (this.start_tick == 1) {
                this.start_tick = Globals.Tickcount()
            }
            Cheat.ExecuteCommand(\&quot;+attack\&quot;);
            new Delay(Global.TickInterval() * 300 - Global.TickInterval() / 300, stop_attack);
            Cheat.ExecuteCommand(\&quot;+attack2\&quot;);
            new Delay(Global.TickInterval() * closest[11] - Global.TickInterval() / 300, stop_attack2);

            if (Globals.Tickcount() - this.run_start &gt; closest[11]) {
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }
        }
        else if (closest[5] == \&quot;Jump+Throw\&quot;) {
            if (this.start_tick == 0) {
                this.start_tick = Globals.Tickcount()

            } this.running = true
            if (this.run_start == 0)
                this.run_start = Globals.Tickcount();

         
            if (this.running &amp;&amp; (Globals.Tickcount() - this.run_start &gt; 6)) {
                if (!this.attacked) {
                    Cheat.ExecuteCommand(\&quot;+attack\&quot;); UserCMD.ForceJump()
                    new Delay(Global.TickInterval() * closest[11] - Global.TickInterval() / 100, stop_attack);
                }
                this.running = true
                this.attacked = false;
                this.closest = []
                this.ignore_input = true
                this.next_tick_ang = closest[2]
                this.run_start = 0;
            }
        }
    }

    else {
        this.running = false
        this.closest = []
        this.ignore_input = false
        this.start_tick = 0
        this.moved_base = false;
        this.run_start = 0;
    }
}

function jump() {
    Cheat.ExecuteCommand(\&quot;+jump\&quot;);
} function jump1() {
    Cheat.ExecuteCommand(\&quot;-jump\&quot;);
}

function strafel() {
    Cheat.ExecuteCommand(\&quot;+moveleft\&quot;);
};function strafel1() {
    Cheat.ExecuteCommand(\&quot;-moveleft\&quot;);
}

function strafer() {
    Cheat.ExecuteCommand(\&quot;+moveright\&quot;);
};function strafer1() {
    Cheat.ExecuteCommand(\&quot;-moveright\&quot;);
}

function strafeb() {
    Cheat.ExecuteCommand(\&quot;+back\&quot;);
};function strafeb1() {
    Cheat.ExecuteCommand(\&quot;-back\&quot;);
}

function strafef() {
    Cheat.ExecuteCommand(\&quot;+forward\&quot;);
};function strafef1() {
    Cheat.ExecuteCommand(\&quot;-forward\&quot;);
}

function stop_attack2() {
    Cheat.ExecuteCommand(\&quot;+attack2\&quot;);
    Cheat.ExecuteCommand(\&quot;+attack\&quot;);
}
function stop_attack2() {
    Cheat.ExecuteCommand(\&quot;-attack2\&quot;);
    Cheat.ExecuteCommand(\&quot;-attack\&quot;);
}




    //---------------------------------------------------------Attack-----------------------------------------------------//
function on_local_connect() {
    if (Entity.IsLocalPlayer(Entity.GetEntityFromUserID(Event.GetInt(\&quot;userid\&quot;)))) {
        // cache all locations for the player's map into an array
        map_cache = locations.filter(function (e) {
            return e[0] == World.GetMapName();
        });
    }
}

function getAngles(localPos, pos) {
    newPos = vector_sub(pos, localPos);
    xyDist = Math.sqrt((newPos[0] * newPos[0] + newPos[1] * newPos[1]));
    yaw = Math.atan2(newPos[1], newPos[0]) * 180 / Math.PI;
    pitch = Math.atan2(-newPos[2], xyDist) * 180 / Math.PI;
    roll = 0;
    angles = [pitch, yaw, roll];
    return angles;
}
function vector_sub(vec1, vec2) {
    return [
        vec1[0] - vec2[0],
        vec1[1] - vec2[1],
        vec1[2] - vec2[2]
    ];
}
function degreesToRadians(degress) {
    return degress * Math.PI / 180.0;
}
function angle_to_vec(pitch, yaw) {
    var p = degreesToRadians(pitch);
    var y = degreesToRadians(yaw)
    var sin_p = Math.sin(p);
    var cos_p = Math.cos(p);
    var sin_y = Math.sin(y);
    var cos_y = Math.cos(y);
    return [cos_p * cos_y, cos_p * sin_y, -sin_p];
}

function vector_add(vec, vec2) {
    newVec = [
        vec[0] + vec2[0],
        vec[1] + vec2[1],
        vec[2] + vec2[2]
    ]
    return newVec;
}


function shadow(x, y, align, text, custom, font, color, size) {
    if (custom) {
        Render.StringCustom(x + ((size / 7.17)), y + ((size / 7.17)), align, text, [0, 0, 0, 0], font);
        Render.StringCustom(x, y, align, text, color, font);
    } else {
        Render.String(x + ((size / 7.17)), y + ((size / 7.17)), align, text, [0, 0, 0, 0], size);
        Render.String(x, y, align, text, color, size);
    }
}

function import_grenade_selection() {
    var val = UI.GetValue(\&quot;Script items\&quot;, \&quot;Enabled grenades\&quot;);

    if (val == 0)
        enabled_grenades = [];

    if (getDropdownValue(val, 0) &amp;&amp; !~enabled_grenades.indexOf(\&quot;molotov\&quot;))
        enabled_grenades.push(\&quot;molotov\&quot;);
    else if (~enabled_grenades.indexOf(\&quot;molotov\&quot;) &amp;&amp; !getDropdownValue(val, 0))
        enabled_grenades.splice(enabled_grenades.indexOf(\&quot;molotov\&quot;), 1);

    if (getDropdownValue(val, 1) &amp;&amp; !~enabled_grenades.indexOf(\&quot;high explosive grenade\&quot;))
        enabled_grenades.push(\&quot;high explosive grenade\&quot;);
    else if (~enabled_grenades.indexOf(\&quot;high explosive grenade\&quot;) &amp;&amp; !getDropdownValue(val, 1))
        enabled_grenades.splice(enabled_grenades.indexOf(\&quot;high explosive grenade\&quot;), 1);

    if (getDropdownValue(val, 2) &amp;&amp; !~enabled_grenades.indexOf(\&quot;flashbang\&quot;))
        enabled_grenades.push(\&quot;flashbang\&quot;);
    else if (~enabled_grenades.indexOf(\&quot;flashbang\&quot;) &amp;&amp; !getDropdownValue(val, 2))
        enabled_grenades.splice(enabled_grenades.indexOf(\&quot;flashbang\&quot;), 1);


    if (getDropdownValue(val, 3) &amp;&amp; !~enabled_grenades.indexOf(\&quot;smoke grenade\&quot;))
        enabled_grenades.push(\&quot;smoke grenade\&quot;);
    else if (~enabled_grenades.indexOf(\&quot;smoke grenade\&quot;) &amp;&amp; !getDropdownValue(val, 3))
        enabled_grenades.splice(enabled_grenades.indexOf(\&quot;smoke grenade\&quot;), 1);


    selection_cache = val;
    hand_cache = Entity.GetName(Entity.GetWeapon(Entity.GetLocalPlayer()));
}
function vec_mul_fl(a, b) {
    return [a[0] * b, a[1] * b, a[2] * b]
}

function calc_dist(a, b) {
    x = a[0] - b[0];
    y = a[1] - b[1];
    z = a[2] - b[2];
    return Math.sqrt(x * x + y * y + z * z);
}

// thanks depresso man (vex)
function move_to_target(destination, a) {
    var local = Entity.GetLocalPlayer()
    var origin = Entity.GetRenderOrigin(local)
    origin[2] = Entity.GetEyePosition(local)[2]
    var delta = [destination[0] - origin[0], destination[1] - origin[1], destination[2] - origin[2]]
    var yaw = Local.GetViewAngles()[1]
    var cmdMove = []

    cmdMove[0] = (((Math.sin(yaw / 180 * Math.PI)) * delta[1]) + (Math.cos(yaw / 180 * Math.PI) * delta[0])) * 13
    cmdMove[1] = (((Math.sin(yaw / 180 * Math.PI)) * delta[0]) + (Math.cos(yaw / 180 * Math.PI) * -delta[1])) * 13
    cmdMove[2] = 0

    var length = Math.sqrt(delta[0] * delta[0] + delta[1] * delta[1] + delta[2] * delta[2])
    var velo = Entity.GetProp(local, \&quot;DT_CSPlayer\&quot;, \&quot;m_vecVelocity[0]\&quot;)
    var length2 = Math.sqrt(velo[0] * velo[0] + velo[1] * velo[1] + velo[2] * velo[2])
    UserCMD.SetMovement(cmdMove);
    return length &lt; (a ? a : 1) &amp;&amp; (length2 &lt; 2 || a);
}

// thanks ed
function getDropdownValue(value, index) {
    var mask = 1 &lt;&lt; index;
    return value &amp; mask ? true : false;
}

/* Welcome */


/* OutlineString */

Render.OutlineString = function (x, y, a, s, c, f) {
    const alpha = Math.min(255, c[3]);


    Render.String(x + 1, y + 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x, y, a, s, c, f);
}
Render.OutlineeString = function (x, y, a, s, c, f) {
    const alpha = Math.min(255, c[3]);


    Render.String(x + 1, y + 1, a, s, [10, 10, 10, alpha], f);
    Render.String(x, y, a, s, c, f);
}
Render.OutlinesString = function (x, y, a, s, c, f) {
    const alpha = Math.min(255, c[3]);
    Render.String(x + 1, y - 0, a, s, [0, 0, 0, alpha], f);
    Render.String(x - 1, y + 0, a, s, [0, 0, 0, alpha], f);
    Render.String(x + 0, y - 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x + 0, y + 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x - 1, y - 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x - 1, y + 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x + 1, y - 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x + 1, y + 1, a, s, [0, 0, 0, alpha], f);
    Render.String(x, y, a, s, c, f);
}

const alert = {
    data: [],
    log: function (string, time) {
        const info = {
            string: string,
            time: time + Globals.Curtime(),
            alpha: 1,
            offset: 0
        }
        this.data[this.data.length] = info
    },
    render: function () {
        var jmas = Render.AddFont(\&quot;Verdana\&quot;, 5, 500);
        const ss123 = {
            x: Render.GetScreenSize()[0],
            y: Render.GetScreenSize()[1]
        }
        for (var index = 0; index &lt; alert.data.length; index++) {
            const data = alert.data[index];
            if (data.time &lt; Globals.Curtime()) {
                data.alpha -= 4 * Globals.Frametime();
                data.offset = data.alpha &lt; 0.6 ? data.offset + 1 : 0
            }
            offset = index != 0 &amp;&amp; alert.data[index - 1].offset &gt; 0 ? alert.data[index - 1].offset + index * -50 : data.offset + index * -50
            const textsize = Render.TextSize(data.string, 8)

            var reverseItemData = UI.GetColor(\&quot;Misc\&quot;, \&quot;JAVASCRIPT\&quot;, \&quot;Script items\&quot;, \&quot;Text color\&quot;);

            Render.FilledRect(ss123.x / 2 - textsize[0] / 2 - 5, ss123.y - 100 + textsize[1] / 3 - 10 + offset, textsize[0] + 10, textsize[1] + 10, [0, 0, 0, 150 * data.alpha])
            Render.OutlinesString(ss123.x / 2, ss123.y - 100 + offset, 1, data.string, [255, 255, 255, 255 * data.alpha], 8)
            Render.FilledRect(ss123.x / 2 - textsize[0] / 2 - 5, ss123.y - 100 + textsize[1] / 3 - 12 + offset, textsize[0] + 10, 2, [reverseItemData[0], reverseItemData[1], reverseItemData[2], 255 * data.alpha])
            if (data.alpha &lt; 0) {
                alert.data.splice(index)
            }
        }
    }
}

alert.log(\&quot;Thanks for using.\&quot;, 2.5);
alert.log(\&quot;Succesfully Loaded grenade helper.\&quot;, 2);



Cheat.RegisterCallback(\&quot;Draw\&quot;, \&quot;alert.render\&quot;);
Cheat.RegisterCallback(\&quot;CreateMove\&quot;, \&quot;check_visibility\&quot;);
Cheat.RegisterCallback(\&quot;Draw\&quot;, \&quot;menuopen\&quot;)
Cheat.RegisterCallback(\&quot;Draw\&quot;, \&quot;draw\&quot;);
Cheat.RegisterCallback(\&quot;CreateMove\&quot;, \&quot;move_on_key\&quot;);
Cheat.RegisterCallback(\&quot;player_connect_full\&quot;, \&quot;on_local_connect\&quot;);
Cheat.RegisterCallback(\&quot;CreateMove\&quot;, \&quot;checkDelays\&quot;);
Cheat.RegisterCallback(\&quot;CreateMove\&quot;, \&quot;onprintnades\&quot;);
Cheat.RegisterCallback(\&quot;Draw\&quot;, \&quot;Preset\&quot;);
Cheat.RegisterCallback(\&quot;Draw\&quot;, \&quot;Fpsboost\&quot;);
Cheat.RegisterCallback('CreateMove', 'animate_alpha');
от души <3
 
Сверху Снизу