Не могу доделать автоловлю репорту

lom_20013

Известный
Автор темы
4
0
Версия MoonLoader
.026-beta
Никак не могу зделать так что бы при виде моего ответа на репорт, скрипт останавливался примерная строка [A] Ник_Администратора[182] » Ник_Репортера[207]:
Вот примерная робота, но он отключаеться после каждого репорта, даже если скрипт не успел словить репорт , было куча разных кодов и по ид диалога, никак не работает



require 'lib.moonloader'

local sampev = require 'lib.samp.events'
local vkeys = require 'vkeys'
local encoding = require 'encoding'

local active = true -- Флаг, указывающий, включен ли скрипт

function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
while true do
wait(0)
if isKeyJustPressed(0x06) and not isSampfuncsConsoleActive() and not sampIsChatInputActive() and not sampIsDialogActive() and not isPauseMenuActive() then
active = not active
printStyledString('PEбOPT: '..(active and '~g~ШA' or '~r~HET'), 5000, 6)
end
end
end
function sampev.onServerMessage(color, text)
if active and text:find('%[Репорт%] от (%w+_%w+)%[(%d+)%]:') then
sampSendChat('/ot')
active = false
return
end
end
 

Вложения

  • autorep01.2.lua
    896 байт · Просмотры: 3

lom_20013

Известный
Автор темы
4
0
active = false убери, и он не будет отключаться. А если тебе все же надо чтобы отключался, создаешь поток, в нем пауза ( Чтобы репорт успел взяться ) и затем отключение
Дело в том что он и должен отключаться но только тогда когда взял репорт, а скрипт выключаеться даже если неудачно взял репорт, на екране просто появляеться (Сейчас нет вопросов в репорт) и скрипт нужно заново включать

репорт:
require 'lib.moonloader'

local sampev = require 'lib.samp.events'
local vkeys = require 'vkeys'
local encoding = require 'encoding'

local active = true -- Флаг, указывающий, включен ли скрипт

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    while true do
        wait(0)
        if isKeyJustPressed(0x06) and not isSampfuncsConsoleActive() and not sampIsChatInputActive() and not sampIsDialogActive() and not isPauseMenuActive() then
            active = not active
            printStyledString('PEбOPT: '..(active and '~g~ШA' or '~r~HET'), 5000, 6)
        end
    end
end

function sampev.onServerMessage(color, text)
    if active and text:find('%[Репорт%] от (%w+_%w+)%[(%d+)%]:') then
        sampSendChat('/ot')
        active = false
        return
    end

    -- Проверка на конкретный текст перед отключением
    if text:find('%[Сейчас нет вопросов в репорт%]') then
        return
    end
end

Если вот включить проверку, что если на екране поивляеться надпись скрипт не отключался
 

riverya4life

Известный
383
167
На базе этого делай чё то
Lua:
script_author('chapo')
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.onDisplayGameText(style, time, text)
    if active and not sampIsCursorActive() and text:lower():find('report ++') then sampSendChat('/ot') end
end
 

lom_20013

Известный
Автор темы
4
0
На базе этого делай чё то
Lua:
script_author('chapo')
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.onDisplayGameText(style, time, text)
    if active and not sampIsCursorActive() and text:lower():find('report ++') then sampSendChat('/ot') end
end
Тут он просто на текст драв реагирует, а его уже давно нету
 

chromiusj

Стань той переменой, которую хочешь увидеть в мире
Модератор
5,744
4,053