Вопрос kRenderFxGlowShell

Сообщения
382
Реакции
-8
Использую инклюд fun и подключаю set_user_rendering(id, kRenderFxGlowShell, random_num(0, 255), random_num(0, 255), random_num(0, 255), kRenderNormal, 25) как сделать переливающее свечение игроку?
17 Апр 2023
И можно ли вообще такое сделать?)
 
Сообщения
91
Реакции
141
Помог
1 раз(а)
Условно используешь таск раз в 0.5-1.0 сек с использованием данного стока

Каждый раз делаешь шаг +5 по HUE ну и когда будет 360, начинаешь подсчет заного.
Код:
// call task with render
set_task( 1.0, "CTask__UpdateUserGlowColor", pPlayer, .flags = "b" );

public CTask__UpdateUserGlowColor( const pPlayer )
{
    if ( !is_user_alive( pPlayer ) )
    {
        remove_task( pPlayer );
        return;
    }

    static iHueNow, Float: flColor[ 3 ];

    HUEtoRGB( iHueNow, flColor );
    if ( ( iHueNow += 5 ) && iHueNow >= 360 )
        iHueNow = 0;

    // render. цвет ставишь от flColor
}

stock HUEtoRGB(hue, Float:rgb[3])
{
    rgb[0] = (hue / 255.0) + 1.0 / 3.0;
    rgb[1] = (hue / 255.0);
    rgb[2] = (hue / 255.0) - 1.0 / 3.0;

    for (new i = 0; i < 3; i++)
    {
        if (rgb[i] < 0.0)
        {
            rgb[i] += 1.0;
        }
        if (rgb[i] > 1.0)
        {
            rgb[i] -= 1.0;
        }
        if (6.0 * rgb[i] < 1)
        {
            rgb[i] = rgb[i] * 6.0
            continue;
        }

        if (2.0 * rgb[i] < 1)
        {
            rgb[i] = 1.0;
            continue;
        }

        if (3.0 * rgb[i] < 2.0)
        {
            rgb[i] = ((2.0 / 3.0) - rgb[i]) * 6.0
            continue;
        }

        rgb[i] = 0.0;
    }
    rgb[0] *= 255.0;
    rgb[1] *= 255.0;
    rgb[2] *= 255.0;
}
 
Последнее редактирование:
Сообщения
382
Реакции
-8
@t3rkecorejz,и как мне это свечение переливающее прикрепить к определённому флагу доступа и в момент использования паутинки?
17 Апр 2023
C++:
                if(is_user_alive(id) && szPlayerHook[id])
                {
                    if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & TwoFlag)
                    {
                    set_user_rendering(id, kRenderFxGlowShell, random_num(0, 255), random_num(0, 255), random_num(0, 255), kRenderNormal, 0)
                    set_task( 1.0, "CTask__UpdateUserGlowColor", id, .flags = "b" );
                    }
                    else if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & OneFlag)
                    {
                    set_user_rendering(id, kRenderFxGlowShell, 255, 0, 255, kRenderNormal, 0)
                    }
                }
По-моему херня какая-то
 
Сообщения
91
Реакции
141
Помог
1 раз(а)
RedGamer, изначальный вопрос был в другом, по этому дальше уже сам. При использовании паутинки юзаешь таск, когда отжимаешь кнопку паутинки - ремуваешь таск. Для всего этого, в моем примере, юзай уникальный TaskId + id игрока, чтоб легче было с этим работать (запускать и ремувать таск)
 
Сообщения
382
Реакции
-8
Не выходит.. пробовал так

C++:
                if(is_user_alive(id) && szPlayerHook[id])
                {
                    if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & TwoFlag)
                    {
                    set_user_rendering(id, kRenderFxGlowShell, random_num(0, 255), random_num(0, 255), random_num(0, 255), kRenderNormal, 0)
                    set_task(1.0, "CTask__UpdateUserGlowColor", id + 1557, .flags = "b");
                    }
                    else if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & OneFlag)
                    {
                    set_user_rendering(id, kRenderFxGlowShell, 255, 0, 255, kRenderNormal, 0)
                    }
                }
C++:
public CTask__UpdateUserGlowColor(const id)
{
    if(!is_user_alive(id))
    {
        remove_task(id);
        return;
    }

    static iHueNow, Float: flColor[3];

    HUEtoRGB(iHueNow, flColor);
    if ((iHueNow += 5) && iHueNow >= 360)
        iHueNow = 0;

    // render
}

public CTaskid__UpdateUserGlowColor(taskid)
{
    new id = taskid - 1557
    set_task(1.0, "CTask_UpdateUserGlowColor", id, .flags = "b")
}
17 Апр 2023
Помогите добавить перелевайку, годно было бы
17 Апр 2023
Нужно ли вообще set_user_rendering убирать?
 
Сообщения
862
Реакции
144
Помог
25 раз(а)
Зачем в одном таске вызывать другой, и при этом еще до него выставлять рендер?
Тебе нужно сделать 1 таск с флагом "b" и уникальным айди, в котором ты будешь выставлять рендер.

C++:
set_task(1.0, "CTask__UpdateUserGlowColor", id + 1557, .flags = "b");
...
public CTask__UpdateUserGlowColor(id)
{
    id -= 1557;

    // выставляешь рендер
}
...
remove_task(id + 1557); // убираем таск в нужный момент
 
Сообщения
382
Реакции
-8
ImmortalAmxx,
C++:
    HUEtoRGB(iHueNow, flColor);
    if ((iHueNow += 5) && iHueNow >= 360)
        iHueNow = 0;

    // render
что принимается под render?
 
Сообщения
382
Реакции
-8
@t3rkecorejz,так у меня там ограничение по двум флагам и по активации паутинки..
 
Сообщения
91
Реакции
141
Помог
1 раз(а)
RedGamer, ну чья это беда? Ты спросил изначально то, как сделать переливающий цвет, тебе помогли. Затем ты в этой теме требуешь уже помочь с другим. Не канон, ждем другой топик с просьбой добавить этот код при использовании паутинки
 
Сообщения
382
Реакции
-8
Верно сделал?

C++:
public CTask__UpdateUserGlowColor(const id)
{
    if(!is_user_alive(id))
    {
        remove_task(id);
        return;
    }

    static iHueNow, Float: flColor[3];

    HUEtoRGB(iHueNow, flColor);
    if ((iHueNow += 5) && iHueNow >= 360)
        iHueNow = 0;

    // render
    if(is_user_alive(id) && szPlayerHook[id])
    {
        if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & TwoFlag)
        {
        set_user_rendering(id, kRenderFxGlowShell, random_num(0, 255), random_num(0, 255), random_num(0, 255), kRenderNormal, 0)
        set_task(1.0, "CTask__UpdateUserGlowColor", id + 1557, .flags = "b");
        }
        else if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & OneFlag)
        {
        set_user_rendering(id, kRenderFxGlowShell, 255, 0, 255, kRenderNormal, 0)
        }
    }
}
17 Апр 2023
Момент отпускание кнопки паутинки удаляется хук

C++:
public DisableHook(id)
{
    RemoveHook(id)
    if(zp_get_user_nemesis(id)) return PLUGIN_HANDLED
    set_user_rendering(id)
    remove_task(id + 1557)
    return PLUGIN_HANDLED
}
17 Апр 2023
Так, стоп где я потерял taskid...
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу