var __author__ = 'Riyeko & Atti';
var __version__ = '2.0.3';
var bituexjyhm = 'Cornflex';


/* --- Menu tabs --- */
UI.AddLabel('Limitless V' + __version__ + ' by ' + __author__);
UI.AddLabel('----------------------------------------');
UI.AddMultiDropdown('Tabs:', ['Rage', 'Anti-Aim', 'Visuals', 'Misc']);

UI.AddLabel('---------------- Rage ----------------');
UI.AddCheckbox('Force doubletap');
UI.AddCheckbox('Fast doubletap');
UI.AddCheckbox('Dynamic doubletap damage');
UI.AddSliderInt('Doubletap hitchance', 0, 100);
UI.AddHotkey('Auto override');
UI.AddSliderInt('Auto mindmg', 0, 130);
UI.AddHotkey('Scout override');
UI.AddSliderInt('Scout mindmg', 0, 130);
UI.AddHotkey('AWP override');
UI.AddSliderInt('AWP mindmg', 0, 130);
UI.AddCheckbox('Safepoint on limbs');

UI.AddLabel('--------------- Anti-Aim --------------');
UI.AddCheckbox('Invert on shot');
UI.AddCheckbox('Invert on peek');
UI.AddCheckbox('Invert on hit');
UI.AddHotkey('Dodge bruteforce');
UI.AddCheckbox('E-peek');
UI.AddSliderInt('E-Peek distance', 0, 30);
UI.AddCheckbox('Movement based fakelag');

UI.AddLabel('--------------- Visuals ---------------');
UI.AddMultiDropdown('Indicators', ['EXPLOIT', 'FD', 'BAIM', 'DMG']);
UI.AddCheckbox('Hitlogs');
UI.AddCheckbox('Bombtimer');

UI.AddLabel('----------- Miscellaneous -----------');
UI.AddSliderInt('Noscope distance', 0, 5);
UI.AddSliderInt('Noscope hitchance', 0, 100);
UI.AddCheckbox('Auto manage exploits');
UI.AddCheckbox('Clantag');


function xhxpevphmg() {
    var selected = trurwoeinn('Tabs:').toString(2).split('').reverse().map(Number);

    lujzhxcfiq('---------------- Rage ----------------', selected[0]);
    lujzhxcfiq('Force doubletap', selected[0]);
    lujzhxcfiq('Dynamic doubletap damage', selected[0]);
    lujzhxcfiq('Doubletap hitchance', selected[0]);
    lujzhxcfiq('Fast doubletap', selected[0]);
    lujzhxcfiq('Auto override', selected[0]);
    lujzhxcfiq('Auto mindmg', selected[0]);
    lujzhxcfiq('Scout override', selected[0]);
    lujzhxcfiq('Scout mindmg', selected[0]);
    lujzhxcfiq('AWP override', selected[0]);
    lujzhxcfiq('AWP mindmg', selected[0]);
    lujzhxcfiq('Safepoint on limbs', selected[0]);



    lujzhxcfiq('--------------- Anti-Aim --------------', selected[1]);
    lujzhxcfiq('Invert on shot', selected[1]);
    lujzhxcfiq('Invert on peek', selected[1]);
    lujzhxcfiq('Invert on hit', selected[1]);
    lujzhxcfiq('Dodge bruteforce', selected[1]);
    lujzhxcfiq('E-peek', selected[1]);
    lujzhxcfiq('E-Peek distance', selected[1]);
    lujzhxcfiq('Movement based fakelag', selected[1]);

    lujzhxcfiq('--------------- Visuals ---------------', selected[2]);
    lujzhxcfiq('Indicators', selected[2]);
    lujzhxcfiq('Hitlogs', selected[2]);
    lujzhxcfiq('Bombtimer', selected[2]);


    lujzhxcfiq('----------- Miscellaneous -----------', selected[3]);
    lujzhxcfiq('Noscope distance', selected[3]);
    lujzhxcfiq('Noscope hitchance', selected[3]);
    lujzhxcfiq('Auto manage exploits', selected[3]);
    lujzhxcfiq('Clantag', selected[3]);
}
/* --- End menu tabs --- */



/* --- Utility functions --- */
function lujzhxcfiq(item, enabled) {
    UI.SetEnabled('Script items', item, enabled);
}

function trurwoeinn(item) {
    return UI.GetValue('Script items', item);
}

function brkvkukloq(hotkey) {
    return UI.IsHotkeyActive('Script items', hotkey);
}

