Вопрос Timer js

Начинающий
Статус
Оффлайн
Регистрация
16 Фев 2021
Сообщения
46
Реакции[?]
9
Поинты[?]
0
как сделать таймер на 2 секунды?
у меня есть кусок кода
Код:
var time = Entity.GetProp(g, "CBaseCSGrenadeProjectile", "m_nExplodeEffectTickBegin") * Globals.TickInterval();
var factor = Clamp(((time + 2) - Globals.Curtime()) / 2, 0, 2);
function renderArc(x, y, r1, r2, s, d, col){
    for (var i = s; i < s + d; i++){
        const rad = i * Math.PI / 180;
        Render.Line(x + Math.cos(rad) * r1, y + Math.sin(rad) * r1, x + Math.cos(rad) * r2, y + Math.sin(rad) * r2, col);
    }
}
        Render.FilledCircle(screen[0], screen[1] - 46, 25, [Math.max(0, 255 - Math.pow(distance, 1.8)), 0, 0, 255])
        renderArc(screen[0], screen[1] - 46, 26, 27, -90, 360 * factor, [255, 255, 255, 255]);
        Render.String(screen[0], screen[1] - 68, 1, "j", [255, 255, 255, 255], font3);
        Render.String(screen[0], screen[1] - 45, 1, distance + " ft", [255, 255, 255, 255], font2);
}
}
мне нужно вместо var time = проп сделать таймер на 2 секунды или каким либо другим способом сделать так, чтобы renderArc выполнялся за 2 секунды
буду премного благодарен
 
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,747
Реакции[?]
1,465
Поинты[?]
2K
JavaScript:
var oldtime = Globals.Curtime()
var delay = 2

function doSomething()
{
    if (Globals.Curtime() - oldtime >= delay)
    {
        //Твой кусок кода
      
        oldtime = Globals.Curtime();
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
16 Фев 2021
Сообщения
46
Реакции[?]
9
Поинты[?]
0
JavaScript:
var oldtime = Globals.Curtime()
var delay = 2

function doSomething()
{
    if (Globals.Curtime() - oldtime >= delay)
    {
        //Твой кусок кода
     
        oldtime = Globals.Curtime();
    }
}
это цикличный таймер, мне нужно:
после броска гранаты (это я сам реализую) врубался таймер на 2 секунды который привязан к renderArc то есть после броска гранаты renderArc выполнялся 2 секунды
 
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,747
Реакции[?]
1,465
Поинты[?]
2K
это цикличный таймер, мне нужно:
после броска гранаты (это я сам реализую) врубался таймер на 2 секунды который привязан к renderArc то есть после броска гранаты renderArc выполнялся 2 секунды
Сначала сделай реализацию броска гранаты, занеси ее в переменную типа bool, дальше реализация простая:
Пишешь функцию с рендером, куда уже включен таймер, можешь даже аргументы сделать, если она в CM будет вызываться, дальше делаешь проверку:
JavaScript:
if (grenade_has_been_thrown)
    callFunction();
 
Начинающий
Статус
Оффлайн
Регистрация
16 Фев 2021
Сообщения
46
Реакции[?]
9
Поинты[?]
0
Сначала сделай реализацию броска гранаты, занеси ее в переменную типа bool, дальше реализация простая:
Пишешь функцию с рендером, куда уже включен таймер, можешь даже аргументы сделать, если она в CM будет вызываться, дальше делаешь проверку:
JavaScript:
if (grenade_has_been_thrown)
    callFunction();
если честно, не до конца понял то, что ты написал, но вот как я себе представляю реализацию
1) мной уже написан гренейд ворнинг с помощью апи вт и рендер часть этой арки прикреплена сверху
2) с помощью
Код:
function on_grenade_throw() {
    if (Event.GetString("weapon") == "hegrenade") {
       стафф
    };
};

