Crack Lua Lunarity.lua | Neverlose

Начинающий
Статус
Оффлайн
Регистрация
28 Авг 2019
Сообщения
195
Реакции[?]
14
Поинты[?]
0

Данный скрипт не проверялся модераторами, так как является кряком приватной LUA и в нём может присутствовать обфускация. Даже известные пользователи могут выложить вредоносный скрипт под видом крякнутого, поэтому любое использование исключительно на свой страх и риск.

Хз паста какая-та человек выдаёт луашку через гифайтем+луа не может релизнуться даже xd


code_language.lua:
-- * library
local Library = {
  urlmon  = ffi.load 'UrlMon',
  wininet = ffi.load 'WinInet',
}

-- * library interaction
ffi.cdef[[
   // typedefs
  typedef void VOID;
  typedef bool BOOL;
  typedef int INT;
  typedef long LONG;
  typedef float FLOAT;
  typedef char CHAR;

  typedef VOID *PVOID;
  typedef PVOID HANDLE;
  typedef const VOID *LPCVOID;
  typedef unsigned int SIZE_T;
  typedef INT *FARPROC;
  typedef unsigned long DWORD;
  typedef DWORD ULONG_PTR;
  typedef unsigned char BYTE;
  typedef const CHAR *LPCSTR;

   // structures
  typedef struct {
    uint8_t r, g, b, a;
  } color_t;

  typedef struct {
    CHAR  pad[8];
    FLOAT m_flStart;
    FLOAT m_flEnd;
    FLOAT m_flState;
  } poseparameter_t;

   // fn (winuser)
  BOOL CreateDirectoryA(LPCSTR lpPathName, HANDLE lpSecurityAttributes);
  BOOL DeleteUrlCacheEntryA(LPCSTR lpszUrlName);
  HANDLE URLDownloadToFileA(HANDLE pCaller, LPCSTR szURL, LPCSTR szFileName, INT dwReserved, INT lpfnCB);
]]

-- * engine stuff
local engine_stuff = {
  type = {
    interface = ffi.typeof('uintptr_t**') -- * same as PVOID*
  },

  interfaces = {
    client = {
      entitylist = Utils.CreateInterface('client.dll', 'VClientEntityList003') or error('[Lunarity - Debug] Can\'t create interface: VClientEntityList003'),
    },
    vstdlib = {
      enginecvar = Utils.CreateInterface('vstdlib.dll', 'VEngineCvar007') or error('[Lunarity - Debug] Can\'t create interface: VEngineCvar007'),
    },
  },

  patterns = {
    client = {
      poseparameter = Utils.PatternScan('client.dll', '55 8B EC 8B 45 08 57 8B F9 8B 4F 04 85 C9 75 15') or error('[Lunarity - Debug] Can\'t find: Poseparameter pattern'),
    },
  },
};


-- * virtual method table
local vmt = {
  entry = function(self, instance, index, typestring)
    local interface = ffi.cast(engine_stuff.type.interface, instance)[0];
    return ffi.cast(typestring, interface[index]);
  end,

  thunk = function(self, index, typestring)
    local typeof = ffi.typeof(typestring);

    return function(instance, ...)
      assert(instance ~= nil);

      local fnptr = self:entry(instance, index, typeof) or error('invalid vtable');
      return fnptr(instance, ...)
    end
  end,

  bind = function(self, instance, index, typestring)
    local fnptr = self:thunk(index, typestring);

    return function(...)
      return fnptr(instance, ...)
    end
  end,
};

-- * ffi helpers
local FFI_Helpers = {
  Client = {
    Cvar = (function()
      local enginecvar = ffi.cast(engine_stuff.type.interface, engine_stuff.interfaces.vstdlib.enginecvar);
      local color_print = vmt:bind(enginecvar, 25, 'HANDLE(__cdecl*)(HANDLE, const color_t&, LPCSTR, ...)')

      local color_print = function(color, text)
        if color == nil then
          return end

        local color_t = ffi.new('color_t')
        color_t.r, color_t.g, color_t.b, color_t.a = color.r * 255, color.g * 255, color.b * 255, color.a * 255

        color_print(color_t, text)
      end

      local mutli_color_print = function(...)
        local arguments = {...};
        local length = #arguments
        if length % 2 ~= 0 then
          error 'PEDIC'
        end

        length = length /2
        for index = 1, length do
          local text = arguments[index]
          local color = arguments[length + index]

          color_print(color, text)
        end
      end

      return {
        color_print = color_print,
        mutli_color_print = mutli_color_print,
      }
    end)(),

    EntityList = (function()
      local entitylist = ffi.cast(engine_stuff.type.interface, engine_stuff.interfaces.client.entitylist);

      return {
        get_client_entity = vmt:bind(entitylist, 3, 'HANDLE(__thiscall*)(HANDLE, INT)')
      }
    end)(),

    get_poseparameter = ffi.cast('poseparameter_t*(__thiscall*)(HANDLE, INT)', engine_stuff.patterns.client.poseparameter)
  },

  Explorer = {
    CreateFolder = function(self, Path)
      ffi.C.CreateDirectoryA(Path, NULL)
    end,
  
    DownloadUrlToFile = function(self, URL, Path)
      Library.wininet.DeleteUrlCacheEntryA(URL); -- * Clean cache
      Library.urlmon.URLDownloadToFileA(nil, URL, Path, 0, 0); -- * Download
    end,
  },
}

FFI_Helpers.Explorer:CreateFolder('./nl/Lunarity/')
FFI_Helpers.Explorer:CreateFolder('./nl/Lunarity/Fonts/')

local Math_Helpers = {
  normalize_yaw = function(self, Yaw)
    while (Yaw > 180.0) do
      Yaw = Yaw - 360.0 end

    while (Yaw < -180.0) do
      Yaw = Yaw + 360.0 end

    return Yaw
  end,

  linear_interpolation = function(self, Start, End, Value)
    return Start + (End - Start) * Value
  end,

  closest_point = function(self, position, start, _end)
    local To  = position - start
    local Dir = _end - start
    local Length = #Dir

    Dir = Dir / Length

    local rangeAlong = Dir:Dot(To)
    if rangeAlong < 0.0 then
      return start end

    if rangeAlong > Length then
      return _end end

    return start + (Dir * Vector.new(rangeAlong, rangeAlong, rangeAlong))
  end,

  breathe = function(self, speed)
    speed = speed or 2.0

    local Speed = GlobalVars.realtime * speed
    local Anim  = Speed % (math.pi * 2.0)
    Anim        = math.abs(-math.pi + Anim)

    return math.sin(Anim)
  end,
}

local CheatVars = {
  ['Aimbot'] = {
    Ragebot = {
      ['Main'] = {
        Enable           = Menu.FindVar('Aimbot', 'Ragebot', 'Main', 'Enable Ragebot'),
        SilentAim        = Menu.FindVar('Aimbot', 'Ragebot', 'Main', 'Silent Aim'),
        Fov              = Menu.FindVar('Aimbot', 'Ragebot', 'Main', 'FOV'),
        OverrideResolver = Menu.FindVar('Aimbot', 'Ragebot', 'Main', 'Override Resolver'),
      },

      ['Accuracy'] = {
        Autowall         = Menu.FindVar('Aimbot', 'Ragebot', 'Accuracy', 'Autowall'),
        HitChance        = Menu.FindVar('Aimbot', 'Ragebot', 'Accuracy', 'Hit Chance'),
        MinimumDamage    = Menu.FindVar('Aimbot', 'Ragebot', 'Accuracy', 'Minimum Damage'),
        StaticPointScale = Menu.FindVar('Aimbot', 'Ragebot', 'Accuracy', 'Static Point Scale'),
        HeadScale        = Menu.FindVar('Aimbot', 'Ragebot', 'Accuracy', 'Head Scale'),
        BodyScale        = Menu.FindVar('Aimbot', 'Ragebot', 'Accuracy', 'Body Scale'),
      },

      ['Exploits'] = {
        HideShots = Menu.FindVar('Aimbot', 'Ragebot', 'Exploits', 'Hide Shots'),
        DoubleTap = Menu.FindVar('Aimbot', 'Ragebot', 'Exploits', 'Double Tap'),
      },

      ['Misc'] = {
        BodyAim    = Menu.FindVar('Aimbot', 'Ragebot', 'Misc', 'Body Aim'),
        SafePoints = Menu.FindVar('Aimbot', 'Ragebot', 'Misc', 'Safe Points'),
      },
    },

    AntiAim = {
      ['Main'] = {
        Enable      = Menu.FindVar('Aimbot', 'Anti Aim', 'Main', 'Enable Anti Aim'),
        Pitch       = Menu.FindVar('Aimbot', 'Anti Aim', 'Main', 'Pitch'),
        YawBase     = Menu.FindVar('Aimbot', 'Anti Aim', 'Main', 'Yaw Base'),
        YawAdd      = Menu.FindVar('Aimbot', 'Anti Aim', 'Main', 'Yaw Add'),
        YawModifier    = Menu.FindVar('Aimbot', 'Anti Aim', 'Main', 'Yaw Modifier'),
        ModifierDegree = Menu.FindVar('Aimbot', 'Anti Aim', 'Main', 'Modifier Degree'),
      },

      ['FakeLag'] = {
        Enable = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Lag', 'Enable Fake Lag'),
        Limit  = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Lag', 'Limit'),
        Random = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Lag', 'Randomization'),
      },

      ['FakeAngle'] = {
        Enable             = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Enable Fake Angle'),
        Inverter           = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Inverter'),
        LeftLimit          = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Left Limit'),
        RightLimit         = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Right Limit'),
        FakeOptions        = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Fake Options'),
        LBYMode            = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'LBY Mode'),
        FreestandingDesync = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Freestanding Desync'),
        DesyncOnShot       = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Desync On Shot'),
      },

      ['Misc'] = {
        SlowWalk    = Menu.FindVar('Aimbot', 'Anti Aim', 'Misc', 'Slow Walk'),
        LegMovement = Menu.FindVar('Aimbot', 'Anti Aim', 'Misc', 'Leg Movement'),
        FakeDuck    = Menu.FindVar('Aimbot', 'Anti Aim', 'Misc', 'Fake Duck'),
      },
    },
  },
}

local _Cheat = {
  Patterns = {
    Clantag = ffi.cast('INT(__fastcall*)(LPCSTR, LPCSTR)', Utils.PatternScan('engine.dll', '53 56 57 8B DA 8B F9 FF 15') or error('Missing clantag interface.')),
  },

  Fonts = {
    VerdanaBold = {
      [11] = Render.InitFont('Verdana', 11, {'b'}),
    },
  
    SmallestPixel7 = {
      [10] = Render.InitFont('Smallest Pixel-7', 10),
    },

    ActaSymbolsW95Arrows = (function()
      local File = './nl/Lunarity/Fonts/Acta Symbols W95 Arrows.ttf'
      FFI_Helpers.Explorer:DownloadUrlToFile(
        'https://raw.githubusercontent.com/qhouz/Fonts/main/Drainyaw/Acta Symbols W95 Arrows.ttf',
        File
      )

      return {
        [21] = Render.InitFont(File, 21),
      }
    end)(),
  },

  Stuff = {
    Screen = EngineClient.GetScreenSize(),

    Status = 'BETA',
    Build = 'alpha',
    Version = 2.4,
    Username = Cheat.GetCheatUserName(),
  },

  Flags = {
    Player = {
      FL_ONGROUND   = bit.lshift(1, 0),
      FL_DUCKING    = bit.lshift(1, 1),
      FL_WATERJUMP  = bit.lshift(1, 3),
      FL_ONTRAIN    = bit.lshift(1, 4),
      FL_INRAIN     = bit.lshift(1, 5),
      FL_FROZEN     = bit.lshift(1, 6),
      FL_ATCONTROLS = bit.lshift(1, 7),
      FL_CLIENT     = bit.lshift(1, 8),
      FL_FAKECLIENT = bit.lshift(1, 9),
      FL_INWATER    = bit.lshift(1, 10),
    },

    States = {
      IN_ATTACK    = bit.lshift(1, 0),
      IN_JUMP      = bit.lshift(1, 1),
      IN_DUCK      = bit.lshift(1, 2),
      IN_FORWARD   = bit.lshift(1, 3),
      IN_BACK      = bit.lshift(1, 4),
      IN_USE       = bit.lshift(1, 5),
      IN_CANCEL    = bit.lshift(1, 6),
      IN_LEFT      = bit.lshift(1, 7),
      IN_RIGHT     = bit.lshift(1, 8),
      IN_MOVELEFT  = bit.lshift(1, 9),
      IN_MOVERIGHT = bit.lshift(1, 10),
      IN_ATTACK2   = bit.lshift(1, 11),
      IN_RUN       = bit.lshift(1, 12),
      IN_RELOAD    = bit.lshift(1, 13),
      IN_ALT1      = bit.lshift(1, 14),
      IN_ALT2      = bit.lshift(1, 15),
      IN_SCORE     = bit.lshift(1, 16),
      IN_SPEED     = bit.lshift(1, 17),
      IN_WALK      = bit.lshift(1, 18),
      IN_ZOOM      = bit.lshift(1, 19),
      IN_WEAPON1   = bit.lshift(1, 20),
      IN_WEAPON2   = bit.lshift(1, 21),
      IN_BULLRUSH  = bit.lshift(1, 22),
    },
  },

  Helpers = {
    RollAngle2Vector = function(self, QAngle)
      local forward, right = Vector.new(), Vector.new()

      local pitch, yaw, roll = math.rad(QAngle.pitch), math.rad(QAngle.yaw), math.rad(QAngle.roll)

      local cp, sp = math.cos(pitch), math.sin(pitch)
      local cy, sy = math.cos(yaw), math.sin(yaw)
      local cr, sr = math.cos(roll), math.sin(roll)

      forward.x = cp * cy
      forward.y = cp * sy
      forward.z = -sp

      right.x = (-1 * sr * sp * cy) + (-1 * cr * -sy)
      right.y = (-1 * sr * sp * sy) + (-1 * cr * cy)
      right.z = -1 * sr * cp

      return forward, right
    end,

    RollMovementFix = function(self, cmd)
      local frL, riL = self:RollAngle2Vector(QAngle.new(0, cmd.viewangles.yaw, 0))
      local frC, riC = self:RollAngle2Vector(cmd.viewangles)

      frL.z = 0
      riL.z = 0
      frC.z = 0
      riC.z = 0

      frL = frL / frL:Length()
      riL = riL / riL:Length()
      frC = frC / frC:Length()
      riC = riC / riC:Length()

      local Move = Vector2.new(cmd.forwardmove, cmd.sidemove)
      local Coord = (frL * Move.x) + (riL * Move.y);

      cmd.sidemove = (frC.x * Coord.y - frC.y * Coord.x) / (riC.y * frC.x - riC.x * frC.y)
      cmd.forwardmove = (riC.y * Coord.x - riC.x * Coord.y) / (riC.y * frC.x - riC.x * frC.y)
    end,

    CreateClantag = function(self, Text)
      local Animation = {};

      local Length = #Text
      for index = 1, Length do
        local Left = Text:sub(index, Length)

        local index = index - 1
        local Right = Text:sub(0, index)

        local Text = Left .. ' ' .. Right
        table.insert(Animation, Text)
      end

      return Animation
    end,

    GetCurtime = function(self, Offset)
      return GlobalVars.curtime - (Offset * GlobalVars.interval_per_tick)
    end,

    CanFire = function(self)
      local Player = EntityList.GetLocalPlayer()
      local Weapon = Player:GetActiveWeapon()

      if not Player or not Weapon then
        return false end

      if self:GetCurtime(-16) < Player:GetProp('m_flNextAttack') then
        return false end
    
      if self:GetCurtime(0) < Weapon:GetProp('m_flNextPrimaryAttack') then
        return false end

      return true
    end,

    GetPlayerState = function(self)
      local Player = EntityList.GetLocalPlayer()
      if not Player then
        return end

      -- return -1;

      if bit.band(Player:GetProp('m_fFlags'), 1) == 0 then
        return 4
      end

      if Player:GetProp('m_flDuckAmount') == 1.0 then
        return 2
      end

      if #Player:GetProp('m_vecVelocity') > 10.0 then
        if CheatVars.Aimbot.AntiAim.Misc.SlowWalk:Get() then
          return 5
        end
        return 1
      end

      return 3
    end,
  },
}

