помогите с кодом

- |2347| -

Активный
Автор темы
177
43
не могу понять что не так не приходит пустой paypad

Снимок экрана 2024-01-12 121300.png


а должно быть вот так

Снимок экрана 2024-01-12 121426.png



код:
zarplata = 0
depozpdtg = 0
zppdtg = 0
sumbank = 0
sumdepoz = 0
lvlpdtg = 0

function sampev.onServerMessage(color, text)
if text:find('Банковский чек') then
sendTelegramNotification('%E2%9D%97__________Банковский чек__________%E2%9D%97\n\nОрганизационная зарплата: '..zarplata..'\nДепозит в банке: '..depozpdtg..'\nСумма к выплате: '..zppdtg..'\nТекущая сумма в банке: '..sumbank..'\nТекущая сумма на депозите: '..sumdepoz..'\nВ данный момент у вас '..lvlpdtg)
end
if text:find("Организационная зарплата: $%d+.") then
    zarplata = tonumber(text:match("Организационная зарплата: %$([%d.,]+)"))
                
    end
    if text:find("Депозит в банке: $%d+.") then
    depozpdtg = tonumber(text:match("Депозит в банке: %$([%d.,]+)"))
                
    end
    if text:find("Сумма к выплате: %$%d+") then
        zppdtg = tonumber(text:match("Сумма к выплате: %$([%d.,]+)"))
                

    end
    if text:find("Текущая сумма в банке: $%d") then
        sumbank = tonumber(text:match("Текущая сумма в банке: %$([%d.,]+)"))
                    
    end
    if text:find("Текущая сумма на депозите: $%d") then
        sumdepoz = tonumber(text:match("Текущая сумма на депозите: %$([%d.,]+)"))
                    
    end
    if text:find("В данный момент у вас %d") then
        lvlpdtg = tonumber(text:match("В данный момент у вас (%d+)"))
                    end
 
Решение
Lua:
local payDay = {
    check = false,
    text = {},
    patterns = {
        'Организационная зарплата%: $(%d+)',
        'Депозит в банке%: $(%d+)',
        'Сумма к выплате%: $(%d+)',
        'Текущая сумма в банке%: $(%d+)',
        'Текущая сумма на депозите%: $(%d+)'
    }
}

function sampev.onServerMessage(color, text)
    if text:find('Банковский чек') then
        payDay.check = true
    end
    if payDay.check then
        for k, v in ipairs(payDay.patterns) do
            if text:find(v) then
                table.insert(payDay.text, text)
                if k == #payDay.patterns then
                    payDay.check = false
                    sendTelegram(table.concat(payDay.text, '\n'))
                end
            end...

Andrinall

Известный
680
532
Ну а кто же ещё)

не могу понять что не так не приходит пустой paypad

Посмотреть вложение 228425

а должно быть вот так

Посмотреть вложение 228426


код:
zarplata = 0
depozpdtg = 0
zppdtg = 0
sumbank = 0
sumdepoz = 0
lvlpdtg = 0

function sampev.onServerMessage(color, text)
if text:find('Банковский чек') then
sendTelegramNotification('%E2%9D%97__________Банковский чек__________%E2%9D%97\n\nОрганизационная зарплата: '..zarplata..'\nДепозит в банке: '..depozpdtg..'\nСумма к выплате: '..zppdtg..'\nТекущая сумма в банке: '..sumbank..'\nТекущая сумма на депозите: '..sumdepoz..'\nВ данный момент у вас '..lvlpdtg)
end
if text:find("Организационная зарплата: $%d+.") then
    zarplata = tonumber(text:match("Организационная зарплата: %$([%d.,]+)"))
               
    end
    if text:find("Депозит в банке: $%d+.") then
    depozpdtg = tonumber(text:match("Депозит в банке: %$([%d.,]+)"))
               
    end
    if text:find("Сумма к выплате: %$%d+") then
        zppdtg = tonumber(text:match("Сумма к выплате: %$([%d.,]+)"))
               

    end
    if text:find("Текущая сумма в банке: $%d") then
        sumbank = tonumber(text:match("Текущая сумма в банке: %$([%d.,]+)"))
                   
    end
    if text:find("Текущая сумма на депозите: $%d") then
        sumdepoz = tonumber(text:match("Текущая сумма на депозите: %$([%d.,]+)"))
                   
    end
    if text:find("В данный момент у вас %d") then
        lvlpdtg = tonumber(text:match("В данный момент у вас (%d+)"))
                    end
На, пробуй.

upd: вытащил переменную из функи т.к. она перезаписывалась + убрал след от локальной функи которую убрал до публикации
протестировал на строках со скрина - работает
1705049805072.png

1705049823811.png

