Баг при реализации цветного StatusText

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
1,420
Реакции
2,511
Помог
58 раз(а)
Приветствую, имеется небольшой баг при реализации цветного StatusText, код прилагаю ниже.

Вариант с цветом но с багом:
Код:
func_ShowStatusText(id)
{
    new iTarget, szStatusInfo[80];
    get_user_aiming(id, iTarget, .dist = 1000);

    if(is_user_valid(iTarget))
    {
        switch(get_member(iTarget, m_iTeam))
        {
            case TEAM_TERRORIST: formatex(szStatusInfo, charsmax(szStatusInfo), "Заключённый: %%p2 | %%i3 ХП");
            case TEAM_CT: formatex(szStatusInfo, charsmax(szStatusInfo), "Охранник: %%p2 | %%i3 ХП");
        }
    }
    else
    {
        new Float:flHealth;
        get_entvar(id, var_health, flHealth);
        if(flHealth > 255.0)
            formatex(szStatusInfo, charsmax(szStatusInfo), "[ Здоровье: %0.f ХП ]", flHealth);
        else
            szStatusInfo[0] = '^0';
    }

    message_begin(MSG_ONE_UNRELIABLE, g_iMsgStatusText, .player = id);
    write_byte(0);
    write_string(szStatusInfo);
    message_end();
}
Вариант без цвета но без багов:
Код:
func_ShowStatusText(id)
{
    new iTarget, Float:flHealth, szStatusInfo[80];
    get_user_aiming(id, iTarget, .dist = 1000);
    get_entvar(iTarget, var_health, flHealth);

    if(is_user_valid(iTarget))
    {
        switch(get_member(iTarget, m_iTeam))
        {
            case TEAM_TERRORIST: formatex(szStatusInfo, charsmax(szStatusInfo), "Заключённый: %n | %0.f ХП", iTarget, flHealth);
            case TEAM_CT: formatex(szStatusInfo, charsmax(szStatusInfo), "Охранник: %n | %0.f ХП", iTarget, flHealth);
        }
    }
    else
    {
        if(flHealth > 255.0)
            formatex(szStatusInfo, charsmax(szStatusInfo), "[ Здоровье: %0.f ХП ]", flHealth);
        else
            szStatusInfo[0] = '^0';
    }

    message_begin(MSG_ONE_UNRELIABLE, g_iMsgStatusText, .player = id);
    write_byte(0);
    write_string(szStatusInfo);
    message_end();
}
Весь этот код вызывается в PreThink, проблема в том что если как ник указывать %%p2 то получается проблема что если быстро ну или бывает даже не быстро убирать прицел с игрока например на пол или в другую зону то выводится вместо ника звездочки (см. скриншот). Так же и с количеством жизней, если указывать как %%i3

https://i.imgur.com/03eyaUD.png

Есть вариант лучше или же какой способ есть чтобы это исправить?
27 Дек 2018
Подсказали решение (спасибо Keniski :smile3:):

Код:
-case TEAM_TERRORIST: formatex(szStatusInfo, charsmax(szStatusInfo), "Заключённый: %%p2 | %%i3 ХП");
-case TEAM_CT: formatex(szStatusInfo, charsmax(szStatusInfo), "Охранник: %%p2 | %%i3 ХП");
+case TEAM_TERRORIST: formatex(szStatusInfo, charsmax(szStatusInfo), "1 Заключённый: %%p2 | %%i3 ХП");
+case TEAM_CT: formatex(szStatusInfo, charsmax(szStatusInfo), "1 Охранник: %%p2 | %%i3 ХП");
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.

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

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