local Menu_Handler = {
  -- * Tab Control
  List = {},

  Enable_Controller = Menu.Switch('Lunarity.lua','Enable', false),
  Combo_Controller = Menu.Combo('Lunarity.lua', 'Tab', {''}, 0),
  Text_5th = Menu.Text('Lunarity.lua', '-----------------------------------------------'),

  Grid_Separator   = Menu.Switch('', '', false):SetVisible(false),

  Reference = {},

  Update = function(self)
    -- * Force update all cheat variables
    for _, Tab in pairs(self.Reference) do
      for _, Table in pairs(Tab) do
        Table.Variable:SetVisible(Table.Condition());
      end
    end
  end,

  New = function(self, Tab, Name, CheatVar, Condition)
    -- * If condition is empty
    Condition = Condition or function(...)
      return true end

    -- * If tab not found
    if self.Reference[Tab] == nil then
      self.Reference[Tab] = {};

      -- * Updating Combo controller
      table.insert(self.List, Tab)
      self.Combo_Controller:UpdateList(self.List)
    end

    -- * If element already exist
    if self.Reference[Tab][Name] ~= nil then
      error(
        ('Already exist element in [%s] tab with [%s] name!'):format(Tab, Name),
        2
      )
    end

    -- * Creating reference
    self.Reference[Tab][Name] = {
      Variable  = CheatVar,
      Condition = function()
        return self.Enable_Controller:Get()
        and (Tab == self.List[self.Combo_Controller:Get() + 1])
        and Condition(self.Reference)
      end,
    }
  
    -- * Force update
    CheatVar:RegisterCallback(function()
      self:Update()
    end)
    self:Update()

    -- * Return cheat variable
    return CheatVar
  end,

  GetMultiCombo = function(self, _bit, index)
    local mask = bit.lshift(1, index) -- * 1 << index
    return bit.band(_bit, mask) ~= 0
  end,

  SetMultiCombo = function(self, ui, index)
    local bitwise = 0x0;
  
    if type(index) ~= 'table' then
      bitwise = index;
    else
      for _, value in pairs(index) do
        local mask = bit.lshift(1, value); -- 1 << index
        bitwise = bit.bor(bitwise, mask); -- bitwise | mask
      end
    end

    if type(ui) ~= 'number' then
      ui:Set(bitwise)
    end

    return bitwise
  end
}

local _Render = {
  Colors = {
    Transperent = Color.new(1.0, 1.0, 1.0, 0.25),

    Black = Color.new(0.05, 0.05, 0.05, 0.5),
    White = Color.new(1.0, 1.0, 1.0),

    Main = Color.new(0.403, 0.509, 0.772),
  },

  Stuff = {
    Indicators = {
      Animations = {
        DT = {
          Value = 0.0,
        },
      },
      State = {
        {Preset = '/RUNNING/', Colored = false},
        {Preset = '/CROUCH/',  Colored = false},
        {Preset = '/STANDING/',    Colored = false},
        {Preset = '/AIR/', Colored = false},
        {Preset = '/SLOW-WALK/',  Colored = true},
      },
    },
  },

  Helpers = {
    -- * [Render] ColorCopy
    ColorCopy = function(self, Color)
      return Color.new(Color.r, Color.g, Color.b, Color.a)
    end,

    -- * [Render] MultiText
    CalcMultiTextSize = function(self, Table, ...)
      local Position = Vector2.new(0.0, 0.0)
      local arguments = {...}
      local fonts = {}

      if arguments[1] then
        table.insert(fonts, arguments[1])
      end

      if arguments[2] then
        table.insert(fonts, arguments[2])
      end

      for _, Key in pairs(Table) do
        local Size = Render.CalcTextSize(Key.Text, unpack(fonts))
        Position.x = Position.x + Size.x
        if Size.y > Position.y then
          Position.y = Size.y
        end
      end

      return Position
    end,

    -- * [Render] MultiText
    MultiText = function(self, Table, Position, ...)
      local arguments = {...}
      local fonts = {}

      if arguments[1] then
        table.insert(fonts, arguments[1])
      end

      if arguments[2] and type(arguments[2]) ~= 'boolean' then
        table.insert(fonts, arguments[2])
      end

      for _, Key in pairs(Table) do
        Render.Text(Key.Text, Position, Key.Color, ...)
        Position.x = Position.x + Render.CalcTextSize(Key.Text, unpack(fonts)).x
      end
    end,
  }
}

local Lua_Elements = {
  ['Anti-aim'] = {
    Preset = Menu_Handler:New('Anti-aim', 'Preset', Menu.Combo('Lunarity.lua', 'Preset', {'Stable', 'Alpha', 'Agressive'}, 0.0)),
    Global = Menu_Handler:New('Anti-aim', 'Global', Menu.MultiCombo('Lunarity.lua', 'Anti-Aim', {'Adaptive Fake Lags', 'Manual Anti-aims', 'Anti-aim on use', 'Edge yaw', 'Teleport in air', 'Roll'}, 0.0)),
    InAir = Menu_Handler:New('Anti-aim', 'In Air', Menu.Combo('Lunarity.lua', 'In Air Anti-Aim', {'Static', 'Jitter'}, 0.0)),
  },

  ['Anti-bruteforce'] = {
    Global = Menu_Handler:New('Anti-bruteforce', 'Global', Menu.MultiCombo('Lunarity.lua', 'Anti-bruteforce on', {'Running', 'Crouch', 'Stand', 'Aerobic', 'Slow motion'}, 0.0)),
  },

  ['Visuals'] = {
    _1st_Color = Menu_Handler:New('Visuals', 'Main Color', Menu.ColorEdit('Lunarity.lua', 'Main Color', _Render.Colors.Main)),
    _2nd_Color = Menu_Handler:New('Visuals', 'Second Color', Menu.ColorEdit('Lunarity.lua', 'Second Color', _Render.Colors.White)),
  },

  ['Other'] = {
    Global = Menu_Handler:New('Other', 'Global', Menu.MultiCombo('Lunarity.lua', 'Other', {'Clantag', 'Anim. Breaker', 'Kill Say'}, 0.0)),
    Config = Menu_Handler:New('Other', 'Config', Menu.Button('Lunarity.lua', 'Load Default Config', 'Load Default Config')),
  },
}

local Memory = {
  Helpers = {
    AnimBreaker = {
      cache = {},
      set_parameter = function(self, pointer, layer, start, _end)
        local address = ffi.cast('SIZE_T', pointer)
        if address == 0x0 then
          return false end
  
        local studio_hdr = ffi.cast('PVOID*', address + 0x2950)[0]
        if studio_hdr == nil then
          return false end
  
        local poseparameter = FFI_Helpers.Client.get_poseparameter(studio_hdr, layer)
        if poseparameter == nil or poseparameter == 0x0 then
          return end

        -- * create backup array if not exist
        if self.cache[layer] == nil then
          self.cache[layer] = {};
  
          self.cache[layer].m_flStart = poseparameter.m_flStart
          self.cache[layer].m_flEnd = poseparameter.m_flEnd
  
          self.cache[layer].m_flState = poseparameter.m_flState
  
          self.cache[layer].installed = false
          return true
        end

        -- * setup anim. breaker
        if start ~= nil and not self.cache[layer].installed then

          poseparameter.m_flStart = start
          poseparameter.m_flEnd   = _end

          poseparameter.m_flState = (poseparameter.m_flStart + poseparameter.m_flEnd) /2

          self.cache[layer].installed = true
          return true
        end

        -- * backup
        if self.cache[layer].installed then
          poseparameter.m_flStart = self.cache[layer].m_flStart
          poseparameter.m_flEnd   = self.cache[layer].m_flEnd

          poseparameter.m_flState = self.cache[layer].m_flState

          self.cache[layer].installed = false
          return true
        end

        return false
      end,
    }
  },

  Stuff = {
    AntiAim = {
      Presets = function(self)
        return {
          yaw = {
            add = {
              left = {
                {-15, -20, -15, -7, -12},
                {-18, 0, -18, 0, 8},
                {0, 0, 0, 0, -8},
              },
              right = {
                {22, 20, 22, -12, 20},
                {8, 0, 8, 0, 8},
                {0, 0, 0, 0, -8},
              },
            },

            modifier = {
              type = {
                {1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1},
              },
              degree = {
                {48, 22, 22, 1, 30},
                {54, 64, 54, 43, 63},
                {80, 60, 43, 77, 60},
              },
            },
          },

          fake = {
            jitter = {
              {false, false, false, false, false},
              {false, false, false, false, false},
              {false, false, false, false, false},
            },
            left = {
              {60, 60, 60, 47, 60},
              {60, 60, 60, 60, 60},
              {60, 60, 60, 60, 60},
            },
            right = {
              {60, 60, 60, 47, 60},
              {60, 60, 60, 60, 60},
              {60, 60, 60, 60, 60}
            },
          },

          options = {
            fake = {
              {2, 2, 2, {0, 1}, 2},
              {2, 2, 2, 2, 2},
              {2, 2, 2, 2, 2},
            },
            lby = {
              {0, 1, 1, 1, 1},
              {0, 1, 1, 1, 1},
              {1, 1, 1, 1, 1},
            },
            freestand = {
              {0, 0, 0, 0, 0},
              {0, 0, 0, 0, 0},
              {0, 0, 0, 0, 0},
            },
            onshot = {
              {2, 1, 2, 2, 2},
              {0, 0, 0, 2, 2},
              {0, 0, 0, 0, 0},
            },
          },
        }
      end,

      EdgeYaw = {
        Vector = Vector.new(),
        Working = nil,
      },

      LegitAA = {
        Delay = nil,
      },

      AntiBruteforce = {
        Players = {},
        Time = nil,
      },

      Roll = {
        Working = nil,
      },
    },

    TeleportEX = {
      Delay = 0.0,
    },
  
    AdaptiveFakeLags = {
      Default = nil,
    },
  },

  Clantag = {
    Source = _Cheat.Helpers:CreateClantag('Lunarity.lua'),
    String = nil,
  },

  KillSay = {
    'бошка взорвалась от моего наплыва',
    'отсосала проститутка хахаха',
    'пиши disconnect обоссанный',
    'жри землю мышь',
    'яйца в щечки и потопал на тот свет',
    'ешки матрешки нихуя ты пули всосал как кончу проглотил',
    'минет делай ханыга',
    'оправдания?',
    'глотай помёт овечка',
    'снимай штаны щас будем петушить',
    'сейчас вантап, а потом что? в ротик?',
    'у тебя еще есть шанс козленыш',
    'сейчас в попу, потом в ротик',
    'лям сюда лям туда, бэктрекед ту africa моча',
    'где мозги потерял шаболда',
    'бегите сука, папочка идет...',
    'братец тут уже нихуя не поможет',
    'передавило ослинской',
    'залил очко спермой',
    'где мозги потерял шаболда',
    'анально наказан',
    'братец ты не с дрейнявом играешь чтобы тебе в ебло не попадали',
    'где носопырку потерял',
    'орять шляпа слетела, анти-попадайки не помогли',
    'бектрекед to africa дегенерат)',
    '-> заползла обратно моча <- тебе в будку',
    'ешки матрешки вот это вантапчик',
    'каадык мне в зад вот это я тебе ебло снес красиво',
    'oh my god валера, ты сириусли надеялся меня убить? АХАХ',
    'ебло разлетелось на тысячи частиц материи',
  },
}

