📚 Syntax

📚 Синтаксис EmptyHacks Script API

Скриптовый язык для EmptyHacks базируется на синтаксисе Lua, что делает его знакомым для разработчиков, работающих с Lua. Ниже описаны основные принципы и элементы синтаксиса, которые помогут эффективно создавать скрипты для настройки и автоматизации работы чита и игры.

🔍 Основные элементы синтаксиса

  1. Переменные

    • Переменные объявляются с использованием ключевого слова local, что позволяет создавать локальные переменные, доступные только в пределах текущей области видимости.

    local playerHealth : uint = 100
  2. Типы данных

    • Поддерживаются стандартные типы данных Lua: number, string, bool, table, function, и nil. Также в нашем языке поддерживаются стандартные типы .NET. Получить их можно при помощи clr, но об этом мы поговорим чуть позднее.

    local isEnabled : bool = true // Мы можем строго определить тип переменной, посредством ": type"
    local message : string = "Привет, мир!"
    local numbers = {1, 2, 3, 4}
  3. Условные конструкции

    • Условные операторы позволяют управлять потоком выполнения скрипта.

    if playerHealth > 0 then
        print("Игрок жив")
    elseif playerHealth == 0 then
        print("Игрок мертв")
    end
  4. Циклы

    • Поддерживаются циклы for, while, и repeat-until для организации повторяющихся действий.

    for i = 1, 10 do
        print("Итерация " .. i)
    end
  5. Функции

    • Пользовательские функции создаются с помощью ключевого слова function. Функции могут возвращать значения и принимать параметры.

    function greet(name: string) : void // создаем функцию и определяем тип аргумента и возвращаемого значения
        print("Привет, " .. name)
    end
    greet("Алекс")
  6. Таблицы

    • Основная структура данных в Lua, таблицы используются для создания массивов и словарей.

    local player = {
        name = "Евгений Сишарп",
        health = 440
    }
    print(player.name)
  7. Метатаблицы и ооп

    • Поддержка метатаблиц в стиле Lua позволяет задавать поведение для таблиц. Это позволяет работать с объектно-ориентированными принципами.

    local Player = {}
    Player.__index = Player
    
    function Player:new(name)
        local obj = setmetatable({}, Player)
        obj.name = name
        obj.health = 100
        return obj
    end

Last updated