Для разработчиков

API для создания Lua-скриптов на Aurora Cheat

📌 Базовые функции

Эти функции доступны в любом Lua-скрипте Aurora Cheat.

ФункцияОписание
log(message)Выводит сообщение в консоль чита.
sleep(seconds)Приостанавливает выполнение скрипта (в секундах).

💾 Чтение и запись памяти

Прямая работа с памятью процесса CS2. Поддерживаются все стандартные типы.

Чтение памяти

ФункцияОписание
read_float(address)Читает 4 байта как float.
read_int(address)Читает 4 байта как int.
read_bool(address)Читает 1 байт как bool.
read_string(address [, max_len])Читает строку (по умолчанию 64 символа).
read_netvar(entity, prop_name)Читает поле сущности по имени (автоматически ищет смещение).

Запись памяти

ФункцияОписание
write_float(address, value)Записывает float (4 байта).
write_int(address, value)Записывает int.
write_bool(address, value)Записывает 0/1 (true/false).

🎮 Игровые константы (оффсеты)

Все смещения автоматически загружаются из cs2-dumper и доступны как глобальные переменные.

ПеременнаяОписание
dwCSGOInputСмещение CSGOInput
dwEntityListСмещение списка сущностей
dwGameRulesСмещение игровых правил
dwGlobalVarsСмещение глобальных переменных
dwGlowManagerСмещение менеджера свечения
dwLocalPlayerControllerСмещение локального контроллера
dwLocalPlayerPawnСмещение локального Pawn
dwPlantedC4Смещение установленной бомбы
dwPredictionСмещение Prediction
dwSensitivityСмещение чувствительности
dwSensitivity_sensitivityСмещение внутри Sensitivity
dwViewAnglesСмещение ViewAngles
dwViewMatrixСмещение матрицы вида
dwViewRenderСмещение ViewRender
dwWeaponC4Смещение C4

📝 Структура скрипта

Каждый скрипт может содержать три опциональных функции жизненного цикла:

function on_enable()
    -- вызывается при включении скрипта
end

function on_disable()
    -- вызывается при выключении скрипта
end

function on_tick()
    -- вызывается ~100 раз в секунду (каждые 10 мс)
end
Совет: тяжёлую логику лучше выносить в on_tick, но не забывайте про sleep, чтобы не перегружать CPU.

🎯 API: entitylist

Объект entitylist предоставляет методы для работы с сущностями игры.

МетодОписание
entitylist.get_local_player_controller() Возвращает адрес локального контроллера (base_entity_t)
entitylist.get_local_player_pawn() Возвращает адрес локального Pawn (base_entity_t)
entitylist.get_game_rules() Возвращает адрес C_CSGameRules
entitylist.get_entity_from_handle(handle) Преобразует handle (число) в указатель на сущность (base_entity_t)
entitylist.get_entities(callback [, class_name]) Перебирает все сущности и вызывает callback(entity, health, team) для каждой.
Если указан class_name, фильтрует по имени класса (опционально).

Пример использования

function on_enable()
    log("Scanning entities...")
end

function on_tick()
    local pawn = entitylist.get_local_player_pawn()
    if pawn ~= 0 then
        local hp = read_netvar(pawn, "m_iHealth")
        log("My HP: " .. hp)
    end

    entitylist.get_entities(function(entity, health, team)
        if health > 0 and team ~= my_team then
            log("Enemy at " .. tostring(entity))
        end
    end)
end

🔍 Работа с NetVars

Функция read_netvar(entity, prop_name) автоматически находит смещение по имени поля в файле client_dll.json и читает его значение как int.

-- Пример: получить здоровье игрока
local hp = read_netvar(pawn, "m_iHealth")
log("Health: " .. hp)
В будущем планируется поддержка чтения других типов (float, bool) и записи.

⚙️ Дополнительные возможности

Вы также можете использовать все оффсеты напрямую:

local pawn = read_int(client_base + dwLocalPlayerPawn)
local health = read_int(pawn + m_iHealth)
-- m_iHealth также доступен как глобальная переменная

Все смещения из offsets.json и client_dll.json автоматически загружаются и доступны в Lua как глобальные переменные.

Нашли баг или есть вопросы? Пишите через форму обратной связи.