Вопросы по 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
 
Последнее редактирование:

Sanchez.

Известный
706
188
Подскажите пожалуйста, как функция getCarSpeed определяет скорость автомобиля?
определяет эта функция скорость кара по его хендлу

local veh = storeCarCharIsInNoSave(PLAYER_PED) - получить хендл автомобиля
local speed = getCarSpeed(veh) - получить скорость автомобиля (аргументом в getCarSpeed нужно вписать хендл тачки, хендл тачки мы записали в переменную veh выше)
 
  • Bug
Реакции: F0RQU1N and и ARMOR

sizeoftrickster

Известный
Проверенный
139
556
определяет эта функция скорость кара по его хендлу

local veh = storeCarCharIsInNoSave(PLAYER_PED) - получить хендл автомобиля
local speed = getCarSpeed(veh) - получить скорость автомобиля (аргументом в getCarSpeed нужно вписать хендл тачки, хендл тачки мы записали в переменную veh выше)
Спасибо за ответ, но я просил не пример работы функции, а что функция делает, что-бы определить скорость
 
  • Нравится
Реакции: YarikVL и ARMOR

Sanchez.

Известный
706
188
Написал вроде правильно все, а в игре скрипта нету, только начинаю кто знает укажите на ошибку чтобы в игре работало
Код:
script_name("MldScript")
script_author("melody")
script_description("Imgui включен")

repeat "lib.moonloader"
local keys = require "vkeys"
local imgui = require "imgui"
local encoding = require "encoding"
encoding.default = "CP1251"
u8 = encoding.UTF8

local tag = '[MldScript]'
local label = 0
local main_color = 0xF08080
local main_color_text = "{0xF08080}"
local white_color = '{FFFFFF}'

local main_window_state = imgui.ImBool(false)
local text_buffer = imgui.ImBuffer(256)

function main()
    if not isSampLoaded() or not isSampFuncsLoaded() then return end while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand("imgui", cmd_mld)

    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    nick = sampGetPlayerNickname(id)

    imgui.Process = false

    while true do
        wait(0)

        if main_window_state.v == false then
            imgui.Process = false
        end

        if isKeyJustPressed(VK_F3) then
            sampAddChatMessage("Вы нажали клавишу {FFFF00}F3." .. main_color_text .. "Ваш ник-нейм: {FFFFFF}" .. nick .. "," .. main_color_text .. "Ваш id: {FFFFFF}" .. id, main_color) end

            if isKeyDown(VK_MENU) and IsKeyJustPressed(VK_9) then sampAddChatMessage("Вы крут, вы зажали комбинацию клавиш!", main_color)
                wait(500)
                sampAddChatMessage("Прошло пол секунды", main_color)
            end
        end

        function cmd_imgui(arg)
            main_window_state.v = not main_window_state.v
        end
        function imgui.OnDrawFrame()
            imgui.Begin("MldScript")
            imgui.ImputText(u8"Вводить текст сюда" text_buffer)
            if imgui.Button("Press me") then
            sampAddChatMessage(u8:decode(text_buffer), -1)
        end
            imgui.text("Ебать я сделал!")
            imgui.End()
end
Lua:
script_name("MldScript")
script_author("melody")
script_description("Imgui включен")

repeat "lib.moonloader"
local keys = require "vkeys"
local imgui = require "imgui"
local encoding = require "encoding"
encoding.default = "CP1251"
u8 = encoding.UTF8

local tag = '[MldScript]'
local label = 0
local main_color = 0xF08080
local main_color_text = "{0xF08080}"
local white_color = '{FFFFFF}'

local main_window_state = imgui.ImBool(false)
local text_buffer = imgui.ImBuffer(256)

function main()
    if not isSampLoaded() or not isSampFuncsLoaded() then return end while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand("imgui", cmd_mld)

    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    nick = sampGetPlayerNickname(id)

    imgui.Process = false

    while true do
        wait(0)

        if main_window_state.v == false then
            imgui.Process = false
        end

        if isKeyJustPressed(VK_F3) then
            sampAddChatMessage("Вы нажали клавишу {FFFF00}F3." .. main_color_text .. "Ваш ник-нейм: {FFFFFF}" .. nick .. "," .. main_color_text .. "Ваш id: {FFFFFF}" .. id, main_color) end

            if isKeyDown(VK_MENU) and IsKeyJustPressed(VK_9) then sampAddChatMessage("Вы крут, вы зажали комбинацию клавиш!", main_color)
                wait(500)
                sampAddChatMessage("Прошло пол секунды", main_color)
            end
        end
     end

end

function cmd_imgui(arg)
    main_window_state.v = not main_window_state.v
end
function imgui.OnDrawFrame()
    imgui.SetNextWindowPos(imgui.ImVec2(350.0, 250.0), imgui.Cond.FirstUseEver)
    imgui.SetNextWindowSize(imgui.ImVec2(280.0, 70.0), imgui.Cond.FirstUseEver)
    imgui.Begin("MldScript", main_window_state)
    imgui.InputText(u8"Вводить текст сюда" text_buffer)
    if imgui.Button("Press me") then
        sampAddChatMessage(u8:decode(text_buffer), -1)
    end
    imgui.Text("Ебать я сделал!")
    imgui.End()
