парсить строчку диалога

sadasdasdasdasdasd

Участник
Автор темы
81
16
Версия MoonLoader
Другое
хочу сделать, чтобы когда человек написал боту "addvip" ему вывелась строка с часами, которые он отыграл, но у меня не получается, бот открывает диалог, но не отправляет часы
ниже выделено то, что нужно парсить
1681544465525.png

почему не работает?

Lua:
function processing_telegram_messages(result)
    if active.v then
        if result then
            local proc_table = decodeJson(result)
            if proc_table.ok then
                if #proc_table.result > 0 then
                    local res_table = proc_table.result[1]
                    if res_table then
                        if res_table.update_id ~= updateid then
                            updateid = res_table.update_id
                            local message_from_user = res_table.message.text
                            if message_from_user then
                                local text = u8:decode(message_from_user) .. ' '
                                if text:match('^radius') then
                                    sendTelegramNotification('Игроки в радиусе:')
                                    sendigrokradiusTg()
                                elseif text:match('^status') then
                                    sendStatusTg()
                                elseif text:match('^screen') then
                                    sendScreenTg()
                                elseif text:match('^stats') then
                                    sampSendChat('/stats')
                                elseif text:match('^addvip') then
                                    local _, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
                                    sampSendChat('/wbook '..myid)
                                    sampSendDialogResponse(25228, 1)
                                    if text:find('Всего времени отыграно во фракции: %d часов') then
                                        local addshka = text:match('Всего времени отыграно во фракции: %d часов')
                                        sendTelegramNotification(addshka)
                                    end
                                else
                                    sendTelegramNotification('Неизвестная команда.')
                                end
                            end
                        end
                    end
                end
            end
        end
    end
end
 
Последнее редактирование:
Решение
Lua:
local hookAddVipTime = false

-- тут твоя обработка сообщений из телеги:
...
elseif text:match('^addvip') then
    hookAddVipTime = true
    sampSendChat('/wbook '..select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))
else
...

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    local text = text:gsub('{......}', '')
    if hookAddVipTime and text:find('Всего времени отыграно во фракции: (%d+) часов') then
        print('chasov:', text:match('Всего времени отыграно во фракции: (%d+) часов'))
        -- замени принт на отправку в тг
        hookAddVipTime = false
    end
end

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,778
11,222
Lua:
local hookAddVipTime = false

-- тут твоя обработка сообщений из телеги:
...
elseif text:match('^addvip') then
    hookAddVipTime = true
    sampSendChat('/wbook '..select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))
else
...

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    local text = text:gsub('{......}', '')
    if hookAddVipTime and text:find('Всего времени отыграно во фракции: (%d+) часов') then
        print('chasov:', text:match('Всего времени отыграно во фракции: (%d+) часов'))
        -- замени принт на отправку в тг
        hookAddVipTime = false
    end
end
 

sadasdasdasdasdasd

Участник
Автор темы
81
16
Lua:
local hookAddVipTime = false

-- тут твоя обработка сообщений из телеги:
...
elseif text:match('^addvip') then
    hookAddVipTime = true
    sampSendChat('/wbook '..select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))
else
...

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    local text = text:gsub('{......}', '')
    if hookAddVipTime and text:find('Всего времени отыграно во фракции: (%d+) часов') then
        print('chasov:', text:match('Всего времени отыграно во фракции: (%d+) часов'))
        -- замени принт на отправку в тг
        hookAddVipTime = false
    end
end
выводит только слово chasov:
1681547142025.png