Lua:
local bank_check = false
local payday_notification_str = '%E2%9D%97__________Банковский чек__________%E2%9D%97\n'
local function collectAndSendPayDayData(text)
    local ptrs = {
        "Организационная зарплата: %$[%d%.]+",
        "Депозит в банке: %$[%d%.]+",
        "Сумма к выплате: %$[%d%.]+",
        "Текущая сумма в банке: %$[%d%.]+",
        "Текущая сумма на депозите: %$[%d%.]+"
    }

    local text = text:gsub("{%x+}", "")
    for _, v in ipairs(ptrs) do
        if text:find(v) then
            payday_notification_str = ("%s\n%s"):format(payday_notification_str, text)
        end
    end

    if text:find("В данный момент у вас %d") then
        payday_notification_str = ("%s\n%s"):format(payday_notification_str, text)
        if bank_check then
            sendTelegramNotification(("%s"):format(payday_notification_str)) -- copy string
            payday_notification_str = '%E2%9D%97__________Банковский чек__________%E2%9D%97\n'
        end
        bank_check = false
    end
end

function sampev.onServerMessage(color, text)
    if text:find('Банковский чек') then bank_check = true end
    if bank_check then collectAndSendPayDayData(text) end
end
 
Последнее редактирование:

фидарза

Известный
348
194
Lua:
local sampev = require('samp.events')
require('addon')
local zarplata, depozpdtg, zppdtg, sumbank, sumdepoz, lvlpdtg  = 0, 0, 0, 0, 0, 0
function sampev.onServerMessage(color, text)
    if text:find('Банковский чек') then
        newTask(function()
            wait(3500)
            sendTelegramNotification('PAYDAY!%0AОрганизационная зарплата: ' .. zarplata .. '%0AДепозит в банке: ' .. depozpdtg .. '%0AСумма к выплате: ' .. zppdtg .. '%0AТекущая сумма в банке: ' .. sumbank .. '%0AТекущая сумма на депозите: ' .. sumdepoz .. '%0AУровень: ' .. getBotScore())
        end)
    end
    if text:find('Организационная зарплата%: $(%d+)') then zarplata = text:match('Организационная зарплата%: $(%d+)')      
    elseif text:find('Депозит в банке%: $(%d+)') then depozpdtg = text:match('Депозит в банке%: $(%d+)')        
    elseif text:find('Сумма к выплате%: $(%d+)') then zppdtg = text:match('Сумма к выплате%: $(%d+)')
    elseif text:find('Текущая сумма в банке%: $(%d+)') then sumbank = text:match('Текущая сумма в банке%: $(%d+)')    
    elseif text:find('Текущая сумма на депозите%: $(%d+)') then sumdepoz = text:match('Текущая сумма на депозите%: $(%d+)') end
end
 
Последнее редактирование:
  • Bug
  • Эм
Реакции: chapo и Andrinall

Andrinall

Известный
680
532
Lua:
local sampev = require('samp.events')
require('addon')
local zarplata, depozpdtg, zppdtg, sumbank, sumdepoz, lvlpdtg  = 0, 0, 0, 0, 0, 0
function sampev.onServerMessage(color, text)
    if text:find('Банковский чек') then
        newTask(function()
            wait(3500)
            sendTelegramNotification('PAYDAY!%0AОрганизационная зарплата: ' .. zarplata .. '%0AДепозит в банке: ' .. depozpdtg .. '%0AСумма к выплате: ' .. zppdtg .. '%0AТекущая сумма в банке: ' .. sumbank .. '%0AТекущая сумма на депозите: ' .. sumdepoz .. '%0AУровень: ' .. getBotScore())
        end)
    end
    if text:find('Организационная зарплата%: $(%d+)') then zarplata = text:match('Организационная зарплата%: $(%d+)')     
    elseif text:find('Депозит в банке%: $(%d+)') then depozpdtg = text:match('Депозит в банке%: $(%d+)')       
    elseif text:find('Сумма к выплате%: $(%d+)') then zppdtg = text:match('Сумма к выплате%: $(%d+)')
    elseif text:find('Текущая сумма в банке%: $(%d+)') then sumbank = text:match('Текущая сумма в банке%: $(%d+)')   
    elseif text:find('Текущая сумма на депозите%: $(%d+)') then sumdepoz = text:match('Текущая сумма на депозите%: $(%d+)') end
end
И в чём смысл wait? Инет лагнёт на пару сек и всё)
 

- |2347| -

Активный
Автор темы
177
43
Lua:
local sampev = require('samp.events')
require('addon')
local zarplata, depozpdtg, zppdtg, sumbank, sumdepoz, lvlpdtg  = 0, 0, 0, 0, 0, 0
function sampev.onServerMessage(color, text)
    if text:find('Банковский чек') then
        newTask(function()
            wait(3500)
            sendTelegramNotification('PAYDAY!%0AОрганизационная зарплата: ' .. zarplata .. '%0AДепозит в банке: ' .. depozpdtg .. '%0AСумма к выплате: ' .. zppdtg .. '%0AТекущая сумма в банке: ' .. sumbank .. '%0AТекущая сумма на депозите: ' .. sumdepoz .. '%0AУровень: ' .. getBotScore())
        end)
    end
    if text:find('Организационная зарплата%: $(%d+)') then zarplata = text:match('Организационная зарплата%: $(%d+)')     
    elseif text:find('Депозит в банке%: $(%d+)') then depozpdtg = text:match('Депозит в банке%: $(%d+)')       
    elseif text:find('Сумма к выплате%: $(%d+)') then zppdtg = text:match('Сумма к выплате%: $(%d+)')
    elseif text:find('Текущая сумма в банке%: $(%d+)') then sumbank = text:match('Текущая сумма в банке%: $(%d+)')   
    elseif text:find('Текущая сумма на депозите%: $(%d+)') then sumdepoz = text:match('Текущая сумма на депозите%: $(%d+)') end
