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