Таймер

Miron Diamond

Известный
Автор темы
252
163
Версия MoonLoader
.026-beta
Подскажите функцию таймера. Мне её прост хотелось бы вписать в команду /timer [сек], после чего там например в чат выйдет сообщение.
 
Решение
Lua:
sampRegisterChatCommand('timer', function(sec)
    if tonumber(sec) then
        local sec = tonumber(sec)
        if sec > 0 then
            lua_thread.create(function()
                sampAddChatMessage('Таймер на '..sec..' секунд запущен!', -1)
                local start = os.clock()
                while os.clock() - start <= sec do wait(0) end
                sampAddChatMessage('Время вышло!', -1)
            end)
        end
    end
end)

Cosmo

Известный
Друг
646
2,591
Lua:
sampRegisterChatCommand('timer', function(sec)
    if tonumber(sec) then
        local sec = tonumber(sec)
        if sec > 0 then
            lua_thread.create(function()
                sampAddChatMessage('Таймер на '..sec..' секунд запущен!', -1)
                local start = os.clock()
                while os.clock() - start <= sec do wait(0) end
                sampAddChatMessage('Время вышло!', -1)
            end)
        end
    end
end)
 
  • Нравится
Реакции: Miron Diamond

Miron Diamond

Известный
Автор темы
252
163
Lua:
sampRegisterChatCommand('timer', function(sec)
    if tonumber(sec) then
        local sec = tonumber(sec)
        if sec > 0 then
            lua_thread.create(function()
                sampAddChatMessage('Таймер на '..sec..' секунд запущен!', -1)
                local start = os.clock()
                while os.clock() - start <= sec do wait(0) end
                sampAddChatMessage('Время вышло!', -1)
            end)
        end
    end
end)
Как можно вывести сколько осталось секунд до конца?
 

Miron Diamond

Известный
Автор темы
252
163
sampAddChatMessage(sec, -1)
через sampAddChatMessage скрипт попросту вырубает, попробовал через printString и выводит только количество секунд которые я установил, а не которые остались до конца
 

Fott

Простреленный
3,423
2,249
через sampAddChatMessage скрипт попросту вырубает, попробовал через printString и выводит только количество секунд которые я установил, а не которые остались до конца
Кого вырубает, где вырубает. Может код покажешь?
 

Miron Diamond

Известный
Автор темы
252
163
Кого вырубает, где вырубает. Может код покажешь?
Lua:
sampRegisterChatCommand('timer', function(sec)
    if tonumber(sec) then
        local sec = tonumber(sec)
        if sec > 0 then
            lua_thread.create(function()
                sampAddChatMessage('Таймер на '..sec..' секунд запущен!', -1)
                local start = os.clock()
                while os.clock() - start <= sec do wait(0) sampAddChatMessage(sec,-1) end
                sampAddChatMessage('Время вышло!', -1)
            end)
        end
    end
end)
 

Fott

Простреленный
3,423
2,249
Lua:
sampRegisterChatCommand('timer', function(sec)
    if tonumber(sec) then
        local sec = tonumber(sec)
        if sec > 0 then
            lua_thread.create(function()
                sampAddChatMessage('Таймер на '..sec..' секунд запущен!', -1)
                local start = os.clock()
                while os.clock() - start <= sec do wait(0) sampAddChatMessage(sec,-1) end
                sampAddChatMessage('Время вышло!', -1)
            end)
        end
    end
end)
И куда ты его вставил? Если ты хочешь чтобы постоянно выводило то вставь в бесконечный цикл
 

Cosmo

Известный
Друг
646
2,591
Lua:
sampRegisterChatCommand('timer', function(sec)
    if tonumber(sec) then
        local sec = tonumber(sec)
        if sec > 0 then
            lua_thread.create(function()
                sampAddChatMessage('Таймер на '..sec..' секунд запущен!', -1)
                local start = os.time()
                while os.time() - start < sec do
                    wait(1000)
                    sampAddChatMessage(sec - (os.time() - start), -1)
                end
                sampAddChatMessage('Время вышло!', -1)
            end)
        end
    end
end)
 
  • Нравится
Реакции: Miron Diamond

Miron Diamond

Известный
Автор темы
252
163
Lua:
sampRegisterChatCommand('timer', function(sec)
    if tonumber(sec) then
        local sec = tonumber(sec)
        if sec > 0 then
            lua_thread.create(function()
                sampAddChatMessage('Таймер на '..sec..' секунд запущен!', -1)
                local start = os.time()
                while os.time() - start < sec do
                    wait(1000)
                    sampAddChatMessage(sec - (os.time() - start), -1)
                end
                sampAddChatMessage('Время вышло!', -1)
            end)
        end
    end
end)
И еще один вопросик, как можно сбросить таймер? Прост заметил что если там например поставить таймер на 90 секунд, а потом на 5, то он закончит таймер на 5 секунд и продолжит отсчитывать 90 секунд.
 

Cosmo

Известный
Друг
646
2,591
И еще один вопросик, как можно сбросить таймер? Прост заметил что если там например поставить таймер на 90 секунд, а потом на 5, то он закончит таймер на 5 секунд и продолжит отсчитывать 90 секунд.
Lua:
sampRegisterChatCommand('timer', function(sec)
    timer = not timer
    if timer and tonumber(sec) then
        local sec = tonumber(sec)
        if sec > 0 then
            timer_thread = lua_thread.create(function()
                sampAddChatMessage('Таймер на '..sec..' секунд запущен!', -1)
                local start = os.time()
                while os.time() - start < sec do
                    wait(1000)
                    sampAddChatMessage(sec - (os.time() - start), -1)
                end
                sampAddChatMessage('Время вышло!', -1)
            end)
        end
        return
    end
    timer_thread:terminate()
    sampAddChatMessage('Таймер остановлен!', -1)
end)
 
  • Влюблен
Реакции: Miron Diamond