поиск строки

Thomasya

Известный
Автор темы
68
2
Версия MoonLoader
.026-beta
Здравствуйте нужна ваша помощь,
Есть код нужна помощь с поиском ошибок и помощи в написании. Я занимаюсь этм относительно недавно.
У меня появилась идея ускорить работу администрации и написать скрипт который бы в момент появление репорта сразу же брал его и требовал на него ответа.
В коде допущено множество ошибок прошу помочь мне их исправить. Суть я уже объяснил. Вот фрагмент который долно анализировать
23.41.31.109.jpg

Ник ид и текст репорта а также количество жалоб всегда разное. Особая просьба что бы репорт не сбивался сделать так что бы пока одно диалоговое окно открыто другое не открывалось.
Lua:
script_name("Report helper")

require "lib.moonloader"

local vkeys = require 'vkeys'



function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(100) end

    while true do
    wait(0)

    end
end


function sampev.onServerMessage(color, msg)
    if msg:find('[Жалоба] от% (%w+.%w+)%[(%d+)%]% выпустил игрока% (%w+.%w+)%[(%d+)%]%Уже %жалоб!!!') then
        local _, id, _, time = msg:match('[Жалоба] от% (%w+.%w+)%[(%d+)%]% выпустил игрока% (%w+.%w+)%[(%d+)%]%Уже (%d+) %жалоб!!!')
        wait(0)
        if not sampIsChatInputActive() then
            sampSendChat ("/ot")
    end
end
 

neverlane

t.me/neverlane00
Друг
997
1,132
[Жалоба] от Artem_Dimasaw[286]:{F8EBCD} что даёт +1. Уже 1{F8EBCD} жалоб!!!
Прошу прощение пришлось сменить лаунчер.
попробуй так, если курсор сампа не будет активен и придет репорт тогда должно прописать /ot
активация / деактивация /autoreport
Lua:
local act = false
local sampev =  require("samp.events")

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('autoreport',function()
        act = not act
        printString('Admin Auto Report - '..(act and 'endable' or 'disable'),3000)
    end)
    wait(-1)
end

function sampev.onServerMessage(color,text)
    if act and text:match('^%[Жалоба%] от (.+)[(%d+)]%:%{F8EBCD%} (.+)%. Уже (%d+)%{F8EBCD%} жалоб!!!') then
        local r_nick,r_id,r_text,r_counts = text:match('^%[Жалоба%] от (.+)[(%d+)]%:%{F8EBCD%} (.+)%. Уже (%d+)%{F8EBCD%} жалоб!!!')
        if not sampIsCursorActive() then
            sampSendChat('/ot')
        end
    end
end
 

Thomasya

Известный
Автор темы
68
2
попробуй так, если курсор сампа не будет активен и придет репорт тогда должно прописать /ot
активация / деактивация /autoreport
Lua:
local act = false
local sampev =  require("samp.events")

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('autoreport',function()
        act = not act
        printString('Admin Auto Report - '..(act and 'endable' or 'disable'),3000)
    end)
    wait(-1)
end

function sampev.onServerMessage(color,text)
    if act and text:match('^%[Жалоба%] от (.+)[(%d+)]%:%{F8EBCD%} (.+)%. Уже (%d+)%{F8EBCD%} жалоб!!!') then
        local r_nick,r_id,r_text,r_counts = text:match('^%[Жалоба%] от (.+)[(%d+)]%:%{F8EBCD%} (.+)%. Уже (%d+)%{F8EBCD%} жалоб!!!')
        if not sampIsCursorActive() then
            sampSendChat('/ot')
        end
    end
end
Можно как то сделать 0 задержку что бы он сразу принимал? Либо как флудером но только когда курсора нет. Я запустил скрипт, игра его нашла, но даже при доступном репорте его все равно не берет. [Жалоба] от Artem_Dimasaw[286]:{F8EBCD} что даёт +1. Уже 1{F8EBCD} жалоб!!!
Текст который выделен красным серверный, Ник, ( что дает +1 ) - Это суть репорта она всегда разная
 
Последнее редактирование:

neverlane

