помогите с ловлей репорта

mydogtimur

Новичок
Автор темы
8
3
Форматирование кода
есть такой луа на ловлю репорта, какие нюансы: ловит не все репорты, из чата пропадают [Репорт] которое красным, а вместо этого вопрос оранжевым, ловит репорты даже после того как словил ну и впринципе все
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

function sampev.onSendCommand(cmd)
if cmd:lower():find('/autorep') then
active = not active
sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
return false
end
end

function sampev.onServerMessage(color, text)
if text:lower():find('[Репорт]') and active then
sampSendChat('/ot')
end
end

что высвечивается в чате когда без скрипта
1682359687400.png


со скриптом
1682359705397.png


вот столько не поймало репорта
1682359763689.png
 
Решение
Lua:
require "lib.moonloader"
local sampev = require "lib.samp.events"

local active = false

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("autorep", function()
        active = not active
        sampAddChatMessage("Автоматическая ловля репорта: {FF004D}"..(active and "включена" or "выключена"), -1)
    end)
    wait(-1)
end

function sampev.onServerMessage(color, text)
    if active and not sampIsDialogActive() then
        if text:find("^%[Репорт%]") or text:find("^Вопрос%:") then
            lua_thread.create(function() wait(50)
                sampSendChat("/ot")
            end)
        end
    end
end

xionerme

Потрачен
753
260
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
смсчмсч:
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

function sampev.onSendCommand(cmd)
    if cmd:find('/autorep') then
        active = not active
        sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
    end
end

function sampev.onServerMessage(color, text)
    if text:find('[Репорт]') or text:find('[Вопрос]') and active then
        sampSendChat('/ot')
    end
end

вот так попробуй
 

mydogtimur

Новичок
Автор темы
8
3
Оно флудится без активации командой
смсчмсч:
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

function sampev.onSendCommand(cmd)
    if cmd:find('/autorep') then
        active = not active
        sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
    end
end

function sampev.onServerMessage(color, text)
    if text:find('[Репорт]') or text:find('[Вопрос]') and active then
        sampSendChat('/ot')
    end
end

вот так попробуй

И опять же ловит не все и вопрос опять в чате
1682360248179.png
 

xionerme

Потрачен
753
260
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
123:
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

function sampev.onSendCommand(cmd)
    if cmd:find('/autorep') then
        active = not active
        sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
    end
end

function sampev.onServerMessage(color, text)
    if text:find('[Репорт]') or text:find('Вопрос:') and active then
        sampSendChat('/ot')
    end
end

перепутал там чуток, теперь все должно быть гуд
 

mydogtimur

Новичок
Автор темы
8
3
Просто пишется постоянно /ot /ot /ot и когда словил репорт один, сразу ловит второй не давая ответить

123:
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

function sampev.onSendCommand(cmd)
    if cmd:find('/autorep') then
        active = not active
        sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
    end
end

function sampev.onServerMessage(color, text)
    if text:find('[Репорт]') or text:find('Вопрос:') and active then
        sampSendChat('/ot')
    end
end

перепутал там чуток, теперь все должно быть гуд
Щас попробую
 

xionerme

Потрачен
753
260
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Просто пишется постоянно /ot /ot /ot и когда словил репорт один, сразу ловит второй не давая ответить


Щас попробую
а понял, сейчас все сделаю

123:
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

local report = false

function sampev.onSendCommand(cmd)
    if cmd:find('/autorep') then
        active = not active
        sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
    elseif cmd:find('/next') and then
        sampAddChatMessage('Вы продолжили ловлю репортов!, -1)
        active = true
    end
end

function sampev.onServerMessage(color, text)
    if text:find('[Репорт]') or text:find('Вопрос:') and active and not report then
        sampSendChat('/ot')
        report = true
    end
end

function sampev.onShowDialog(id, style, title, button1, button2, text)
    if active and report then
        sampAddChatMessage('Вы словили репорт! После помощи игроку, напишите /next для продолжения ловли репорта., -1)
        active = false
        report = false
    end
end

можно было и по умнее сделать, но мне пофиг
 
Последнее редактирование:

mydogtimur

Новичок
Автор темы
8
3
а понял, сейчас все сделаю
Также просто флудит /ot и появляется вопрос оранжевым

флудит /ot без активации скрипта

1682360788771.png


Если тяжковато переписать скрипт этот, можешь попробовать сделать сам))) , вот скрин что вылазит в чате когда приходит репорт
MX5QAk1fFdI.jpg
 

xionerme

Потрачен
753
260
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Также просто флудит /ot и появляется вопрос оранжевым

флудит /ot без активации скрипта

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