Cheat.RegisterCallback("grenade_thrown", "on_grenade_throw");
детектим бросок хаешки
3) запускается таймер на 2 секунды который я попросил
4) этот таймер я связываю с renderArc
5) готово
345345.png
В итоге должен быть просчет когда взорвется хаешка в гренейд ворнинге по типу таймера горящего молотова, но я его сделал через проп
 
Эксперт
Статус
Оффлайн
Регистрация
14 Ноя 2020
Сообщения
1,800
Реакции[?]
586
Поинты[?]
2K
если честно, не до конца понял то, что ты написал, но вот как я себе представляю реализацию
1) мной уже написан гренейд ворнинг с помощью апи вт и рендер часть этой арки прикреплена сверху
2) с помощью
Код:
function on_grenade_throw() {
    if (Event.GetString("weapon") == "hegrenade") {
       стафф
    };
};

Cheat.RegisterCallback("grenade_thrown", "on_grenade_throw");
детектим бросок хаешки
3) запускается таймер на 2 секунды который я попросил
4) этот таймер я связываю с renderArc
5) готово
Посмотреть вложение 191877
В итоге должен быть просчет когда взорвется хаешка в гренейд ворнинге по типу таймера горящего молотова, но я его сделал через проп
Неуверен что это должно работать т.к. уже не помню джс, но по идее там где стафф можно впихнуть doSomething() и эта хуйня сработает 1 раз и всё(кринж код но думаю тебе похуй)
 
Начинающий
Статус
Оффлайн
Регистрация
16 Фев 2021
Сообщения
46
Реакции[?]
9
Поинты[?]
0
Неуверен что это должно работать т.к. уже не помню джс, но по идее там где стафф можно впихнуть doSomething() и эта хуйня сработает 1 раз и всё(кринж код но думаю тебе похуй)
JavaScript:
function on_grenade_throw() {
    if (Event.GetString("weapon") == "hegrenade") {
       Cheat.PrintChat("1")
    };
};

Cheat.RegisterCallback("grenade_thrown", "on_grenade_throw");
435345345354.png
 
Эксперт
Статус
Оффлайн
Регистрация
14 Ноя 2020
Сообщения
1,800
Реакции[?]
586
Поинты[?]
2K
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,747
Реакции[?]
1,465
Поинты[?]
2K
JavaScript:
function on_grenade_throw() {
    if (Event.GetString("weapon") == "hegrenade") {
       Cheat.PrintChat("1")
    };
};

Cheat.RegisterCallback("grenade_thrown", "on_grenade_throw");
Посмотреть вложение 191878
Ну вот, у тебя есть функция on_grenade_thrown
Делаешь так:

JavaScript:
function on_grenade_throw() {
    if (Event.GetString("weapon") == "hegrenade") {
       return true;
    };
    return false;
};

Cheat.RegisterCallback("grenade_thrown", "on_grenade_throw");

function render()
{
    bool grenade_has_been_thrown = on_grenade_thrown();
    
    if (grenade_has_been_thrown)
        callFunction();
}
в самой функции callFunction() тебе нужно по таймеру рендерить твой круг, код таймера я уже скидывал
по идее там где стафф можно впихнуть doSomething() и эта хуйня сработает 1 раз и всё
схуяли она 1 раз сработает, если она привязана к ивенту?
 
Последнее редактирование:
Эксперт
Статус
Оффлайн
Регистрация
14 Ноя 2020
Сообщения
1,800
Реакции[?]
586
Поинты[?]
2K
Последнее редактирование:
Эксперт
Статус
Оффлайн
Регистрация
14 Ноя 2020
Сообщения
1,800
Реакции[?]
586
Поинты[?]
2K
Ну вот, у тебя есть функция on_grenade_thrown
Делаешь так:

JavaScript:
function on_grenade_throw() {
    if (Event.GetString("weapon") == "hegrenade") {
       return true;
    };
    return false;
};

Cheat.RegisterCallback("grenade_thrown", "on_grenade_throw");