function bpbttloyqv() {
    var tickbase = Entity.GetProp(ddbxeodhem.localPlayer, 'CCSPlayer', 'm_nTickBase');
    var curtime = Globals.TickInterval() * (tickbase - 14);

    var playerDelay = Entity.GetProp(ddbxeodhem.localPlayer, 'CCSPlayer', 'm_flNextAttack') - curtime;
    var weaponDelay = Entity.GetProp(ddbxeodhem.weapon, 'CBaseCombatWeapon', 'm_flNextPrimaryAttack') - curtime;
    var maxDelay = Math.max(playerDelay, weaponDelay);

    return maxDelay > 0 ? maxDelay : 0;
}

function fpvewloctx() {
    var enemies = Entity.GetEnemies();
    var distances = [];

    for (var e in enemies) {
        var current = enemies[e];
        if (Entity.IsValid(current) && !Entity.IsDormant(current) && Entity.IsAlive(current)) {
            distances.push([current, wsjapmzmtz(ddbxeodhem.localPlayerPos, Entity.GetHitboxPosition(current, 0))]);
        }
    }

    distances.sort(function(a, b) {
        return a[1] - b[1];
    });
    return distances.length === 0 || distances === [] ? undefined : distances[0][0];
}

function zwltxfzmcr() {
    var targetPos = Entity.GetHitboxPosition(ddbxeodhem.target, 3);
    var result = Trace.Bullet(ddbxeodhem.localPlayer, ddbxeodhem.target, ddbxeodhem.localPlayerPos, targetPos);
    return result[1] > 0;
}

function wsjapmzmtz(a, b) {
    return Math.floor(Math.sqrt(Math.pow(a[0] - b[0], 2) + Math.pow(a[1] - b[1], 2) + Math.pow(a[2] - b[2], 2)) * 0.0254);
}

function ktlcklrwbx(index) {
    var velocity = Entity.GetProp(index, 'CBasePlayer', 'm_vecVelocity[0]');
    return Math.sqrt(velocity[0] * velocity[0] + velocity[1] * velocity[1]);
}

function fdudemjqdh(value) {
    var r = 163;
    var g = 240;
    var b = 41;
    if (value < 0.10) {
        r += 770 * value;
        g -= 1200 * value;
    } else if (value < 0.6) {
        g -= 120 + 100 * value;
        r += 77;
    } else {
        return [240, 64, 41, 255];
    }
    return [r, g, b, 255];
}

function bxtejvpsnq(weapon) {
    switch (weapon) {
        case 'knife':
        case 'knife_t':
        case 'hegrenade':
        case 'smokegrenade':
        case 'molotov':
        case 'incgrenade':
        case 'flashbang':
        case 'decoy':
        case 'taser':
            return false;
        default:
            return true;
    }
}
/* --- End utility functions ---*/



/* --- Globals --- */
var ddbxeodhem = {
    'localPlayer': undefined,
    'localPlayerPos': undefined,
    'target': undefined,
    'newTarget': undefined,
    'shiftDelay': undefined,
    'weapon': undefined,
    'weaponName': undefined,
    'lastClantag': undefined,
    'hitchance': undefined,
    'safepoint': undefined,
    'exploit': undefined
};

var yekgephrhl = {
    'height': Render.GetScreenSize()[1],
    'black': [0, 0, 0, 255],
    'charcoal': [51, 51, 51, 255],
    'white': [255, 255, 255, 255],
    'green': [163, 240, 41, 255],
    'red': [237, 62, 76, 0],
    'orange': [255, 153, 0, 255]
};

function uiwsjqeiym() {
    ddbxeodhem.localPlayer = Entity.GetLocalPlayer();

    if (ddbxeodhem.localPlayer === undefined || !Entity.IsValid(ddbxeodhem.localPlayer) || !Entity.IsAlive(ddbxeodhem.localPlayer)) {
        ddbxeodhem.localPlayerPos = undefined;
        ddbxeodhem.target = undefined;
        ddbxeodhem.newTarget = undefined;
        ddbxeodhem.shiftDelay = undefined;
        ddbxeodhem.weapon = undefined;
        ddbxeodhem.weaponName = undefined;
        ddbxeodhem.hitchance = undefined;
        return;
    }
    ddbxeodhem.localPlayerPos = Entity.GetHitboxPosition(ddbxeodhem.localPlayer, 0);

    var currentTarget = Ragebot.GetTarget() ? Ragebot.GetTarget() : fpvewloctx();
    if (ddbxeodhem.target != currentTarget) ddbxeodhem.newTarget = true;
    ddbxeodhem.target = currentTarget;
    ddbxeodhem.weapon = Entity.GetWeapon(ddbxeodhem.localPlayer);
    ddbxeodhem.weaponName = Entity.GetName(ddbxeodhem.weapon);
    ddbxeodhem.shiftDelay = bpbttloyqv();
}
/* --- End ddbxeodhem --- */