end
Во первых, ты запихнул функцию onDrawFrame зачем-то в main, imgui.text написал с маленькой буквы, хотя нужно imgui.Text, вместо imgui.InputText написал imgui.ImputText, в первых 3 строках аргументы вписываешь без кавычек, вместо isSampLoaded пишешь IsSampLoaded и также с другими функциями которые находятся на одной строке с isSampLoaded (первая буква не должна быть заглавной). советую тебе еще раз пересмотреть уроки по луа, такое ощущение, что ты по урокам быстро пробежался и все

и когда у тебя есть ошибка в коде, всегда смотри moonloader.log (он находится в папке moonloader), там написано, в каком скрипте произошла ошибка и на какой строке имеется ошибка, если у тебя возникла проблема, то кидай сюда код и moonloader.log прикрепляй
 
Последнее редактирование:
  • Нравится
Реакции: YarikVL и melody.

melody.

Участник
36
3
Lua:
script_name("MldScript")
script_author("melody")
script_description("Imgui включен")

repeat "lib.moonloader"
local keys = require "vkeys"
local imgui = require "imgui"
local encoding = require "encoding"
encoding.default = "CP1251"
u8 = encoding.UTF8

local tag = '[MldScript]'
local label = 0
local main_color = 0xF08080
local main_color_text = "{0xF08080}"
local white_color = '{FFFFFF}'

local main_window_state = imgui.ImBool(false)
local text_buffer = imgui.ImBuffer(256)

function main()
    if not isSampLoaded() or not isSampFuncsLoaded() then return end while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand("imgui", cmd_mld)

    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    nick = sampGetPlayerNickname(id)

    imgui.Process = false

    while true do
        wait(0)

        if main_window_state.v == false then
            imgui.Process = false
        end

        if isKeyJustPressed(VK_F3) then
            sampAddChatMessage("Вы нажали клавишу {FFFF00}F3." .. main_color_text .. "Ваш ник-нейм: {FFFFFF}" .. nick .. "," .. main_color_text .. "Ваш id: {FFFFFF}" .. id, main_color) end

            if isKeyDown(VK_MENU) and IsKeyJustPressed(VK_9) then sampAddChatMessage("Вы крут, вы зажали комбинацию клавиш!", main_color)
                wait(500)
                sampAddChatMessage("Прошло пол секунды", main_color)
            end
        end
     end

end

function cmd_imgui(arg)
    main_window_state.v = not main_window_state.v
end
function imgui.OnDrawFrame()
    imgui.SetNextWindowPos(imgui.ImVec2(350.0, 250.0), imgui.Cond.FirstUseEver)
    imgui.SetNextWindowSize(imgui.ImVec2(280.0, 70.0), imgui.Cond.FirstUseEver)
    imgui.Begin("MldScript", main_window_state)
    imgui.InputText(u8"Вводить текст сюда" text_buffer)
    if imgui.Button("Press me") then
        sampAddChatMessage(u8:decode(text_buffer), -1)
    end
    imgui.Text("Ебать я сделал!")
    imgui.End()
end
Во первых, ты запихнул функцию onDrawFrame зачем-то в main, imgui.text написал с маленькой буквы, хотя нужно imgui.Text, вместо imgui.InputText написал imgui.ImputText, в первых 3 строках аргументы вписываешь без кавычек, вместо isSampLoaded пишешь IsSampLoaded и также с другими функциями которые находятся на одной строке с isSampLoaded (первая буква не должна быть заглавной). советую тебе еще раз пересмотреть уроки по луа, такое ощущение, что ты по урокам быстро пробежался и все

и когда у тебя есть ошибка в коде, всегда смотри moonloader.log (он находится в папке moonloader), там написано, в каком скрипте произошла ошибка и на какой строке имеется ошибка, если у тебя возникла проблема, то кидай сюда код и moonloader.log прикрепляй
Спасибо, но ты не заметил самого главного как по мне, у меня написано repeat 'lib.moonloader' вместо require
 

Gorskin

