Game text (Source): различия между версиями
Kogemyaka (обсуждение | вклад) |
Kogemyaka (обсуждение | вклад) |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 11: | Строка 11: | ||
== Ошибки == | == Ошибки == | ||
{{sdk noer}} | {{sdk noer}} | ||
− | == | + | == Заметки == |
Для того чтобы объект game_text работал на компьютерах игроков, у них должен быть "установлен" шрифт "CenterPrintText", с помощью которого будет выводиться текст. Соответственно, те игроки, у которых нет этого шрифта, не смогут увидеть текст, выводимый объектом game_text. Чтобы "установить" этот шрифт, нужно просто добавить несколько строк в файл: ''/cstrike/resource/ClientScheme.res'' | Для того чтобы объект game_text работал на компьютерах игроков, у них должен быть "установлен" шрифт "CenterPrintText", с помощью которого будет выводиться текст. Соответственно, те игроки, у которых нет этого шрифта, не смогут увидеть текст, выводимый объектом game_text. Чтобы "установить" этот шрифт, нужно просто добавить несколько строк в файл: ''/cstrike/resource/ClientScheme.res'' | ||
− | |||
Содержимое этого файла может быть различаться для разных игроков, и обычно его изменяют для настройки внешнего вида игры. | Содержимое этого файла может быть различаться для разных игроков, и обычно его изменяют для настройки внешнего вида игры. | ||
− | |||
Откройте этот файл при помощи блокнота. Найдите блок "Fonts" и добавьте в него новых шрифт: | Откройте этот файл при помощи блокнота. Найдите блок "Fonts" и добавьте в него новых шрифт: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <source lang=cpp> | ||
+ | CenterPrintText | ||
+ | { | ||
+ | "1" | ||
+ | { | ||
+ | "name" "Trebuchet MS" | ||
+ | "tall" "24" | ||
+ | "weight" "900" | ||
+ | "range" "0x0000 0x007F" // Basic Latin | ||
+ | "antialias" "1" | ||
+ | "additive" "1" | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
Кстати, если у вас в игре CS:S не отображаются имена игроков на мини-радаре, то чтобы это исправить нужно так же добавить ещё один новый шрифт "MapNames" в файл "ClientScheme.res". В том же самом блоке "Fonts" добавьте ещё один новый шрифт: | Кстати, если у вас в игре CS:S не отображаются имена игроков на мини-радаре, то чтобы это исправить нужно так же добавить ещё один новый шрифт "MapNames" в файл "ClientScheme.res". В том же самом блоке "Fonts" добавьте ещё один новый шрифт: | ||
− | + | <source lang=cpp> | |
− | + | MapNames | |
− | + | { | |
− | + | "1" | |
− | + | { | |
− | + | "name" "Verdana" | |
− | + | "tall" "12" | |
− | + | "weight" "0" | |
− | + | "range" "0x0000 0x017F" | |
− | + | "antialias" "1" | |
− | + | "yres" "480 10000" | |
− | + | } | |
− | + | } | |
− | + | </source> | |
− | |||
− | |||
Если вы не хотите тратить время на исправление файла вручную, то можете взять уже исправленный файл "ClientScheme.res" в дополнительных файлах CSSSDK: ''/+files/ClientScheme.res.zip'' | Если вы не хотите тратить время на исправление файла вручную, то можете взять уже исправленный файл "ClientScheme.res" в дополнительных файлах CSSSDK: ''/+files/ClientScheme.res.zip'' | ||
== Параметры == | == Параметры == | ||
+ | {{sdk param master}} | ||
+ | |||
+ | *'''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, можно считать количество сыгранных раундов. | ||
== Смотрите также == | == Смотрите также == | ||
+ | *[[env_hudhint]] | ||
+ | *[[logic_auto]] | ||
+ | *[[env_global_(Source)]] | ||
+ | *[[multisource_(Source)]] | ||
[[Категория:Source Point entity]] | [[Категория:Source Point entity]] | ||
[[Категория:CSS SDK]] | [[Категория:CSS SDK]] | ||
[[Категория:Game-энтити]] | [[Категория:Game-энтити]] |
Текущая версия на 18:34, 14 октября 2009
Оригинал [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, можно считать количество сыгранных раундов.