game_text
Описание
Объект game_text используется для вывода любого текста в любой точке на экране игроков.
Особенности использования
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект может быть установлен в любом месте на карте.
- На карте может быть установлено множество этих объектов
- Этот объект может выводить только английский текст.
- На экране игроков допускается выводить до 6 текстовых каналов одновременно.
- Если игрок подключится к игре после того как этот объект выведет свой текст, но в то время пока текст ещё может быть виден, то игрок не увидит текста.
Ошибки
Не обнаружены.
Заметки
Для того чтобы объект game_text работал на компьютерах игроков, у них должен быть "установлен" шрифт "CenterPrintText", с помощью которого будет выводиться текст. Соответственно, те игроки, у которых нет этого шрифта, не смогут увидеть текст, выводимый объектом game_text. Чтобы "установить" этот шрифт, нужно просто добавить несколько строк в файл: /cstrike/resource/ClientScheme.res
Содержимое этого файла может быть различаться для разных игроков, и обычно его изменяют для настройки внешнего вида игры.
Откройте этот файл при помощи блокнота. Найдите блок "Fonts" и добавьте в него новых шрифт:
CenterPrintText
{
"1"
{
"name" "Trebuchet MS"
"tall" "24"
"weight" "900"
"range" "0x0000 0x007F" // Basic Latin
"antialias" "1"
"additive" "1"
}
}
Кстати, если у вас в игре CS:S не отображаются имена игроков на мини-радаре, то чтобы это исправить нужно так же добавить ещё один новый шрифт "MapNames" в файл "ClientScheme.res". В том же самом блоке "Fonts" добавьте ещё один новый шрифт:
MapNames
{
"1"
{
"name" "Verdana"
"tall" "12"
"weight" "0"
"range" "0x0000 0x017F"
"antialias" "1"
"yres" "480 10000"
}
}
Если вы не хотите тратить время на исправление файла вручную, то можете взять уже исправленный файл "ClientScheme.res" в дополнительных файлах CSSSDK:/+files/ClientScheme.res.zip
Параметры
- Master – имя объекта multisource, который будет ограничивать работу данного объекта кнопки; если объект multisource будет "включен" то этот объект работать точно так же, как и обычно; если объект multisource будет "выключен" то этот объект будет считаться заблокированным или просто не будет работать. Однако, функции "Press" или "Use" будут работать (если они есть), а значит и будут выполняться соответствующие события при вызове этой функций;
- Message Text – текст сообщения, которое будет выводиться на экран игроков; тест сообщения может содержать только английские буквы и прочие общие символы, такие как: цифры, скобки, знаки препинания и т.д., - иначе текст не будет выведен на экран; длина текстового сообщения не должна быть больше допустимого значения; для надёжности, длина текстового сообщения не должна превышать длину 200 символов;
- Text Channel – номер текстового канала, в который будет выводить текст этот объект game_text; на экране игроков одновременно может выводиться до 6 текстовых каналов; текстовый канал – это целое число; если разные объекты game_text попытаются одновременно вывести в один и тот же текстовый канал свой текст, то на экране игрока(-ов) будет отображён текст только какого-то одного объекта game_text; чтобы разные объекты game_text могли одновременно выводить на экран свой собственный текст, укажите для этих объектов game_text разные значения этого свойства; значение этого свойства может быть любым целым числом, но рекомендуется выбирать значения от 0 до 255;
- Text Effect – тип эффекта, применяемого к тексту во время его вывода на экран:
- Fade In/Out – весь текст сначала плавно появится в течение времени "Fade In Time", затем будет оставаться на экране в течение времени "Hold Time", и затем плавно исчезнет с экрана в течение времени "Fade Out Time";
- Scan Out – текст будет выводится по одной букве/символу, в порядке следования букв в сообщении "Message Text"; каждая последующая буква будет выводиться через интервал времени "Fade In Time", затем будет ждать, пока все остальные буквы полностью не появятся, затем весь текст будет оставаться на экране в течение времени "Hold Time", и затем плавно исчезнет с экрана в течение времени "Fade Out Time"; каждая буква, при своём появлении, будет плавно менять свой цвет от "Scan Text Color" до "Text Color" в течение времени "Scan Time";
- Screen Pos X (0.0 - 1.0) – горизонтальная позиция на экране игрока(-ов), в которой будет выводиться текст "Message Text"; от 0.0 до 1.0 или -1; 0.0 – это самая правая часть экрана; 1.0 – это самая левая часть экрана; 0.5 – это середина экрана, текст выравнивается по левому краю; -1 – это середина экрана, текст выравнивается по центру и т.д.;
- Screen Pos Y (0.0 - 1.0) – вертикальная позиция на экране игрока(-ов), в которой будет выводиться текст "Message Text"; от 0.0 до 1.0 или -1; 0.0 – это самая верхняя часть экрана; 1.0 – это самая нижняя часть экрана; 0.5 – это середина экрана, текст выравнивается по верху; -1 – это середина экрана, текст выравнивается по центру и т.д.;
- Fade In Time – время, в течение которого текст будет плавно появляться на экране игроков; если значение свойства "Text Effect" равно "Scan Out", то это пауза между выводом каждой последующей буквы;
- Hold Time – пауза, по истечение времени "Fade In Time", в течение которой текст неизменно будет отображаться на экране игроков; по истечении этой паузы, текст начнёт плавно исчезать в течение времени "Fade Out Time"; если значение свойства "Text Effect" равно "Scan Out", то эта пауза начинает действовать только после вывода самой последней буквы сообщения "Message Text";
- Fade Out Time – время, в течение которого текст будет плавно исчезать с экран игроков по истечении времени "Hold Time";
- Scan Time – время, в течение которого каждая буква сообщения "Message Text" будет менять свой цвет от "Scan Text Color" до "Text Color" с момента начала своего появления; используется только если значение свойства "Text Effect" равно "Scan Out";
- Text Color – цвет текста;
- Scan Text Color – начальный цвет букв; используется только если значение свойства "Text Effect" равно "Scan Out".
Флаги
- All Players – текстовое сообщение будет выводиться для всех игроков на карте; если не установлен этот флажок, то текстовое сообщение будет выводиться только для игрока, активировавшего цепочку событий (!activator).
Карта
csssdk_game_text.vmf
Используются объекты
- game_text
- trigger_multiple
- func_detail
- env_global
- logic_auto
Описание карты
С левой стороны от места появления игрока находится область, зайдя в которую на экране игрока плавно появится текст "HELLO WORLD =) sample text", размещённый в два ряда. Для перевода текста на новую строку используется специальный неотображаемый символ переноса строки, не имеющий визуального облика. Чтобы использовать этот символ в своих картах, просто скопируйте его из карты-примера.
С правой стороны от места появления игрока находится область, зайдя в которую на экране игрока по буквам в два ряда будет выведен текст "SCAN TEXT...". Находясь в этой области, текст "SCAN TEXT..." каждые 4 секунды будет выводиться на экране игрока. Как не сложно заметить, текст накладывается сам на себя, что говорит о том, что текст может выводиться в один и тот же текстовый канал несколько раз только в том случае, если этот текст выводит один и тот же объект game_text.
Кстати, для всех объектов game_text на этой карте-примере установлен собственный номер текстового канала, что позволяет всем текстам выводиться одновременно. Можете попробовать забежать в первую область, и затем - быстро во вторую.
Обратите внимание, что на карте установлено ещё три объекта game_text. Эти объекты выводят текст в начале первых трёх раундов. Для смены раунда можете использовать консольную команду "mp_restartgame 1". В первом раунде, спустя 5 секунд с начала раунда, на экране всех игроков в левой нижней части экрана будет выведено название карты "CSSSDK GAME_TEXT". Во втором раунде там же будет выведен номер раунда "ROUND 2", а в третьем раунде - текст "CSSSDK GAME_TEXT : ROUND 3". Как не сложно заметить, выводить сообщения можно не в каждом раунде, а только в некоторых. В среднем, на серверах в интернете, где на карту отводится по 30 минут, игра длится, как правило, не больше 20 раундов, поэтому вы, как автор карты, можете использовать эти данные для вывода нужной информации в нужное время на протяжении игры. Если вы хоть раз играли в интернете на каком-либо игровом сервере Counter-Strike: Source, то скорей всего знаете, что карты на вашем компьютере могут загружаться довольно долго, а за то время, пока вы загружаете карту, другие игроки могут успеть сыграть один или два раунда. Поэтому рекомендуется начинать выводить ваши текстовые сообщения начиная, например, со второго-третьего раунда. Заметьте, что для определения номера раунда на этой карте-примере используется комбинация объектов logic_auto и env_global. Соединяя функционал объектов logic_auto и env_global, можно считать количество сыгранных раундов.
Если Вам понравилась эта страница, Вы можете разместить где-нибудь ссылку на неё: