Проверка на то когда игра на паузе/afk

Fasmin

Известный
Автор темы
212
12
Версия MoonLoader
.026-beta
Бывает такое, что задано какое то условие в коде и когда альт табаешься или афк встаешь, а когда выходишь скрипт флудит тем, что должно произойти, например когда хукаешь сообщение какое то и потом выходишь с афк и этих сообщений было много, то потом всё это вылетает за раз. Надеюсь понятно обьяснил
Как это фиксануть? Что если игра на паузе, то скрипт не будет реагировать? Функция isgamepause работает как то криво, то есть вообще не работает буд то
 

Fasmin

Известный
Автор темы
212
12
Не работает, использовал так - script_properties("forced-reloading-only") в начале скрипта
Скрипт так же отправляет все после того как я выхожу с афк
 

Fasmin

Известный
Автор темы
212
12
Игра в любом случае останавливается когда ты аль табаешься, у тебя скорее всего анти афк работает
Антиафк у меня нету. Скрипт то он останавливается когда я сворачиваю игру, но проблема в другом, ща покажу
Lua:
require("lib.moonloader")
local sampev = require("lib.samp.events")

function main()
    repeat wait(0) until isSampAvailable()
    wait(-1)
end

function sampev.onServerMessage(color, text)
    local str = string.match(".+%[(%d+)%]") -- получаем айди игрока из сообщения
    if str ~= nil then
        sampAddChatMessage(str, -1)
    end
end

Когда я сворачиваю игру и стою афк, в этот момент скрипт перехватывает айди игрока который написал в чат и только после того как я выйду с афк, скрипт мне отправляет этот айди, а мне нужно, чтобы скрипт после того как я выхожу с афк игнорировал как то это

Игра в любом случае останавливается когда ты аль табаешься, у тебя скорее всего анти афк работает

Код:
if not isGameReallyPaused() then
    sampAddChatMessage('Игра не на паузе', -1)
end
это кстати тоже не работает
 

Lokapon

Участник
48
14
Код:
require("lib.moonloader")
local sampev = require("lib.samp.events")

function main()
    repeat wait(0) until isSampAvailable()
    wait(-1)
end

function isGameReallyPaused()
    return representIntAsFloat(readMemory(0xBA67A4, 4, false)) == 1
end

function sampev.onServerMessage(color, text)
    if not isGameReallyPaused() then
        local str = string.match(".+%[(%d+)%]") -- получаем айди игрока из сообщения
        if str ~= nil then
            sampAddChatMessage(str, -1)
        end
    end
end

Так попоробуй
 

Fasmin

Известный
Автор темы
212
12
Код:
require("lib.moonloader")
local sampev = require("lib.samp.events")

function main()
    repeat wait(0) until isSampAvailable()
    wait(-1)
end

function isGameReallyPaused()
    return representIntAsFloat(readMemory(0xBA67A4, 4, false)) == 1
end

function sampev.onServerMessage(color, text)
    if not isGameReallyPaused() then
        local str = string.match(".+%[(%d+)%]") -- получаем айди игрока из сообщения
        if str ~= nil then
            sampAddChatMessage(str, -1)
        end
    end
end

Так попоробуй
Всё так же, не работает
 

SR_team

like pancake
BH Team
4,952
6,703
У тебя все работает правильно - просто SAMP пакеты разгребает после выхода из AFK - т.е. для скрипта они все не в AFK пришли. Можешь либо как-то фильтровать старые пакеты, либо поставить AntiAFK и чекать активно ли игровое меню и окно игры
 

Fasmin

Известный
Автор темы
212
12
У тебя все работает правильно - просто SAMP пакеты разгребает после выхода из AFK - т.е. для скрипта они все не в AFK пришли. Можешь либо как-то фильтровать старые пакеты, либо поставить AntiAFK и чекать активно ли игровое меню и окно игры
Есть рабочий антиафк? перепробовал ни один не работает