function render()
{
    bool grenade_has_been_thrown = on_grenade_thrown();
   
    if (grenade_has_been_thrown)
        callFunction();
}
в самой функции callFunction() тебе нужно по таймеру рендерить твой круг, код таймера я уже скидывал

схуяли она 1 раз сработает, если она привязана к ивенту?
Короче бро, челу надо так чтобы за 1.7 сек кружок пропадал (ну то есть радиус становился 0). А проблема в том что челу неоткуда гетать начальную точку броска (которая прибавляется на 1.7 и на еще что-то там).
Объясняю чуть по другому:
После того как челик кидает нейд в месте куда прилетит нейд должен рендерится кружок который к моменту пока прилетит нейд должен закрыться то есть его процент заполненности должен быть 0 (100% (То есть 360 у него в коде) - это полный круг, 50%(То есть 180 у него в коде) - полукруг.)
 

Вложения

Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,747
Реакции[?]
1,465
Поинты[?]
2K
Короче бро, челу надо так чтобы за 1.7 сек кружок пропадал (ну то есть радиус становился 0). А проблема в том что челу неоткуда гетать начальную точку броска (которая прибавляется на 1.7 и на еще что-то там).
Объясняю чуть по другому:
После того как челик кидает нейд в месте куда прилетит нейд должен рендерится кружок который к моменту пока прилетит нейд должен закрыться то есть его процент заполненности должен быть 0 (100% (То есть 360 у него в коде) - это полный круг, 50%(То есть 180 у него в коде) - полукруг.)
Ну так возвращайте из функции on_grenade_thrown время или тик, в который сработал ивент
 
Начинающий
Статус
Оффлайн
Регистрация
16 Фев 2021
Сообщения
46
Реакции[?]
9
Поинты[?]
0
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,747
Реакции[?]
1,465
Поинты[?]
2K
Ну смотри.
У тебя есть функция on_grenade_throw, она срабатывает при броске гранаты. Нам нужно знать, в какое время игрок кинул гранату, делаем следующее:

JavaScript:
var throw_time = 0;
function on_grenade_throw()
{
    if (Event.GetString("weapon") == "hegrenade")
        {
            throw_time = Globals.Curtime();
        }
}
Теперь результат выполнения функции - время, когда бросили гранату (Оно по сути является переменной oldtime), он записывается в throw_time.

Мы знаем, что граната взрывается через 1.7 секунд, что является переменной delay, теперь собираем пазл:

JavaScript:
function main()
{
    if (Globals.Curtime() - throw_time >= 1.7)
        WarningRender();

    throw_time = 0;
}
WarningRender - сама функция рендера
Дальше у тебя уже есть factor на clamp функции, юзай его по прежнему.
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
16 Фев 2021
Сообщения
46
Реакции[?]
9
Поинты[?]
0
Ну смотри.
У тебя есть функция on_grenade_throw, она срабатывает при броске гранаты. Нам нужно знать, в какое время игрок кинул гранату, делаем следующее:

JavaScript:
var throw_time = 0;
function on_grenade_throw()
{
    if (Event.GetString("weapon") == "hegrenade")
        {
            throw_time = Globals.Curtime();
        }
}
Теперь результат выполнения функции - время, когда бросили гранату (Оно по сути является переменной oldtime), он записывается в throw_time.

Мы знаем, что граната взрывается через 1.7 секунд, что является переменной delay, теперь собираем пазл:

JavaScript:
function main()
{
    if (Globals.Curtime() - throw_time >= 1.7)
    {
        WarningRender();
    }
    throw_time = 0;
}
WarningRender - сама функция рендера
Дальше у тебя уже есть factor на clamp функции, юзай его по прежнему.
что ставить в var time?
 
Начинающий
Статус
Оффлайн
Регистрация
16 Фев 2021
Сообщения
46
Реакции[?]
9
Поинты[?]
0
Сверху Снизу