Вопрос kRenderFxGlowShell Паутинка

Сообщения
382
Реакции
-8
Новый вопрос (конкретный)
Как можно добавить переливающееся свечение игрока при полёте на паутинке?
18 Апр 2023
set_user_rendering(id, kRenderFxGlowShell, random_num(0, 255), random_num(0, 255), random_num(0, 255), kRenderNormal, 25)из прошлой темы, понял, что через set_task но как его правильно прописать?
18 Апр 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
}
18 Апр 2023
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)
        }
    }
}
Попытки что-то сделать по методу t3rkecorejz
18 Апр 2023
Функция Включения паутинки

C++:
public EnableHook(id)
{
    if(get_user_flags(id) & OneFlag || get_user_flags(id) & TwoFlag)
    {
        if(zp_get_user_zombie(id) || zp_get_user_survivor(id))
        {
            ChatColor(id, "%L", id, "ADVANCED_HOOK_NO_ZM")
            return PLUGIN_HANDLED
        }
    
        if(is_user_alive(id) && szPlayerHook[id] && g_iHookEnable)
        {
            if(LimitHook[id] > 0)
            {
                get_user_origin(id, szPlayerHookOrigin[id], 3)
                if(callfunc_begin("detect_cheat", "prokreedz.amxx") == 1)
                {
                    callfunc_push_int(id)
                    callfunc_push_str("Hook")
                    callfunc_end()
                }
                emit_sound(id, CHAN_STATIC, g_HookSoundFile[szPlayerSound[id]], 1.0, ATTN_NORM, 0, PITCH_NORM)
                set_task(0.1, "AdvancedHookTask", id, "", 0, "ab")
                AdvancedHookTask(id)
                szBreakEnd[id] = szPlayerEndSprite[id] + 1
                break_end(id)

                LimitHook[id]--

                if(get_user_flags(id) & OneFlag)
                {
                    ChatColor(id, "%L", LANG_PLAYER, "ADVANCED_HOOK_LEFT_ONE", LimitHook[id], LimitFlagsOne)
                }
                else if(get_user_flags(id) & TwoFlag)
                {
                    ChatColor(id, "%L", LANG_PLAYER, "ADVANCED_HOOK_LEFT_TWO", LimitHook[id], LimitFlagsTwo)
                }
            } else ChatColor(id, "%L", LANG_PLAYER, "ADVANCED_HOOK_END")
        }
    } else ChatColor(id, "%L", id, "ADVANCED_MENU_MODE_NOACCESS")
    
    return PLUGIN_HANDLED
}
 
Сообщения
382
Реакции
-8
Надеюсь, завтра мне поможете реализовать это, если же нет, то оставлю random_num(0, 255)
 
Сообщения
365
Реакции
8
Помог
5 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
RedGamer, мелкий мы все на работе, будний дни, если тебе на учебу не надо с утра, то половина из нас спит ещё или работает до вечера, так что включи режим ожидания, пока сами не отпишут:))
 
Сообщения
382
Реакции
-8
@RedFoxxx,так я понимаю, мне тоже на учебу, просто ж написал что может быть помогут (как получится, не получится) жду:)
 
Сообщения
936
Реакции
187
Помог
4 раз(а)
RedGamer, а что тебе не нравится с рандомом?
Все равно таск каждую 0.1 обновляется
 
Сообщения
382
Реакции
-8
@BiZaJe,не срабатывает свечение не то чтобы само переливание цвета..
18 Апр 2023
Мне нужно сделать, чтобы только игрок имея флаги доступа "Создателя" то ему при использовании паутинки переливалось свечение (только при использовании паутинки)
18 Апр 2023
И я скорее всего не так или не туда таск подключил, вопрос куда его подключить в public EnableHook(id) и public CTask_UpdateUserGlowColor(id) или сам рендер тоже в EnableHook вписать вместе с таском? Объясните, не понимаю работу таска к паутинке
 
Последнее редактирование:
Сообщения
936
Реакции
187
Помог
4 раз(а)
RedGamer, что там не понятного?
При включении паутинки запускается таск
При отключении таск уничтожается
В таске делаешь свой рендер со смещением цвета
Либо же запускаешь в enable свой таск для рендеринга
 
Сообщения
382
Реакции
-8
@BiZaJe,выше коды написаны, как и таска в EnableHook так и рендере с таском что не так то ? Типо компилирует но при использовании паутинки нету свечения вовсе
18 Апр 2023
BiZaJe, пробовал запускать таск для рендеринга, не работает
 
Сообщения
936
Реакции
187
Помог
4 раз(а)
RedGamer, ну а с чего это у тебя толщина рендеринга 0 стоит?
А потом появится вопрос , почему там работает а тут нет
 
