Исходник TypeScript converter to (Lua/Luac) (Moonloader API)

shavuva3311

Участник
Автор темы
49
35
Кароче епта

Создал конвертер с языка TypeScript в язык Lua, что позволит писать скрипты под moonloader с помощью вашего любимого языка
Также добавлен пока что минимальный набор функций Moonloader, но если темой заинтересуются, то все впереди

P.S собственно сам переводчик не мой, но все сделал для удобства, прямиком из .ts в .lua & .luac

Накидал простой код (samp.ts)

photo_2025-05-02_16-55-27.jpg

Вводим команду
1746194199506.png


На выходе получаем builds/samp.lua & builds/samp.luac с соответствующим содержанием

1746194304623.png

1746196751746.png

Скрипт исправно работает, что доказывать не вижу смысла

Для работы сея чуда необходим установленный Node.JS

Для начала качаем архив samp_ts
Распаковываем в любое удобное место

Заходим в командную строку, переходим в нашу папку

Устанавливаем необходимые зависимости: npm i typescript-to-lua typescript
Создаем файл с расширением .ts, первой строчкой которого должно быть: /// <reference path="config/samp.d.ts" />

После этих шагов можете писать ваш скрипт

Для компиляции скрипта используем: node bl [имя вашего файла]

Для правильной работы скрипта качаем файл lualib_bundle.lua и кидаем в папку moonloader с игрой

ОБНОВЛЕНИЕ
Добавлено множество функций Moonloader API, а так же: функций строк, математических функций, потоков
Также добавлена возможность принятия множества значений, т.е
const [first_name, last_name]: [string, string] = string.match("Lox_Loxovich", "(.+)_(.+)");

Изменена команда для компиляции .ts в .lua:
node build [название проекта] [список файлов]

Для установки новой версии, сделайте все то же, что описано выше в разделе "Установка", но только с новым архивом, а также замените lualib_bundle.lua на новую версию
 

Вложения

  • samp_ts_1.rar
    402.5 KB · Просмотры: 0
  • lualib_bundle.lua
    81.1 KB · Просмотры: 1
Последнее редактирование:

shavuva3311

Участник
Автор темы
49
35
будет ли работать асинхронные функции или await?
На днях планирую достаточно крупную обнову сделать с основными функциями Moonloader API и в общем языка lua, по поводу await async не думаю, так как это обычный транслятор

Добавил возможность принятия нескольких значений, пришлось патчить lualib_bundle.lua

photo_2025-05-05_16-15-47.jpg

photo_2025-05-05_16-15-32.jpg
 
Последнее редактирование:
  • Нравится
Реакции: kyrtion