function itxgvhcssb() {
    if (!UI.GetValue('Rage', 'Exploits', 'Doubletap') || !UI.IsHotkeyActive('Rage', 'Exploits', 'Doubletap') && UI.IsHotkeyActive('Anti-Aim', 'Extra', 'Fake duck') || ddbxeodhem.shiftDelay > 0)
        return;

    Ragebot.ForceTargetHitchance(ddbxeodhem.target, trurwoeinn('Doubletap hitchance'));
}


/* ---------- Script features ---------- */
function nqbfblyjym() {
    var selected = trurwoeinn('Indicators').toString(2).split('').reverse().map(Number);
    var font = Render.AddFont('Tahoma', 15, 600);

    if (selected[0]) {
        if (UI.GetValue('Rage', 'Exploits', 'Doubletap') && UI.IsHotkeyActive('Rage', 'Exploits', 'Doubletap') && !UI.IsHotkeyActive('Anti-Aim', 'Extra', 'Fake duck')) {
            Render.StringCustom(4, yekgephrhl.height - 120, 0, 'DT', yekgephrhl.black, font);
            Render.StringCustom(3, yekgephrhl.height - 120, 0, 'DT', fdudemjqdh(ddbxeodhem.shiftDelay), font);
        } else if (UI.GetValue('Rage', 'Exploits', 'Hide shots') && UI.IsHotkeyActive('Rage', 'Exploits', 'Hide shots')) {
            Render.StringCustom(4, yekgephrhl.height - 120, 0, 'HIDE', yekgephrhl.black, font);
            Render.StringCustom(3, yekgephrhl.height - 120, 0, 'HIDE', yekgephrhl.green, font);
        }
    }

    if (selected[1] && UI.IsHotkeyActive('Anti-Aim', 'Extra', 'Fake duck')) {
        Render.StringCustom(4, yekgephrhl.height - 100, 0, 'DUCK', yekgephrhl.black, font);
        Render.StringCustom(3, yekgephrhl.height - 100, 0, 'DUCK', yekgephrhl.green, font);
    }

    if (selected[2] && UI.IsHotkeyActive('Rage', 'General', 'Force body aim')) {
        Render.StringCustom(4, yekgephrhl.height - 80, 0, 'BODY', yekgephrhl.black, font);
        Render.StringCustom(3, yekgephrhl.height - 80, 0, 'BODY', yekgephrhl.green, font);
    }

    if (selected[3]) {
        if (ddbxeodhem.weaponName == 'ssg 08') {
            var damage = brkvkukloq('Scout override') ? trurwoeinn('Scout mindmg') : UI.GetValue('Rage', 'SCOUT', 'Targeting', 'Minimum damage');
            Render.StringCustom(3, yekgephrhl.height - 140, 0, "" + damage, yekgephrhl.black, font);
            Render.StringCustom(4, yekgephrhl.height - 140, 0, "" + damage, yekgephrhl.white, font);
        } else if (ddbxeodhem.weaponName == 'scar 20' || ddbxeodhem.weaponName == 'g3sg1') {
            var damage = brkvkukloq('Auto override') ? trurwoeinn('Auto mindmg') : UI.GetValue('Rage', 'AUTOSNIPER', 'Targeting', 'Minimum damage');
            Render.StringCustom(3, yekgephrhl.height - 140, 0, "" + damage, yekgephrhl.black, font);
            Render.StringCustom(4, yekgephrhl.height - 140, 0, "" + damage, yekgephrhl.white, font);
        } else if (ddbxeodhem.weaponName == 'awp') {
            var damage = brkvkukloq('AWP override') ? trurwoeinn('AWP mindmg') : UI.GetValue('Rage', 'AWP', 'Targeting', 'Minimum damage');
            Render.StringCustom(3, yekgephrhl.height - 140, 0, "" + damage, yekgephrhl.black, font);
            Render.StringCustom(4, yekgephrhl.height - 140, 0, "" + damage, yekgephrhl.white, font);
        }
    }
}

