Вопросы по Lua скриптингу

Общая тема для вопросов по разработке скриптов на языке программирования Lua, в частности под MoonLoader.
  • Задавая вопрос, убедитесь, что его нет в списке частых вопросов и что на него ещё не отвечали (воспользуйтесь поиском).
  • Поищите ответ в теме посвященной разработке Lua скриптов в MoonLoader
  • Отвечая, убедитесь, что ваш ответ корректен.
  • Старайтесь как можно точнее выразить мысль, а если проблема связана с кодом, то обязательно прикрепите его к сообщению, используя блок [code=lua]здесь мог бы быть ваш код[/code].
  • Если вопрос связан с MoonLoader-ом первым делом желательно поискать решение на wiki.

Частые вопросы

Как научиться писать скрипты? С чего начать?
Информация - Гайд - Всё о Lua скриптинге для MoonLoader(https://blast.hk/threads/22707/)
Как вывести текст на русском? Вместо русского текста у меня какие-то каракули.
Изменить кодировку файла скрипта на Windows-1251. В Atom: комбинация клавиш Ctrl+Shift+U, в Notepad++: меню Кодировки -> Кодировки -> Кириллица -> Windows-1251.
Как получить транспорт, в котором сидит игрок?
Lua:
local veh = storeCarCharIsInNoSave(PLAYER_PED)
Как получить свой id или id другого игрока?
Lua:
local _, id = sampGetPlayerIdByCharHandle(PLAYER_PED) -- получить свой ид
local _, id = sampGetPlayerIdByCharHandle(ped) -- получить ид другого игрока. ped - это хендл персонажа
Как проверить, что строка содержит какой-то текст?
Lua:
if string.find(str, 'текст', 1, true) then
-- строка str содержит "текст"
end
Как эмулировать нажатие игровой клавиши?
Lua:
local game_keys = require 'game.keys' -- где-нибудь в начале скрипта вне функции main

setGameKeyState(game_keys.player.FIREWEAPON, -1) -- будет сэмулировано нажатие клавиши атаки
Все иды клавиш находятся в файле moonloader/lib/game/keys.lua.
Подробнее о функции setGameKeyState здесь: lua - setgamekeystate | BlastHack — DEV_WIKI(https://www.blast.hk/wiki/lua:setgamekeystate)
Как получить id другого игрока, в которого целюсь я?
Lua:
local valid, ped = getCharPlayerIsTargeting(PLAYER_HANDLE) -- получить хендл персонажа, в которого целится игрок
if valid and doesCharExist(ped) then -- если цель есть и персонаж существует
  local result, id = sampGetPlayerIdByCharHandle(ped) -- получить samp-ид игрока по хендлу персонажа
  if result then -- проверить, прошло ли получение ида успешно
    -- здесь любые действия с полученным идом игрока
  end
end
Как зарегистрировать команду чата SAMP?
Lua:
-- До бесконечного цикла/задержки
sampRegisterChatCommand("mycommand", function (param)
     -- param будет содержать весь текст введенный после команды, чтобы разделить его на аргументы используйте string.match()
    sampAddChatMessage("MyCMD", -1)
end)
Крашит игру при вызове sampSendChat. Как это исправить?
Это происходит из-за бага в SAMPFUNCS, когда производится попытка отправки пакета определенными функциями изнутри события исходящих RPC и пакетов. Исправления для этого бага нет, но есть способ не провоцировать его. Вызов sampSendChat изнутри обработчика исходящих RPC/пакетов нужно обернуть в скриптовый поток с нулевой задержкой:
Lua:
function onSendRpc(id)
  -- крашит:
  -- sampSendChat('Send RPC: ' .. id)

  -- норм:
  lua_thread.create(function()
    wait(0)
    sampSendChat('Send RPC: ' .. id)
  end)
end
 
Последнее редактирование:

HarlyCloud

Потрачен
238
67
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Кто может помочь сделать изменяемую команду активации в имгуи?
 

yeahbitch

Потрачен
28
5
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Anton Nixon

Активный
474
48
Как написать текст внутри renderdrawbox
И если он создаётся отдельно, то как его прикрепить к этому боксу?
 

Quasper

Известный
835
354
Как написать текст внутри renderdrawbox
И если он создаётся отдельно, то как его прикрепить к этому боксу?
1) рендерить сначала дравбокс, а поверх него текст
2) вынести рендер в функцию(так удобней) где будешь позицию рендера дравбокса и по полученным данным производить вычисления и затем рендерить текст
 
  • Нравится
Реакции: Anton Nixon

paulohardy

вы еще постите говно? тогда я иду к вам
Всефорумный модератор
1,907
1,282

HarlyCloud

