Задержка функции (суть в теме)

Anarch

Активный
Автор темы
343
75
Lua:
local hook = require "samp.events"

function hook.onServerMessage(col, msg)
    if msg:find("%[Уведомление%] AutoPromo") then
        lua_thread.create(function() -- Если нужна задержжка - закоменти
        wait(4000)
            local code = msg:match("%[Уведомление%] AutoPromo %-%> (.+) %(")
            sampSendChat(code)
        end)
    end
end

Как сделать задержку отправки кода (sampSendChat(code))
Не используя внутри кода wait(4000) типо /zadershka 5000 /zadershka 3000 (именно по команде в сампе регулировать задержку отправление)
 
Решение
Lua:
local hook = require 'lib.samp.events'
local delay = 4000

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('setdelay', function(arg)
        if tonumber(arg) then
            delay = tonumber(arg)
            sampAddChatMessage('Задержка изменена на '..delay..' мс. ('..math.floor(delay / 1000)..' сек.)', -1)
        else
            sampAddChatMessage('Долбаеб, введи число', -1)
        end
    end)
    wait(-1)
end

function hook.onServerMessage(col, msg)
    if msg:find("%[Уведомление%] AutoPromo") then
        lua_thread.create(function()
            wait(delay)
            local code = msg:match("%[Уведомление%] AutoPromo %-%> (.+) %(")
            sampSendChat(code)
        end)
    end...

Sidney31

Известный
1,132
385
Lua:
local hook = require "samp.events"

function hook.onServerMessage(col, msg)
    if msg:find("%[Уведомление%] AutoPromo") then
        lua_thread.create(function() -- Если нужна задержжка - закоменти
        wait(4000)
            local code = msg:match("%[Уведомление%] AutoPromo %-%> (.+) %(")
            sampSendChat(code)
        end)
    end
end

Как сделать задержку отправки кода (sampSendChat(code))
Не используя внутри кода wait(4000) типо /zadershka 5000 /zadershka 3000 (именно по команде в сампе регулировать задержку отправление)
Если всё правильно понимаю -

Lua:
local hook = require "samp.events"

local ms = 0

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('delay',function(arg)
        ms = arg
    end)
    while true do
        wait(0)
        --code
    end
end

function hook.onServerMessage(col, msg)
    if msg:find("%[Уведомление%] AutoPromo") then
        lua_thread.create(function() -- Если нужна задержжка - закоменти
        wait(ms)
            local code = msg:match("%[Уведомление%] AutoPromo %-%> (.+) %(")
            sampSendChat(code)
        end)
    end
end
Для установки задержки пишешь /delay <миллисекунды>, эти миллисекунды записываются в переменную, а потом уже в хуке идёт wait(), в котором в качестве аргумента указана переменная, которая хранит миллисекунды, указанные ранее.
 

Anarch

Активный
Автор темы
343
75
Если всё правильно понимаю -

Lua:
local hook = require "samp.events"

local ms = 0

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('delay',function(arg)
        ms = arg
    end)
    while true do
        wait(0)
        --code
    end
end

function hook.onServerMessage(col, msg)
    if msg:find("%[Уведомление%] AutoPromo") then
        lua_thread.create(function() -- Если нужна задержжка - закоменти
        wait(ms)
            local code = msg:match("%[Уведомление%] AutoPromo %-%> (.+) %(")
            sampSendChat(code)
        end)
    end
end
Для установки задержки пишешь /delay <миллисекунды>, эти миллисекунды записываются в переменную, а потом уже в хуке идёт wait(), в котором в качестве аргумента указана переменная, которая хранит миллисекунды, указанные ранее.
Щас протестирую и скажу
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,767
11,220
Lua:
local hook = require 'lib.samp.events'
local delay = 4000

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('setdelay', function(arg)
        if tonumber(arg) then
            delay = tonumber(arg)
            sampAddChatMessage('Задержка изменена на '..delay..' мс. ('..math.floor(delay / 1000)..' сек.)', -1)
        else
            sampAddChatMessage('Долбаеб, введи число', -1)
        end
    end)
    wait(-1)
end

function hook.onServerMessage(col, msg)
    if msg:find("%[Уведомление%] AutoPromo") then
        lua_thread.create(function()
            wait(delay)
            local code = msg:match("%[Уведомление%] AutoPromo %-%> (.+) %(")
            sampSendChat(code)
        end)
    end
end
 
  • Нравится
Реакции: Otvertka1337 и Sidney31

Anarch

Активный
Автор темы
343
75
Щас протестирую и скажу
1653670286273.png

Работает спасибо. Щас посмотрю что там у чапо
 

Anarch

Активный
Автор темы
343
75
можешь не тестировать, оно не будет работать потому что там задержка это arg, a arg это string

Lua:
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('APS', function()
        active = not active
        sampAddChatMessage('[Autopromo] ' .. (active and 'включен' or 'выключен'), -1)
    end)
    wait(-1)
end
    sampRegisterChatCommand('setdelay', function(arg)
        if tonumber(arg) then
            delay = tonumber(arg)
            sampAddChatMessage('Задержка изменена на '..delay..' мс. ('..math.floor(delay / 1000)..' сек.)', -1)
        else
            sampAddChatMessage('Долбаеб, введи число', -1)
        end
    end)
    wait(-1)
end

Пытаюсь сделать активацию по комманде но что-то не работает.
 

Sidney31

Известный
1,132
385
Lua:
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('APS', function()
        active = not active
        sampAddChatMessage('[Autopromo] ' .. (active and 'включен' or 'выключен'), -1)
    end)
    wait(-1)
end
    sampRegisterChatCommand('setdelay', function(arg)
        if tonumber(arg) then
            delay = tonumber(arg)
            sampAddChatMessage('Задержка изменена на '..delay..' мс. ('..math.floor(delay / 1000)..' сек.)', -1)
        else
            sampAddChatMessage('Долбаеб, введи число', -1)
        end
    end)
    wait(-1)
end

Пытаюсь сделать активацию по комманде но что-то не работает.
Код:
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('APS', function()
        active = not active
        sampAddChatMessage('[Autopromo] ' .. (active and 'включен' or 'выключен'), -1)
    end)
    sampRegisterChatCommand('setdelay', function(arg)
        if tonumber(arg) then
            delay = tonumber(arg)
            sampAddChatMessage('Задержка изменена на '..delay..' мс. ('..math.floor(delay / 1000)..' сек.)', -1)
        else
            sampAddChatMessage('Долбаеб, введи число', -1)
        end
    end)
    wait(-1)
end