function aiycfnglky() {
    if (!trurwoeinn('Force doubletap') || UI.IsHotkeyActive('Anti-Aim', 'Extra', 'Fake duck'))
        return;

    if (Exploit.GetCharge() < 1)
        Ragebot.IgnoreTarget(Ragebot.GetTarget());
}

function vxckpnowzi() {
    if (!trurwoeinn('Dynamic doubletap damage') || !UI.IsHotkeyActive('Rage', 'GENERAL', 'Exploits', 'Doubletap') || UI.IsHotkeyActive('Anti-Aim', 'Extra', 'Fake duck') || brkvkukloq('Auto override') || !ddbxeodhem.newTarget)
        return;

    var targetHealth = Entity.GetProp(ddbxeodhem.target, 'CBasePlayer', 'm_iHealth');
    Ragebot.ForceTargetMinimumDamage(ddbxeodhem.target, targetHealth / 2 + 1);
}

function pkixuglzng() {
    if (!trurwoeinn('Fast doubletap') || UI.IsHotkeyActive('Anti-Aim', 'Extra', 'Fake duck'))
        return;

    var charge = Exploit.GetCharge();
    Exploit[(charge !== 1 ? 'Enable' : 'Disable') + 'Recharge']();

    if (ddbxeodhem.shiftDelay === 0 && charge !== 1)
        Exploit.DisableRecharge();

    Exploit.OverrideTolerance(0);
    Exploit.OverrideShift(14);
}

function ndhwuesobc() {
    if (!brkvkukloq('Scout override') || ddbxeodhem.weaponName != 'ssg 08')
        return;

    Ragebot.ForceTargetMinimumDamage(ddbxeodhem.target, trurwoeinn('Scout mindmg'));
}

function emajgfbyrz() {
    if (!brkvkukloq('Auto override') || (ddbxeodhem.weaponName != 'scar 20' && ddbxeodhem.weaponName != 'g3sg1'))
        return;

    Ragebot.ForceTargetMinimumDamage(ddbxeodhem.target, trurwoeinn('Auto mindmg'));
}

function ahwenaxuef() {
    if (!brkvkukloq('AWP override') || ddbxeodhem.weaponName != 'awp')
        return;

    Ragebot.ForceTargetMinimumDamage(ddbxeodhem.target, trurwoeinn('AWP mindmg'));
}

function kjgamsznhr() {
    if (!trurwoeinn('Invert on shot') || AntiAim.GetOverride() || !Entity.IsLocalPlayer(Entity.GetEntityFromUserID(Event.GetInt('userid'))))
        return;

    UI.ToggleHotkey('Anti-Aim', 'Fake angles', 'Inverter');
}

function lyymxwangd() {
    if (!trurwoeinn('Invert on peek') || AntiAim.GetOverride() || !ddbxeodhem.newTarget || !zwltxfzmcr())
        return;

    UI.ToggleHotkey('Anti-Aim', 'Fake angles', 'Inverter');
    ddbxeodhem.newTarget = false;
}

function ysapeykogm() {
    if (!trurwoeinn('Invert on hit') || AntiAim.GetOverride() || !Entity.IsLocalPlayer(Entity.GetEntityFromUserID(Event.GetInt('userid'))))
        return;

    UI.ToggleHotkey('Anti-Aim', 'Fake angles', 'Inverter');
}

function cqqnjmsqin() {
    if (!brkvkukloq('Dodge bruteforce')) {
        AntiAim.SetOverride(0);
        return;
    }

    if (!AntiAim.GetOverride()) AntiAim.SetOverride(1);
    AntiAim.SetFakeOffset(0);
    AntiAim.SetRealOffset(-21);
    AntiAim.SetLBYOffset(17);
}

function smjlpwtrnw() {
    if (!trurwoeinn('E-peek') || AntiAim.GetOverride() || !zwltxfzmcr() || wsjapmzmtz(Entity.GetRenderOrigin(ddbxeodhem.localPlayer), Entity.GetRenderOrigin(ddbxeodhem.target)) > trurwoeinn('E-Peek distance')) {
        UI.SetValue('Anti-Aim', 'Rage Anti-Aim', 'Enabled', true);
        return;
    }

    UI.SetValue('Anti-Aim', 'Rage Anti-Aim', 'Enabled', false);
}

function nqixrtnjkd() {
    if (!trurwoeinn('Movement based fakelag'))
        return;

    var velocity = ktlcklrwbx(ddbxeodhem.localPlayer);
    UI.SetValue('Anti-Aim', 'Fake-Lag', 'Limit', velocity / 300 * 16);
}