♥ Love Lua ♥
Проверенный
1,331
1,161
Как отсортировать такую таблицу по алфавиту?
Lua:
local imguiInputsCmdEditor = {
    [u8"Открыть меню скрипта"] = {var = buffers.cmd_openmenu, cfg = "openmenu"},
    [u8"Открыть меню редактора погоды и времени"] = {var = buffers.cmd_tws, cfg = "tws"},
    [u8"Изменить время"] = {var = buffers.cmd_settime, cfg = "settime"},
    [u8"Изменить погоду"] = {var = buffers.cmd_setweather, cfg = "setweather"},
    [u8"Блокировать изменение времени сервером"] = {var = buffers.cmd_blockservertime, cfg = "blockservertime"},
    [u8"Блокировать изменение погоды сервером"] = {var = buffers.cmd_blockserverweather, cfg = "blockserverweather"},
    [u8"Включить / Выключить возможность менять прорисовку"] = {var = buffers.cmd_givemedist, cfg = "givemedist"},
    [u8"Изменить дальность прорисовки"] = {var = buffers.cmd_drawdistance, cfg = "drawdistance"},
    [u8"Изменить дальность прорисовки для воздушного транспорта"] = {var = buffers.cmd_drawdistanceair, cfg = "drawdistanceair"},
    [u8"Изменить дальность тумана"] = {var = buffers.cmd_fogdistance, cfg = "fogdistance"},
    [u8"Изменить дальность лодов"] = {var = buffers.cmd_loddistance, cfg = "loddistance"},
    [u8"Изменить яркость"] = {var = buffers.cmd_brightness, cfg = "brightness"},
    [u8"Включить / Выключить радио в транспорте"] = {var = buffers.cmd_offradio, cfg = "offradio"},
    [u8"Скрыть чат"] = {var = buffers.cmd_showchat, cfg = "showchat"},
    [u8"Скрыть HUD"] = {var = buffers.cmd_showhud, cfg = "showhud"},
    [u8"Изменить скорость анимации изменения кол-ва денег"] = {var = buffers.cmd_animmoney, cfg = "animmoney"},
    [u8"Включить / Выключить полоску 160hp"] = {var = buffers.cmd_bighpbar, cfg = "bighpbar"},
    [u8"Включить / Выключить ограничитель фпс"] = {var = buffers.cmd_fpslock, cfg = "fpslock"},
    [u8"Включить / Выключить пост-обработку"] = {var = buffers.cmd_postfx, cfg = "postfx"},
    [u8"Включить / Выключить исправление застревания в других игроках при спавне"] = {var = buffers.cmd_antiblockedplayer, cfg = "antiblockedplayer"},
    [u8"Включить / Выключить открытие чата на клавишу \"Е\""] = {var = buffers.cmd_chatopenfix, cfg = "chatopenfix"},
    [u8"Включить / Выключить авто-очистку памяти"] = {var = buffers.cmd_autocleaner, cfg = "autocleaner"},
    [u8"Очистить память"] = {var = buffers.cmd_cleanmemory, cfg = "cleanmemory"},
    [u8"Включить  / Выключить сообщение об очистке памяти"] = {var = buffers.cmd_cleaninfo, cfg = "cleaninfo"},
    [u8"Установить лимит в мегабайтах для авто-очистки памяти"] = {var = buffers.cmd_setmbforautocleaner, cfg = "setmbforautocleaner"},
    [u8"Включить / Выключить птиц"] = {var = buffers.cmd_nobirds, cfg = "nobirds"},
    [u8"Включить / Выключить пыль от песка и дым от колес"] = {var = buffers.cmd_nodust, cfg = "nodust"},
    [u8"Включить / Выключить исправление таймцикла для nopostfx"] = {var = buffers.cmd_fixtimecyc, cfg = "fixtimecyc"},
    [u8"Изменить общее освещение освещение мира"] = {var = buffers.cmd_aamb, cfg = "aamb"},
    [u8"Изменить освещение объектов и педов"] = {var = buffers.cmd_oamb, cfg = "oamb"},
    [u8"Изменить цвет таймцикла в формате RGB"] = {var = buffers.cmd_wamb, cfg = "wamb"},
    [u8"Включить / Выключить эффекты игры"] = {var = buffers.cmd_effects, cfg = "effects"},
    [u8"Изменить размер прицела"] = {var = buffers.cmd_editcrosshair, cfg = "editcrosshair"},
    [u8"Включить / Выключить возможноть менять тени"] = {var = buffers.cmd_shadowedit, cfg = "shadowedit"},
    [u8"Включить / Выключить высокие облака"] = {var = buffers.cmd_nocloudbig, cfg = "nocloudbig"},
    [u8"Включить / Выключить низкие облака"] = {var = buffers.cmd_nocloudsmall, cfg = "nocloudsmall"},
    [u8"Включить / Выключить тени"] = {var = buffers.cmd_noshadows, cfg = "noshadows"},
    [u8"Включить / Выключить отображение лодов транспорта"] = {var = buffers.cmd_vehlods, cfg = "vehlods"},
    [u8"Включить / Выключить исправление белой точки на прицеле"] = {var = buffers.cmd_fixcrosshair, cfg = "fixcrosshair"},
    [u8"Включить / Выключить исправление бега в интерьерах"] = {var = buffers.cmd_intrun, cfg = "intrun"},
    [u8"Включить / Выключить исправление квадратной воды"] = {var = buffers.cmd_waterfixquadro, cfg = "waterfixquadro"},
    [u8"Включить / Выключить исправление длинных рук"] = {var = buffers.cmd_longarmfix, cfg = "longarmfix"},
    [u8"Включить / Выключить исправление черных дорог"] = {var = buffers.cmd_fixblackroads, cfg = "fixblackroads"},
    [u8"Включить / Выключить исправление чувствительности мышки по осям X и Y"] = {var = buffers.cmd_fixsens, cfg = "fixsens"},
    [u8"Включить / Выключить аудиострим"] = {var = buffers.cmd_audiostream, cfg = "audiostream"},
    [u8"Снять лимит на количество денег в худе"] = {var = buffers.cmd_nolimitmoneyhud, cfg = "nolimitmoneyhud"},
    [u8"Включить / Выключить музыку в интерьерах"] = {var = buffers.cmd_intmusic, cfg = "intmusic"},
    [u8"Включить / Выключить звуки игры"] = {var = buffers.cmd_nosounds, cfg = "nosounds"},
    [u8"Включить / Выключить полосы от самолетов на небе"] = {var = buffers.cmd_noplaneline, cfg = "noplaneline"},
    [u8"Включить / Выключить солнце"] = {var = buffers.cmd_sunfix, cfg = "sunfix"},
    [u8"Включить / Выключить таргет на игроках"] = {var = buffers.cmd_targetblip, cfg = "targetblip"},
    [u8"Включить / Выключить вертикальную синхронизацию"] = {var = buffers.cmd_vsync, cfg = "vsync"},
    [u8"Включить / Выключить исправление цвета обводки радара"] = {var = buffers.cmd_radar_color_fix, cfg = "radar_color_fix"},
    [u8"Включить / Выключить исправление радара"] = {var = buffers.cmd_radarfix, cfg = "radarfix"},
    [u8"Включить / Выключить исправление выхода мышки на второй монитор"] = {var = buffers.cmd_dual_monitor_fix, cfg = "dual_monitor_fix"},
    [u8"Включить / Выключить исправление свечения шашки у такси"] = {var = buffers.cmd_fixtaxilight, cfg = "fixtaxilight"},
    [u8"Изменить высоту радара"] = {var = buffers.cmd_radarwidth, cfg = "radarwidth"},
    [u8"Изменить ширину радара"] = {var = buffers.cmd_radarheight, cfg = "radarheight"},
    [u8"Изменить позицию радара по X"] = {var = buffers.cmd_radarx, cfg = "radarx"},
    [u8"Изменить позицию радара по Y"] = {var = buffers.cmd_radary, cfg = "radary"},
    [u8"Включить / Выключить Ultimate Genrl"] = {var = buffers.cmd_ugenrl, cfg = "ugenrl"},
    [u8"Включить / Выключить автоматическое выключение звуков при вкл. Ultimate Genrl"] = {var = buffers.cmd_autonosounds, cfg = "autonosounds"},
    [u8"Изменить звук deagle"] = {var = buffers.cmd_uds, cfg = "uds"},
    [u8"Изменить звук shotgun"] = {var = buffers.cmd_uss, cfg = "uss"},
    [u8"Изменить звук m4"] = {var = buffers.cmd_ums, cfg = "ums"},
    [u8"Изменить звук rifle"] = {var = buffers.cmd_urs, cfg = "urs"},
    [u8"Изменить звук uzi"] = {var = buffers.cmd_uuzi, cfg = "uuzi"},
    [u8"Изменить звук mp5"] = {var = buffers.cmd_ump5, cfg = "ump5"},
    [u8"Изменить звук попадания"] = {var = buffers.cmd_ubs, cfg = "ubs"},
    [u8"Изменить звук боли"] = {var = buffers.cmd_ups, cfg = "ups"},
    [u8"Изменить дистанцию звуков других игроков"] = {var = buffers.cmd_ugd, cfg = "ugd"},
    [u8"Изменить громкость звука выстрелов"] = {var = buffers.cmd_ugvw, cfg = "ugvw"},
    [u8"Изменить громкость звука попаданий"] = {var = buffers.cmd_ugvh, cfg = "ugvh"},
    [u8"Изменить громкость звука боли"] = {var = buffers.cmd_ugvh, cfg = "ugvh"},
    [u8"Включить / Выключить анизотропную фильтрацию текстур"] = {var = buffers.cmd_forceaniso, cfg = "forceaniso"},
    [u8"Включить / Выключить исправление слабой чувствительности при зуме карты"] = {var = buffers.cmd_mapzoomfixer, cfg = "mapzoomfixer"},
    [u8"Изменить основные тени"] = {var = buffers.cmd_shadowcp, cfg = "shadowcp"},
    [u8"Изменить тени столбов"] = {var = buffers.cmd_shadowlight, cfg = "shadowlight"},
    [u8"Включить / Выключить следы шин"] = {var = buffers.cmd_tiretracks, cfg = "tiretracks"},
    [u8"Изменить дистанцию прорисовки никнеймов"] = {var = buffers.cmd_ntgs, cfg = "ntgs"},
    [u8"Исправление формата отображения денег"] = {var = buffers.cmd_moneyzerofix, cfg = "moneyzerofix"},
}
 