Потрачен
238
67
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Логи:
[16:26:27.749504] (system)    5. hungry(arizona).lua: Script terminated. (017DA154)
[16:26:27.749504] (system)    Helper ARZP: Script terminated. (017DA2DC)
[16:26:27.749504] (system)    6. rpgun.lua: Script terminated. (017DA464)
[16:26:27.750504] (system)    Antilomka.lua: Script terminated. (017DA5EC)
[16:26:27.750504] (system)    RAFK: Script terminated. (017DA8FC)
[16:26:27.753504] (system)    AutoBikeMotoRunSwimOnMaxSpeed.lua: Script terminated. (017DAA84)
[16:26:27.753504] (system)    Check MoonLoader Updates: Script terminated. (017DAC0C)
[16:26:27.754504] (system)    Craft Helper: Script terminated. (017DAD94)
[16:26:27.760505] (system)    multiconnect.luac: Script terminated. (017DB0A4)
[16:26:27.761505] (system)    ML-ReloadAll: Script terminated. (017DB22C)
[16:26:27.762505] (system)    routes recorder: Script terminated. (017DB3B4)
[16:26:27.763505] (system)    SMIHelper (1).luac: Script terminated. (017DB53C)
[16:26:27.767505] (system)    specadm 2.lua: Script terminated. (017DB6C4)
[16:26:27.768505] (system)    Vzlom Popi.lua: Script terminated. (017DB84C)
[16:26:27.769505] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\5. hungry(arizona).lua'...
[16:26:27.769505] (debug)    New script: 017DB84C
[16:26:27.772506] (system)    5. hungry(arizona).lua: Loaded successfully.
[16:26:27.772506] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\5. lock.lua'...
[16:26:27.772506] (debug)    New script: 017DB6C4
[16:26:27.774506] (system)    Helper ARZP: Loaded successfully.
[16:26:27.774506] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\6. rpgun.lua'...
[16:26:27.774506] (debug)    New script: 017DB53C
[16:26:27.781506] (system)    6. rpgun.lua: Loaded successfully.
[16:26:27.781506] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\Antilomka.lua'...
[16:26:27.781506] (debug)    New script: 017DB3B4
[16:26:27.782506] (system)    Antilomka.lua: Loaded successfully.
[16:26:27.782506] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\armenu.luac'...
[16:26:27.782506] (debug)    New script: 017DB22C
[16:26:27.796507] (system)    RAFK: Loaded successfully.
[16:26:27.796507] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\AutoBikeMotoRunSwimOnMaxSpeed.lua'...
[16:26:27.796507] (debug)    New script: 017DB0A4
[16:26:27.797507] (system)    AutoBikeMotoRunSwimOnMaxSpeed.lua: Loaded successfully.
[16:26:27.797507] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\AutoPiarARZ.lua'...
[16:26:27.797507] (debug)    New script: 017DAD94
[16:26:27.803507] (system)    AutoPiar: Loaded successfully.
[16:26:27.803507] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\check-moonloader-updates.lua'...
[16:26:27.803507] (debug)    New script: 017DAC0C
[16:26:27.806507] (system)    Check MoonLoader Updates: Loaded successfully.
[16:26:27.806507] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\CraftHelper v2.6.lua'...
[16:26:27.806507] (debug)    New script: 017DAA84
[16:26:27.813508] (system)    Craft Helper: Loaded successfully.
[16:26:27.813508] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\marker_color.lua'...
[16:26:27.813508] (debug)    New script: 017DA8FC
[16:26:27.814508] (system)    marker_color.lua: Loaded successfully.
[16:26:27.814508] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\multiconnect.luac'...
[16:26:27.814508] (debug)    New script: 017DA5EC
[16:26:27.820508] (system)    multiconnect.luac: Loaded successfully.
[16:26:27.820508] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\reload_all.lua'...
[16:26:27.820508] (debug)    New script: 017DA464
[16:26:27.822508] (system)    ML-ReloadAll: Loaded successfully.
[16:26:27.822508] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\routes_recorder.lua'...
[16:26:27.822508] (debug)    New script: 017DA2DC
[16:26:27.829509] (system)    routes recorder: Loaded successfully.
[16:26:27.829509] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\SMIHelper (1).luac'...
[16:26:27.829509] (debug)    New script: 017DA154
[16:26:30.546664] (system)    SMIHelper (1).luac: Loaded successfully.
[16:26:30.546664] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\specadm 2.lua'...
[16:26:30.546664] (debug)    New script: 0C9CFC34
[16:26:30.551664] (system)    specadm 2.lua: Loaded successfully.
[16:26:30.551664] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\Vzlom Popi.lua'...
[16:26:30.551664] (debug)    New script: 0C9D03DC
[16:26:30.553665] (system)    Vzlom Popi.lua: Loaded successfully.
[16:26:31.360711] (system)    marker_color.lua: Script terminated. (017DA8FC)
[16:26:31.367711] (script)    SMIHelper (1).luac: {3399FF}[SMIHelper] {FFFFFF}Проверка обновлений.
[16:26:31.916743] (script)    RAFK: v5.0 Невозможно проверить обновление, попробуйте проверить его вручную на http://rkweez.ru/armenu/armenu.luac
[16:26:32.173757] (script)    SMIHelper (1).luac: {3399FF}[SMIHelper] {FFFFFF}Проверка завершена.
[16:26:32.173757] (script)    SMIHelper (1).luac: {3399FF}[SMIHelper] {FFFFFF}Обновления отсутствуют.
[16:27:10.486949] (error)    AutoPiar: ...by HarlyCloud\GTA San Andreas\moonloader\AutoPiarARZ.lua:103: attempt to call field 'CheckBox' (a nil value)
stack traceback:
    ...by HarlyCloud\GTA San Andreas\moonloader\AutoPiarARZ.lua:103: in function 'OnDrawFrame'
    ...y by HarlyCloud\GTA San Andreas\moonloader\lib\imgui.lua:1378: in function <...y by HarlyCloud\GTA San Andreas\moonloader\lib\imgui.lua:1367>
