SA:MP Arizona Нужен скрипт-таймер

SozdatIma227228338

Известный
Автор темы
60
2
Привет. Я ищу скрипт - цикличный таймер, который будет включаться от надписи "автоматически надел бронежилет", после включения не должен обнуляться при похожих надписях.
 

менталейшн

Активный
396
73
Вот пример циклического таймера на Lua для SAMP, который активируется при сообщении "автоматически надел бронежилет" и не сбрасывается при повторных подобных сообщениях:


Lua:
local armorTimer = nil
local armorCooldown = 60 * 1000 -- 60 секунд в миллисекундах
local armorEquipped = false

function main()
    while true do
        wait(0)
        
        -- Проверяем сообщения в чате
        for i = 1, 10 do
            local msg = getChatString(i)
            if msg and string.find(msg:lower(), "автоматически надел бронежилет") then
                if not armorEquipped then
                    startArmorTimer()
                    armorEquipped = true
                end
                break
            end
        end
        
        -- Проверяем, не сняли ли бронежилет
        if armorEquipped and not isPlayerHasArmor() then
            armorEquipped = false
            if armorTimer then
                lua_thread.kill(armorTimer)
                armorTimer = nil
            end
        end
    end
end

function startArmorTimer()
    if armorTimer then
        lua_thread.kill(armorTimer)
    end
    
    armorTimer = lua_thread.create(function()
        while true do
            wait(armorCooldown)
            if isPlayerHasArmor() then
                -- Здесь можно добавить действие, которое выполняется по таймеру
                -- Например, сообщение в чат или другое действие
                say("/armor")
            else
                armorEquipped = false
                break
            end
        end
        armorTimer = nil
    end)
end

-- Вспомогательные функции (нужно реализовать или использовать существующие в вашем скрипте)
function isPlayerHasArmor()
    -- Проверка, есть ли у игрока бронежилет
    -- Реализация зависит от вашего клиента SAMP
    return getPlayerArmor() > 0
end

-- Запуск основного цикла
main()