t.me/neverlane00
Друг
997
1,132
Можно как то сделать 0 задержку что бы он сразу принимал? Либо как флудером но только когда курсора нет. Я запустил скрипт, игра его нашла, но даже при доступном репорте его все равно не берет. [Жалоба] от Artem_Dimasaw[286]:{F8EBCD} что даёт +1. Уже 1{F8EBCD} жалоб!!!
Текст который выделен красным серверный, Ник, ( что дает +1 ) - Это суть репорта она всегда разная
он и будет сразу принимать, если нет курсора и скрипт активирован через команду /autoreport
попробуй этот код
Lua:
local act = false
local sampev =  require("samp.events")

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('autoreport',function()
        act = not act
        printString('Admin Auto Report - '..(act and 'endable' or 'disable'),3000)
    end)
    wait(-1)
end

function sampev.onServerMessage(color,text)
    if act and text:match('^%[Жалоба%] от (.+)%[(%d+)%]%:%{F8EBCD%} (.+)%. Уже (%d+)%{F8EBCD%} жалоб!!!') then
        local r_nick,r_id,r_text,r_counts = text:match('^%[Жалоба%] от (.+)%[(%d+)%]%:%{F8EBCD%} (.+)%. Уже (%d+)%{F8EBCD%} жалоб!!!')
        if not sampIsCursorActive() then
            sampSendChat('/ot')
        end
    end
end
 

Thomasya

Известный
Автор темы
68
2
он и будет сразу принимать, если нет курсора и скрипт активирован через команду /autoreport
попробуй этот код
Lua:
local act = false
local sampev =  require("samp.events")

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('autoreport',function()
        act = not act
        printString('Admin Auto Report - '..(act and 'endable' or 'disable'),3000)
    end)
    wait(-1)
end

function sampev.onServerMessage(color,text)
    if act and text:match('^%[Жалоба%] от (.+)%[(%d+)%]%:%{F8EBCD%} (.+)%. Уже (%d+)%{F8EBCD%} жалоб!!!') then
        local r_nick,r_id,r_text,r_counts = text:match('^%[Жалоба%] от (.+)%[(%d+)%]%:%{F8EBCD%} (.+)%. Уже (%d+)%{F8EBCD%} жалоб!!!')
        if not sampIsCursorActive() then
            sampSendChat('/ot')
        end
    end
end
Скрипт не отправляет в чат команду /ot ибо в чате появлялись варнинги о том что репорта нет.
 

neverlane

t.me/neverlane00
Друг
997
1,132
Скрипт не отправляет в чат команду /ot ибо в чате появлялись варнинги о том что репорта нет.
То есть, репорт приходит, скрипт отправляет команду /ot и в чате пишет что нет репорта?
мб другой админ с похожим скриптом его взял
 

Thomasya

Известный
Автор темы
68
2
То есть, репорт приходит, скрипт отправляет команду /ot и в чате пишет что нет репорта?
мб другой админ с похожим скриптом его взял
Вообще ничего не пишет, если бы его взяли написало бы "Сейчас нет вопросов в репорт!"
 

neverlane

t.me/neverlane00
Друг
997
1,132
Вообще ничего не пишет, если бы его взяли написало бы "Сейчас нет вопросов в репорт!"
а ты активировал через /autoreport?
я тестилоровал все работает(не в чате конечно но по строке т.к у меня нет админки)
QtrXeB6.png
 

Thomasya

Известный
Автор темы
68
2

Thomasya

Известный
Автор темы
68
2
Прошу помочь, ибо ничего не получилось
Lua:
local act = false
local sampev =  require("samp.events")

function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('autoreport',function()
        act = not act
        printString('Admin Auto Report - '..(act and 'endable' or 'disable'),3000)
    end)
    wait(-1)
end

function sampev.onServerMessage(color,text)

    if act and text:match('^%[Жалоба%] от (.+)%[(%d+)%]%:%{FFFFFF%} (.+)%. Уже (%d+) жалоб!!!') then
        local r_nick,r_id,r_text,r_counts = text:match('^%[Жалоба%] от (.+)%[(%d+)%]%:%{FFFFFF%} (.+)%. Уже (%d+) жалоб!!!')
        if not sampIsCursorActive() then
            sampSendChat('/ot')
        end
    end
end
Скрипт не распознает репорт, возможно проблемы с поиском текста. Прошу помочь