Знак процент в KeyHintText

Iamboy

Участник
Сообщения
44
Реакции
6
Приветствую всех!
Подскажите пожалуйста кто знает как опубликовать в KeyHintText знак процента? Не думал столкнуться с такой проблемой) Извращался как только мог, но решение не нашел, неужели это невозможно? :)
Буду благодарен Вам за помощь в решении этой проблемы

C-подобный:
char szText[250];
        Format(szText, sizeof(szText), "TEST1: 100 %%\nTEST2: 100 0%\nTEST3: 100 %\nTEST4: 100 0%0%");
        new Handle:hBuffer = StartMessageOne("KeyHintText", client);
        BfWriteByte(hBuffer, 1);
        BfWriteString(hBuffer, szText);
        EndMessage();
 
Последнее редактирование:

White Wolf

🍉
Сообщения
2,382
Реакции
2,187
  • Команда форума
  • #2
Приветствую всех!
Подскажите пожалуйста кто знает как опубликовать в KeyHintText знак процента? Не думал столкнуться с такой проблемой) Извращался как только мог, но решение не нашел, неужели это невозможно? :)
Буду благодарен Вам за помощь в решении этой проблемы

char szText[250];
Format(szText, sizeof(szText), "TEST1: 100 %%\nTEST2: 100 0%\nTEST3: 100 %\nTEST4: 100 0%0%");
new Handle:hBuffer = StartMessageOne("KeyHintText", client);
BfWriteByte(hBuffer, 1);
BfWriteString(hBuffer, szText);
EndMessage();
Попробуйте экранировать символ %
C-подобный:
\%
Оффтоп
 

Iamboy

Участник
Сообщения
44
Реакции
6
К сожалению безрезультатно
Пробовал:
TEST1: 100 \%%
TEST2: 100 \%\%
TEST3: 100 \%

С двумя процентами все время выбивает < NOT BOUND >, гугл не помог :)

TEST2.jpg
 

_wS_

Участник
Сообщения
383
Реакции
760
Не, судя по исхам, если он видит %, то всё, думает что это var, и начинает их искать, и если не нашел, то выдает < not bound >.
В игре в config_default.cfg например есть bind "SHIFT" "+speed"
Если сделать BfWriteString(hBuffer, "%speed%"); то выдаст "SHIFT".
Вроде не обойти эту фгню, попробуй поискать в html таблице символов что-то похожее на %.
 

Iamboy

Участник
Сообщения
44
Реакции
6
Format(szText, sizeof(szText), "100%c", '%');

К сожалению нет :(
Результат:
TEST5.jpg


Для уточнения: Игра Counter Strike Source
Полный тест плагин:
C-подобный:
#pragma semicolon 1

#include <sourcemod>
#include <cstrike>

public OnPluginStart()
{
    HookEvent("player_jump", Event_PlayerJump);
}

public void Event_PlayerJump(Handle event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(GetEventInt(event, "userid"));
    if(IsValidClient(client))
    {
        char szText[250]; 
        Format(szText, sizeof(szText), "100%c", '%'); 
        new Handle:hBuffer = StartMessageOne("KeyHintText", client); 
        BfWriteByte(hBuffer, 1); 
        BfWriteString(hBuffer, szText); 
        EndMessage(); 
    }
}

bool IsValidClient(int client)
{
    if(client <= 0 || client > MaxClients || !IsClientInGame(client))
        return false;
    return true;
}
--- Добавлено позже ---
Не, судя по исхам, если он видит %, то всё, думает что это var, и начинает их искать, и если не нашел, то выдает < not bound >.
В игре в config_default.cfg например есть bind "SHIFT" "+speed"
Если сделать BfWriteString(hBuffer, "%speed%"); то выдаст "SHIFT".
Вроде не обойти эту фгню, попробуй поискать в html таблице символов что-то похожее на %.

Жаль, понял, спасибо! +rep :)
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
интересно а FormatEx(buffer,sizeof buffer,"%c", 37); что выдаст
 

Reg1oxeN

Участник
Сообщения
403
Реакции
319
стандартный знак процента невозможно вывести в KeyHintText, даже и не пытайтесь
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
В общем я нашёл решение: вместо знака процента можно использовать надстрочный и подстрочный ноль со слэшем между ними.
⁰⁄₀
 

Nekro

Терра инкогнита
Сообщения
4,042
Реакции
2,295
Есть ли возможность в кваре вывести другой квар?
C-подобный:
cvar = CreateConVar("sm_name", "Имя игрока [%s] красной команды", "[%s] - это имя игрока");
%s никак не хочет отображать
 
Сверху Снизу