вывод информации из диалога

W1ll04eison

Участник
Автор темы
328
19
Версия MoonLoader
.026-beta
у меня есть некий диалог:
mg 04-03-2022 19-21-23 [0].png


Подскажите, как сделать вывод members'a на экран.
А т.е, выше я предоставил скриншот как выглядит диалоговое окно members, как сделать вывод этого members на экран, по типу:
[id] Nick_Name ранг [номер]
[id] Nick_Name ранг [номер]
[id] Nick_Name ранг [номер]
и т.д
если же есть игроки которые находятся в выходном, то, в списке это будет обозначено, по типу:
[id] Nick_Name ранг [номер]
[id] Nick_Name ранг [номер]
[Выходные]
[id] Nick_Name ранг [номер]
и т.д

Если можно, то, дайте пожалуйста пример(если будет не трудно, то, пояснения еще бы) по скриншоту который я кинул выше, ибо, ранее я не работал с диалогами.
Мне всего лишь нужно увидеть пример, остальные задумки которые у меня есть - я сам добавлю.
 

awserver

Участник
55
23
была нумерация


это и так размер шрифта 10, если делать меньше, то, там под лупой только рассматривать если


крч...я решил обе эти проблемы:
то что была нумерация и не было пробелов
вот как я поступил:

lua:
for line in text:gmatch('[^\r\n]+') do
            if line:find('%[%d+%] .+') then
                local number, idts, name, rang, idrang, afk = string.match(line, "%[(%d+)%] %[(.+)%] (%w+_%w+)(.+) %[(%d+)%](.+)")

                local ccolor = sampGetPlayerColor(idts)
                ccolor = string.format("%X", tonumber(ccolor))
                if #ccolor == 8 then _, ccolor = string.match(ccolor, "(..)(......)") end
            
                local lineee = string.format("{"..ccolor.."} %s[%s]{afafaf}  %s[%s]  {FF0000}%s", name, idts, rang, idrang, afk)
                if idts == nil then lineee = " {D95A41}[Выходные]" end
        
                table.insert(memberstable, lineee) -- добавляем строку в таблицу
            end
        end
        sampSendDialogResponse(id, 0, 0, nil)
        return false

теперь отображает все хорошо
Посмотреть вложение 139013

Но, теперь вопрос в следующем, как сделать так, что-бы members «обновлялся»(прописывалась команда «/members») только тогда, когда никакой диалог не активен, когда поле ввода не активно(когда в чат ничего я не пишу)...Потому что данное «обновление» members сбивает другие диалоги, и если во время «обновления» members я что-то отправлю в чат, то это просто не отправляется и в чат пишет: «Не флуди»

как я пробовал делать:

lua:
lua_thread.create(flooder) --в main

function flooder() --вне main
        while true do wait(0)
            if not sampIsChatVisible() and not sampIsDialogActive() and not sampIsChatInputActive() then
                if sampIsLocalPlayerSpawned() then
                    wait(10000)
                    sampSendChat('/members')
                end
            end
        end
end
Но, выше написанный код резуальтатов не дал, если при каком либо активном диалоге происходить «обновление» members и тот диалог который был открыт - он сбивается(закрывается).
Если я в чат что-то пишу во время «обновления» members, то как я уже сказал ранее: (это просто не отправляется и в чат пишет: «Не флуди»)
ну конечно проверка каждую милисекунду будет неисправна, сделай 3-5сек хотябы