Rice.

Известный
Модератор
1,753
1,615
Как отсортировать такую таблицу по алфавиту?
Lua:
local imguiInputsCmdEditor = {
    [u8"Открыть меню скрипта"] = {var = buffers.cmd_openmenu, cfg = "openmenu"},
    [u8"Открыть меню редактора погоды и времени"] = {var = buffers.cmd_tws, cfg = "tws"},
    [u8"Изменить время"] = {var = buffers.cmd_settime, cfg = "settime"},
    [u8"Изменить погоду"] = {var = buffers.cmd_setweather, cfg = "setweather"},
    [u8"Блокировать изменение времени сервером"] = {var = buffers.cmd_blockservertime, cfg = "blockservertime"},
    [u8"Блокировать изменение погоды сервером"] = {var = buffers.cmd_blockserverweather, cfg = "blockserverweather"},
    [u8"Включить / Выключить возможность менять прорисовку"] = {var = buffers.cmd_givemedist, cfg = "givemedist"},
    [u8"Изменить дальность прорисовки"] = {var = buffers.cmd_drawdistance, cfg = "drawdistance"},
    [u8"Изменить дальность прорисовки для воздушного транспорта"] = {var = buffers.cmd_drawdistanceair, cfg = "drawdistanceair"},
    [u8"Изменить дальность тумана"] = {var = buffers.cmd_fogdistance, cfg = "fogdistance"},
    [u8"Изменить дальность лодов"] = {var = buffers.cmd_loddistance, cfg = "loddistance"},
    [u8"Изменить яркость"] = {var = buffers.cmd_brightness, cfg = "brightness"},
    [u8"Включить / Выключить радио в транспорте"] = {var = buffers.cmd_offradio, cfg = "offradio"},
    [u8"Скрыть чат"] = {var = buffers.cmd_showchat, cfg = "showchat"},
    [u8"Скрыть HUD"] = {var = buffers.cmd_showhud, cfg = "showhud"},
    [u8"Изменить скорость анимации изменения кол-ва денег"] = {var = buffers.cmd_animmoney, cfg = "animmoney"},
    [u8"Включить / Выключить полоску 160hp"] = {var = buffers.cmd_bighpbar, cfg = "bighpbar"},
    [u8"Включить / Выключить ограничитель фпс"] = {var = buffers.cmd_fpslock, cfg = "fpslock"},
    [u8"Включить / Выключить пост-обработку"] = {var = buffers.cmd_postfx, cfg = "postfx"},
    [u8"Включить / Выключить исправление застревания в других игроках при спавне"] = {var = buffers.cmd_antiblockedplayer, cfg = "antiblockedplayer"},
    [u8"Включить / Выключить открытие чата на клавишу \"Е\""] = {var = buffers.cmd_chatopenfix, cfg = "chatopenfix"},
    [u8"Включить / Выключить авто-очистку памяти"] = {var = buffers.cmd_autocleaner, cfg = "autocleaner"},
    [u8"Очистить память"] = {var = buffers.cmd_cleanmemory, cfg = "cleanmemory"},
    [u8"Включить  / Выключить сообщение об очистке памяти"] = {var = buffers.cmd_cleaninfo, cfg = "cleaninfo"},
    [u8"Установить лимит в мегабайтах для авто-очистки памяти"] = {var = buffers.cmd_setmbforautocleaner, cfg = "setmbforautocleaner"},
    [u8"Включить / Выключить птиц"] = {var = buffers.cmd_nobirds, cfg = "nobirds"},
    [u8"Включить / Выключить пыль от песка и дым от колес"] = {var = buffers.cmd_nodust, cfg = "nodust"},
    [u8"Включить / Выключить исправление таймцикла для nopostfx"] = {var = buffers.cmd_fixtimecyc, cfg = "fixtimecyc"},
    [u8"Изменить общее освещение освещение мира"] = {var = buffers.cmd_aamb, cfg = "aamb"},
    [u8"Изменить освещение объектов и педов"] = {var = buffers.cmd_oamb, cfg = "oamb"},
    [u8"Изменить цвет таймцикла в формате RGB"] = {var = buffers.cmd_wamb, cfg = "wamb"},
    [u8"Включить / Выключить эффекты игры"] = {var = buffers.cmd_effects, cfg = "effects"},
    [u8"Изменить размер прицела"] = {var = buffers.cmd_editcrosshair, cfg = "editcrosshair"},
    [u8"Включить / Выключить возможноть менять тени"] = {var = buffers.cmd_shadowedit, cfg = "shadowedit"},
    [u8"Включить / Выключить высокие облака"] = {var = buffers.cmd_nocloudbig, cfg = "nocloudbig"},
    [u8"Включить / Выключить низкие облака"] = {var = buffers.cmd_nocloudsmall, cfg = "nocloudsmall"},
    [u8"Включить / Выключить тени"] = {var = buffers.cmd_noshadows, cfg = "noshadows"},
    [u8"Включить / Выключить отображение лодов транспорта"] = {var = buffers.cmd_vehlods, cfg = "vehlods"},
    [u8"Включить / Выключить исправление белой точки на прицеле"] = {var = buffers.cmd_fixcrosshair, cfg = "fixcrosshair"},
    [u8"Включить / Выключить исправление бега в интерьерах"] = {var = buffers.cmd_intrun, cfg = "intrun"},
    [u8"Включить / Выключить исправление квадратной воды"] = {var = buffers.cmd_waterfixquadro, cfg = "waterfixquadro"},
    [u8"Включить / Выключить исправление длинных рук"] = {var = buffers.cmd_longarmfix, cfg = "longarmfix"},
    [u8"Включить / Выключить исправление черных дорог"] = {var = buffers.cmd_fixblackroads, cfg = "fixblackroads"},
    [u8"Включить / Выключить исправление чувствительности мышки по осям X и Y"] = {var = buffers.cmd_fixsens, cfg = "fixsens"},
    [u8"Включить / Выключить аудиострим"] = {var = buffers.cmd_audiostream, cfg = "audiostream"},
    [u8"Снять лимит на количество денег в худе"] = {var = buffers.cmd_nolimitmoneyhud, cfg = "nolimitmoneyhud"},
    [u8"Включить / Выключить музыку в интерьерах"] = {var = buffers.cmd_intmusic, cfg = "intmusic"},
    [u8"Включить / Выключить звуки игры"] = {var = buffers.cmd_nosounds, cfg = "nosounds"},
    [u8"Включить / Выключить полосы от самолетов на небе"] = {var = buffers.cmd_noplaneline, cfg = "noplaneline"},
    [u8"Включить / Выключить солнце"] = {var = buffers.cmd_sunfix, cfg = "sunfix"},
    [u8"Включить / Выключить таргет на игроках"] = {var = buffers.cmd_targetblip, cfg = "targetblip"},
    [u8"Включить / Выключить вертикальную синхронизацию"] = {var = buffers.cmd_vsync, cfg = "vsync"},
    [u8"Включить / Выключить исправление цвета обводки радара"] = {var = buffers.cmd_radar_color_fix, cfg = "radar_color_fix"},
    [u8"Включить / Выключить исправление радара"] = {var = buffers.cmd_radarfix, cfg = "radarfix"},
    [u8"Включить / Выключить исправление выхода мышки на второй монитор"] = {var = buffers.cmd_dual_monitor_fix, cfg = "dual_monitor_fix"},
    [u8"Включить / Выключить исправление свечения шашки у такси"] = {var = buffers.cmd_fixtaxilight, cfg = "fixtaxilight"},
    [u8"Изменить высоту радара"] = {var = buffers.cmd_radarwidth, cfg = "radarwidth"},
    [u8"Изменить ширину радара"] = {var = buffers.cmd_radarheight, cfg = "radarheight"},
    [u8"Изменить позицию радара по X"] = {var = buffers.cmd_radarx, cfg = "radarx"},
    [u8"Изменить позицию радара по Y"] = {var = buffers.cmd_radary, cfg = "radary"},
    [u8"Включить / Выключить Ultimate Genrl"] = {var = buffers.cmd_ugenrl, cfg = "ugenrl"},
    [u8"Включить / Выключить автоматическое выключение звуков при вкл. Ultimate Genrl"] = {var = buffers.cmd_autonosounds, cfg = "autonosounds"},
    [u8"Изменить звук deagle"] = {var = buffers.cmd_uds, cfg = "uds"},
    [u8"Изменить звук shotgun"] = {var = buffers.cmd_uss, cfg = "uss"},
    [u8"Изменить звук m4"] = {var = buffers.cmd_ums, cfg = "ums"},
    [u8"Изменить звук rifle"] = {var = buffers.cmd_urs, cfg = "urs"},
    [u8"Изменить звук uzi"] = {var = buffers.cmd_uuzi, cfg = "uuzi"},
    [u8"Изменить звук mp5"] = {var = buffers.cmd_ump5, cfg = "ump5"},
    [u8"Изменить звук попадания"] = {var = buffers.cmd_ubs, cfg = "ubs"},
    [u8"Изменить звук боли"] = {var = buffers.cmd_ups, cfg = "ups"},
    [u8"Изменить дистанцию звуков других игроков"] = {var = buffers.cmd_ugd, cfg = "ugd"},
    [u8"Изменить громкость звука выстрелов"] = {var = buffers.cmd_ugvw, cfg = "ugvw"},
    [u8"Изменить громкость звука попаданий"] = {var = buffers.cmd_ugvh, cfg = "ugvh"},
    [u8"Изменить громкость звука боли"] = {var = buffers.cmd_ugvh, cfg = "ugvh"},
    [u8"Включить / Выключить анизотропную фильтрацию текстур"] = {var = buffers.cmd_forceaniso, cfg = "forceaniso"},
    [u8"Включить / Выключить исправление слабой чувствительности при зуме карты"] = {var = buffers.cmd_mapzoomfixer, cfg = "mapzoomfixer"},
    [u8"Изменить основные тени"] = {var = buffers.cmd_shadowcp, cfg = "shadowcp"},
    [u8"Изменить тени столбов"] = {var = buffers.cmd_shadowlight, cfg = "shadowlight"},
    [u8"Включить / Выключить следы шин"] = {var = buffers.cmd_tiretracks, cfg = "tiretracks"},
    [u8"Изменить дистанцию прорисовки никнеймов"] = {var = buffers.cmd_ntgs, cfg = "ntgs"},
    [u8"Исправление формата отображения денег"] = {var = buffers.cmd_moneyzerofix, cfg = "moneyzerofix"},
}
Lua:
local t = {
    {
        sort = 'Меню', -- Это краткое слова, которое будет использоваться в сортировке
        text = 'Открыть меню скрипта',
        var = 'buffers.cmd_openmenu',
        cfg = 'openmenu'
    },
    {
        sort = 'Яркость',
        text = 'Изменить яркость',
        var = 'buffers.cmd_brightness',
        cfg = 'brightness'
    },
    {
        sort = 'Чат',
        text = 'Скрыть чат',
        var = 'buffers.cmd_showchat',
        cfg = 'showchat'
    },
    {
        sort = 'Следы',
        text = 'Включить / Выключить следы шин',
        var = 'buffers.cmd_tiretracks',
        cfg = 'tiretracks'
    }
}