Если тяжковато переписать скрипт этот, можешь попробовать сделать сам))) , вот скрин что вылазит в чате когда приходит репорт
MX5QAk1fFdI.jpg
скинь строчки из чат-лога тогда
 

xionerme

Потрачен
753
260
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
чтобы ты переписал? или чтобы посмотреть в каком случае пишется вопрос?
ds:
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

local report = false

function sampev.onSendCommand(cmd)
    if cmd:find('/autorep') then
        active = not active
        sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
    elseif cmd:find('/next') and then
        sampAddChatMessage('Вы продолжили ловлю репортов!, -1)
        active = true
    end
end

function sampev.onServerMessage(color, text)
    if text:find('[Репорт]') or text:find('Вопрос:') and active and not report then
        sampSendChat('/ot')
        report = true
    end
end

function sampev.onShowDialog(id, style, title, button1, button2, text)
    if active and report then
        sampAddChatMessage('Вы словили репорт! После помощи игроку, напишите /next для продолжения ловли репорта., -1)
        active = false
        report = false
    end
end

попробуй сейчас этот, если все также, то скинь строчки из чат лога с тем тектом где "Вопрос:" и "Репорт"
 

mydogtimur

Новичок
Автор темы
8
3
ds:
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

local report = false

function sampev.onSendCommand(cmd)
    if cmd:find('/autorep') then
        active = not active
        sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
    elseif cmd:find('/next') and then
        sampAddChatMessage('Вы продолжили ловлю репортов!, -1)
        active = true
    end
end

function sampev.onServerMessage(color, text)
    if text:find('[Репорт]') or text:find('Вопрос:') and active and not report then
        sampSendChat('/ot')
        report = true
    end
end

function sampev.onShowDialog(id, style, title, button1, button2, text)
    if active and report then
        sampAddChatMessage('Вы словили репорт! После помощи игроку, напишите /next для продолжения ловли репорта., -1)
        active = false
        report = false
    end
end

попробуй сейчас этот, если все также, то скинь строчки из чат лога с тем тектом где "Вопрос:" и "Репорт"
нет такой команды

попробовал в 11 строке добавить пробел между else и if так тоже не робит
 

Lance_Sterling

Известный
801
281
ds:
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

local report = false

function sampev.onSendCommand(cmd)
    if cmd:find('/autorep') then
        active = not active
        sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
    elseif cmd:find('/next') and then
        sampAddChatMessage('Вы продолжили ловлю репортов!, -1)
        active = true
    end
end

function sampev.onServerMessage(color, text)
    if text:find('[Репорт]') or text:find('Вопрос:') and active and not report then
        sampSendChat('/ot')
        report = true
    end
end

function sampev.onShowDialog(id, style, title, button1, button2, text)
    if active and report then
        sampAddChatMessage('Вы словили репорт! После помощи игроку, напишите /next для продолжения ловли репорта., -1)
        active = false
        report = false
    end
end

попробуй сейчас этот, если все также, то скинь строчки из чат лога с тем тектом где "Вопрос:" и "Репорт"
[] надо экранировать
Lua:
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

local report = false

function sampev.onSendCommand(cmd)
    if cmd:find('/autorep') then
        active = not active
        sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
    elseif cmd:find('/next') and then
        sampAddChatMessage('Вы продолжили ловлю репортов!, -1)
        active = true
    end
end

function sampev.onServerMessage(color, text)
    if text:find('%[Репорт%]') or text:find('Вопрос:') and active and not report then
        sampSendChat('/ot')
        report = true
    end
end

function sampev.onShowDialog(id, style, title, button1, button2, text)
    if active and report then
        sampAddChatMessage('Вы словили репорт! После помощи игроку, напишите /next для продолжения ловли репорта., -1)
        active = false
        report = false
    end
end
если честно код не очень, но мне лень разбираться в этом всем
 

Dmitriy Makarov

25.05.2021
Проверенный
2,478
1,113
Lua:
require "lib.moonloader"
local sampev = require "lib.samp.events"

local active = false

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("autorep", function()
        active = not active
        sampAddChatMessage("Автоматическая ловля репорта: {FF004D}"..(active and "включена" or "выключена"), -1)
    end)
    wait(-1)
end

function sampev.onServerMessage(color, text)
    if active and not sampIsDialogActive() then
        if text:find("^%[Репорт%]") or text:find("^Вопрос%:") then
            lua_thread.create(function() wait(50)
                sampSendChat("/ot")
            end)
        end
    end
end
 

mydogtimur

Новичок
Автор темы
8
3
[] надо экранировать
Lua:
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

local report = false

function sampev.onSendCommand(cmd)
    if cmd:find('/autorep') then
        active = not active
        sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
    elseif cmd:find('/next') and then
        sampAddChatMessage('Вы продолжили ловлю репортов!, -1)
        active = true
    end
end

function sampev.onServerMessage(color, text)
    if text:find('%[Репорт%]') or text:find('Вопрос:') and active and not report then
        sampSendChat('/ot')
        report = true
    end
end

function sampev.onShowDialog(id, style, title, button1, button2, text)
    if active and report then
        sampAddChatMessage('Вы словили репорт! После помощи игроку, напишите /next для продолжения ловли репорта., -1)
        active = false
        report = false
    end
end
если честно код не очень, но мне лень разбираться в этом всем
нет такой команды

Lua:
require "lib.moonloader"
local sampev = require "lib.samp.events"

local active = false

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("autorep", function()
        active = not active
        sampAddChatMessage("Автоматическая ловля репорта: {FF004D}"..(active and "включена" or "выключена"), -1)
    end)
    wait(-1)
end

function sampev.onServerMessage(color, text)
    if active and not sampIsDialogActive() then
        if text:find("^%[Репорт%]") or text:find("^Вопрос%:") then
            lua_thread.create(function() wait(50)
                sampSendChat("/ot")
            end)
        end
    end
end
Теперь нет вопроса в чате и после репорта сразу кидается /ot,но к сожалению админы скорее всего флудят командой /ot и не получается словить репорта

[] надо экранировать
Lua:
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

local report = false

function sampev.onSendCommand(cmd)
    if cmd:find('/autorep') then
        active = not active
        sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
    elseif cmd:find('/next') and then
        sampAddChatMessage('Вы продолжили ловлю репортов!, -1)
        active = true
    end
end

function sampev.onServerMessage(color, text)
    if text:find('%[Репорт%]') or text:find('Вопрос:') and active and not report then
        sampSendChat('/ot')
        report = true
    end
end

function sampev.onShowDialog(id, style, title, button1, button2, text)
    if active and report then
        sampAddChatMessage('Вы словили репорт! После помощи игроку, напишите /next для продолжения ловли репорта., -1)
        active = false
        report = false
    end
end
если честно код не очень, но мне лень разбираться в этом всем
Спасибо за старания

ds:
script_author('legenda')
local sampev = require 'lib.samp.events'
local active = false

local report = false

function sampev.onSendCommand(cmd)
    if cmd:find('/autorep') then
        active = not active
        sampAddChatMessage('Автоматическая ловля репорта: {ff004d}'..(active and 'включена' or 'выключена'), -1)
    elseif cmd:find('/next') and then
        sampAddChatMessage('Вы продолжили ловлю репортов!, -1)
        active = true
    end
end

function sampev.onServerMessage(color, text)
    if text:find('[Репорт]') or text:find('Вопрос:') and active and not report then
        sampSendChat('/ot')
        report = true
    end
end

function sampev.onShowDialog(id, style, title, button1, button2, text)
    if active and report then
        sampAddChatMessage('Вы словили репорт! После помощи игроку, напишите /next для продолжения ловли репорта., -1)
        active = false
        report = false
    end
end

попробуй сейчас этот, если все также, то скинь строчки из чат лога с тем тектом где "Вопрос:" и "Репорт"
Спасибо за старания

Lua:
require "lib.moonloader"
local sampev = require "lib.samp.events"

local active = false

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("autorep", function()
        active = not active
        sampAddChatMessage("Автоматическая ловля репорта: {FF004D}"..(active and "включена" or "выключена"), -1)
    end)
    wait(-1)
end

function sampev.onServerMessage(color, text)
    if active and not sampIsDialogActive() then
        if text:find("^%[Репорт%]") or text:find("^Вопрос%:") then
            lua_thread.create(function() wait(50)
                sampSendChat("/ot")
            end)
        end
    end
end
Поигрался с wait теперь начинает ловить, спасибо огромное
 
  • Нравится
Реакции: xionerme

Lance_Sterling

Известный
801
281
Lua:
require "lib.moonloader"
local sampev = require "lib.samp.events"

local active = false

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("autorep", function()
        active = not active
        sampAddChatMessage("Автоматическая ловля репорта: {FF004D}"..(active and "включена" or "выключена"), -1)
    end)
    wait(-1)
end

function sampev.onServerMessage(color, text)
    if active and not sampIsDialogActive() then
        if text:find("^%[Репорт%]") or text:find("^Вопрос%:") then
            lua_thread.create(function() wait(50)
                sampSendChat("/ot")
            end)
        end
    end
end
: Не надо экранировать