end
не работает всё равно приходит пустое сообщение
 

- |2347| -

Активный
Автор темы
177
43
Кодировку Windows-1251 поставь
Она и так стоит

код:
local zarplata, depozpdtg, zppdtg, sumbank, sumdepoz, lvlpdtg  = 0, 0, 0, 0, 0, 0

function sampev.onServerMessage(color, text)
if text:find('Банковский чек') then
            sendTelegramNotification('PAYDAY!%0AОрганизационная зарплата: ' .. zarplata .. '%0AДепозит в банке: ' .. depozpdtg .. '%0AСумма к выплате: ' .. zppdtg .. '%0AТекущая сумма в банке: ' .. sumbank .. '%0AТекущая сумма на депозите: ' .. sumdepoz)
        
    end
    if text:find('Организационная зарплата%: $(%d+)') then zarplata = text:match('Организационная зарплата%: $(%d+)')       
    elseif text:find('Депозит в банке%: $(%d+)') then depozpdtg = text:match('Депозит в банке%: $(%d+)')         
    elseif text:find('Сумма к выплате%: $(%d+)') then zppdtg = text:match('Сумма к выплате%: $(%d+)')
    elseif text:find('Текущая сумма в банке%: $(%d+)') then sumbank = text:match('Текущая сумма в банке%: $(%d+)')     
    elseif text:find('Текущая сумма на депозите%: $(%d+)') then sumdepoz = text:match('Текущая сумма на депозите%: $(%d+)')    end

    if text:find('{FFFFFF}Вы успешно арендовали лавку для продажи/покупки товара!') then
      sendTelegramNotification('Ебать молодец словил лавку')
       end
    if text:find('^%[Информация%] {FFFFFF}Ваша лавка была закрыта') then
            sendTelegramNotification('Вас выкинули с вашей лавки!')
        end
        if text:find('^.+ купил у вас .+, вы получили %$%d+ от продажи %(комиссия %d процент%(а%)%)') then
            local name, product, money = text:match('^(.+) купил у вас (.+), вы получили %$([%d.,]+) от продажи %(комиссия %d процент%(а%)%)')
            local reg_text = 'Вы продали: "'..product..'" за '..money..'$ Игроку: '..name..'.'
                sendTelegramNotification(reg_text)
            end
        if text:find('^Вы купили .+ у игрока .+ за %$%d+') then
            local product, name, money = text:match('^Вы купили (.+) у игрока (.+) за %$([%d.,]+)')
            local reg_text = 'Вы купили: "'..product..'" за '..money..'$ У игрока: '..name..'.'
                sendTelegramNotification(reg_text)
            end
            if text:find('{FFFFFF}У вас есть 3 минуты, чтобы настроить товар, иначе аренда ларька будет отменена.') then
            lavka = new.bool(false)       
            end
            if Chesttimer[0] then
            if text:find('1') then
            notification = true
            end
    end
end
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,777
11,224
Lua:
local payDay = {
    check = false,
    text = {},
    patterns = {
        'Организационная зарплата%: $(%d+)',
        'Депозит в банке%: $(%d+)',
        'Сумма к выплате%: $(%d+)',
        'Текущая сумма в банке%: $(%d+)',
        'Текущая сумма на депозите%: $(%d+)'
    }
}

function sampev.onServerMessage(color, text)
    if text:find('Банковский чек') then
        payDay.check = true
    end
    if payDay.check then
        for k, v in ipairs(payDay.patterns) do
            if text:find(v) then
                table.insert(payDay.text, text)
                if k == #payDay.patterns then
                    payDay.check = false
                    sendTelegram(table.concat(payDay.text, '\n'))
                end
            end
        end
    end
end
Только не забудь исправить регулярки
 
Последнее редактирование:
  • Нравится
Реакции: Andrinall

- |2347| -

Активный
Автор темы
177
43
Спасибо всё заработало
Lua:
local payDay = {
    check = false,
    text = {},
    patterns = {
        'Организационная зарплата%: $(%d+)',
        'Депозит в банке%: $(%d+)',
        'Сумма к выплате%: $(%d+)',
        'Текущая сумма в банке%: $(%d+)',
        'Текущая сумма на депозите%: $(%d+)'
    }
}

function sampev.onServerMessage(color, text)
    if text:find('Банковский чек') then
        payDay.check = true
    end
    if payDay.check then
        for k, v in ipairs(payDay.patterns) do
            if text:find(v) then
                table.insert(payDay.text, text)
                if k == #payDay.patterns then
                    payDay.check = false
                    sendTelegram(table.concat(payDay.text, '\n'))
                end
            end
        end
    end
end
Только не забудь исправить регулярки

Снимок экрана 2024-01-13 030105.png