Game text (Source)

Материал из CSM Wiki
Перейти к навигации Перейти к поиску

Оригинал [1]

Описание

Объект 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, можно считать количество сыгранных раундов.

Смотрите также