function wylcljykof() {
    if (!trurwoeinn('Auto manage exploits'))
        return;

    if (ddbxeodhem.weaponName == 'ssg 08' || ddbxeodhem.weaponName == 'awp' || ddbxeodhem.weaponName == 'r8 revolver') {
        UI.SetValue('Rage', 'Exploits', 'Hide shots', true);
        UI.SetValue('Misc', 'Miscellaneous', 'Extended backtracking', true);
        UI.SetValue('Rage', 'Exploits', 'Doubletap', false);
    } else {
        UI.SetValue('Rage', 'Exploits', 'Hide shots', false);
        UI.SetValue('Rage', 'Exploits', 'Doubletap', true);
        UI.SetValue('Misc', 'Miscellaneous', 'Extended backtracking', false);
    }
}

function qefpbzaopl() {
    if (!trurwoeinn('Safepoint on limbs'))
        return;

    Ragebot.ForceHitboxSafety(9);
    Ragebot.ForceHitboxSafety(10);
    Ragebot.ForceHitboxSafety(11);
    Ragebot.ForceHitboxSafety(12);
}

function cdpmioeozr() {
    UI.SetValue('Misc', 'PERFORMANCE & INFORMATION', 'Performance', 'Visual interpolation', (Entity.IsAlive(ddbxeodhem.localPlayer) ? 0 : 14));
}

function egzuwdrojo() {
    if (trurwoeinn('Noscope distance') === 0 || !(ddbxeodhem.weaponName == 'scar 20' || ddbxeodhem.weaponName == 'g3sg1') || wsjapmzmtz(Entity.GetRenderOrigin(ddbxeodhem.localPlayer), Entity.GetRenderOrigin(ddbxeodhem.target)) > trurwoeinn('Noscope distance')) {
        UI.SetValue('Rage', 'GENERAL', 'General', 'Auto scope', true);
        return;
    }

    UI.SetValue('Rage', 'GENERAL', 'General', 'Auto scope', false);
    Ragebot.ForceTargetHitchance(ddbxeodhem.target, trurwoeinn('Noscope hitchance'));
}

function qpbysdyexh() {
    if (!trurwoeinn('Bombtimer'))
        return;

    var c4 = Entity.GetEntitiesByClassID(128)[0];
    if (!c4 || !Entity.IsValid(c4) || !Entity.GetProp(c4, 'CPlantedC4', 'm_bBombTicking'))
        return;

    var bombToScreen = Render.WorldToScreen(Entity.GetRenderOrigin(c4));
    var timer = (Entity.GetProp(c4, 'CPlantedC4', 'm_flC4Blow') - Globals.Curtime()).toFixed(1);
    if (timer <= 0) {
        return;
    } else {
        Render.FilledCircle(bombToScreen[0], bombToScreen[1], 20, yekgephrhl.charcoal);
        Render.Circle(bombToScreen[0], bombToScreen[1], 19, yekgephrhl.orange);
        Render.StringCustom(bombToScreen[0] - 13, bombToScreen[1] - 8, 0, (timer < 10 ? '0' : '') + timer, yekgephrhl.orange, Render.AddFont('Tahoma', 9, 600));
    }
}

function qlvjyncngc() {
    if (!trurwoeinn('Clantag'))
        return;

    var index = parseInt(Globals.Curtime() * Math.PI) % 25;
    if (index == ddbxeodhem.lastClantag)
        return;

    ddbxeodhem.lastClantag = index;
    switch (index) {
        case 0:
            Local.SetClanTag('L');
            break;
        case 1:
            Local.SetClanTag('Li');
            break;
        case 2:
            Local.SetClanTag('Lim');
            break;
        case 3:
            Local.SetClanTag('Limit');
            break;
        case 4:
            Local.SetClanTag('Limitl');
            break;
        case 5:
            Local.SetClanTag('Limitle');
            break;
        case 6:
            Local.SetClanTag('Limitles');
            break;
        case 7:
            Local.SetClanTag('Limitless');
            break;
        case 8:
            Local.SetClanTag('Limitless ');
            break;
        case 9:
            Local.SetClanTag('Limitless ');
            break;
        case 10:
            Local.SetClanTag('Limitless ');
            break;
        case 11:
            Local.SetClanTag('Limitless ');
            break;
        case 12:
            Local.SetClanTag('Limitless ');
            break;
        case 13:
            Local.SetClanTag('Limitless ');
            break;
        case 14:
            Local.SetClanTag('imitless');
            break;
        case 15:
            Local.SetClanTag('mitless ');
            break;
        case 16:
            Local.SetClanTag('itless ');
            break;
        case 17:
            Local.SetClanTag('tless ');
            break;
        case 18:
            Local.SetClanTag('less ');
            break;
        case 19:
            Local.SetClanTag('ess ');
            break;
        case 20:
            Local.SetClanTag('ss ');
            break;
        case 21:
            Local.SetClanTag('s ');
            break;
        case 22:
            Local.SetClanTag(' ');
            break;
        case 23:
            Local.SetClanTag(' ');
            break;
        case 24:
            Local.SetClanTag(' ');
            break;
        case 25:
            Local.SetClanTag(' ');
            break;
    }
}