table.sort(t, function(a, b) return (string.byte(a.sort, 1) < string.byte(b.sort, 1)) end)

for k, v in ipairs(t) do
    sampAddChatMessage(v.text .. ' | ' .. v.sort, -1)
end
можно конечно поебаться над сортировкой по 1 + 2 + 3 + ... букв, но мне как-то лень
1661150505828.png

1661150560994.png
 
  • Эм
Реакции: Gorskin

Hero_0_

Участник
37
4
sol: no matching function call takes this number of arguments and the specified types
stack traceback:
[C]: in function 'RadioButton'
 

chapo

чопа сребдс // @moujeek
Модератор
8,860
11,544
Почему игра крашится спустя
Как отсортировать такую таблицу по алфавиту?
Lua:
local imguiInputsCmdEditor = {
    [u8"Открыть меню скрипта"] = {var = buffers.cmd_openmenu, cfg = "openmenu"},
    [u8"Открыть меню редактора погоды и времени"] = {var = buffers.cmd_tws, cfg = "tws"},
    [u8"Изменить время"] = {var = buffers.cmd_settime, cfg = "settime"},
    [u8"Изменить погоду"] = {var = buffers.cmd_setweather, cfg = "setweather"},
    [u8"Блокировать изменение времени сервером"] = {var = buffers.cmd_blockservertime, cfg = "blockservertime"},
    [u8"Блокировать изменение погоды сервером"] = {var = buffers.cmd_blockserverweather, cfg = "blockserverweather"},
    [u8"Включить / Выключить возможность менять прорисовку"] = {var = buffers.cmd_givemedist, cfg = "givemedist"},
    [u8"Изменить дальность прорисовки"] = {var = buffers.cmd_drawdistance, cfg = "drawdistance"},
    [u8"Изменить дальность прорисовки для воздушного транспорта"] = {var = buffers.cmd_drawdistanceair, cfg = "drawdistanceair"},
    [u8"Изменить дальность тумана"] = {var = buffers.cmd_fogdistance, cfg = "fogdistance"},
    [u8"Изменить дальность лодов"] = {var = buffers.cmd_loddistance, cfg = "loddistance"},
    [u8"Изменить яркость"] = {var = buffers.cmd_brightness, cfg = "brightness"},
    [u8"Включить / Выключить радио в транспорте"] = {var = buffers.cmd_offradio, cfg = "offradio"},
    [u8"Скрыть чат"] = {var = buffers.cmd_showchat, cfg = "showchat"},
    [u8"Скрыть HUD"] = {var = buffers.cmd_showhud, cfg = "showhud"},
    [u8"Изменить скорость анимации изменения кол-ва денег"] = {var = buffers.cmd_animmoney, cfg = "animmoney"},
    [u8"Включить / Выключить полоску 160hp"] = {var = buffers.cmd_bighpbar, cfg = "bighpbar"},
    [u8"Включить / Выключить ограничитель фпс"] = {var = buffers.cmd_fpslock, cfg = "fpslock"},
    [u8"Включить / Выключить пост-обработку"] = {var = buffers.cmd_postfx, cfg = "postfx"},
    [u8"Включить / Выключить исправление застревания в других игроках при спавне"] = {var = buffers.cmd_antiblockedplayer, cfg = "antiblockedplayer"},
    [u8"Включить / Выключить открытие чата на клавишу \"Е\""] = {var = buffers.cmd_chatopenfix, cfg = "chatopenfix"},
    [u8"Включить / Выключить авто-очистку памяти"] = {var = buffers.cmd_autocleaner, cfg = "autocleaner"},
    [u8"Очистить память"] = {var = buffers.cmd_cleanmemory, cfg = "cleanmemory"},
    [u8"Включить  / Выключить сообщение об очистке памяти"] = {var = buffers.cmd_cleaninfo, cfg = "cleaninfo"},
    [u8"Установить лимит в мегабайтах для авто-очистки памяти"] = {var = buffers.cmd_setmbforautocleaner, cfg = "setmbforautocleaner"},
    [u8"Включить / Выключить птиц"] = {var = buffers.cmd_nobirds, cfg = "nobirds"},
    [u8"Включить / Выключить пыль от песка и дым от колес"] = {var = buffers.cmd_nodust, cfg = "nodust"},
    [u8"Включить / Выключить исправление таймцикла для nopostfx"] = {var = buffers.cmd_fixtimecyc, cfg = "fixtimecyc"},
    [u8"Изменить общее освещение освещение мира"] = {var = buffers.cmd_aamb, cfg = "aamb"},
    [u8"Изменить освещение объектов и педов"] = {var = buffers.cmd_oamb, cfg = "oamb"},
    [u8"Изменить цвет таймцикла в формате RGB"] = {var = buffers.cmd_wamb, cfg = "wamb"},
    [u8"Включить / Выключить эффекты игры"] = {var = buffers.cmd_effects, cfg = "effects"},
    [u8"Изменить размер прицела"] = {var = buffers.cmd_editcrosshair, cfg = "editcrosshair"},
    [u8"Включить / Выключить возможноть менять тени"] = {var = buffers.cmd_shadowedit, cfg = "shadowedit"},
    [u8"Включить / Выключить высокие облака"] = {var = buffers.cmd_nocloudbig, cfg = "nocloudbig"},
    [u8"Включить / Выключить низкие облака"] = {var = buffers.cmd_nocloudsmall, cfg = "nocloudsmall"},
    [u8"Включить / Выключить тени"] = {var = buffers.cmd_noshadows, cfg = "noshadows"},
    [u8"Включить / Выключить отображение лодов транспорта"] = {var = buffers.cmd_vehlods, cfg = "vehlods"},
    [u8"Включить / Выключить исправление белой точки на прицеле"] = {var = buffers.cmd_fixcrosshair, cfg = "fixcrosshair"},
    [u8"Включить / Выключить исправление бега в интерьерах"] = {var = buffers.cmd_intrun, cfg = "intrun"},
    [u8"Включить / Выключить исправление квадратной воды"] = {var = buffers.cmd_waterfixquadro, cfg = "waterfixquadro"},
    [u8"Включить / Выключить исправление длинных рук"] = {var = buffers.cmd_longarmfix, cfg = "longarmfix"},
    [u8"Включить / Выключить исправление черных дорог"] = {var = buffers.cmd_fixblackroads, cfg = "fixblackroads"},
    [u8"Включить / Выключить исправление чувствительности мышки по осям X и Y"] = {var = buffers.cmd_fixsens, cfg = "fixsens"},
    [u8"Включить / Выключить аудиострим"] = {var = buffers.cmd_audiostream, cfg = "audiostream"},
    [u8"Снять лимит на количество денег в худе"] = {var = buffers.cmd_nolimitmoneyhud, cfg = "nolimitmoneyhud"},
    [u8"Включить / Выключить музыку в интерьерах"] = {var = buffers.cmd_intmusic, cfg = "intmusic"},
    [u8"Включить / Выключить звуки игры"] = {var = buffers.cmd_nosounds, cfg = "nosounds"},
    [u8"Включить / Выключить полосы от самолетов на небе"] = {var = buffers.cmd_noplaneline, cfg = "noplaneline"},
    [u8"Включить / Выключить солнце"] = {var = buffers.cmd_sunfix, cfg = "sunfix"},
    [u8"Включить / Выключить таргет на игроках"] = {var = buffers.cmd_targetblip, cfg = "targetblip"},
    [u8"Включить / Выключить вертикальную синхронизацию"] = {var = buffers.cmd_vsync, cfg = "vsync"},
    [u8"Включить / Выключить исправление цвета обводки радара"] = {var = buffers.cmd_radar_color_fix, cfg = "radar_color_fix"},
    [u8"Включить / Выключить исправление радара"] = {var = buffers.cmd_radarfix, cfg = "radarfix"},
    [u8"Включить / Выключить исправление выхода мышки на второй монитор"] = {var = buffers.cmd_dual_monitor_fix, cfg = "dual_monitor_fix"},
    [u8"Включить / Выключить исправление свечения шашки у такси"] = {var = buffers.cmd_fixtaxilight, cfg = "fixtaxilight"},
    [u8"Изменить высоту радара"] = {var = buffers.cmd_radarwidth, cfg = "radarwidth"},
    [u8"Изменить ширину радара"] = {var = buffers.cmd_radarheight, cfg = "radarheight"},
    [u8"Изменить позицию радара по X"] = {var = buffers.cmd_radarx, cfg = "radarx"},
    [u8"Изменить позицию радара по Y"] = {var = buffers.cmd_radary, cfg = "radary"},
    [u8"Включить / Выключить Ultimate Genrl"] = {var = buffers.cmd_ugenrl, cfg = "ugenrl"},
    [u8"Включить / Выключить автоматическое выключение звуков при вкл. Ultimate Genrl"] = {var = buffers.cmd_autonosounds, cfg = "autonosounds"},
    [u8"Изменить звук deagle"] = {var = buffers.cmd_uds, cfg = "uds"},
    [u8"Изменить звук shotgun"] = {var = buffers.cmd_uss, cfg = "uss"},
    [u8"Изменить звук m4"] = {var = buffers.cmd_ums, cfg = "ums"},
    [u8"Изменить звук rifle"] = {var = buffers.cmd_urs, cfg = "urs"},
    [u8"Изменить звук uzi"] = {var = buffers.cmd_uuzi, cfg = "uuzi"},
    [u8"Изменить звук mp5"] = {var = buffers.cmd_ump5, cfg = "ump5"},
    [u8"Изменить звук попадания"] = {var = buffers.cmd_ubs, cfg = "ubs"},
    [u8"Изменить звук боли"] = {var = buffers.cmd_ups, cfg = "ups"},
    [u8"Изменить дистанцию звуков других игроков"] = {var = buffers.cmd_ugd, cfg = "ugd"},
    [u8"Изменить громкость звука выстрелов"] = {var = buffers.cmd_ugvw, cfg = "ugvw"},
    [u8"Изменить громкость звука попаданий"] = {var = buffers.cmd_ugvh, cfg = "ugvh"},
    [u8"Изменить громкость звука боли"] = {var = buffers.cmd_ugvh, cfg = "ugvh"},
    [u8"Включить / Выключить анизотропную фильтрацию текстур"] = {var = buffers.cmd_forceaniso, cfg = "forceaniso"},
    [u8"Включить / Выключить исправление слабой чувствительности при зуме карты"] = {var = buffers.cmd_mapzoomfixer, cfg = "mapzoomfixer"},
    [u8"Изменить основные тени"] = {var = buffers.cmd_shadowcp, cfg = "shadowcp"},
    [u8"Изменить тени столбов"] = {var = buffers.cmd_shadowlight, cfg = "shadowlight"},
    [u8"Включить / Выключить следы шин"] = {var = buffers.cmd_tiretracks, cfg = "tiretracks"},
    [u8"Изменить дистанцию прорисовки никнеймов"] = {var = buffers.cmd_ntgs, cfg = "ntgs"},
    [u8"Исправление формата отображения денег"] = {var = buffers.cmd_moneyzerofix, cfg = "moneyzerofix"},
}
 