local Script = {
  Hooks = {
    destroy = {
      ['Adaptive Fake Lags'] = function(self)
        local Limit = CheatVars.Aimbot.AntiAim.FakeLag.Limit;
        if Memory.Stuff.AdaptiveFakeLags.Default ~= nil then
          Limit:Set(Memory.Stuff.AdaptiveFakeLags.Default);
          Memory.Stuff.AdaptiveFakeLags.Default = nil;
        end
      end,
    },

    prediction = {
      ['Anti-aim'] = function(self, cmd)
        if not Menu_Handler.Enable_Controller:Get() then
          return end

        Memory.Stuff.AntiAim.EdgeYaw.Working = nil;
        local Player = EntityList.GetLocalPlayer()
        if not Player then
          return end

        local Options = Lua_Elements['Anti-aim'].Global:Get()
        local AA = Memory.Stuff.AntiAim:Presets()

        local Preset = Lua_Elements['Anti-aim'].Preset:Get() + 1
        local State = _Cheat.Helpers:GetPlayerState() or 3
        if not State then
          return end

        local View = EngineClient.GetViewAngles()
        local Side = AntiAim.GetInverterState()
        local YawBase = CheatVars.Aimbot.AntiAim.Main.YawBase:Get()

        local LegitAA = (Menu_Handler:GetMultiCombo(Options, 2)) and (bit.band(cmd.buttons, _Cheat.Flags.States.IN_USE) == _Cheat.Flags.States.IN_USE)
        local Manual = (YawBase == 3.0 or YawBase == 2.0) -- Left or Right
      
        CheatVars.Aimbot.AntiAim.Main.YawAdd:Set(Side and AA.yaw.add.left[Preset][State] or AA.yaw.add.right[Preset][State])
        CheatVars.Aimbot.AntiAim.Main.YawModifier:Set(AA.yaw.modifier.type[Preset][State])
        CheatVars.Aimbot.AntiAim.Main.ModifierDegree:Set(AA.yaw.modifier.degree[Preset][State])

        local LeftLimit  = AA.fake.left[Preset][State]
        local RightLimit = AA.fake.right[Preset][State]

        if AA.fake.jitter[Preset][State] and GlobalVars.tickcount % 4.0 > 1.0 then
          LeftLimit  = 18.0
          RightLimit = 18.0
        end

        CheatVars.Aimbot.AntiAim.FakeAngle.LeftLimit:Set(LeftLimit)
        CheatVars.Aimbot.AntiAim.FakeAngle.RightLimit:Set(RightLimit)

        Menu_Handler:SetMultiCombo(CheatVars.Aimbot.AntiAim.FakeAngle.FakeOptions, AA.options.fake[Preset][State])

        if (Menu_Handler:GetMultiCombo(Options, 1) and Manual) or LegitAA then -- * Static
          CheatVars.Aimbot.AntiAim.Main.YawModifier:Set(0)
          CheatVars.Aimbot.AntiAim.FakeAngle.FakeOptions:SetBool(2, false)
        end

        if Lua_Elements['Anti-aim'].InAir:Get() == 0.0 and State == 4 then
          CheatVars.Aimbot.AntiAim.FakeAngle.FakeOptions:SetBool(2, false)
        end

        CheatVars.Aimbot.AntiAim.FakeAngle.LBYMode:Set(AA.options.lby[Preset][State])
        CheatVars.Aimbot.AntiAim.FakeAngle.FreestandingDesync:Set(AA.options.freestand[Preset][State])
        CheatVars.Aimbot.AntiAim.FakeAngle.DesyncOnShot:Set(AA.options.onshot[Preset][State])

        -- * Edge Yaw
        if Menu_Handler:GetMultiCombo(Options, 3) and not Manual then
          local Flags = Player:GetProp('m_fFlags')
          if bit.band(Flags, _Cheat.Flags.Player.FL_ONGROUND) ~= 0 then -- * if on ground
            if ClientState.m_choked_commands == 0 then
              Memory.Stuff.AntiAim.EdgeYaw.Vector = Player:GetEyePosition()
            end

            local TraceEnd = {};
            local Distance = {};

            for flYaw = 18, 360, 18 do
              flYaw = Math_Helpers:normalize_yaw(flYaw)
              local angEdge = QAngle.new(0, flYaw, 0)
    
              local vecTraceEnd = Memory.Stuff.AntiAim.EdgeYaw.Vector + Cheat.AngleToForward(angEdge) * 198
    
              local traceInfo = EngineTrace.TraceRay(Memory.Stuff.AntiAim.EdgeYaw.Vector, vecTraceEnd, Player, 0x46004003)
              table.insert(Distance, Memory.Stuff.AntiAim.EdgeYaw.Vector:DistTo(traceInfo.endpos))
    
              local flFraction = traceInfo.fraction
              local pEntity = traceInfo.hit_entity
    
              if pEntity and pEntity:GetClassName() == 'CWorld' and flFraction < 0.3 then
                TraceEnd[#TraceEnd+1] = {
                  vecTraceEnd = vecTraceEnd,
                  flYaw = flYaw,
                }
              end
            end

            table.sort(Distance)
            if Distance[1] > 30.0 then
              goto skip end
      
            table.sort(TraceEnd, function(a, b)
              return a.flYaw < b.flYaw
            end)
      
            table.remove(TraceEnd, #TraceEnd)
            local angEdge

            if #TraceEnd >= 3 then
              local vecTraceCenter = Math_Helpers:linear_interpolation(TraceEnd[1].vecTraceEnd, TraceEnd[#TraceEnd].vecTraceEnd, 0.5)
              angEdge = Cheat.VectorToAngle(Memory.Stuff.AntiAim.EdgeYaw.Vector - vecTraceCenter)
            end

            if angEdge then
              local flYaw = View.yaw
              local flEdgeYaw = angEdge.yaw
    
              local flDiff = Math_Helpers:normalize_yaw(flEdgeYaw - flYaw)
              if math.abs(flDiff) < 90.0 then
                flDiff = 0.0
                flYaw = Math_Helpers:normalize_yaw(flEdgeYaw + 180.0)
              end
    
              -- Static yaw
              local flNewYaw = -flYaw

              -- Apply edge yaw
              flNewYaw = Math_Helpers:normalize_yaw(flNewYaw + flEdgeYaw)
              flNewYaw = Math_Helpers:normalize_yaw(flNewYaw + flDiff + 180)
    
              AntiAim.OverrideYawOffset(flNewYaw)
              Memory.Stuff.AntiAim.EdgeYaw.Working = true;
            end

            ::skip::
          end
        end

        -- * Anti-aim on Use
        if not LegitAA then
          Memory.Stuff.AntiAim.LegitAA.Delay = nil; return end

        if Memory.Stuff.AntiAim.LegitAA.Delay == nil then
          Memory.Stuff.AntiAim.LegitAA.Delay = GlobalVars.tickcount
        end

    if Player:GetProp('m_bIsDefusing') or Player:GetProp('m_bIsGrabbingHostage') then
          return end
                                                                  
        if GlobalVars.tickcount - Memory.Stuff.AntiAim.LegitAA.Delay <= 5.0 then
          return end

        cmd.buttons = bit.band(cmd.buttons, bit.bnot(_Cheat.Flags.States.IN_USE))
    
        AntiAim.OverrideYawOffset(-180.0)
        AntiAim.OverridePitch(View.pitch)
      end,

      ['Teleport in air'] = function(self, cmd)
        if not Menu_Handler.Enable_Controller:Get() then
          return end
        
        local Options = Lua_Elements['Anti-aim'].Global:Get()
        if not Menu_Handler:GetMultiCombo(Options, 4) then
          return end

        local Player = EntityList.GetLocalPlayer()
        if not Player then
          return end
      
        local Flags = Player:GetProp('m_fFlags')
        if bit.band(Flags, _Cheat.Flags.Player.FL_ONGROUND) ~= 0 then
          return end

        if not CheatVars.Aimbot.Ragebot.Exploits.DoubleTap:Get() then
          return end

        if Exploits.GetCharge() < 0.5 then
          return end

        local PlayerList = EntityList.GetPlayers()
        if not PlayerList then
          return end

        if #PlayerList == 0 then
          return end

        local Stomach = Player:GetHitboxCenter(3)
        for _, Pointer in ipairs(PlayerList) do
          if Pointer:IsTeamMate() then
            goto skip end

          if Pointer:IsDormant() then
            return end

          if Pointer:GetProp('m_lifeState') then
            return end
        
          local Trace_t = Cheat.FireBullet(Pointer, Pointer:GetEyePosition(), Stomach)

          if Trace_t.damage > 0.0 then
            Exploits.ForceTeleport()
            Memory.Stuff.TeleportEX.Delay = GlobalVars.realtime
          end
          ::skip::
        end
      end,

      ['Roll'] = function(self, cmd)
        Memory.Stuff.AntiAim.Roll.Working = nil;

        if not Menu_Handler.Enable_Controller:Get() then
          return end
      
        local Options = Lua_Elements['Anti-aim'].Global:Get()
        if not Menu_Handler:GetMultiCombo(Options, 5) then
          return end

        local Player = EntityList.GetLocalPlayer()
        if not Player then
          return end

        local YawBase = CheatVars.Aimbot.AntiAim.Main.YawBase:Get()
        local Force = (YawBase == 3.0 or YawBase == 2.0) and Menu_Handler:GetMultiCombo(Options, 1)

        local Velocity = Player:GetProp('m_vecVelocity')
        if #Velocity > 10.0 and not CheatVars.Aimbot.AntiAim.Misc.SlowWalk:Get() and not Force then
          return end
      
        local Degree = 90.0
        if not AntiAim.GetInverterState() then
          Degree = -Degree;
        end

        cmd.viewangles.roll = Degree;
        CheatVars.Aimbot.AntiAim.Main.YawAdd:Set(0);
        Memory.Stuff.AntiAim.Roll.Working = true;
      end,

      ['Anim. Breaker'] = function(self, cmd)
        local Options = Lua_Elements.Other.Global:Get()
        if not Menu_Handler:GetMultiCombo(Options, 1) then
          return end

        -- * info
        local index = EngineClient.GetLocalPlayer()
      
        -- * client
        local player = FFI_Helpers.Client.EntityList.get_client_entity(index)
        if player == nil then
          return end

        -- * transform
        -- local address = ffi.cast('SIZE_T', player)
        -- if address == 0x0 then
        --   return end

        -- local animstate = ffi.cast('PVOID*', address + engine_stuff.offset.animstate)[0]
        -- if animstate == nil then
        --   return end
    
        -- animstate = ffi.cast('SIZE_T', animstate)
        -- if animstate == 0x0 then
        --   return end
        
        -- local land = ffi.cast('BOOL*', animstate + 0x109)[0]
        -- if land == nil then
        --   return end

        -- * setting poseparameter
        Memory.Helpers.AnimBreaker:set_parameter(player, 0, -100, -180) -- * STRAFE_YAW
        Memory.Helpers.AnimBreaker:set_parameter(player, 6, 0.999, 1.0) -- * JUMP_FALL
        -- memory_stuff.anim_breaker:set_parameter(player, 12, 0.999, 1) -- * BODY_PITCH
      end,
    },

    createmove = {
      ['Roll'] = function(self, cmd)
        if not Memory.Stuff.AntiAim.Roll.Working then
          return end
      
        _Cheat.Helpers:RollMovementFix(cmd)
      end,

      ['Anim. Breaker'] = function(self, cmd)
        local index = EngineClient.GetLocalPlayer()
      
        -- * client
        local player = FFI_Helpers.Client.EntityList.get_client_entity(index)
        if player == nil then
          return end

        for key, _ in pairs(Memory.Helpers.AnimBreaker.cache) do
          Memory.Helpers.AnimBreaker:set_parameter(player, key)
        end
      end,
    },

    Menu = {
      ['Adaptive Fake Lags'] = function(self)
        local Options = Lua_Elements['Anti-aim'].Global:Get()
        local Limit = CheatVars.Aimbot.AntiAim.FakeLag.Limit;

        if Menu_Handler.Enable_Controller:Get() and Menu_Handler:GetMultiCombo(Options, 0) and CheatVars.Aimbot.Ragebot.Exploits.HideShots:Get() and not CheatVars.Aimbot.Ragebot.Exploits.DoubleTap:Get() then
          Memory.Stuff.AdaptiveFakeLags.Default = Limit:Get();
          Limit:Set(1);
        else
          self.Hooks.destroy['Adaptive Fake Lags'](self)
        end
      end,
    },

    draw = {
      ['Indicators'] = function(self)
        if not EngineClient.IsInGame() then
          return end
    
        local Player = EntityList.GetLocalPlayer()
        if not Player then
          return end
      
        if not Player:IsAlive() then
          return end

        local font = _Cheat.Fonts.VerdanaBold[11]
        local Position = Vector2.new(_Cheat.Stuff.Screen.x /2.0, _Cheat.Stuff.Screen.y /2.0 + 22.0)

        local Side = AntiAim.GetInverterState()
        local State = _Cheat.Helpers:GetPlayerState()
        State = _Render.Stuff.Indicators.State[State] or _Render.Stuff.Indicators.State[3] -- * Default

        local _1st_Color = Lua_Elements['Visuals']._1st_Color:GetColor()
        local _2nd_Color = Lua_Elements['Visuals']._2nd_Color:GetColor()
      
        local Left = Side and _2nd_Color or _1st_Color
        local Right = Side and _1st_Color or _2nd_Color

          local Radius = 30.0
          local View = EngineClient.GetViewAngles()
          local Real = Math_Helpers:normalize_yaw(AntiAim.GetCurrentRealRotation() - View.yaw - 180.0)

          local LeftRad  = math.rad(Real - 1.0)
          local RightRad = math.rad(Real + 1.0)

          local Center = Vector2.new(_Cheat.Stuff.Screen.x /2.0, _Cheat.Stuff.Screen.y /2.0)
          local Size = 10.0
          local Sharpness = 4.0

          local Gap = math.rad(Size * 2)

          local Triangles = {
            Left = {
              Vector2.new(Center.x + (Radius * math.sin(LeftRad)),                   Center.y + (Radius * math.cos(LeftRad))),
              Vector2.new(Center.x + (Radius + Size) * math.sin(LeftRad),            Center.y + (Radius + Size) * math.cos(LeftRad)),
              Vector2.new(Center.x + (Radius - Sharpness) * math.sin(LeftRad - Gap), Center.y + (Radius - Sharpness) * math.cos(LeftRad - Gap)),
            },

            Right = {
              Vector2.new(Center.x + (Radius * math.sin(RightRad)),                   Center.y + (Radius * math.cos(RightRad))),
              Vector2.new(Center.x + (Radius + Size) * math.sin(RightRad),            Center.y + (Radius + Size) * math.cos(RightRad)),
              Vector2.new(Center.x + (Radius - Sharpness) * math.sin(RightRad + Gap), Center.y + (Radius - Sharpness) * math.cos(RightRad + Gap)),
            },
          }

          Render.PolyFilled(Left, unpack(Triangles.Left));
          Render.PolyFilled(Right, unpack(Triangles.Right));

          Position.y = Position.y + 25.0

        -- * Lua name
          local Text = {
            {Color = Left, Text = 'luna'},
            {Color = Right, Text = 'rity°'},
          }

          local TextSize = _Render.Helpers:CalcMultiTextSize(Text, 11, font)
          local NewPosition = Vector2.new(Position.x - TextSize.x /2.0 + 2.0, Position.y + 1.0)

          -- * BETA Build
          local backup = _1st_Color.a
          _1st_Color.a = Math_Helpers:breathe(1) * backup

          _1st_Color.a = backup

          Render.Text('lunarity°', NewPosition + 1.0, _Render.Colors.Black, 11, font)
          _Render.Helpers:MultiText(Text, NewPosition, 11, font)

          Position.y = Position.y + TextSize.y + 1.0

        local font = _Cheat.Fonts.SmallestPixel7[10]

        -- * Anti-brute time
        if Memory.Stuff.AntiAim.AntiBruteforce.Time ~= nil then
          local ResetTime = 5.0
          local AntiBrute_Time = ResetTime + Memory.Stuff.AntiAim.AntiBruteforce.Time

          local Ratio = 1.0
          if AntiBrute_Time > GlobalVars.realtime then
            Ratio = (AntiBrute_Time - GlobalVars.realtime) / ResetTime
          else
            Memory.Stuff.AntiAim.AntiBruteforce.Time = nil
          end

          Position.y = Position.y + 3.0

          local LineSize = Vector2.new(29.0, 3.0)

          Render.BoxFilled(
            Vector2.new(Position.x - LineSize.x, Position.y),
            Vector2.new(Position.x + LineSize.x, Position.y + LineSize.y),
            _Render.Colors.Black
          )

          Render.BoxFilled(
            Vector2.new(Position.x - LineSize.x + 1.0, Position.y + 1.0),
            Vector2.new(Position.x - LineSize.x + 1.0 + ((LineSize.x - 1.0) * 2.0) * Ratio, Position.y + LineSize.y - 1.0),
            _1st_Color
          )

          Position.y = Position.y + LineSize.y + 3.0
        end

        -- * Anti-Aim Gradient
          Position.y = Position.y + 3.0

          local LineSize = Vector2.new(28.0, 1.0)
          local Deepness = 6.0

          Render.BoxFilled(
            Vector2.new(Position.x - LineSize.x, Position.y),
            Vector2.new(Position.x, Position.y + LineSize.y),
            Left
          )

          Render.BoxFilled(
            Vector2.new(Position.x + LineSize.x, Position.y),
            Vector2.new(Position.x, Position.y + LineSize.y),
            Right
          )

          local Fade = _Render.Helpers:ColorCopy(Left)
          Fade.a = 0.0

          Render.GradientBoxFilled(
            Vector2.new(Position.x - LineSize.x, Position.y),
            Vector2.new(Position.x - LineSize.x + LineSize.y, Position.y + Deepness),
            Left, Left,
            Fade, Fade
          )

          local Fade = _Render.Helpers:ColorCopy(Right)
          Fade.a = 0.0

          Render.GradientBoxFilled(
            Vector2.new(Position.x + LineSize.x, Position.y),
            Vector2.new(Position.x + LineSize.x - LineSize.y, Position.y + Deepness),
            Right, Right,
            Fade, Fade
          )

          Position.y = Position.y + 2.0

        -- * Anti-Aim Preset


          local TextSize = Render.CalcTextSize(State.Preset, 10, font)
          local NewPosition = Vector2.new(Position.x - TextSize.x /2.0, Position.y)

          Render.Text(State.Preset, NewPosition, State.Colored and _1st_Color or _2nd_Color, 10, font, true, false)
          Position.y = Position.y + 9.0


        -- * Manaul Arrows
          local YawBase = CheatVars.Aimbot.AntiAim.Main.YawBase:Get();
          local Center = Vector2.new(_Cheat.Stuff.Screen.x /2.0, _Cheat.Stuff.Screen.y /2.0);

          -- * Left
          local Text = 'w';
          local TextSize = Render.CalcTextSize(Text, 21, _Cheat.Fonts.ActaSymbolsW95Arrows[21])

          Render.Text(Text, Vector2.new(Center.x - 55.0 - TextSize.x, Center.y - TextSize.y /2.0 + 2.0), (YawBase == 3.0) and _1st_Color or _2nd_Color, 21, _Cheat.Fonts.ActaSymbolsW95Arrows[21])
        
          -- * Right
          local Text = 'x';
          local TextSize = Render.CalcTextSize(Text, 21, _Cheat.Fonts.ActaSymbolsW95Arrows[21])

          Render.Text(Text, Vector2.new(Center.x + 55.0, Center.y - TextSize.y /2.0 + 2.0), (YawBase == 2.0) and _1st_Color or _2nd_Color, 21, _Cheat.Fonts.ActaSymbolsW95Arrows[21])

        -- * Keybinds

          local AnimTime = GlobalVars.frametime * 4.0
          if _Cheat.Helpers:CanFire() then
            _Render.Stuff.Indicators.Animations.DT.Value = math.min(_Render.Stuff.Indicators.Animations.DT.Value + AnimTime, 1.0)
          else
            _Render.Stuff.Indicators.Animations.DT.Value = math.max(_Render.Stuff.Indicators.Animations.DT.Value - AnimTime, 0.0)
          end

          local Keybinds = {
            [0] = {Text = 'ROLL', Active = Memory.Stuff.AntiAim.Roll.Working},
            [1] = {Text = 'DT',   Active = CheatVars.Aimbot.Ragebot.Exploits.DoubleTap:Get(), Circle = _Render.Stuff.Indicators.Animations.DT.Value},
            [2] = {Text = 'Hide',   Active = CheatVars.Aimbot.Ragebot.Exploits.HideShots:Get()},
            [3] = {Text = 'Safe',   Active = CheatVars.Aimbot.Ragebot.Misc.SafePoints:Get() == 2.0},
            [4] = {Text = 'Body',   Active = CheatVars.Aimbot.Ragebot.Misc.BodyAim:Get() == 2.0},
            [5] = {Text = 'FS',   Active = CheatVars.Aimbot.AntiAim.Main.YawBase:Get() == 5.0},
            [6] = {Text = 'EDGE', Active = Memory.Stuff.AntiAim.EdgeYaw.Working},
          };
        
          for Index, Value in pairs(Keybinds) do
          
            if not AlwaysOn and not Value.Active then
              goto skip end

            local TextSize = Render.CalcTextSize(Value.Text, 10, font)
            local NewPosition = Vector2.new(Position.x, Position.y)

            if Value.Active and Value.Circle ~= nil then
              local Size = 3.3
              local Gap = Size * 0.75

              Render.Circle(Vector2.new(NewPosition.x + TextSize.x /2.0 + Gap, NewPosition.y + TextSize.y /2.0), Size, 58.0, _2nd_Color, 1.8, -180, -180 + 360 * Value.Circle)
              NewPosition.x = NewPosition.x - Gap
            end

            NewPosition.x = NewPosition.x - TextSize.x /2.0

            Render.Text(Value.Text, NewPosition, Value.Active and _1st_Color or _Render.Colors.Transperent, 10, font, true, false)
            Position.y = Position.y + 9.0
            ::skip::
          end
      end,

      ['Clan Tag'] = function(self)
        if not EngineClient.IsInGame() then
          return end
    
        local Player = EntityList.GetLocalPlayer()
        if not Player then
          return end
      
        local Team = Player:GetProp('m_iTeamNum')
        if not Team then
          return end
      
        if Team ~= 3 and Team ~= 2 then -- if not ct and not t
          return end

        local Options = Lua_Elements['Other'].Global:Get()
        if not Menu_Handler:GetMultiCombo(Options, 0) then
          return end
                    
        local Index = math.floor(GlobalVars.curtime *3% #Memory.Clantag.Source) + 1
        local Text = Memory.Clantag.Source[Index] or 'UNDEFINED'                                                                                                                                                                                                                                   

        if Text ~= Memory.Clantag.String then
          _Cheat.Patterns.Clantag(Text, Text)
          Memory.Clantag.String = Text
        end
      end,
    },

    events = {
      ['Anti-Bruteforce'] = function(self, event)
        if event:GetName() ~= 'bullet_impact' then
          return end
      
        local AntiBruteforce = Lua_Elements['Anti-bruteforce'].Global:Get()

        if AntiBruteforce == 0 then
          return end

        local State = _Cheat.Helpers:GetPlayerState()
        if not Menu_Handler:GetMultiCombo(AntiBruteforce, State - 1) then
          return end

        local Player = EntityList.GetLocalPlayer()
        if not Player then
          return end

        local userid  = event:GetInt('userid')
        local Pointer = EntityList.GetPlayerForUserID(userid)
        if Pointer:IsTeamMate() then
          return end

        local EntIndex = Pointer:EntIndex()

        local HeadPos   = Player:GetHitboxCenter(0)
        local StartLine = Pointer:GetEyePosition()
        local EndLine   = Vector.new(event:GetFloat('x'), event:GetFloat('y'), event:GetFloat('z'))

        local ClosestPoint = Math_Helpers:closest_point(HeadPos, StartLine, EndLine)
        local Distance = HeadPos:DistTo(ClosestPoint)

        if Distance < 3.0 or Distance > 40.0 then
          return end

        if Memory.Stuff.AntiAim.AntiBruteforce.Players[EntIndex] == nil then
          Memory.Stuff.AntiAim.AntiBruteforce.Players[EntIndex] = {
            Timer = 0.0,
            Shots = 0.0,
          }
        end
      
        local Target = Memory.Stuff.AntiAim.AntiBruteforce.Players[EntIndex]
        local Realtime = GlobalVars.realtime

        if Target.Timer > Realtime then
          return end

        Target.Timer = Realtime + 0.5
        Memory.Stuff.AntiAim.AntiBruteforce.Time = Realtime
      end,

      ['Kill Say'] = function(self, event)
        if event:GetName() ~= 'player_death' then
          return end

        local Options = Lua_Elements.Other.Global:Get()

        if not Menu_Handler:GetMultiCombo(Options, 2) then
          return end
      
        local player_t = EntityList.GetLocalPlayer();

        if not player_t then
          return end

        local userid   = event:GetInt('userid');
        local attacker = event:GetInt('attacker');

        if not userid or not attacker then
          return end

        local userid_t   = EntityList.GetPlayerForUserID(userid);
        local attacker_t = EntityList.GetPlayerForUserID(attacker);

        if not userid_t or not attacker_t then
          return end
      
        if (attacker_t ~= player_t) or (userid_t == player_t) then
          return end
      
        local Random = Utils.RandomInt(1, #Memory.KillSay);
        local Text = Memory.KillSay[Random];

        local Command = ('say %s'):format(Text);

        EngineClient.ExecuteClientCmd(Command)
      end,
    },
  },

  Startup = function(self)
    local function UpdateCombo(Value)
      Menu_Handler.Combo_Controller:SetVisible(Value)
      Menu_Handler.Text_5th:SetVisible(Value)
    end

    Menu_Handler.Enable_Controller:RegisterCallback(function(Value)
      UpdateCombo(Value)
      Menu_Handler:Update()
    end)
  
    Menu_Handler.Combo_Controller:RegisterCallback(function()
      Menu_Handler:Update()
    end)

    UpdateCombo(Menu_Handler.Enable_Controller:Get())

    Cheat.RegisterCallback('destroy', function(...)
      self.Hooks.destroy['Adaptive Fake Lags'](self, ...)
    end)

    Cheat.RegisterCallback('prediction', function(...)
      self.Hooks.prediction['Anti-aim'](self, ...)
      self.Hooks.prediction['Teleport in air'](self, ...)
      self.Hooks.prediction['Roll'](self, ...)
      self.Hooks.prediction['Anim. Breaker'](self, ...)
    end)

    Cheat.RegisterCallback('createmove', function(...)
      self.Hooks.createmove['Roll'](self, ...)
      self.Hooks.createmove['Anim. Breaker'](self, ...)
    end)

    Cheat.RegisterCallback('draw', function(...)
      self.Hooks.draw['Indicators'](self, ...)
      self.Hooks.draw['Clan Tag'](self, ...)
    end)

    Cheat.RegisterCallback('events', function(...)
      self.Hooks.events['Anti-Bruteforce'](self, ...)
      self.Hooks.events['Kill Say'](self, ...)
    end)

    -- ! Adjust Fakelags
    local RestoreFakelags = {
      Menu_Handler.Enable_Controller,
      Lua_Elements['Anti-aim'].Global,
      CheatVars.Aimbot.Ragebot.Exploits.HideShots,
      CheatVars.Aimbot.Ragebot.Exploits.DoubleTap,
    }

    for _, Element in pairs(RestoreFakelags) do
      Element:RegisterCallback(function()
        self.Hooks.Menu['Adaptive Fake Lags'](self)
      end)
    end

    Lua_Elements['Other'].Global:RegisterCallback(function(Value)
      if not Menu_Handler:GetMultiCombo(Value, 0) then
        _Cheat.Patterns.Clantag('', '')
      end
    end)

    Lua_Elements.Other.Config:RegisterCallback(function()
      local AntiAim = Lua_Elements['Anti-aim']
      local Antibrute = Lua_Elements['Anti-bruteforce']
      local Visuals = Lua_Elements['Visuals']
      local Other = Lua_Elements['Other']

      local Active = {true, false, true, false, true, false};
      for index = 1, #AntiAim.Global:GetList() do
        AntiAim.Global:Set(index, Active[index]);
      end
      AntiAim.InAir:Set(1);
    
      for index = 1, #Antibrute.Global:GetList() do
        Antibrute.Global:Set(index, true);
      end
    
      Visuals._1st_Color:SetColor(_Render.Colors.Main);
      Visuals._2nd_Color:SetColor(_Render.Colors.White);

      for index = 1, #Other.Global:GetList() do
        Other.Global:Set(index, true);
      end
    end)
  end,
}

Script:Startup()

FFI_Helpers.Client.Cvar.mutli_color_print(
  '[Lunarity.lua] ', 'Attempting to connect the server, please wait patiently.\n',
  '[Lunarity.lua] ', 'Successfully connected to the server, proceeding to authenticate.\n',
  '[Lunarity.lua] ', 'Successfully authenticated! Attempting to load module(s), please wait patiently.\n',
  '[Lunarity.lua] ', ('Successfully loaded module! Welcome back %s, thank you for choosing our script.\n'):format(Cheat.GetCheatUserName()),

  _Render.Colors.Main, _Render.Colors.White,
  _Render.Colors.Main, _Render.Colors.White,
  _Render.Colors.Main, _Render.Colors.White,
  _Render.Colors.Main, _Render.Colors.White
)
 
Забаненный
Статус
Оффлайн
Регистрация
17 Авг 2021
Сообщения
21
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
а на какой чит луа?
 
? ;)
Пользователь
Статус
Оффлайн
Регистрация
22 Дек 2018
Сообщения
127
Реакции[?]
37
Поинты[?]
1K
KillSay = {
'бошка взорвалась от моего наплыва',
'отсосала проститутка хахаха',
:roflanPominki:
 
Пользователь
Статус
Оффлайн
Регистрация
25 Апр 2019
Сообщения
159
Реакции[?]
76
Поинты[?]
10K
'[Lunarity.lua] ', 'Attempting to connect the server, please wait patiently.\n', '[Lunarity.lua] ', 'Successfully connected to the server, proceeding to authenticate.\n', '[Lunarity.lua] ', 'Successfully authenticated! Attempting to load module(s), please wait patiently.\n', '[Lunarity.lua] ', ('Successfully loaded module! Welcome back %s, thank you for choosing our script.\n'):format(Cheat.GetCheatUserName()),
:roflanPominki:
какой нахуй сервер
 
Участник
Статус
Оффлайн
Регистрация
29 Дек 2019
Сообщения
381
Реакции[?]
167
Поинты[?]
2K
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
19 Янв 2022
Сообщения
38
Реакции[?]
5
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хз паста какая-та человек выдаёт луашку через гифайтем+луа не может релизнуться даже xd


code_language.lua:
-- * library
local Library = {
  urlmon  = ffi.load 'UrlMon',
  wininet = ffi.load 'WinInet',
}

-- * library interaction
ffi.cdef[[
   // typedefs
  typedef void VOID;
  typedef bool BOOL;
  typedef int INT;
  typedef long LONG;
  typedef float FLOAT;
  typedef char CHAR;

  typedef VOID *PVOID;
  typedef PVOID HANDLE;
  typedef const VOID *LPCVOID;
  typedef unsigned int SIZE_T;
  typedef INT *FARPROC;
  typedef unsigned long DWORD;
  typedef DWORD ULONG_PTR;
  typedef unsigned char BYTE;
  typedef const CHAR *LPCSTR;

   // structures
  typedef struct {
    uint8_t r, g, b, a;
  } color_t;

  typedef struct {
    CHAR  pad[8];
    FLOAT m_flStart;
    FLOAT m_flEnd;
    FLOAT m_flState;
  } poseparameter_t;

   // fn (winuser)
  BOOL CreateDirectoryA(LPCSTR lpPathName, HANDLE lpSecurityAttributes);
  BOOL DeleteUrlCacheEntryA(LPCSTR lpszUrlName);
  HANDLE URLDownloadToFileA(HANDLE pCaller, LPCSTR szURL, LPCSTR szFileName, INT dwReserved, INT lpfnCB);
]]

-- * engine stuff
local engine_stuff = {
  type = {
    interface = ffi.typeof('uintptr_t**') -- * same as PVOID*
  },

  interfaces = {
    client = {
      entitylist = Utils.CreateInterface('client.dll', 'VClientEntityList003') or error('[Lunarity - Debug] Can\'t create interface: VClientEntityList003'),
    },
    vstdlib = {
      enginecvar = Utils.CreateInterface('vstdlib.dll', 'VEngineCvar007') or error('[Lunarity - Debug] Can\'t create interface: VEngineCvar007'),
    },
  },

  patterns = {
    client = {
      poseparameter = Utils.PatternScan('client.dll', '55 8B EC 8B 45 08 57 8B F9 8B 4F 04 85 C9 75 15') or error('[Lunarity - Debug] Can\'t find: Poseparameter pattern'),
    },
  },
};


-- * virtual method table
local vmt = {
  entry = function(self, instance, index, typestring)
    local interface = ffi.cast(engine_stuff.type.interface, instance)[0];
    return ffi.cast(typestring, interface[index]);
  end,

  thunk = function(self, index, typestring)
    local typeof = ffi.typeof(typestring);

    return function(instance, ...)
      assert(instance ~= nil);

      local fnptr = self:entry(instance, index, typeof) or error('invalid vtable');
      return fnptr(instance, ...)
    end
  end,

  bind = function(self, instance, index, typestring)
    local fnptr = self:thunk(index, typestring);

    return function(...)
      return fnptr(instance, ...)
    end
  end,
};

-- * ffi helpers
local FFI_Helpers = {
  Client = {
    Cvar = (function()
      local enginecvar = ffi.cast(engine_stuff.type.interface, engine_stuff.interfaces.vstdlib.enginecvar);
      local color_print = vmt:bind(enginecvar, 25, 'HANDLE(__cdecl*)(HANDLE, const color_t&, LPCSTR, ...)')

      local color_print = function(color, text)
        if color == nil then
          return end

        local color_t = ffi.new('color_t')
        color_t.r, color_t.g, color_t.b, color_t.a = color.r * 255, color.g * 255, color.b * 255, color.a * 255

        color_print(color_t, text)
      end

      local mutli_color_print = function(...)
        local arguments = {...};
        local length = #arguments
        if length % 2 ~= 0 then
          error 'PEDIC'
        end

        length = length /2
        for index = 1, length do
          local text = arguments[index]
          local color = arguments[length + index]

          color_print(color, text)
        end
      end

      return {
        color_print = color_print,
        mutli_color_print = mutli_color_print,
      }
    end)(),

    EntityList = (function()
      local entitylist = ffi.cast(engine_stuff.type.interface, engine_stuff.interfaces.client.entitylist);

      return {
        get_client_entity = vmt:bind(entitylist, 3, 'HANDLE(__thiscall*)(HANDLE, INT)')
      }
    end)(),

    get_poseparameter = ffi.cast('poseparameter_t*(__thiscall*)(HANDLE, INT)', engine_stuff.patterns.client.poseparameter)
  },

  Explorer = {
    CreateFolder = function(self, Path)
      ffi.C.CreateDirectoryA(Path, NULL)
    end,
 
    DownloadUrlToFile = function(self, URL, Path)
      Library.wininet.DeleteUrlCacheEntryA(URL); -- * Clean cache
      Library.urlmon.URLDownloadToFileA(nil, URL, Path, 0, 0); -- * Download
    end,
  },
}

FFI_Helpers.Explorer:CreateFolder('./nl/Lunarity/')
FFI_Helpers.Explorer:CreateFolder('./nl/Lunarity/Fonts/')

local Math_Helpers = {
  normalize_yaw = function(self, Yaw)
    while (Yaw > 180.0) do
      Yaw = Yaw - 360.0 end

    while (Yaw < -180.0) do
      Yaw = Yaw + 360.0 end

    return Yaw
  end,

  linear_interpolation = function(self, Start, End, Value)
    return Start + (End - Start) * Value
  end,

  closest_point = function(self, position, start, _end)
    local To  = position - start
    local Dir = _end - start
    local Length = #Dir

    Dir = Dir / Length

    local rangeAlong = Dir:Dot(To)
    if rangeAlong < 0.0 then
      return start end

    if rangeAlong > Length then
      return _end end

    return start + (Dir * Vector.new(rangeAlong, rangeAlong, rangeAlong))
  end,

  breathe = function(self, speed)
    speed = speed or 2.0

    local Speed = GlobalVars.realtime * speed
    local Anim  = Speed % (math.pi * 2.0)
    Anim        = math.abs(-math.pi + Anim)

    return math.sin(Anim)
  end,
}

local CheatVars = {
  ['Aimbot'] = {
    Ragebot = {
      ['Main'] = {
        Enable           = Menu.FindVar('Aimbot', 'Ragebot', 'Main', 'Enable Ragebot'),
        SilentAim        = Menu.FindVar('Aimbot', 'Ragebot', 'Main', 'Silent Aim'),
        Fov              = Menu.FindVar('Aimbot', 'Ragebot', 'Main', 'FOV'),
        OverrideResolver = Menu.FindVar('Aimbot', 'Ragebot', 'Main', 'Override Resolver'),
      },

      ['Accuracy'] = {
        Autowall         = Menu.FindVar('Aimbot', 'Ragebot', 'Accuracy', 'Autowall'),
        HitChance        = Menu.FindVar('Aimbot', 'Ragebot', 'Accuracy', 'Hit Chance'),
        MinimumDamage    = Menu.FindVar('Aimbot', 'Ragebot', 'Accuracy', 'Minimum Damage'),
        StaticPointScale = Menu.FindVar('Aimbot', 'Ragebot', 'Accuracy', 'Static Point Scale'),
        HeadScale        = Menu.FindVar('Aimbot', 'Ragebot', 'Accuracy', 'Head Scale'),
        BodyScale        = Menu.FindVar('Aimbot', 'Ragebot', 'Accuracy', 'Body Scale'),
      },

      ['Exploits'] = {
        HideShots = Menu.FindVar('Aimbot', 'Ragebot', 'Exploits', 'Hide Shots'),
        DoubleTap = Menu.FindVar('Aimbot', 'Ragebot', 'Exploits', 'Double Tap'),
      },

      ['Misc'] = {
        BodyAim    = Menu.FindVar('Aimbot', 'Ragebot', 'Misc', 'Body Aim'),
        SafePoints = Menu.FindVar('Aimbot', 'Ragebot', 'Misc', 'Safe Points'),
      },
    },

    AntiAim = {
      ['Main'] = {
        Enable      = Menu.FindVar('Aimbot', 'Anti Aim', 'Main', 'Enable Anti Aim'),
        Pitch       = Menu.FindVar('Aimbot', 'Anti Aim', 'Main', 'Pitch'),
        YawBase     = Menu.FindVar('Aimbot', 'Anti Aim', 'Main', 'Yaw Base'),
        YawAdd      = Menu.FindVar('Aimbot', 'Anti Aim', 'Main', 'Yaw Add'),
        YawModifier    = Menu.FindVar('Aimbot', 'Anti Aim', 'Main', 'Yaw Modifier'),
        ModifierDegree = Menu.FindVar('Aimbot', 'Anti Aim', 'Main', 'Modifier Degree'),
      },

      ['FakeLag'] = {
        Enable = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Lag', 'Enable Fake Lag'),
        Limit  = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Lag', 'Limit'),
        Random = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Lag', 'Randomization'),
      },

      ['FakeAngle'] = {
        Enable             = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Enable Fake Angle'),
        Inverter           = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Inverter'),
        LeftLimit          = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Left Limit'),
        RightLimit         = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Right Limit'),
        FakeOptions        = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Fake Options'),
        LBYMode            = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'LBY Mode'),
        FreestandingDesync = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Freestanding Desync'),
        DesyncOnShot       = Menu.FindVar('Aimbot', 'Anti Aim', 'Fake Angle', 'Desync On Shot'),
      },

      ['Misc'] = {
        SlowWalk    = Menu.FindVar('Aimbot', 'Anti Aim', 'Misc', 'Slow Walk'),
        LegMovement = Menu.FindVar('Aimbot', 'Anti Aim', 'Misc', 'Leg Movement'),
        FakeDuck    = Menu.FindVar('Aimbot', 'Anti Aim', 'Misc', 'Fake Duck'),
      },
    },
  },
}

local _Cheat = {
  Patterns = {
    Clantag = ffi.cast('INT(__fastcall*)(LPCSTR, LPCSTR)', Utils.PatternScan('engine.dll', '53 56 57 8B DA 8B F9 FF 15') or error('Missing clantag interface.')),
  },

  Fonts = {
    VerdanaBold = {
      [11] = Render.InitFont('Verdana', 11, {'b'}),
    },
 
    SmallestPixel7 = {
      [10] = Render.InitFont('Smallest Pixel-7', 10),
    },

    ActaSymbolsW95Arrows = (function()
      local File = './nl/Lunarity/Fonts/Acta Symbols W95 Arrows.ttf'
      FFI_Helpers.Explorer:DownloadUrlToFile(
        'https://raw.githubusercontent.com/qhouz/Fonts/main/Drainyaw/Acta Symbols W95 Arrows.ttf',
        File
      )

      return {
        [21] = Render.InitFont(File, 21),
      }
    end)(),
  },

  Stuff = {
    Screen = EngineClient.GetScreenSize(),

    Status = 'BETA',
    Build = 'alpha',
    Version = 2.4,
    Username = Cheat.GetCheatUserName(),
  },

  Flags = {
    Player = {
      FL_ONGROUND   = bit.lshift(1, 0),
      FL_DUCKING    = bit.lshift(1, 1),
      FL_WATERJUMP  = bit.lshift(1, 3),
      FL_ONTRAIN    = bit.lshift(1, 4),
      FL_INRAIN     = bit.lshift(1, 5),
      FL_FROZEN     = bit.lshift(1, 6),
      FL_ATCONTROLS = bit.lshift(1, 7),
      FL_CLIENT     = bit.lshift(1, 8),
      FL_FAKECLIENT = bit.lshift(1, 9),
      FL_INWATER    = bit.lshift(1, 10),
    },

    States = {
      IN_ATTACK    = bit.lshift(1, 0),
      IN_JUMP      = bit.lshift(1, 1),
      IN_DUCK      = bit.lshift(1, 2),
      IN_FORWARD   = bit.lshift(1, 3),
      IN_BACK      = bit.lshift(1, 4),
      IN_USE       = bit.lshift(1, 5),
      IN_CANCEL    = bit.lshift(1, 6),
      IN_LEFT      = bit.lshift(1, 7),
      IN_RIGHT     = bit.lshift(1, 8),
      IN_MOVELEFT  = bit.lshift(1, 9),
      IN_MOVERIGHT = bit.lshift(1, 10),
      IN_ATTACK2   = bit.lshift(1, 11),
      IN_RUN       = bit.lshift(1, 12),
      IN_RELOAD    = bit.lshift(1, 13),
      IN_ALT1      = bit.lshift(1, 14),
      IN_ALT2      = bit.lshift(1, 15),
      IN_SCORE     = bit.lshift(1, 16),
      IN_SPEED     = bit.lshift(1, 17),
      IN_WALK      = bit.lshift(1, 18),
      IN_ZOOM      = bit.lshift(1, 19),
      IN_WEAPON1   = bit.lshift(1, 20),
      IN_WEAPON2   = bit.lshift(1, 21),
      IN_BULLRUSH  = bit.lshift(1, 22),
    },
  },

  Helpers = {
    RollAngle2Vector = function(self, QAngle)
      local forward, right = Vector.new(), Vector.new()

      local pitch, yaw, roll = math.rad(QAngle.pitch), math.rad(QAngle.yaw), math.rad(QAngle.roll)

      local cp, sp = math.cos(pitch), math.sin(pitch)
      local cy, sy = math.cos(yaw), math.sin(yaw)
      local cr, sr = math.cos(roll), math.sin(roll)

      forward.x = cp * cy
      forward.y = cp * sy
      forward.z = -sp

      right.x = (-1 * sr * sp * cy) + (-1 * cr * -sy)
      right.y = (-1 * sr * sp * sy) + (-1 * cr * cy)
      right.z = -1 * sr * cp

      return forward, right
    end,

    RollMovementFix = function(self, cmd)
      local frL, riL = self:RollAngle2Vector(QAngle.new(0, cmd.viewangles.yaw, 0))
      local frC, riC = self:RollAngle2Vector(cmd.viewangles)

      frL.z = 0
      riL.z = 0
      frC.z = 0
      riC.z = 0

      frL = frL / frL:Length()
      riL = riL / riL:Length()
      frC = frC / frC:Length()
      riC = riC / riC:Length()

      local Move = Vector2.new(cmd.forwardmove, cmd.sidemove)
      local Coord = (frL * Move.x) + (riL * Move.y);

      cmd.sidemove = (frC.x * Coord.y - frC.y * Coord.x) / (riC.y * frC.x - riC.x * frC.y)
      cmd.forwardmove = (riC.y * Coord.x - riC.x * Coord.y) / (riC.y * frC.x - riC.x * frC.y)
    end,

    CreateClantag = function(self, Text)
      local Animation = {};

      local Length = #Text
      for index = 1, Length do
        local Left = Text:sub(index, Length)

        local index = index - 1
        local Right = Text:sub(0, index)

        local Text = Left .. ' ' .. Right
        table.insert(Animation, Text)
      end

      return Animation
    end,

    GetCurtime = function(self, Offset)
      return GlobalVars.curtime - (Offset * GlobalVars.interval_per_tick)
    end,

    CanFire = function(self)
      local Player = EntityList.GetLocalPlayer()
      local Weapon = Player:GetActiveWeapon()

      if not Player or not Weapon then
        return false end

      if self:GetCurtime(-16) < Player:GetProp('m_flNextAttack') then
        return false end
   
      if self:GetCurtime(0) < Weapon:GetProp('m_flNextPrimaryAttack') then
        return false end

      return true
    end,

    GetPlayerState = function(self)
      local Player = EntityList.GetLocalPlayer()
      if not Player then
        return end

      -- return -1;

      if bit.band(Player:GetProp('m_fFlags'), 1) == 0 then
        return 4
      end

      if Player:GetProp('m_flDuckAmount') == 1.0 then
        return 2
      end

      if #Player:GetProp('m_vecVelocity') > 10.0 then
        if CheatVars.Aimbot.AntiAim.Misc.SlowWalk:Get() then
          return 5
        end
        return 1
      end

      return 3
    end,
  },
}

local Menu_Handler = {
  -- * Tab Control
  List = {},

  Enable_Controller = Menu.Switch('Lunarity.lua','Enable', false),
  Combo_Controller = Menu.Combo('Lunarity.lua', 'Tab', {''}, 0),
  Text_5th = Menu.Text('Lunarity.lua', '-----------------------------------------------'),

  Grid_Separator   = Menu.Switch('', '', false):SetVisible(false),

  Reference = {},

  Update = function(self)
    -- * Force update all cheat variables
    for _, Tab in pairs(self.Reference) do
      for _, Table in pairs(Tab) do
        Table.Variable:SetVisible(Table.Condition());
      end
    end
  end,

  New = function(self, Tab, Name, CheatVar, Condition)
    -- * If condition is empty
    Condition = Condition or function(...)
      return true end

    -- * If tab not found
    if self.Reference[Tab] == nil then
      self.Reference[Tab] = {};

      -- * Updating Combo controller
      table.insert(self.List, Tab)
      self.Combo_Controller:UpdateList(self.List)
    end

    -- * If element already exist
    if self.Reference[Tab][Name] ~= nil then
      error(
        ('Already exist element in [%s] tab with [%s] name!'):format(Tab, Name),
        2
      )
    end

    -- * Creating reference
    self.Reference[Tab][Name] = {
      Variable  = CheatVar,
      Condition = function()
        return self.Enable_Controller:Get()
        and (Tab == self.List[self.Combo_Controller:Get() + 1])
        and Condition(self.Reference)
      end,
    }
 
    -- * Force update
    CheatVar:RegisterCallback(function()
      self:Update()
    end)
    self:Update()

    -- * Return cheat variable
    return CheatVar
  end,

  GetMultiCombo = function(self, _bit, index)
    local mask = bit.lshift(1, index) -- * 1 << index
    return bit.band(_bit, mask) ~= 0
  end,

  SetMultiCombo = function(self, ui, index)
    local bitwise = 0x0;
 
    if type(index) ~= 'table' then
      bitwise = index;
    else
      for _, value in pairs(index) do
        local mask = bit.lshift(1, value); -- 1 << index
        bitwise = bit.bor(bitwise, mask); -- bitwise | mask
      end
    end

    if type(ui) ~= 'number' then
      ui:Set(bitwise)
    end

    return bitwise
  end
}

local _Render = {
  Colors = {
    Transperent = Color.new(1.0, 1.0, 1.0, 0.25),

    Black = Color.new(0.05, 0.05, 0.05, 0.5),
    White = Color.new(1.0, 1.0, 1.0),

    Main = Color.new(0.403, 0.509, 0.772),
  },

  Stuff = {
    Indicators = {
      Animations = {
        DT = {
          Value = 0.0,
        },
      },
      State = {
        {Preset = '/RUNNING/', Colored = false},
        {Preset = '/CROUCH/',  Colored = false},
        {Preset = '/STANDING/',    Colored = false},
        {Preset = '/AIR/', Colored = false},
        {Preset = '/SLOW-WALK/',  Colored = true},
      },
    },
  },

  Helpers = {
    -- * [Render] ColorCopy
    ColorCopy = function(self, Color)
      return Color.new(Color.r, Color.g, Color.b, Color.a)
    end,

    -- * [Render] MultiText
    CalcMultiTextSize = function(self, Table, ...)
      local Position = Vector2.new(0.0, 0.0)
      local arguments = {...}
      local fonts = {}

      if arguments[1] then
        table.insert(fonts, arguments[1])
      end

      if arguments[2] then
        table.insert(fonts, arguments[2])
      end

      for _, Key in pairs(Table) do
        local Size = Render.CalcTextSize(Key.Text, unpack(fonts))
        Position.x = Position.x + Size.x
        if Size.y > Position.y then
          Position.y = Size.y
        end
      end

      return Position
    end,

    -- * [Render] MultiText
    MultiText = function(self, Table, Position, ...)
      local arguments = {...}
      local fonts = {}

      if arguments[1] then
        table.insert(fonts, arguments[1])
      end

      if arguments[2] and type(arguments[2]) ~= 'boolean' then
        table.insert(fonts, arguments[2])
      end

      for _, Key in pairs(Table) do
        Render.Text(Key.Text, Position, Key.Color, ...)
        Position.x = Position.x + Render.CalcTextSize(Key.Text, unpack(fonts)).x
      end
    end,
  }
}

local Lua_Elements = {
  ['Anti-aim'] = {
    Preset = Menu_Handler:New('Anti-aim', 'Preset', Menu.Combo('Lunarity.lua', 'Preset', {'Stable', 'Alpha', 'Agressive'}, 0.0)),
    Global = Menu_Handler:New('Anti-aim', 'Global', Menu.MultiCombo('Lunarity.lua', 'Anti-Aim', {'Adaptive Fake Lags', 'Manual Anti-aims', 'Anti-aim on use', 'Edge yaw', 'Teleport in air', 'Roll'}, 0.0)),
    InAir = Menu_Handler:New('Anti-aim', 'In Air', Menu.Combo('Lunarity.lua', 'In Air Anti-Aim', {'Static', 'Jitter'}, 0.0)),
  },

  ['Anti-bruteforce'] = {
    Global = Menu_Handler:New('Anti-bruteforce', 'Global', Menu.MultiCombo('Lunarity.lua', 'Anti-bruteforce on', {'Running', 'Crouch', 'Stand', 'Aerobic', 'Slow motion'}, 0.0)),
  },

  ['Visuals'] = {
    _1st_Color = Menu_Handler:New('Visuals', 'Main Color', Menu.ColorEdit('Lunarity.lua', 'Main Color', _Render.Colors.Main)),
    _2nd_Color = Menu_Handler:New('Visuals', 'Second Color', Menu.ColorEdit('Lunarity.lua', 'Second Color', _Render.Colors.White)),
  },

  ['Other'] = {
    Global = Menu_Handler:New('Other', 'Global', Menu.MultiCombo('Lunarity.lua', 'Other', {'Clantag', 'Anim. Breaker', 'Kill Say'}, 0.0)),
    Config = Menu_Handler:New('Other', 'Config', Menu.Button('Lunarity.lua', 'Load Default Config', 'Load Default Config')),
  },
}

local Memory = {
  Helpers = {
    AnimBreaker = {
      cache = {},
      set_parameter = function(self, pointer, layer, start, _end)
        local address = ffi.cast('SIZE_T', pointer)
        if address == 0x0 then
          return false end
 
        local studio_hdr = ffi.cast('PVOID*', address + 0x2950)[0]
        if studio_hdr == nil then
          return false end
 
        local poseparameter = FFI_Helpers.Client.get_poseparameter(studio_hdr, layer)
        if poseparameter == nil or poseparameter == 0x0 then
          return end

        -- * create backup array if not exist
        if self.cache[layer] == nil then
          self.cache[layer] = {};
 
          self.cache[layer].m_flStart = poseparameter.m_flStart
          self.cache[layer].m_flEnd = poseparameter.m_flEnd
 
          self.cache[layer].m_flState = poseparameter.m_flState
 
          self.cache[layer].installed = false
          return true
        end

        -- * setup anim. breaker
        if start ~= nil and not self.cache[layer].installed then

          poseparameter.m_flStart = start
          poseparameter.m_flEnd   = _end

          poseparameter.m_flState = (poseparameter.m_flStart + poseparameter.m_flEnd) /2

          self.cache[layer].installed = true
          return true
        end

        -- * backup
        if self.cache[layer].installed then
          poseparameter.m_flStart = self.cache[layer].m_flStart
          poseparameter.m_flEnd   = self.cache[layer].m_flEnd

          poseparameter.m_flState = self.cache[layer].m_flState

          self.cache[layer].installed = false
          return true
        end

        return false
      end,
    }
  },

  Stuff = {
    AntiAim = {
      Presets = function(self)
        return {
          yaw = {
            add = {
              left = {
                {-15, -20, -15, -7, -12},
                {-18, 0, -18, 0, 8},
                {0, 0, 0, 0, -8},
              },
              right = {
                {22, 20, 22, -12, 20},
                {8, 0, 8, 0, 8},
                {0, 0, 0, 0, -8},
              },
            },

            modifier = {
              type = {
                {1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1},
              },
              degree = {
                {48, 22, 22, 1, 30},
                {54, 64, 54, 43, 63},
                {80, 60, 43, 77, 60},
              },
            },
          },

          fake = {
            jitter = {
              {false, false, false, false, false},
              {false, false, false, false, false},
              {false, false, false, false, false},
            },
            left = {
              {60, 60, 60, 47, 60},
              {60, 60, 60, 60, 60},
              {60, 60, 60, 60, 60},
            },
            right = {
              {60, 60, 60, 47, 60},
              {60, 60, 60, 60, 60},
              {60, 60, 60, 60, 60}
            },
          },

          options = {
            fake = {
              {2, 2, 2, {0, 1}, 2},
              {2, 2, 2, 2, 2},
              {2, 2, 2, 2, 2},
            },
            lby = {
              {0, 1, 1, 1, 1},
              {0, 1, 1, 1, 1},
              {1, 1, 1, 1, 1},
            },
            freestand = {
              {0, 0, 0, 0, 0},
              {0, 0, 0, 0, 0},
              {0, 0, 0, 0, 0},
            },
            onshot = {
              {2, 1, 2, 2, 2},
              {0, 0, 0, 2, 2},
              {0, 0, 0, 0, 0},
            },
          },
        }
      end,

      EdgeYaw = {
        Vector = Vector.new(),
        Working = nil,
      },

      LegitAA = {
        Delay = nil,
      },

      AntiBruteforce = {
        Players = {},
        Time = nil,
      },

      Roll = {
        Working = nil,
      },
    },

    TeleportEX = {
      Delay = 0.0,
    },
 
    AdaptiveFakeLags = {
      Default = nil,
    },
  },

  Clantag = {
    Source = _Cheat.Helpers:CreateClantag('Lunarity.lua'),
    String = nil,
  },

  KillSay = {
    'бошка взорвалась от моего наплыва',
    'отсосала проститутка хахаха',
    'пиши disconnect обоссанный',
    'жри землю мышь',
    'яйца в щечки и потопал на тот свет',
    'ешки матрешки нихуя ты пули всосал как кончу проглотил',
    'минет делай ханыга',
    'оправдания?',
    'глотай помёт овечка',
    'снимай штаны щас будем петушить',
    'сейчас вантап, а потом что? в ротик?',
    'у тебя еще есть шанс козленыш',
    'сейчас в попу, потом в ротик',
    'лям сюда лям туда, бэктрекед ту africa моча',
    'где мозги потерял шаболда',
    'бегите сука, папочка идет...',
    'братец тут уже нихуя не поможет',
    'передавило ослинской',
    'залил очко спермой',
    'где мозги потерял шаболда',
    'анально наказан',
    'братец ты не с дрейнявом играешь чтобы тебе в ебло не попадали',
    'где носопырку потерял',
    'орять шляпа слетела, анти-попадайки не помогли',
    'бектрекед to africa дегенерат)',
    '-> заползла обратно моча <- тебе в будку',
    'ешки матрешки вот это вантапчик',
    'каадык мне в зад вот это я тебе ебло снес красиво',
    'oh my god валера, ты сириусли надеялся меня убить? АХАХ',
    'ебло разлетелось на тысячи частиц материи',
  },
}

local Script = {
  Hooks = {
    destroy = {
      ['Adaptive Fake Lags'] = function(self)
        local Limit = CheatVars.Aimbot.AntiAim.FakeLag.Limit;
        if Memory.Stuff.AdaptiveFakeLags.Default ~= nil then
          Limit:Set(Memory.Stuff.AdaptiveFakeLags.Default);
          Memory.Stuff.AdaptiveFakeLags.Default = nil;
        end
      end,
    },

    prediction = {
      ['Anti-aim'] = function(self, cmd)
        if not Menu_Handler.Enable_Controller:Get() then
          return end

        Memory.Stuff.AntiAim.EdgeYaw.Working = nil;
        local Player = EntityList.GetLocalPlayer()
        if not Player then
          return end

        local Options = Lua_Elements['Anti-aim'].Global:Get()
        local AA = Memory.Stuff.AntiAim:Presets()

        local Preset = Lua_Elements['Anti-aim'].Preset:Get() + 1
        local State = _Cheat.Helpers:GetPlayerState() or 3
        if not State then
          return end

        local View = EngineClient.GetViewAngles()
        local Side = AntiAim.GetInverterState()
        local YawBase = CheatVars.Aimbot.AntiAim.Main.YawBase:Get()

        local LegitAA = (Menu_Handler:GetMultiCombo(Options, 2)) and (bit.band(cmd.buttons, _Cheat.Flags.States.IN_USE) == _Cheat.Flags.States.IN_USE)
        local Manual = (YawBase == 3.0 or YawBase == 2.0) -- Left or Right
     
        CheatVars.Aimbot.AntiAim.Main.YawAdd:Set(Side and AA.yaw.add.left[Preset][State] or AA.yaw.add.right[Preset][State])
        CheatVars.Aimbot.AntiAim.Main.YawModifier:Set(AA.yaw.modifier.type[Preset][State])
        CheatVars.Aimbot.AntiAim.Main.ModifierDegree:Set(AA.yaw.modifier.degree[Preset][State])

        local LeftLimit  = AA.fake.left[Preset][State]
        local RightLimit = AA.fake.right[Preset][State]

        if AA.fake.jitter[Preset][State] and GlobalVars.tickcount % 4.0 > 1.0 then
          LeftLimit  = 18.0
          RightLimit = 18.0
        end

        CheatVars.Aimbot.AntiAim.FakeAngle.LeftLimit:Set(LeftLimit)
        CheatVars.Aimbot.AntiAim.FakeAngle.RightLimit:Set(RightLimit)

        Menu_Handler:SetMultiCombo(CheatVars.Aimbot.AntiAim.FakeAngle.FakeOptions, AA.options.fake[Preset][State])

        if (Menu_Handler:GetMultiCombo(Options, 1) and Manual) or LegitAA then -- * Static
          CheatVars.Aimbot.AntiAim.Main.YawModifier:Set(0)
          CheatVars.Aimbot.AntiAim.FakeAngle.FakeOptions:SetBool(2, false)
        end

        if Lua_Elements['Anti-aim'].InAir:Get() == 0.0 and State == 4 then
          CheatVars.Aimbot.AntiAim.FakeAngle.FakeOptions:SetBool(2, false)
        end

        CheatVars.Aimbot.AntiAim.FakeAngle.LBYMode:Set(AA.options.lby[Preset][State])
        CheatVars.Aimbot.AntiAim.FakeAngle.FreestandingDesync:Set(AA.options.freestand[Preset][State])
        CheatVars.Aimbot.AntiAim.FakeAngle.DesyncOnShot:Set(AA.options.onshot[Preset][State])

        -- * Edge Yaw
        if Menu_Handler:GetMultiCombo(Options, 3) and not Manual then
          local Flags = Player:GetProp('m_fFlags')
          if bit.band(Flags, _Cheat.Flags.Player.FL_ONGROUND) ~= 0 then -- * if on ground
            if ClientState.m_choked_commands == 0 then
              Memory.Stuff.AntiAim.EdgeYaw.Vector = Player:GetEyePosition()
            end

            local TraceEnd = {};
            local Distance = {};

            for flYaw = 18, 360, 18 do
              flYaw = Math_Helpers:normalize_yaw(flYaw)
              local angEdge = QAngle.new(0, flYaw, 0)
   
              local vecTraceEnd = Memory.Stuff.AntiAim.EdgeYaw.Vector + Cheat.AngleToForward(angEdge) * 198
   
              local traceInfo = EngineTrace.TraceRay(Memory.Stuff.AntiAim.EdgeYaw.Vector, vecTraceEnd, Player, 0x46004003)
              table.insert(Distance, Memory.Stuff.AntiAim.EdgeYaw.Vector:DistTo(traceInfo.endpos))
   
              local flFraction = traceInfo.fraction
              local pEntity = traceInfo.hit_entity
   
              if pEntity and pEntity:GetClassName() == 'CWorld' and flFraction < 0.3 then
                TraceEnd[#TraceEnd+1] = {
                  vecTraceEnd = vecTraceEnd,
                  flYaw = flYaw,
                }
              end
            end

            table.sort(Distance)
            if Distance[1] > 30.0 then
              goto skip end
     
            table.sort(TraceEnd, function(a, b)
              return a.flYaw < b.flYaw
            end)
     
            table.remove(TraceEnd, #TraceEnd)
            local angEdge

            if #TraceEnd >= 3 then
              local vecTraceCenter = Math_Helpers:linear_interpolation(TraceEnd[1].vecTraceEnd, TraceEnd[#TraceEnd].vecTraceEnd, 0.5)
              angEdge = Cheat.VectorToAngle(Memory.Stuff.AntiAim.EdgeYaw.Vector - vecTraceCenter)
            end

            if angEdge then
              local flYaw = View.yaw
              local flEdgeYaw = angEdge.yaw
   
              local flDiff = Math_Helpers:normalize_yaw(flEdgeYaw - flYaw)
              if math.abs(flDiff) < 90.0 then
                flDiff = 0.0
                flYaw = Math_Helpers:normalize_yaw(flEdgeYaw + 180.0)
              end
   
              -- Static yaw
              local flNewYaw = -flYaw

              -- Apply edge yaw
              flNewYaw = Math_Helpers:normalize_yaw(flNewYaw + flEdgeYaw)
              flNewYaw = Math_Helpers:normalize_yaw(flNewYaw + flDiff + 180)
   
              AntiAim.OverrideYawOffset(flNewYaw)
              Memory.Stuff.AntiAim.EdgeYaw.Working = true;
            end

            ::skip::
          end
        end

        -- * Anti-aim on Use
        if not LegitAA then
          Memory.Stuff.AntiAim.LegitAA.Delay = nil; return end

        if Memory.Stuff.AntiAim.LegitAA.Delay == nil then
          Memory.Stuff.AntiAim.LegitAA.Delay = GlobalVars.tickcount
        end

    if Player:GetProp('m_bIsDefusing') or Player:GetProp('m_bIsGrabbingHostage') then
          return end
                                                                 
        if GlobalVars.tickcount - Memory.Stuff.AntiAim.LegitAA.Delay <= 5.0 then
          return end

        cmd.buttons = bit.band(cmd.buttons, bit.bnot(_Cheat.Flags.States.IN_USE))
   
        AntiAim.OverrideYawOffset(-180.0)
        AntiAim.OverridePitch(View.pitch)
      end,

      ['Teleport in air'] = function(self, cmd)
        if not Menu_Handler.Enable_Controller:Get() then
          return end
       
        local Options = Lua_Elements['Anti-aim'].Global:Get()
        if not Menu_Handler:GetMultiCombo(Options, 4) then
          return end

        local Player = EntityList.GetLocalPlayer()
        if not Player then
          return end
     
        local Flags = Player:GetProp('m_fFlags')
        if bit.band(Flags, _Cheat.Flags.Player.FL_ONGROUND) ~= 0 then
          return end

        if not CheatVars.Aimbot.Ragebot.Exploits.DoubleTap:Get() then
          return end

        if Exploits.GetCharge() < 0.5 then
          return end

        local PlayerList = EntityList.GetPlayers()
        if not PlayerList then
          return end

        if #PlayerList == 0 then
          return end

        local Stomach = Player:GetHitboxCenter(3)
        for _, Pointer in ipairs(PlayerList) do
          if Pointer:IsTeamMate() then
            goto skip end

          if Pointer:IsDormant() then
            return end

          if Pointer:GetProp('m_lifeState') then
            return end
       
          local Trace_t = Cheat.FireBullet(Pointer, Pointer:GetEyePosition(), Stomach)

          if Trace_t.damage > 0.0 then
            Exploits.ForceTeleport()
            Memory.Stuff.TeleportEX.Delay = GlobalVars.realtime
          end
          ::skip::
        end
      end,

      ['Roll'] = function(self, cmd)
        Memory.Stuff.AntiAim.Roll.Working = nil;

        if not Menu_Handler.Enable_Controller:Get() then
          return end
     
        local Options = Lua_Elements['Anti-aim'].Global:Get()
        if not Menu_Handler:GetMultiCombo(Options, 5) then
          return end

        local Player = EntityList.GetLocalPlayer()
        if not Player then
          return end

        local YawBase = CheatVars.Aimbot.AntiAim.Main.YawBase:Get()
        local Force = (YawBase == 3.0 or YawBase == 2.0) and Menu_Handler:GetMultiCombo(Options, 1)

        local Velocity = Player:GetProp('m_vecVelocity')
        if #Velocity > 10.0 and not CheatVars.Aimbot.AntiAim.Misc.SlowWalk:Get() and not Force then
          return end
     
        local Degree = 90.0
        if not AntiAim.GetInverterState() then
          Degree = -Degree;
        end

        cmd.viewangles.roll = Degree;
        CheatVars.Aimbot.AntiAim.Main.YawAdd:Set(0);
        Memory.Stuff.AntiAim.Roll.Working = true;
      end,

      ['Anim. Breaker'] = function(self, cmd)
        local Options = Lua_Elements.Other.Global:Get()
        if not Menu_Handler:GetMultiCombo(Options, 1) then
          return end

        -- * info
        local index = EngineClient.GetLocalPlayer()
     
        -- * client
        local player = FFI_Helpers.Client.EntityList.get_client_entity(index)
        if player == nil then
          return end

        -- * transform
        -- local address = ffi.cast('SIZE_T', player)
        -- if address == 0x0 then
        --   return end

        -- local animstate = ffi.cast('PVOID*', address + engine_stuff.offset.animstate)[0]
        -- if animstate == nil then
        --   return end
   
        -- animstate = ffi.cast('SIZE_T', animstate)
        -- if animstate == 0x0 then
        --   return end
       
        -- local land = ffi.cast('BOOL*', animstate + 0x109)[0]
        -- if land == nil then
        --   return end

        -- * setting poseparameter
        Memory.Helpers.AnimBreaker:set_parameter(player, 0, -100, -180) -- * STRAFE_YAW
        Memory.Helpers.AnimBreaker:set_parameter(player, 6, 0.999, 1.0) -- * JUMP_FALL
        -- memory_stuff.anim_breaker:set_parameter(player, 12, 0.999, 1) -- * BODY_PITCH
      end,
    },

    createmove = {
      ['Roll'] = function(self, cmd)
        if not Memory.Stuff.AntiAim.Roll.Working then
          return end
     
        _Cheat.Helpers:RollMovementFix(cmd)
      end,

      ['Anim. Breaker'] = function(self, cmd)
        local index = EngineClient.GetLocalPlayer()
     
        -- * client
        local player = FFI_Helpers.Client.EntityList.get_client_entity(index)
        if player == nil then
          return end

        for key, _ in pairs(Memory.Helpers.AnimBreaker.cache) do
          Memory.Helpers.AnimBreaker:set_parameter(player, key)
        end
      end,
    },

    Menu = {
      ['Adaptive Fake Lags'] = function(self)
        local Options = Lua_Elements['Anti-aim'].Global:Get()
        local Limit = CheatVars.Aimbot.AntiAim.FakeLag.Limit;

        if Menu_Handler.Enable_Controller:Get() and Menu_Handler:GetMultiCombo(Options, 0) and CheatVars.Aimbot.Ragebot.Exploits.HideShots:Get() and not CheatVars.Aimbot.Ragebot.Exploits.DoubleTap:Get() then
          Memory.Stuff.AdaptiveFakeLags.Default = Limit:Get();
          Limit:Set(1);
        else
          self.Hooks.destroy['Adaptive Fake Lags'](self)
        end
      end,
    },

    draw = {
      ['Indicators'] = function(self)
        if not EngineClient.IsInGame() then
          return end
   
        local Player = EntityList.GetLocalPlayer()
        if not Player then
          return end
     
        if not Player:IsAlive() then
          return end

        local font = _Cheat.Fonts.VerdanaBold[11]
        local Position = Vector2.new(_Cheat.Stuff.Screen.x /2.0, _Cheat.Stuff.Screen.y /2.0 + 22.0)

        local Side = AntiAim.GetInverterState()
        local State = _Cheat.Helpers:GetPlayerState()
        State = _Render.Stuff.Indicators.State[State] or _Render.Stuff.Indicators.State[3] -- * Default

        local _1st_Color = Lua_Elements['Visuals']._1st_Color:GetColor()
        local _2nd_Color = Lua_Elements['Visuals']._2nd_Color:GetColor()
     
        local Left = Side and _2nd_Color or _1st_Color
        local Right = Side and _1st_Color or _2nd_Color

          local Radius = 30.0
          local View = EngineClient.GetViewAngles()
          local Real = Math_Helpers:normalize_yaw(AntiAim.GetCurrentRealRotation() - View.yaw - 180.0)

          local LeftRad  = math.rad(Real - 1.0)
          local RightRad = math.rad(Real + 1.0)

          local Center = Vector2.new(_Cheat.Stuff.Screen.x /2.0, _Cheat.Stuff.Screen.y /2.0)
          local Size = 10.0
          local Sharpness = 4.0

          local Gap = math.rad(Size * 2)

          local Triangles = {
            Left = {
              Vector2.new(Center.x + (Radius * math.sin(LeftRad)),                   Center.y + (Radius * math.cos(LeftRad))),
              Vector2.new(Center.x + (Radius + Size) * math.sin(LeftRad),            Center.y + (Radius + Size) * math.cos(LeftRad)),
              Vector2.new(Center.x + (Radius - Sharpness) * math.sin(LeftRad - Gap), Center.y + (Radius - Sharpness) * math.cos(LeftRad - Gap)),
            },

            Right = {
              Vector2.new(Center.x + (Radius * math.sin(RightRad)),                   Center.y + (Radius * math.cos(RightRad))),
              Vector2.new(Center.x + (Radius + Size) * math.sin(RightRad),            Center.y + (Radius + Size) * math.cos(RightRad)),
              Vector2.new(Center.x + (Radius - Sharpness) * math.sin(RightRad + Gap), Center.y + (Radius - Sharpness) * math.cos(RightRad + Gap)),
            },
          }

          Render.PolyFilled(Left, unpack(Triangles.Left));
          Render.PolyFilled(Right, unpack(Triangles.Right));

          Position.y = Position.y + 25.0

        -- * Lua name
          local Text = {
            {Color = Left, Text = 'luna'},
            {Color = Right, Text = 'rity°'},
          }

          local TextSize = _Render.Helpers:CalcMultiTextSize(Text, 11, font)
          local NewPosition = Vector2.new(Position.x - TextSize.x /2.0 + 2.0, Position.y + 1.0)

          -- * BETA Build
          local backup = _1st_Color.a
          _1st_Color.a = Math_Helpers:breathe(1) * backup

          _1st_Color.a = backup

          Render.Text('lunarity°', NewPosition + 1.0, _Render.Colors.Black, 11, font)
          _Render.Helpers:MultiText(Text, NewPosition, 11, font)

          Position.y = Position.y + TextSize.y + 1.0

        local font = _Cheat.Fonts.SmallestPixel7[10]

        -- * Anti-brute time
        if Memory.Stuff.AntiAim.AntiBruteforce.Time ~= nil then
          local ResetTime = 5.0
          local AntiBrute_Time = ResetTime + Memory.Stuff.AntiAim.AntiBruteforce.Time

          local Ratio = 1.0
          if AntiBrute_Time > GlobalVars.realtime then
            Ratio = (AntiBrute_Time - GlobalVars.realtime) / ResetTime
          else
            Memory.Stuff.AntiAim.AntiBruteforce.Time = nil
          end

          Position.y = Position.y + 3.0

          local LineSize = Vector2.new(29.0, 3.0)

          Render.BoxFilled(
            Vector2.new(Position.x - LineSize.x, Position.y),
            Vector2.new(Position.x + LineSize.x, Position.y + LineSize.y),
            _Render.Colors.Black
          )

          Render.BoxFilled(
            Vector2.new(Position.x - LineSize.x + 1.0, Position.y + 1.0),
            Vector2.new(Position.x - LineSize.x + 1.0 + ((LineSize.x - 1.0) * 2.0) * Ratio, Position.y + LineSize.y - 1.0),
            _1st_Color
          )

          Position.y = Position.y + LineSize.y + 3.0
        end

        -- * Anti-Aim Gradient
          Position.y = Position.y + 3.0

          local LineSize = Vector2.new(28.0, 1.0)
          local Deepness = 6.0

          Render.BoxFilled(
            Vector2.new(Position.x - LineSize.x, Position.y),
            Vector2.new(Position.x, Position.y + LineSize.y),
            Left
          )

          Render.BoxFilled(
            Vector2.new(Position.x + LineSize.x, Position.y),
            Vector2.new(Position.x, Position.y + LineSize.y),
            Right
          )

          local Fade = _Render.Helpers:ColorCopy(Left)
          Fade.a = 0.0

          Render.GradientBoxFilled(
            Vector2.new(Position.x - LineSize.x, Position.y),
            Vector2.new(Position.x - LineSize.x + LineSize.y, Position.y + Deepness),
            Left, Left,
            Fade, Fade
          )

          local Fade = _Render.Helpers:ColorCopy(Right)
          Fade.a = 0.0

          Render.GradientBoxFilled(
            Vector2.new(Position.x + LineSize.x, Position.y),
            Vector2.new(Position.x + LineSize.x - LineSize.y, Position.y + Deepness),
            Right, Right,
            Fade, Fade
          )

          Position.y = Position.y + 2.0

        -- * Anti-Aim Preset


          local TextSize = Render.CalcTextSize(State.Preset, 10, font)
          local NewPosition = Vector2.new(Position.x - TextSize.x /2.0, Position.y)

          Render.Text(State.Preset, NewPosition, State.Colored and _1st_Color or _2nd_Color, 10, font, true, false)
          Position.y = Position.y + 9.0


        -- * Manaul Arrows
          local YawBase = CheatVars.Aimbot.AntiAim.Main.YawBase:Get();
          local Center = Vector2.new(_Cheat.Stuff.Screen.x /2.0, _Cheat.Stuff.Screen.y /2.0);

          -- * Left
          local Text = 'w';
          local TextSize = Render.CalcTextSize(Text, 21, _Cheat.Fonts.ActaSymbolsW95Arrows[21])

          Render.Text(Text, Vector2.new(Center.x - 55.0 - TextSize.x, Center.y - TextSize.y /2.0 + 2.0), (YawBase == 3.0) and _1st_Color or _2nd_Color, 21, _Cheat.Fonts.ActaSymbolsW95Arrows[21])
       
          -- * Right
          local Text = 'x';
          local TextSize = Render.CalcTextSize(Text, 21, _Cheat.Fonts.ActaSymbolsW95Arrows[21])

          Render.Text(Text, Vector2.new(Center.x + 55.0, Center.y - TextSize.y /2.0 + 2.0), (YawBase == 2.0) and _1st_Color or _2nd_Color, 21, _Cheat.Fonts.ActaSymbolsW95Arrows[21])

        -- * Keybinds

          local AnimTime = GlobalVars.frametime * 4.0
          if _Cheat.Helpers:CanFire() then
            _Render.Stuff.Indicators.Animations.DT.Value = math.min(_Render.Stuff.Indicators.Animations.DT.Value + AnimTime, 1.0)
          else
            _Render.Stuff.Indicators.Animations.DT.Value = math.max(_Render.Stuff.Indicators.Animations.DT.Value - AnimTime, 0.0)
          end

          local Keybinds = {
            [0] = {Text = 'ROLL', Active = Memory.Stuff.AntiAim.Roll.Working},
            [1] = {Text = 'DT',   Active = CheatVars.Aimbot.Ragebot.Exploits.DoubleTap:Get(), Circle = _Render.Stuff.Indicators.Animations.DT.Value},
            [2] = {Text = 'Hide',   Active = CheatVars.Aimbot.Ragebot.Exploits.HideShots:Get()},
            [3] = {Text = 'Safe',   Active = CheatVars.Aimbot.Ragebot.Misc.SafePoints:Get() == 2.0},
            [4] = {Text = 'Body',   Active = CheatVars.Aimbot.Ragebot.Misc.BodyAim:Get() == 2.0},
            [5] = {Text = 'FS',   Active = CheatVars.Aimbot.AntiAim.Main.YawBase:Get() == 5.0},
            [6] = {Text = 'EDGE', Active = Memory.Stuff.AntiAim.EdgeYaw.Working},
          };
       
          for Index, Value in pairs(Keybinds) do
         
            if not AlwaysOn and not Value.Active then
              goto skip end

            local TextSize = Render.CalcTextSize(Value.Text, 10, font)
            local NewPosition = Vector2.new(Position.x, Position.y)

            if Value.Active and Value.Circle ~= nil then
              local Size = 3.3
              local Gap = Size * 0.75

              Render.Circle(Vector2.new(NewPosition.x + TextSize.x /2.0 + Gap, NewPosition.y + TextSize.y /2.0), Size, 58.0, _2nd_Color, 1.8, -180, -180 + 360 * Value.Circle)
              NewPosition.x = NewPosition.x - Gap
            end

            NewPosition.x = NewPosition.x - TextSize.x /2.0

            Render.Text(Value.Text, NewPosition, Value.Active and _1st_Color or _Render.Colors.Transperent, 10, font, true, false)
            Position.y = Position.y + 9.0
            ::skip::
          end
      end,

      ['Clan Tag'] = function(self)
        if not EngineClient.IsInGame() then
          return end
   
        local Player = EntityList.GetLocalPlayer()
        if not Player then
          return end
     
        local Team = Player:GetProp('m_iTeamNum')
        if not Team then
          return end
     
        if Team ~= 3 and Team ~= 2 then -- if not ct and not t
          return end

        local Options = Lua_Elements['Other'].Global:Get()
        if not Menu_Handler:GetMultiCombo(Options, 0) then
          return end
                   
        local Index = math.floor(GlobalVars.curtime *3% #Memory.Clantag.Source) + 1
        local Text = Memory.Clantag.Source[Index] or 'UNDEFINED'                                                                                                                                                                                                                                  

        if Text ~= Memory.Clantag.String then
          _Cheat.Patterns.Clantag(Text, Text)
          Memory.Clantag.String = Text
        end
      end,
    },

    events = {
      ['Anti-Bruteforce'] = function(self, event)
        if event:GetName() ~= 'bullet_impact' then
          return end
     
        local AntiBruteforce = Lua_Elements['Anti-bruteforce'].Global:Get()

        if AntiBruteforce == 0 then
          return end

        local State = _Cheat.Helpers:GetPlayerState()
        if not Menu_Handler:GetMultiCombo(AntiBruteforce, State - 1) then
          return end

        local Player = EntityList.GetLocalPlayer()
        if not Player then
          return end

        local userid  = event:GetInt('userid')
        local Pointer = EntityList.GetPlayerForUserID(userid)
        if Pointer:IsTeamMate() then
          return end

        local EntIndex = Pointer:EntIndex()

        local HeadPos   = Player:GetHitboxCenter(0)
        local StartLine = Pointer:GetEyePosition()
        local EndLine   = Vector.new(event:GetFloat('x'), event:GetFloat('y'), event:GetFloat('z'))

        local ClosestPoint = Math_Helpers:closest_point(HeadPos, StartLine, EndLine)
        local Distance = HeadPos:DistTo(ClosestPoint)

        if Distance < 3.0 or Distance > 40.0 then
          return end

        if Memory.Stuff.AntiAim.AntiBruteforce.Players[EntIndex] == nil then
          Memory.Stuff.AntiAim.AntiBruteforce.Players[EntIndex] = {
            Timer = 0.0,
            Shots = 0.0,
          }
        end
     
        local Target = Memory.Stuff.AntiAim.AntiBruteforce.Players[EntIndex]
        local Realtime = GlobalVars.realtime

        if Target.Timer > Realtime then
          return end

        Target.Timer = Realtime + 0.5
        Memory.Stuff.AntiAim.AntiBruteforce.Time = Realtime
      end,

      ['Kill Say'] = function(self, event)
        if event:GetName() ~= 'player_death' then
          return end

        local Options = Lua_Elements.Other.Global:Get()

        if not Menu_Handler:GetMultiCombo(Options, 2) then
          return end
     
        local player_t = EntityList.GetLocalPlayer();

        if not player_t then
          return end

        local userid   = event:GetInt('userid');
        local attacker = event:GetInt('attacker');

        if not userid or not attacker then
          return end

        local userid_t   = EntityList.GetPlayerForUserID(userid);
        local attacker_t = EntityList.GetPlayerForUserID(attacker);

        if not userid_t or not attacker_t then
          return end
     
        if (attacker_t ~= player_t) or (userid_t == player_t) then
          return end
     
        local Random = Utils.RandomInt(1, #Memory.KillSay);
        local Text = Memory.KillSay[Random];

        local Command = ('say %s'):format(Text);

        EngineClient.ExecuteClientCmd(Command)
      end,
    },
  },

  Startup = function(self)
    local function UpdateCombo(Value)
      Menu_Handler.Combo_Controller:SetVisible(Value)
      Menu_Handler.Text_5th:SetVisible(Value)
    end

    Menu_Handler.Enable_Controller:RegisterCallback(function(Value)
      UpdateCombo(Value)
      Menu_Handler:Update()
    end)
 
    Menu_Handler.Combo_Controller:RegisterCallback(function()
      Menu_Handler:Update()
    end)

    UpdateCombo(Menu_Handler.Enable_Controller:Get())

    Cheat.RegisterCallback('destroy', function(...)
      self.Hooks.destroy['Adaptive Fake Lags'](self, ...)
    end)

    Cheat.RegisterCallback('prediction', function(...)
      self.Hooks.prediction['Anti-aim'](self, ...)
      self.Hooks.prediction['Teleport in air'](self, ...)
      self.Hooks.prediction['Roll'](self, ...)
      self.Hooks.prediction['Anim. Breaker'](self, ...)
    end)

    Cheat.RegisterCallback('createmove', function(...)
      self.Hooks.createmove['Roll'](self, ...)
      self.Hooks.createmove['Anim. Breaker'](self, ...)
    end)

    Cheat.RegisterCallback('draw', function(...)
      self.Hooks.draw['Indicators'](self, ...)
      self.Hooks.draw['Clan Tag'](self, ...)
    end)

    Cheat.RegisterCallback('events', function(...)
      self.Hooks.events['Anti-Bruteforce'](self, ...)
      self.Hooks.events['Kill Say'](self, ...)
    end)

    -- ! Adjust Fakelags
    local RestoreFakelags = {
      Menu_Handler.Enable_Controller,
      Lua_Elements['Anti-aim'].Global,
      CheatVars.Aimbot.Ragebot.Exploits.HideShots,
      CheatVars.Aimbot.Ragebot.Exploits.DoubleTap,
    }

    for _, Element in pairs(RestoreFakelags) do
      Element:RegisterCallback(function()
        self.Hooks.Menu['Adaptive Fake Lags'](self)
      end)
    end

    Lua_Elements['Other'].Global:RegisterCallback(function(Value)
      if not Menu_Handler:GetMultiCombo(Value, 0) then
        _Cheat.Patterns.Clantag('', '')
      end
    end)

    Lua_Elements.Other.Config:RegisterCallback(function()
      local AntiAim = Lua_Elements['Anti-aim']
      local Antibrute = Lua_Elements['Anti-bruteforce']
      local Visuals = Lua_Elements['Visuals']
      local Other = Lua_Elements['Other']

      local Active = {true, false, true, false, true, false};
      for index = 1, #AntiAim.Global:GetList() do
        AntiAim.Global:Set(index, Active[index]);
      end
      AntiAim.InAir:Set(1);
   
      for index = 1, #Antibrute.Global:GetList() do
        Antibrute.Global:Set(index, true);
      end
   
      Visuals._1st_Color:SetColor(_Render.Colors.Main);
      Visuals._2nd_Color:SetColor(_Render.Colors.White);

      for index = 1, #Other.Global:GetList() do
        Other.Global:Set(index, true);
      end
    end)
  end,
}

Script:Startup()

FFI_Helpers.Client.Cvar.mutli_color_print(
  '[Lunarity.lua] ', 'Attempting to connect the server, please wait patiently.\n',
  '[Lunarity.lua] ', 'Successfully connected to the server, proceeding to authenticate.\n',
  '[Lunarity.lua] ', 'Successfully authenticated! Attempting to load module(s), please wait patiently.\n',
  '[Lunarity.lua] ', ('Successfully loaded module! Welcome back %s, thank you for choosing our script.\n'):format(Cheat.GetCheatUserName()),

  _Render.Colors.Main, _Render.Colors.White,
  _Render.Colors.Main, _Render.Colors.White,
  _Render.Colors.Main, _Render.Colors.White,
  _Render.Colors.Main, _Render.Colors.White
)
drainyaw хз там которая не ориг фейк не фейк, я уже запутался
 
SenkoTech dev
Пользователь
Статус
Оффлайн
Регистрация
4 Янв 2020
Сообщения
326
Реакции[?]
111
Поинты[?]
5K
Где-то я это уже видел.
*Флешбек дрейнява*
так лол это дрейняв от qhouz обычный
Так это так и есть, обычный ренейм дрейнява, поменяли название и довольные сидят...
Балляяяя, у меня такое везде😬
У меня тоже :D
 
Сверху Снизу