Сообщения
382
Реакции
-8
C++:
public EnableHook(id)
{
    if(get_user_flags(id) & OneFlag || get_user_flags(id) & TwoFlag)
    {
        if(zp_get_user_zombie(id) || zp_get_user_survivor(id))
        {
            ChatColor(id, "%L", id, "ADVANCED_HOOK_NO_ZM")
            return PLUGIN_HANDLED
        }

        if(is_user_alive(id) && szPlayerHook[id] && g_iHookEnable)
        {
            if(LimitHook[id] > 0)
            {
                get_user_origin(id, szPlayerHookOrigin[id], 3)
                if(callfunc_begin("detect_cheat", "prokreedz.amxx") == 1)
                {
                    callfunc_push_int(id)
                    callfunc_push_str("Hook")
                    callfunc_end()
                }
                emit_sound(id, CHAN_STATIC, g_HookSoundFile[szPlayerSound[id]], 1.0, ATTN_NORM, 0, PITCH_NORM)
                set_task(0.1, "AdvancedHookTask", id, "", 0, "ab")
                AdvancedHookTask(id)
                szBreakEnd[id] = szPlayerEndSprite[id] + 1
                break_end(id)
                set_task(1.0, "CTask__UpdateUserGlowColor", id + 1557, "", 0, "b")
                CTask__UpdateUserGlowColor(id)
                if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & OneFlag)
                {
                set_user_rendering(id, kRenderFxGlowShell, 255, 0, 255, kRenderNormal, 16)
                }

                LimitHook[id]--
                if(get_user_flags(id) & TwoFlag)
                {
                    ChatColor(id, "%L", LANG_PLAYER, "ADVANCED_HOOK_LEFT_TWO", LimitHook[id], LimitFlagsTwo)
                }
                else if(get_user_flags(id) & OneFlag)
                {
                    ChatColor(id, "%L", LANG_PLAYER, "ADVANCED_HOOK_LEFT_ONE", LimitHook[id], LimitFlagsOne)
                }
            } else ChatColor(id, "%L", LANG_PLAYER, "ADVANCED_HOOK_END")
        }
    } else ChatColor(id, "%L", id, "ADVANCED_MENU_MODE_NOACCESS")

    return PLUGIN_HANDLED
}
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
}
C++:
public CTask__UpdateUserGlowColor(id)
{
    id -= 1557
    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, 16)
        }
    }
}
C++:
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;
}
Вроде похимичил.. что-то вышло, можно ли сделать плавное переливание?
 
Последнее редактирование:
Сообщения
91
Реакции
141
Помог
1 раз(а)
RedGamer, flColor отсылай в set_user_rendering, вместо твоего random_num. У тебя код с переливанием цветов даже не используется щас. А еще, зачем тебе 3 проверки is_user_alive в одном месте, это чтоб точно убедится, что игрок живой? Вдруг зараза умер...
 
Сообщения
382
Реакции
-8
t3rkecorejz,
C++:
// render
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)
}
C++:
set_task(1.0, "CTask__UpdateUserGlowColor", id + 1557, "", 0, "b")
CTask__UpdateUserGlowColor(id)
                
//Рендер Владельца (без возможности переливания цвета)
if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & OneFlag)
{
set_user_rendering(id, kRenderFxGlowShell, 255, 0, 255, kRenderNormal, 0)
}
заменил на такое, два флага в разных public'ах находятся.. т.к мне нужен только TwoFlag а через else if срабатывает на OneFlag, поэтому OneFlag закинул в public EnableHook(id)
18 Апр 2023
Или можно как-то в CTask__UpdateUserGlowColor(id) закинуть OneFlag но без взаимодействия?
18 Апр 2023
C++:
    // render
    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)
    }
    else if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & OneFlag)
    {
    remove_task(id + 1557)
    set_user_rendering(id, kRenderFxGlowShell, 255, 0, 255, kRenderNormal, 0)
    }
С флагами разобрался вот таким кривым ходом(не очень хорошим, но рабочим) + Нету лишних строк в public EnableHook(id) ... Только set_task и снизу CTask__UpdateUserGlowColor(id) :)
18 Апр 2023
Как вместо random_num вписать flColor? я пробовал flColor[0], flColor[1], flColor[2].. также rgb[0], rgb[1], rgb[2] но выдаёт undefined symbol "rgb"
18 Апр 2023
Вот собственно, ошибка..

1681819939178.png
 

Вложения

Сообщения
10
Реакции
0
RedGamer, set_user_rendering(id, kRenderFxGlowShell, floatround(flColor[0]), floatround(flColor[1]), floatround(flColor[2]), kRenderNormal, 0);
 
Сообщения
382
Реакции
-8
Geneor,
C++:
    static iHueNow, flColor[3];

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

    // render
    if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & TwoFlag)
    {
    set_user_rendering(id, kRenderFxGlowShell, flColor[0], flColor[1], flColor[2], kRenderNormal, 0)
    }
    else if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & OneFlag)
    {
    remove_task(id + 1557)
    set_user_rendering(id, kRenderFxGlowShell, 255, 0, 255, kRenderNormal, 0)
    }
}
что-то я делаю не так..
18 Апр 2023
@Geneor,использую паутинку и у TwoFlag там типо я сначала без свечения, потом пошёл эффект свечения, как исправить?
18 Апр 2023
RedGamer, set_user_rendering(id, kRenderFxGlowShell, floatround(flColor[0]), floatround(flColor[1]), floatround(flColor[2]), kRenderNormal, 0);
Спасибо, заменил, работает:)
18 Апр 2023
Всё также нету плавного переливания:(
 
Сообщения
382
Реакции
-8
C++:
    HUEtoRGB(iHueNow, flColor);
    if ((iHueNow += 5) && iHueNow >= 360)
        iHueNow = 0;

    // render
    if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & TwoFlag)
    {
    set_user_rendering(id, kRenderFxGlowShell, floatround(flColor[0]), floatround(flColor[1]), floatround(flColor[2]), kRenderNormal, 0)
    iHueNow += 5
    }
    else if(is_user_alive(id) && szPlayerHook[id] && get_user_flags(id) & OneFlag)
    {
    remove_task(id + 1557)
    set_user_rendering(id, kRenderFxGlowShell, 255, 0, 255, kRenderNormal, 0)
    }
}
18 Апр 2023
Помогите добавить iHueNow я первый раз о таком слышу..
 
Сообщения
382
Реакции
-8
Ап темы (topic up) - поднятие своей темы для привлечения внимания (разрешается 1 раз в 3 дня).
Помогите.. прошу вас... переливается не плавно.. куда этот H*eNow пихать(
 

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

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