YarikVL

Известный
Проверенный
4,767
1,820
как можно сделать такие штучки?
Посмотреть вложение 164286
слепил в фотошопе, хочу добавить в иру
Картинку в мимгуи окно?
Lua:
imgui.OnInitialize(function()
    image = imgui.CreateTextureFromFile(getWorkingDirectory() .. '/image.png')
end)

-- Фрейм
imgui.Image(image, imgui.ImVec2(100, 100))
Вроде так
И там по чаилдам разбита картинка ( ну по скрину смотрю ) вроде
Вот пример чаилда https://www.blast.hk/threads/109785/
 

F0RQU1N and

Известный
1,309
498
  • Нравится
Реакции: sizeoftrickster

YarikVL

Известный
Проверенный
4,767
1,820
ето имгуи, и я хочу что бы в таких крадратах были картинка и текст снизу, на мимгуи я не пишу
Lua:
--Перед main:
local image
--В main
image = imgui.CreateTextureFromFile("moonloader/image.png")
--В рендере
imgui.Image(image, imgui.ImVec2(imgui.GetWindowWidht(), imgui.GetWindowHeight()/2))
А текст можно с помощью: imgui.Text("ky")

Ну а пример с чаилдами выше
 

chapo

чопа сребдс // @moujeek
Модератор
8,860
11,544