[16:27:10.487949] (error)    AutoPiar: Script died due to an error. (017DAD94)

Кто может помочь? Хз имгуи не открывается (AutoPiarARZ)
 

paulohardy

вы еще постите говно? тогда я иду к вам
Всефорумный модератор
1,907
1,282
Кто может помочь? Хз имгуи не открывается (AutoPiarARZ)
это в шкиле надо было учиться читать, написано же что на 103 строке ошибка при попытке вызова "CheckBox", вместо него нужно "Checkbox"
 

Anton Nixon

Активный
474
48
Логи:
[16:26:27.749504] (system)    5. hungry(arizona).lua: Script terminated. (017DA154)
[16:26:27.749504] (system)    Helper ARZP: Script terminated. (017DA2DC)
[16:26:27.749504] (system)    6. rpgun.lua: Script terminated. (017DA464)
[16:26:27.750504] (system)    Antilomka.lua: Script terminated. (017DA5EC)
[16:26:27.750504] (system)    RAFK: Script terminated. (017DA8FC)
[16:26:27.753504] (system)    AutoBikeMotoRunSwimOnMaxSpeed.lua: Script terminated. (017DAA84)
[16:26:27.753504] (system)    Check MoonLoader Updates: Script terminated. (017DAC0C)
[16:26:27.754504] (system)    Craft Helper: Script terminated. (017DAD94)
[16:26:27.760505] (system)    multiconnect.luac: Script terminated. (017DB0A4)
[16:26:27.761505] (system)    ML-ReloadAll: Script terminated. (017DB22C)
[16:26:27.762505] (system)    routes recorder: Script terminated. (017DB3B4)
[16:26:27.763505] (system)    SMIHelper (1).luac: Script terminated. (017DB53C)
[16:26:27.767505] (system)    specadm 2.lua: Script terminated. (017DB6C4)
[16:26:27.768505] (system)    Vzlom Popi.lua: Script terminated. (017DB84C)
[16:26:27.769505] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\5. hungry(arizona).lua'...
[16:26:27.769505] (debug)    New script: 017DB84C
[16:26:27.772506] (system)    5. hungry(arizona).lua: Loaded successfully.
[16:26:27.772506] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\5. lock.lua'...
[16:26:27.772506] (debug)    New script: 017DB6C4
[16:26:27.774506] (system)    Helper ARZP: Loaded successfully.
[16:26:27.774506] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\6. rpgun.lua'...
[16:26:27.774506] (debug)    New script: 017DB53C
[16:26:27.781506] (system)    6. rpgun.lua: Loaded successfully.
[16:26:27.781506] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\Antilomka.lua'...
[16:26:27.781506] (debug)    New script: 017DB3B4
[16:26:27.782506] (system)    Antilomka.lua: Loaded successfully.
[16:26:27.782506] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\armenu.luac'...
[16:26:27.782506] (debug)    New script: 017DB22C
[16:26:27.796507] (system)    RAFK: Loaded successfully.
[16:26:27.796507] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\AutoBikeMotoRunSwimOnMaxSpeed.lua'...
[16:26:27.796507] (debug)    New script: 017DB0A4
[16:26:27.797507] (system)    AutoBikeMotoRunSwimOnMaxSpeed.lua: Loaded successfully.
[16:26:27.797507] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\AutoPiarARZ.lua'...
[16:26:27.797507] (debug)    New script: 017DAD94
[16:26:27.803507] (system)    AutoPiar: Loaded successfully.
[16:26:27.803507] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\check-moonloader-updates.lua'...
[16:26:27.803507] (debug)    New script: 017DAC0C
[16:26:27.806507] (system)    Check MoonLoader Updates: Loaded successfully.
[16:26:27.806507] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\CraftHelper v2.6.lua'...
[16:26:27.806507] (debug)    New script: 017DAA84
[16:26:27.813508] (system)    Craft Helper: Loaded successfully.
[16:26:27.813508] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\marker_color.lua'...
[16:26:27.813508] (debug)    New script: 017DA8FC
[16:26:27.814508] (system)    marker_color.lua: Loaded successfully.
[16:26:27.814508] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\multiconnect.luac'...
[16:26:27.814508] (debug)    New script: 017DA5EC
[16:26:27.820508] (system)    multiconnect.luac: Loaded successfully.
[16:26:27.820508] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\reload_all.lua'...
[16:26:27.820508] (debug)    New script: 017DA464
[16:26:27.822508] (system)    ML-ReloadAll: Loaded successfully.
[16:26:27.822508] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\routes_recorder.lua'...
[16:26:27.822508] (debug)    New script: 017DA2DC
[16:26:27.829509] (system)    routes recorder: Loaded successfully.
[16:26:27.829509] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\SMIHelper (1).luac'...
[16:26:27.829509] (debug)    New script: 017DA154
[16:26:30.546664] (system)    SMIHelper (1).luac: Loaded successfully.
[16:26:30.546664] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\specadm 2.lua'...
[16:26:30.546664] (debug)    New script: 0C9CFC34
[16:26:30.551664] (system)    specadm 2.lua: Loaded successfully.
[16:26:30.551664] (system)    Loading script 'C:\Games\GTA everyday by HarlyCloud\GTA San Andreas\moonloader\Vzlom Popi.lua'...
[16:26:30.551664] (debug)    New script: 0C9D03DC
[16:26:30.553665] (system)    Vzlom Popi.lua: Loaded successfully.
[16:26:31.360711] (system)    marker_color.lua: Script terminated. (017DA8FC)
[16:26:31.367711] (script)    SMIHelper (1).luac: {3399FF}[SMIHelper] {FFFFFF}Проверка обновлений.
[16:26:31.916743] (script)    RAFK: v5.0 Невозможно проверить обновление, попробуйте проверить его вручную на http://rkweez.ru/armenu/armenu.luac
[16:26:32.173757] (script)    SMIHelper (1).luac: {3399FF}[SMIHelper] {FFFFFF}Проверка завершена.
[16:26:32.173757] (script)    SMIHelper (1).luac: {3399FF}[SMIHelper] {FFFFFF}Обновления отсутствуют.
[16:27:10.486949] (error)    AutoPiar: ...by HarlyCloud\GTA San Andreas\moonloader\AutoPiarARZ.lua:103: attempt to call field 'CheckBox' (a nil value)
stack traceback:
    ...by HarlyCloud\GTA San Andreas\moonloader\AutoPiarARZ.lua:103: in function 'OnDrawFrame'
    ...y by HarlyCloud\GTA San Andreas\moonloader\lib\imgui.lua:1378: in function <...y by HarlyCloud\GTA San Andreas\moonloader\lib\imgui.lua:1367>