var lmqzdazycv = [
    'generic',
    'head',
    'chest',
    'stomach',
    'left arm',
    'right arm',
    'left leg',
    'right leg',
    'body'
];

function gfgwrmoyvg() {
    if (!trurwoeinn('Hitlogs'))
        return;

    if (!Entity.IsLocalPlayer(Entity.GetEntityFromUserID(Event.GetInt('attacker'))))
        return;

    var victim = Entity.GetName(Entity.GetEntityFromUserID(Event.GetInt('userid')));
    var weapon = Event.GetString('weapon');
    var damage = Event.GetInt('dmg_health');
    var hitgroup = lmqzdazycv[Event.GetInt('hitgroup')];
    Global.PrintChat(' [Limitless] hurt  ' + victim + ' for ' + damage + ' in ' + hitgroup + (bxtejvpsnq(weapon) ? '\n (HC: ' + ddbxeodhem.hitchance + ' | EX: ' + ddbxeodhem.exploit + ' | SP: ' + ddbxeodhem.safepoint + ')' : ''));
}
/* --- End script features --- */



/* --- Callbacks --- */
function jjavotiapr() {
    uiwsjqeiym();

    if (ddbxeodhem.localPlayer === undefined || !Entity.IsValid(ddbxeodhem.localPlayer))
        return;

    if (!Entity.IsAlive(ddbxeodhem.localPlayer))
        return;

    cqqnjmsqin();
    pkixuglzng();
    nqixrtnjkd();
    wylcljykof();

    if (ddbxeodhem.target === undefined || !Entity.IsValid(ddbxeodhem.target) || !Entity.IsAlive(ddbxeodhem.target) || Entity.IsDormant(ddbxeodhem.target))
        return;

    emajgfbyrz();
    ndhwuesobc();
    ahwenaxuef();
    aiycfnglky();
    vxckpnowzi();
    egzuwdrojo();
    smjlpwtrnw();
    lyymxwangd();
    qefpbzaopl();
    itxgvhcssb();
}
Cheat.RegisterCallback('CreateMove', 'jjavotiapr');

function bkqbkregui() {
    xhxpevphmg();
	
    ddbxeodhem.localPlayer = Entity.GetLocalPlayer();
    if (ddbxeodhem.localPlayer === undefined || !Entity.IsValid(ddbxeodhem.localPlayer))
        return;
	
	qlvjyncngc();
    cdpmioeozr();
	
	if (!Entity.IsAlive(ddbxeodhem.localPlayer))
		return;

    nqbfblyjym();
    qpbysdyexh();
}
Cheat.RegisterCallback('Draw', 'bkqbkregui');

function busmlbkqin() {
    kjgamsznhr();
}
Global.RegisterCallback('bullet_impact', 'busmlbkqin');

function hbtpkikryc() {
    gfgwrmoyvg();
    ysapeykogm();
}
Global.RegisterCallback('player_hurt', 'hbtpkikryc');

function tsuhsvmjyz() {
    if (!trurwoeinn('Hitlogs'))
        return;

    ddbxeodhem.hitchance = Event.GetInt('hitchance');
    ddbxeodhem.safepoint = Event.GetInt('safepoint');
    ddbxeodhem.exploit = Event.GetInt('exploit');
}
Cheat.RegisterCallback('ragebot_fire', 'tsuhsvmjyz');

function azautdnyab() {
    AntiAim.SetOverride(0);
    Exploit.EnableRecharge();
    UI.SetValue('Rage', 'GENERAL', 'General', 'Auto scope', true);
    if (UI.IsHotkeyActive('Anti-Aim', 'Fake angles', 'Inverter')) UI.ToggleHotkey('Anti-Aim', 'Fake angles', 'Inverter');
}
Cheat.RegisterCallback('round_prestart', 'azautdnyab');
Cheat.RegisterCallback('Unload', 'azautdnyab');
/* --- End callbacks --- */