Ограничение в PrintHintText

Nico Yazawa

Бывший MrChester =(
Сообщения
326
Реакции
303
И снова здравствуйте.
Сегодня необходимо обойти ограничение разноцветного хинта в тексте.

Проблема:
При попытке ввести много разноцветного текста в PrintHintText, он отказывается нормально работать.
csgo_ZAbFOk3JN2.png

(Поле "Смерти" должно быть заполнено числами)

Часть кода:
PHP:
Format(temp, sizeof(temp), "\t%t: <font color='#00FF00'>%s</font>\n", "DMMenu_Challenge", player_info[i][ChallengeName]);
if(player_info[i][_Kills])
{
    Format(temp, sizeof(temp), "%s%t: <font color='#8FBC8F'>%i/%i</font>\n", temp, "DMMenu_Condition_Kills", player_info[i][Kills], player_info[i][_Kills]);
}
if(player_info[i][_KillsInHead])
{
    Format(temp, sizeof(temp), "%s%t: <font color='#8FBC8F'>%i/%i</font>\n", temp, "DMMenu_Condition_KillsInHead", player_info[i][KillsInHead], player_info[i][_KillsInHead]);
}
if(player_info[i][_Death])
{
    Format(temp, sizeof(temp), "%s%t: <font color='#8FBC8F'>%i/%i</font>\n", temp, "DMMenu_Condition_Death", player_info[i][Death], player_info[i][_Death]);
}
if(player_info[i][WeaponOnly])
{
    g_smWeaponMenuNames.GetString(player_info[i][WeaponOnly], temp2, sizeof(temp2));
    Format(temp, sizeof(temp), "%s%t: <font color='#8FBC8F'>%s</font>\n", temp, "DMMenu_Condition_WeaponOnly", temp2);
}

PrintHintText(i, temp);

Попытки решения:
PHP:
Format(temp, sizeof(temp), "\t: %s\n", "DMMenu_Challenge", player_info[i][ChallengeName]);
if(player_info[i][_Kills])
{
    Format(temp, sizeof(temp), "%s%t: %i/%i\n", temp, "DMMenu_Condition_Kills", player_info[i][Kills], player_info[i][_Kills]);
}
if(player_info[i][_KillsInHead])
{
    Format(temp, sizeof(temp), "%s%t: %i/%i\n", temp, "DMMenu_Condition_KillsInHead", player_info[i][KillsInHead], player_info[i][_KillsInHead]);
}
if(player_info[i][_Death])
{
    Format(temp, sizeof(temp), "%s%t: %i/%i\n", temp, "DMMenu_Condition_Death", player_info[i][Death], player_info[i][_Death]);
}
if(player_info[i][WeaponOnly])
{
    g_smWeaponMenuNames.GetString(player_info[i][WeaponOnly], temp2, sizeof(temp2));
    Format(temp, sizeof(temp), "%s%t: %s\n", temp, "DMMenu_Condition_WeaponOnly", temp2);
}

PrintHintText(i, temp);
PHP:
stock void PrintHintText2(int iClient, const char[] sMsg)
{
    Protobuf pb = view_as<Protobuf>(StartMessageOne("HintText", iClient));
    pb.SetString("text", sMsg);
    EndMessage();
}

Версия СМ: 1.10 (1.11)
Игра: CS:GO

Буду рад помощи, с меня Best Answer)
 
Решение
Все-таки не самое лучшее решение.
Возможно есть какая-то функция, заменяющая эту или другой способ?
Вроде бы, ты читал мою тему с обходом ограничения PrintHintText. Но когда valve запретила html - то ограничения в нем осталось так же 0xFFFF, но это в чистом PrintHintText - где запрещено форматирование HTML, и по факту сейчас так нельзя (Нельзя с фиксом от фени, которые дает возможность HTML, либо я просто не знаю способов), по этому остается либо тебе сократить текст, либо пропатчить кс го клиент - и кинуть каждому игроку твоего сервера, где не будет таких ограничения :)

Rostu

Добрая душа
Сообщения
986
Реакции
623
Все-таки не самое лучшее решение.
Возможно есть какая-то функция, заменяющая эту или другой способ?
Вроде бы, ты читал мою тему с обходом ограничения PrintHintText. Но когда valve запретила html - то ограничения в нем осталось так же 0xFFFF, но это в чистом PrintHintText - где запрещено форматирование HTML, и по факту сейчас так нельзя (Нельзя с фиксом от фени, которые дает возможность HTML, либо я просто не знаю способов), по этому остается либо тебе сократить текст, либо пропатчить кс го клиент - и кинуть каждому игроку твоего сервера, где не будет таких ограничения :)
 
Решение

iSe7en

Участник
Сообщения
209
Реакции
111

Nico Yazawa

Бывший MrChester =(
Сообщения
326
Реакции
303
Вроде бы, ты читал мою тему с обходом ограничения PrintHintText. Но когда valve запретила html - то ограничения в нем осталось так же 0xFFFF, но это в чистом PrintHintText - где запрещено форматирование HTML, и по факту сейчас так нельзя (Нельзя с фиксом от фени, которые дает возможность HTML, либо я просто не знаю способов), по этому остается либо тебе сократить текст, либо пропатчить кс го клиент - и кинуть каждому игроку твоего сервера, где не будет таких ограничения :)
Да, именно твою тему)
Спасибо, будем как-то пробовать
Сообщения автоматически склеены:

Попробуй этот фикс заюзать вместо того, что используешь сейчас. Может быть больше символов влезет
Вроде бы работает по тому же принципу
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
Все-таки не самое лучшее решение.
и всё равно всё свелось к моему совету
Вроде бы работает по тому же принципу
так и есть, правда пытается отлавливать только раскрашенные хинты if(StrContains(sBuf, "<font") != -1 || StrContains(sBuf, "<span") != -1)
 

Nico Yazawa

Бывший MrChester =(
Сообщения
326
Реакции
303
и всё равно всё свелось к моему советутак и есть, правда пытается отлавливать только раскрашенные хинты if(StrContains(sBuf, "<font") != -1 || StrContains(sBuf, "<span") != -1)
Все-таки Best ansers не поделишь, но @Rostu полностью все объяснил, за что я в общем и благодарен)
 

Nico Yazawa

Бывший MrChester =(
Сообщения
326
Реакции
303
На форуме это не единожды уже обсуждалось.
Что тут объяснять-то?
Можно сказать более подробнее, все что было на форуме я использовал и не помогало (как и в данном случае, ничего не поделать)
Ты мне тоже помог с советом, но посчитал я лучшим ответом не тебя.
 

Grey83

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