[16:27:10.487949] (error)    AutoPiar: Script died due to an error. (017DAD94)

Кто может помочь? Хз имгуи не открывается (AutoPiarARZ)
Не все аргументы необходимые для чекбокса выставил, если не ошибаюсь
 

HarlyCloud

Потрачен
238
67
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Подскажите как сделать слайдер в имгуи???
 

cheremuxa

Известный
430
202
Что не так?
Lua:
if jhm then
    if text:match('Ник: %[(.+)%] | IP: %[(%d+)%] | REGIP: %[IP: (%d+)%]') then
        nickcheat, ipcheat, regipcheat = text:match('Ник: %[(.+)%] | IP: %[(%d+)%] | REGIP: %[IP: (%d+)%]')
    end
end

return юзается в самом конце
схерали в конце? 😂
Что не так?
Lua:
if jhm then
    if text:match('Ник: %[(.+)%] | IP: %[(%d+)%] | REGIP: %[IP: (%d+)%]') then
        nickcheat, ipcheat, regipcheat = text:match('Ник: %[(.+)%] | IP: %[(%d+)%] | REGIP: %[IP: (%d+)%]')
    end
end

return юзается в самом конце
Lua:
function events.onServerMessage(text, color)
  if jhm then
    if text:find('Ник: %[.+%] | IP: %[%d+%] | REGIP: %[IP: %d+%]') then
        nickcheat, ipcheat, regipcheat = text:match('Ник: %[(.+)%] | IP: %[(%d+)%] | REGIP: %[IP: (%d+)%]')
    end
  end
end