Как написать луа?

s0lnc3v

Новичок
Автор темы
7
1
Версия MoonLoader
.026-beta
Всем привет, хочу написать кое-какое луа для СМИ. Нужно чтобы при нажатии на клавишу(допустим N) оно открывало меню СМИ и нажимало само на конкретную вкладку. То есть должно открывать меню и выбирать вкладку.
Нашёл в одной луа такой код, но не особо понимаю, как оно работает.

Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if title == 'Репортеры' and text:find('%[3%] Объявления') then -- Меню /n
        if ad_check == -1 then
            ad_check = 2
            ThreadSendDialog(90, dialogId, 1, 3, '[3] Объявления')
            lua_thread.create(function()
                checking, checkall = 0, 0
                repeat wait(0)
                    local text = 'Checking '..checking..'/'..checkall
                    local x, y = getScreenResolution()
                    x = x - renderGetFontDrawTextLength(font, text)
                    y = y - renderGetFontDrawHeight(font)
                    renderFontDrawText(font, text, x, y, -1)
                until ad_check == 0
            end)
            return false
        end
        if list_ad == -1 then
            list_ad = 0
            ThreadSendDialog(90, dialogId, 1, 3, '[3] Объявления')
            return false
        end
    end 
    if title == 'Объявления' and text:find('%[id: ') then -- Объявления
        local array = split(text, '\n')
        local dialogText = ''
        if ad_check == 2 then
            dialogArray = {}
        end
        for k,v in pairs(array) do
            local id = tonumber(v:match('%[id: (%d+)%]'))
            if id ~= nil then
                if ad_check == 2 and not v:find('Проверил') and arrayAD[id] == nil then
                    checkall = checkall + 1
                    dialogArray[#dialogArray + 1] = { text = v, list = k-1, id = id}
                end
                if arrayAD[id] ~= nil then
                    v = v:gsub('%[id', string.format('{59de00}[%s$]{FFFFFF} [id', arrayAD[id]))
                end
                dialogText = string.format('%s%s\n', dialogText, v)
            end
        end
        if ad_check == 2 then ad_check = -2 end
        if ad_check == -2 or ad_check == 3 then
            if dialogArray[#dialogArray] ~= nil then
                adstring = dialogArray[#dialogArray].text
                adid = dialogArray[#dialogArray].id
                ad_check = 3
                ThreadSendDialog(90, 22, 1, dialogArray[#dialogArray].list, adstring)
                dialogArray[#dialogArray] = nil
                return false
            else
                ad_check = 0
            end
        end
        return {dialogId, style, title, button1, button2, dialogText}
    end
    if title == 'Меню' and text:find('%[0%] Читать') then -- Меню редактировать, отправить
        ShowNewsMenu = 1
        if ad_check == 3 then
            ad_check = -3
            ThreadSendDialog(90, dialogId, 1, 0, '[0] Читать')
            return false
        end
        if ad_check == 4 then
            ad_check = -2
            ThreadSendDialog(90, dialogId, 0, 0, '[0] Читать')
            return false
        end
    end
    if title == 'Сообщение' or title == 'Ввод параметра' and ShowNewsMenu ~= nil then -- Диалог с текстом объявления
        ShowNewsMenu = nil
        if adstring ~= nil and not adstring:find('Проверил') then
            arrayAD[adid] = ((#text * ini.Settings.ad_cena) / 100) * 60
        end
        if ad_check == -3 then
            ad_check = 4
            checking = checking + 1
            ThreadSendDialog(90, dialogId, 0, 0, '')
            return false
        end
    end
end
 
Последнее редактирование:

_mudota_

Потрачен
208
27
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ну для начала бы хоть указал для какого сервера тебе надо. Показал какой диалог тебе показывает сам сервер и вообще как открыть меню СМИ (какой командой на сервере)
 
  • Нравится
Реакции: Vintik