Как брать инфу с диалога

KOHTOP

Участник
Автор темы
138
17
Версия MoonLoader
.027.0-preview
Когда-то кто-то мне сказал, что инфу с диалога можно брать с find:match, а как я хз, подскажите please
 
Решение
Lua:
local sampev = require 'lib.samp.events'
function sampev.onShowDialog(id, style, title, button1, button2, text)
    for line in text:gsub('{......}',''):gmatch('([^\n\r]+)') do
        if line:find('Предупреждения%: %[%d+%]') then
            local count = line:match('Предупреждения%: %[(%d+)%]')
            sampAddChatMessage(count,-1)
        end
    end
end

KOHTOP

Участник
Автор темы
138
17
Lua:
local sampev = require 'lib.samp.events'
local check = false
function sampev.onSendCommand(cmd)
    if cmd:find('re %d+') then
        lua_thread.create(function()
            local current_id = cmd:match('re (%d+)')
            wait(1000)
            sampSendChat('/getstat '..current_id)
            check = true
        end)
    end
end
function sampev.onShowDialog(id, style, title, button1, button2, text)
    if check then
        for line in text:gsub('{......}',''):gmatch('([^\n\r]+)') do
            if line:find('Предупреждения%: %[%d+%]') then
                local count = line:match('Предупреждения%: %[(%d+)%]')
                sampAddChatMessage(count,-1)
                sampCloseCurrentDialogWithButton(0)
                check = false
            end
        end
    end
end
1683732325640.png

Всегда -1 показывает

1683732325640.png

Всегда -1 показывает
В чат тоже -1 выводит
1683732468732.png
 

MLycoris

Режим чтения
Проверенный
1,822
1,869

KOHTOP

Участник
Автор темы
138
17
А ты меняешь какую-то глобальную переменную, когда в количество наказаний чекаешь?
Lua:
imgui.OnFrame(function() return recon[0] and not isGamePaused() end,
function()
    imgui.SetNextWindowPos(imgui.ImVec2(1800, posY), imgui.Cond.Always, imgui.ImVec2(1, 1))
    imgui.SetNextWindowSize(imgui.ImVec2(340, 200), imgui.Cond.Always)
    imgui.Begin('Recon Stats', show, imgui.WindowFlags.NoDecoration, imgui.WindowFlags.AlwaysAutoResize, imgui.WindowFlags.NoSavedSettings, imgui.WindowFlags.NoMove, imgui.WindowFlags.NoInputs)
    imgui.Text(sampGetPlayerNickname(reconId) .. '[' .. reconId .. ']  (' .. sampGetPlayerPing(reconId) .. ' ping)')
    imgui.Separator()
    imgui.Text(u8'Уровень: ' .. sampGetPlayerScore(reconId) .. u8'     Здоровье: ' .. sampGetPlayerHealth(reconId) .. ' ' .. fa.HEART .. u8'     Брони: ' .. sampGetPlayerArmor(reconId) .. '' .. fa.CIRCLE_INFO)
    imgui.Separator()
    imgui.Text(u8'Варнов: ' .. warning .. '/3 ' .. fa.CIRCLE_RADIATION .. u8'      Выговоров: 0/3 ' .. fa.SQUARE_XMARK .. u8'     Розыск: 0 ' .. fa.STAR)
    imgui.Separator()
    imgui.Text(u8'Фракция: FBI ' .. fa.USER .. u8'      Ранг: 9'  )
    imgui.End()
end).HideCursor = true
 

MLycoris

Режим чтения
Проверенный
1,822
1,869
Lua:
imgui.OnFrame(function() return recon[0] and not isGamePaused() end,
function()
    imgui.SetNextWindowPos(imgui.ImVec2(1800, posY), imgui.Cond.Always, imgui.ImVec2(1, 1))
    imgui.SetNextWindowSize(imgui.ImVec2(340, 200), imgui.Cond.Always)
    imgui.Begin('Recon Stats', show, imgui.WindowFlags.NoDecoration, imgui.WindowFlags.AlwaysAutoResize, imgui.WindowFlags.NoSavedSettings, imgui.WindowFlags.NoMove, imgui.WindowFlags.NoInputs)
    imgui.Text(sampGetPlayerNickname(reconId) .. '[' .. reconId .. ']  (' .. sampGetPlayerPing(reconId) .. ' ping)')
    imgui.Separator()
    imgui.Text(u8'Уровень: ' .. sampGetPlayerScore(reconId) .. u8'     Здоровье: ' .. sampGetPlayerHealth(reconId) .. ' ' .. fa.HEART .. u8'     Брони: ' .. sampGetPlayerArmor(reconId) .. '' .. fa.CIRCLE_INFO)
    imgui.Separator()
    imgui.Text(u8'Варнов: ' .. warning .. '/3 ' .. fa.CIRCLE_RADIATION .. u8'      Выговоров: 0/3 ' .. fa.SQUARE_XMARK .. u8'     Розыск: 0 ' .. fa.STAR)
    imgui.Separator()
    imgui.Text(u8'Фракция: FBI ' .. fa.USER .. u8'      Ранг: 9'  )
    imgui.End()
end).HideCursor = true
в начале кода задай переменную local warning = 0, а когда в рекон уходишь меняй значений warning =, я щас не дома не смогу нормально обьяснить, надеюсь, поймёшь
 

.KOHTOP.

Активный
217
35
в начале кода задай переменную local warning = 0, а когда в рекон уходишь меняй значений warning =, я щас не дома не смогу нормально обьяснить, надеюсь, поймёшь
script:
local warning = 0

if check = true then
        for line in text:gsub('{......}',''):gmatch('([^\n\r]+)') do
            if line:find('Предупреждения%: %[%d+%]') then
                warning = line:match('Предупреждения%: %[(%d+)%]')
                sampAddChatMessage(tag .. ' ' .. warning)
                sampCloseCurrentDialogWithButton(0)
                check = false
           end
       end
end
Так?
 
  • Нравится
Реакции: MLycoris