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

Aniki

🐰
Администратор
1,228
1,554
Это как так?
for длина массива, 1, -1 do

Полно вопросов теперь:
1) В какой переменной будет храниться текущая ячейка в цикле?
2) Причём тут -1?
3) Причём тут 1?
1) я протупил, конечно же for i = #array, 1, -1 do
2) -1 означает шаг в цикле (по умолчанию там 1)
3) 1 - конечное значение
 

BW-Samp

Новичок
71
0
пропадает renderFontDrawText и не работает клавишу вызова окна после вывода на экран серверного тексдрава или же если есть тексдрав на экране, то renderFontDrawText и клавиша f2 работать не будет, в чём проблема?
 

Aniki

🐰
Администратор
1,228
1,554
пропадает renderFontDrawText и не работает клавишу вызова окна после вывода на экран серверного тексдрава или же если есть тексдрав на экране, то renderFontDrawText и клавиша f2 работать не будет, в чём проблема?
А код скинуть?
 

Musaigen

abobusnik
Проверенный
1,603
1,361
как с обычного текстового файла извлечь все строки и после каждой строки выставить wait() ?
хочу сделать чтобы все строки с этого файла писались в чат с выставленой задержкой. У меня чет это не получается(
?
Lua:
for line in io.lines(path) do
    sampSendChat(line)
    wait(99999999)
end
 
  • Нравится
Реакции: KH9I3b_MuJIOCJIABCKu

BW-Samp

Новичок
71
0
Lua:
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then
        return
    end
    while not isSampAvailable() do
        wait(0)
    end
    font = renderCreateFont('Arial', 10, 5)
    rendX, rendY = convertGameScreenCoordsToWindowScreenCoords(30.0, 300.0)
    local time = getTime(3)
    dat = os.date('%d.%m.20%y', time)
   
    checkUpdate()
   
    local statusa = 0
    local dostup = '24.08.2018'
    if dat == dostup then statusa = 1 end
    print( dat,dostup,statusa)
   
    local _,  playerid = sampGetPlayerIdByCharHandle(PLAYER_PED)
    if sampGetPlayerNickname(playerid) == 'Nick' or 'Nick' then
        if statusa == 0 then
            sampAddChatMessage("[Leader-MVD] {FFFFFF} Скрипт запущен.{9d00bd} Автор: Nick. {4b58eb} | Version: 1.5 beta", 0x4b58ebFF)
            sampAddChatMessage("[Leader-MVD] {FFFFFF} Используйте команду /lm или клавишу F2 для вызова меню. Скрипт доступен вам до: "..dostup, 0x4b58ebFF)
            --sampAddChatMessage("[Leader-MVD] {FFFFFF} Скрипт доступен только для лидеров. Пропишите команду {4b58eb}/lm{ffffff} для регистрации.", 0x4b58ebFF)
            sampRegisterChatCommand("lm", lm) -- +
            sampRegisterChatCommand("cuff", cuff) -- +
            sampRegisterChatCommand("arrest", arrest) -- +
            sampRegisterChatCommand("hold", hold) -- +
            sampRegisterChatCommand("su", su) -- +
            sampRegisterChatCommand("eject", eject) -- +
            sampRegisterChatCommand("takelic", takelic) -- +
            sampRegisterChatCommand("ticket", ticket) -- +
            sampRegisterChatCommand("putpl", putpl) -- +
            sampRegisterChatCommand("invite", invite) -- +
            sampRegisterChatCommand("uninvite", uninvite) -- +
            sampRegisterChatCommand("search", search) -- +
            sampRegisterChatCommand("rang", rang) -- +
            sampRegisterChatCommand("changeskin", changeskin) -- +
            sampRegisterChatCommand("fn", fn) -- +
            sampRegisterChatCommand("rn", rn) -- +
            sampRegisterChatCommand("епк", ud) -- +
            sampRegisterChatCommand("уд", udos) -- +
            sampRegisterChatCommand("zone", nzone) -- +
            sampRegisterChatCommand("clear", clear) -- +
            --sampRegisterChatCommand("update", cupdate)

            while true do
            wait(0)
                --while true do
                --wait(0)
            if save_tabl.v then
            cx = mainIni.get.cx
            cy = mainIni.get.cy
                if isMove then
                    sampSetCursorMode(2)
                    local cursorPosX, cursorPosY = getCursorPos()
                    mainIni.get.cx, mainIni.get.cy = cursorPosX, cursorPosY
                    if isKeyJustPressed(0x01) then
                        inicfg.save(mainIni, '..\\config\\MVDLead.ini')
                        sampSetCursorMode(0)
                        isMove = false
                    end
                end   
                ibar()
            end
                --end
            if isKeyJustPressed(key.VK_F2) then
                main_menu.v = not main_menu.v
            end
            imgui.Process = main_menu.v or ten_menu.v or ten_menu_one.v
            local weapon = getCurrentCharWeapon(PLAYER_PED)
            while weapon == 3 or weapon == 17 or weapon == 23 or weapon == 24 or weapon == 25 or weapon == 29 or weapon == 34 do
            wait(0)
            imgui.Process = main_menu.v
            if save_rpw.v then
                    local weapon = getCurrentCharWeapon(PLAYER_PED)
                            if weapon == 3 then -- дубинка
                                sampSendChat("/do Дубинка висит на поясе.")
                                wait(1000)
                                sampSendChat("/me снял дубинку с пояса")
                                while true and save_rpw.v == true do
                                wait(0)
                                imgui.Process = main_menu.v
                                local weapon = getCurrentCharWeapon(PLAYER_PED)
                                    if weapon ~= 3 then
                                        sampSendChat("/me повесил дубинку на пояс")
                                        wait(1000)
                                        break
                                    end
                                end
                                ---------------------------------
                            elseif weapon == 17 then -- Дымовая шашка
                                sampSendChat("/do Дымовая шашка в чехле на поясе.")
                                wait(1000)
                                sampSendChat("/me вытащил дымовую шашку")
                                    while true and save_rpw.v do
                                    wait(0)
                                    imgui.Process = main_menu.v
                                    local weapon = getCurrentCharWeapon(PLAYER_PED)
                                        if weapon ~= 17 then
                                            break
                                        end
                                    end
                                    ---------------------------------
                            elseif weapon == 23 then -- Пистол
                                sampSendChat("/do В кобуре пистолет SD-Pistol")
                                wait(1000)
                                sampSendChat("/me достал пистолет из кобуры")
                                while true and save_rpw.v do
                                wait(0)
                                imgui.Process = main_menu.v
                                local weapon = getCurrentCharWeapon(PLAYER_PED)
                                    if weapon ~= 23 then
                                        sampSendChat("/do Кобура на поясе.")
                                        wait(1000)
                                        sampSendChat("/me засунул пистолет в кобуру")
                                        wait(1000)
                                        break
                                    end
                                end
                                ---------------------------------
                            elseif weapon == 24 then -- Дигл
                                sampSendChat("/do В кобуре пистолет Desert Eagle .")
                                wait(1000)
                                sampSendChat("/me достал пистолет из кобуры")
                                while true and save_rpw.v do
                                wait(0)
                                imgui.Process = main_menu.v
                                local weapon = getCurrentCharWeapon(PLAYER_PED)
                                    if weapon ~= 24 then
                                        sampSendChat("/do Кобура на поясе.")
                                        wait(1000)
                                        sampSendChat("/me засунул пистолет в кобуру")
                                        wait(1000)
                                        break
                                    end
                                end
                                ---------------------------------
                            elseif weapon == 25 then -- Шотган
                                sampSendChat("/do На плече весит дробовик Shotgun.")
                                wait(1000)
                                sampSendChat("/me снял с плеча дробовик")
                                while true and save_rpw.v do
                                wait(0)
                                imgui.Process = main_menu.v
                                local weapon = getCurrentCharWeapon(PLAYER_PED)
                                    if weapon ~= 25 then
                                        sampSendChat("/me повесил дробовик на плечо")
                                        wait(1000)
                                        break
                                    end
                                end
                                ---------------------------------
                            elseif weapon == 29 then -- МП 5
                                sampSendChat("/do На плече весит пистолет-пулемёт MP-5.")
                                wait(1000)
                                sampSendChat("/me снял с плеча пистолет-пулемёт")
                                while true and save_rpw.v do
                                wait(0)
                                imgui.Process = main_menu.v
                                local weapon = getCurrentCharWeapon(PLAYER_PED)
                                    if weapon ~= 29 then
                                        sampSendChat("/me повесил пистолет-пулемёт на плечо")
                                        wait(1000)
                                        break
                                    end
                                end
                                ---------------------------------
                            elseif weapon == 34 then -- Снайперка
                                sampSendChat("/do  На спине снайперская винтовка.")
                                wait(1000)
                                sampSendChat("/me взял со спины снайперскую винтовку")
                                while true and save_rpw.v do
                                wait(0)
                                imgui.Process = main_menu.v
                                local weapon = getCurrentCharWeapon(PLAYER_PED)
                                    if weapon ~= 34 then
                                        sampSendChat("/do В руке снайперская винтовка")
                                        wait(1000)
                                        sampSendChat("/me повесит снайперскую винтовку на спину")
                                        wait(1000)
                                        break
                                    end
                                end
                            end
                        end
                    end
                end
            else
                sampAddChatMessage("[Leader-MVD] {FFFFFF} Скрипт запущен.{9d00bd} Автор: NickNick. {4b58eb} | Version: 1.5 beta", 0x4b58ebFF)
                sampAddChatMessage("[Leader-MVD] {FFFFFF} У вас закончился срок использования скрипта. Обратитесь к автору: vk.com/Nickили Skype: Nick", 0x4b58ebFF)
                thisScript():unload()
            end
        else
            sampAddChatMessage("[Leader-MVD] {FFFFFF} Скрипт запущен.{9d00bd} Автор: Nick. {4b58eb} | Version: 1.5 beta", 0x4b58ebFF)
            sampAddChatMessage("[Leader-MVD] {FFFFFF} У вас нет доступа к скрипту. Обратитесь к автору: vk.com/Nickили Skype: Nick", 0x4b58ebFF)
            thisScript():unload()
        end
    end
Lua:
function ibar()
    rab =
    {
        [1] = mainIni.settings.sfls - mainIni.settings.sls, --
        [2] = mainIni.settings.sfsf - mainIni.settings.ssf, --
        [3] = mainIni.settings.sflv - mainIni.settings.slv  --
    }
    bar =
    {
        [1] = mainIni.settings.sfls / 3, --
        [2] = mainIni.settings.sfsf / 3, --
        [3] = mainIni.settings.sflv / 3  --
    }
    if rab[1] >= 1 and rab[1] <= bar[1] then
    ols = '{2dba11}Отлично'
    end
    if rab[1] >= bar[1]+1 and rab[1] <= bar[1]*2 then
    ols = '{ba8511}Нормально'
    end
    if rab[1] >= bar[1]*2+1 and rab[1] <= bar[1]*3 then
    ols = '{ba1111}Плохо'
    end
    if ols == nil then ols = '{8f8f0b}Нет данных' end
    -----------------------
    if rab[2] >= 1 and rab[2] <= bar[2] then
    osf = '{2dba11}Отлично'
    end
    if rab[2] >= bar[2]+1 and rab[2] <= bar[2]*2 then
    osf = '{ba8511}Нормально'
    end
    if rab[2] >= bar[2]*2+1 and rab[2] <= bar[2]*3 then
    osf = '{ba1111}Плохо'
    end
    if osf == nil then osf = '{8f8f0b}Нет данных' end
    ------------------------
    if rab[3] >= 1 and rab[3] <= bar[3] then
    olv = '{2dba11}Отлично'
    end
    if rab[3] >= bar[3]+1 and rab[3] <= bar[3]*2 then
    olv = '{ba8511}Нормально'
    end
    if rab[3] >= bar[3]*2+1 and rab[3] <= bar[3]*3 then
    olv = '{ba1111}Плохо'
    end
    if olv == nil then olv = '{8f8f0b}Нет данных' end
    ----------------------------
    stext = string.format('Оценка работы департаментов:\nЛос-Сантос: %s\n{9b318fca}Сан-Фиерро: %s\n{9b318fca}Лас-Вентурас: %s',ols,osf,olv)
    renderFontDrawText(font, stext, cx, cy, 0xab318fca)
end
 

Musaigen

abobusnik
Проверенный
1,603
1,361
Lua:
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then
        return
    end
    while not isSampAvailable() do
        wait(0)
    end
    font = renderCreateFont('Arial', 10, 5)
    rendX, rendY = convertGameScreenCoordsToWindowScreenCoords(30.0, 300.0)
    local time = getTime(3)
    dat = os.date('%d.%m.20%y', time)
 
    checkUpdate()
 
    local statusa = 0
    local dostup = '24.08.2018'
    if dat == dostup then statusa = 1 end
    print( dat,dostup,statusa)
 
    local _,  playerid = sampGetPlayerIdByCharHandle(PLAYER_PED)
    if sampGetPlayerNickname(playerid) == 'Nick' or 'Nick' then
        if statusa == 0 then
            sampAddChatMessage("[Leader-MVD] {FFFFFF} Скрипт запущен.{9d00bd} Автор: Nick. {4b58eb} | Version: 1.5 beta", 0x4b58ebFF)
            sampAddChatMessage("[Leader-MVD] {FFFFFF} Используйте команду /lm или клавишу F2 для вызова меню. Скрипт доступен вам до: "..dostup, 0x4b58ebFF)
            --sampAddChatMessage("[Leader-MVD] {FFFFFF} Скрипт доступен только для лидеров. Пропишите команду {4b58eb}/lm{ffffff} для регистрации.", 0x4b58ebFF)
            sampRegisterChatCommand("lm", lm) -- +
            sampRegisterChatCommand("cuff", cuff) -- +
            sampRegisterChatCommand("arrest", arrest) -- +
            sampRegisterChatCommand("hold", hold) -- +
            sampRegisterChatCommand("su", su) -- +
            sampRegisterChatCommand("eject", eject) -- +
            sampRegisterChatCommand("takelic", takelic) -- +
            sampRegisterChatCommand("ticket", ticket) -- +
            sampRegisterChatCommand("putpl", putpl) -- +
            sampRegisterChatCommand("invite", invite) -- +
            sampRegisterChatCommand("uninvite", uninvite) -- +
            sampRegisterChatCommand("search", search) -- +
            sampRegisterChatCommand("rang", rang) -- +
            sampRegisterChatCommand("changeskin", changeskin) -- +
            sampRegisterChatCommand("fn", fn) -- +
            sampRegisterChatCommand("rn", rn) -- +
            sampRegisterChatCommand("епк", ud) -- +
            sampRegisterChatCommand("уд", udos) -- +
            sampRegisterChatCommand("zone", nzone) -- +
            sampRegisterChatCommand("clear", clear) -- +
            --sampRegisterChatCommand("update", cupdate)

            while true do
            wait(0)
                --while true do
                --wait(0)
            if save_tabl.v then
            cx = mainIni.get.cx
            cy = mainIni.get.cy
                if isMove then
                    sampSetCursorMode(2)
                    local cursorPosX, cursorPosY = getCursorPos()
                    mainIni.get.cx, mainIni.get.cy = cursorPosX, cursorPosY
                    if isKeyJustPressed(0x01) then
                        inicfg.save(mainIni, '..\\config\\MVDLead.ini')
                        sampSetCursorMode(0)
                        isMove = false
                    end
                end
                ibar()
            end
                --end
            if isKeyJustPressed(key.VK_F2) then
                main_menu.v = not main_menu.v
            end
            imgui.Process = main_menu.v or ten_menu.v or ten_menu_one.v
            local weapon = getCurrentCharWeapon(PLAYER_PED)
            while weapon == 3 or weapon == 17 or weapon == 23 or weapon == 24 or weapon == 25 or weapon == 29 or weapon == 34 do
            wait(0)
            imgui.Process = main_menu.v
            if save_rpw.v then
                    local weapon = getCurrentCharWeapon(PLAYER_PED)
                            if weapon == 3 then -- дубинка
                                sampSendChat("/do Дубинка висит на поясе.")
                                wait(1000)
                                sampSendChat("/me снял дубинку с пояса")
                                while true and save_rpw.v == true do
                                wait(0)
                                imgui.Process = main_menu.v
                                local weapon = getCurrentCharWeapon(PLAYER_PED)
                                    if weapon ~= 3 then
                                        sampSendChat("/me повесил дубинку на пояс")
                                        wait(1000)
                                        break
                                    end
                                end
                                ---------------------------------
                            elseif weapon == 17 then -- Дымовая шашка
                                sampSendChat("/do Дымовая шашка в чехле на поясе.")
                                wait(1000)
                                sampSendChat("/me вытащил дымовую шашку")
                                    while true and save_rpw.v do
                                    wait(0)
                                    imgui.Process = main_menu.v
                                    local weapon = getCurrentCharWeapon(PLAYER_PED)
                                        if weapon ~= 17 then
                                            break
                                        end
                                    end
                                    ---------------------------------
                            elseif weapon == 23 then -- Пистол
                                sampSendChat("/do В кобуре пистолет SD-Pistol")
                                wait(1000)
                                sampSendChat("/me достал пистолет из кобуры")
                                while true and save_rpw.v do
                                wait(0)
                                imgui.Process = main_menu.v
                                local weapon = getCurrentCharWeapon(PLAYER_PED)
                                    if weapon ~= 23 then
                                        sampSendChat("/do Кобура на поясе.")
                                        wait(1000)
                                        sampSendChat("/me засунул пистолет в кобуру")
                                        wait(1000)
                                        break
                                    end
                                end
                                ---------------------------------
                            elseif weapon == 24 then -- Дигл
                                sampSendChat("/do В кобуре пистолет Desert Eagle .")
                                wait(1000)
                                sampSendChat("/me достал пистолет из кобуры")
                                while true and save_rpw.v do
                                wait(0)
                                imgui.Process = main_menu.v
                                local weapon = getCurrentCharWeapon(PLAYER_PED)
                                    if weapon ~= 24 then
                                        sampSendChat("/do Кобура на поясе.")
                                        wait(1000)
                                        sampSendChat("/me засунул пистолет в кобуру")
                                        wait(1000)
                                        break
                                    end
                                end
                                ---------------------------------
                            elseif weapon == 25 then -- Шотган
                                sampSendChat("/do На плече весит дробовик Shotgun.")
                                wait(1000)
                                sampSendChat("/me снял с плеча дробовик")
                                while true and save_rpw.v do
                                wait(0)
                                imgui.Process = main_menu.v
                                local weapon = getCurrentCharWeapon(PLAYER_PED)
                                    if weapon ~= 25 then
                                        sampSendChat("/me повесил дробовик на плечо")
                                        wait(1000)
                                        break
                                    end
                                end
                                ---------------------------------
                            elseif weapon == 29 then -- МП 5
                                sampSendChat("/do На плече весит пистолет-пулемёт MP-5.")
                                wait(1000)
                                sampSendChat("/me снял с плеча пистолет-пулемёт")
                                while true and save_rpw.v do
                                wait(0)
                                imgui.Process = main_menu.v
                                local weapon = getCurrentCharWeapon(PLAYER_PED)
                                    if weapon ~= 29 then
                                        sampSendChat("/me повесил пистолет-пулемёт на плечо")
                                        wait(1000)
                                        break
                                    end
                                end
                                ---------------------------------
                            elseif weapon == 34 then -- Снайперка
                                sampSendChat("/do  На спине снайперская винтовка.")
                                wait(1000)
                                sampSendChat("/me взял со спины снайперскую винтовку")
                                while true and save_rpw.v do
                                wait(0)
                                imgui.Process = main_menu.v
                                local weapon = getCurrentCharWeapon(PLAYER_PED)
                                    if weapon ~= 34 then
                                        sampSendChat("/do В руке снайперская винтовка")
                                        wait(1000)
                                        sampSendChat("/me повесит снайперскую винтовку на спину")
                                        wait(1000)
                                        break
                                    end
                                end
                            end
                        end
                    end
                end
            else
                sampAddChatMessage("[Leader-MVD] {FFFFFF} Скрипт запущен.{9d00bd} Автор: NickNick. {4b58eb} | Version: 1.5 beta", 0x4b58ebFF)
                sampAddChatMessage("[Leader-MVD] {FFFFFF} У вас закончился срок использования скрипта. Обратитесь к автору: vk.com/Nickили Skype: Nick", 0x4b58ebFF)
                thisScript():unload()
            end
        else
            sampAddChatMessage("[Leader-MVD] {FFFFFF} Скрипт запущен.{9d00bd} Автор: Nick. {4b58eb} | Version: 1.5 beta", 0x4b58ebFF)
            sampAddChatMessage("[Leader-MVD] {FFFFFF} У вас нет доступа к скрипту. Обратитесь к автору: vk.com/Nickили Skype: Nick", 0x4b58ebFF)
            thisScript():unload()
        end
    end
Lua:
function ibar()
    rab =
    {
        [1] = mainIni.settings.sfls - mainIni.settings.sls, --
        [2] = mainIni.settings.sfsf - mainIni.settings.ssf, --
        [3] = mainIni.settings.sflv - mainIni.settings.slv  --
    }
    bar =
    {
        [1] = mainIni.settings.sfls / 3, --
        [2] = mainIni.settings.sfsf / 3, --
        [3] = mainIni.settings.sflv / 3  --
    }
    if rab[1] >= 1 and rab[1] <= bar[1] then
    ols = '{2dba11}Отлично'
    end
    if rab[1] >= bar[1]+1 and rab[1] <= bar[1]*2 then
    ols = '{ba8511}Нормально'
    end
    if rab[1] >= bar[1]*2+1 and rab[1] <= bar[1]*3 then
    ols = '{ba1111}Плохо'
    end
    if ols == nil then ols = '{8f8f0b}Нет данных' end
    -----------------------
    if rab[2] >= 1 and rab[2] <= bar[2] then
    osf = '{2dba11}Отлично'
    end
    if rab[2] >= bar[2]+1 and rab[2] <= bar[2]*2 then
    osf = '{ba8511}Нормально'
    end
    if rab[2] >= bar[2]*2+1 and rab[2] <= bar[2]*3 then
    osf = '{ba1111}Плохо'
    end
    if osf == nil then osf = '{8f8f0b}Нет данных' end
    ------------------------
    if rab[3] >= 1 and rab[3] <= bar[3] then
    olv = '{2dba11}Отлично'
    end
    if rab[3] >= bar[3]+1 and rab[3] <= bar[3]*2 then
    olv = '{ba8511}Нормально'
    end
    if rab[3] >= bar[3]*2+1 and rab[3] <= bar[3]*3 then
    olv = '{ba1111}Плохо'
    end
    if olv == nil then olv = '{8f8f0b}Нет данных' end
    ----------------------------
    stext = string.format('Оценка работы департаментов:\nЛос-Сантос: %s\n{9b318fca}Сан-Фиерро: %s\n{9b318fca}Лас-Вентурас: %s',ols,osf,olv)
    renderFontDrawText(font, stext, cx, cy, 0xab318fca)
end
Рендерим текст не в бесконечном цикле, а потом спрашиваем в чём блять ошибка, из твоих уст я вообще ничего не понял, максимум то, что у тебя там что-то не работает. Но когда посмотрел на твой код (Конечно же ещё один MVD Helper, вас заставляют эту парашу делать?) то всё сразу стало на свои места. Да и ты вкурсе что ты делаешь проверку на клавишу вне беск.цикла?
 
  • Нравится
Реакции: Aniki

ШPEK

Известный
1,476
525
Как сделать чтобы нажатая клавиша не доходила до сервера?
 

rraggerr

проверенный какой-то
1,626
848
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • Нравится
Реакции: ШPEK

rraggerr

проверенный какой-то
1,626
848
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.