Zh/Game text: Difference between revisions
< Zh
Jump to navigation
Jump to search
(Created page with "{{LanguageBar}} Category:GUI Entities {{CD|CGameText|file1=maprules.cpp}} {{tabs|game_text|goldsrc=1|source=2|main=source}} left|link= {{this is a|point entity|name=game_text|except-multi={{L4d2|4}}}}{{ref|1}} 此实体用于在玩家屏幕上显示文本,并且不像{{ent|env_message}}使用<code>titles.txt</code>文件内预置的文本{{confirm}},此实体的文本内容可以直接在Hammer中定义。在多人游戏中,此实体...") |
m (→输出: Substituted IO templates) |
||
(4 intermediate revisions by one other user not shown) | |||
Line 27: | Line 27: | ||
== 键值 == | == 键值 == | ||
{{KV Targetname}} | {{KV Targetname}} | ||
{{KV|Message Text|intn=message|string| | {{KV|Message Text|intn=message|string|需要在屏幕上显示的文本,<tt>\n</tt>表示文本中另起一横的部分}} | ||
:{{bug| | :{{bug|Hammer会自动将反斜杠替换为正斜杠,使得无法使用<tt>\n</tt><!-- | ||
-->{{workaround|<ul><!-- | -->{{workaround|<ul><!-- | ||
--><li> | --><li>使用文本编辑器修改VMF,但每次保存之后都要重复该步骤<!-- | ||
--><li> | --><li>使用十六进制编辑器修改BSP的实体数据块,但每次编译之后都要重复该步骤<!-- | ||
--><li> | --><li>使用[[AddOutput]]来传递文本内容,因为输出不受此影响</ul>}}<!-- | ||
-->{{tip|{{hammerpp|2}} | -->{{tip|{{hammerpp|2}}不会这样}} }} | ||
{{KV|X (0 - 1.0 {{=}} left to right) (-1 centers)|intn=x|string| | {{KV|X(0 - 1.0 {{=}} left to right) (-1 centers)|intn=x|string|文本在玩家屏幕上的水平位置,值应介于0和1之间。0为屏幕最左侧,1为屏幕最右侧,-1为居中}} | ||
{{KV|Y (0 - 1.0 {{=}} top to bottom) (-1 centers)|intn=y|string| | {{KV|Y (0 - 1.0 {{=}} top to bottom) (-1 centers)|intn=y|string|文本在玩家屏幕上的垂直位置,值应介于0和1之间。0为屏幕最上方,1为屏幕最下方,-1为居中}} | ||
{{KV|Text Effect|intn=effect|choices| | {{KV|Text Effect|intn=effect|choices|文本的渲染效果}} | ||
:*0: | :*0: 淡入/淡出。整个文本逐渐显示,然后逐渐消失 | ||
:*1: | :*1: 致谢名单。{{todo|用途不明,似乎和淡入淡出一样,需要更多信息}} | ||
:*2: | :*2: 逐字显示。文本逐字显示,然后整个文本淡出 | ||
{{KV|Color1|intn=color|color255| | {{KV|Color1|intn=color|color255|文本所使用的主要颜色。{{note|颜色值似乎被添加到游戏背景中,所以纯白或纯黑背景下会导致文本不可见}} {{note|对于不通过Hammer内创建的实体,其默认值为黑色}} }} | ||
{{KV|Color2|intn=color2|color255| | {{KV|Color2|intn=color2|color255|当''Text Effect''类型为''逐字显示(Scan Out)''时,则该值为字符完全显示前使用的颜色,通常使用与Color1不同的颜色。}} | ||
{{KV|Fade in Time (or character scan time)|intn=fadein|string| | {{KV|Fade in Time (or character scan time)|intn=fadein|string|文本完全淡入(或逐字显示所需)所需的时间。}} | ||
{{KV|Fade Out Time|intn=fadeout|string| | {{KV|Fade Out Time|intn=fadeout|string|停留时间过后,文本淡出所需的时间。}} | ||
{{KV|Hold Time|intn=holdtime|string| | {{KV|Hold Time|intn=holdtime|string|文本在淡入之后和开始淡出之前应在屏幕上停留的时间。{{note|对于不通过Hammer内创建的实体,其默认值为0}}}} | ||
{{KV|Scan time (scan effect only)|intn=fxtime|string| | {{KV|Scan time (scan effect only)|intn=fxtime|string|当''Text Effect''类型为''逐字显示(Scan Out)''时,则该值为完全显示所有字符所需的时间}} | ||
{{KV|Text Channel|intn=channel|choices| | {{KV|Text Channel|intn=channel|choices|最多可以在屏幕上显示六条单独的<tt>game_text</tt>文本,这些文本被储存在指定的频道中,此键值定义文本应在哪个频道显示,这将覆盖频道中任何已有的文本信息}} | ||
:*0: Channel 0 | :*0: Channel 0 (可能用于部分HUD元素) {{Not in FGD}} | ||
:*1: Channel 1 | :*1: Channel 1 | ||
:*2: Channel 2 ({{portal2}} | :*2: Channel 2 ({{portal2}} 小号文本) | ||
:*3: Channel 3 ({{portal2}} | :*3: Channel 3 ({{portal2}} 大号文本) | ||
:*4: Channel 4 | :*4: Channel 4 | ||
:*5: Channel 5 | :*5: Channel 5 (可能用于部分HUD元素) {{Not in FGD}} | ||
{{warning| | {{warning|部分HUD元素可能使用频道0或5}} | ||
{{KV|Master|intn=master|string| | {{KV|Master|intn=master|string|旧版支持:主实体的名称。如果主实体尚未激活,则此实体不会激活。}} | ||
== | == 输出 == | ||
{{ | {{I|Display|显示文本信息{{note|如果未在Flags中勾选All Players,则玩家必须得是{{ent|!activator}}才能看见文本}}}} | ||
{{ | {{I|SetText|设置要显示的文本|param=string|since={{as}}}} | ||
{{tip|{{ent|AddOutput|message}} | {{tip|在不支持<tt>SetText</tt>的旧游戏中,可以使用{{ent|AddOutput|message}}来修改文本内容,但是必须得重新触发<code>Display</code>来更新文本}} | ||
{{ | {{I|SetPosX|设置文本的水平位置 (0 - 1.0 {{=}}从左到右) (-1为居中)|param=float|since={{portal2}}}} | ||
{{ | {{I|SetPosY|设置文本的垂直位置. (0 - 1.0 {{=}}从上到下) (-1为居中)|param=float|since={{portal2}}}} | ||
{{ | {{I|SetTextColor|设置文本的主颜色|param=color255|since={{portal2}}}} | ||
{{ | {{I|SetTextColor2|设置文本的过渡颜色|param=color255|since={{portal2}}}} | ||
== | == 参加 == | ||
* {{ent|game_text_tf}} - {{tf2}} | * {{ent|game_text_tf}} - {{tf2}}在指定团队的屏幕上显示带有图标的自定义HUD文本 | ||
* {{ent|point_worldtext}} - {{tf2}}{{csgo}} | * {{ent|point_worldtext}} - {{tf2}}{{csgo}}一个类似的实体,以更大的灵活性在游戏内显示自定义文本 | ||
* {{ent|training_annotation}} - {{tf2}} | * {{ent|training_annotation}} - {{tf2}}一个类似的实体,指向游戏上的指定位置 | ||
* {{ent|env_hudhint}} - | * {{ent|env_hudhint}} - 显示自定义HUD文本。通常用于显示按键绑定 | ||
* {{ent|env_message}} - | * {{ent|env_message}} - 在玩家屏幕上显示预置的文本 | ||
* {{ent|point_message}} - | * {{ent|point_message}} - 一个类似的实体,在游戏内的特定位置显示一条小型自定义文本 | ||
* [[Customizable triggered HUD-message]] - | * [[Customizable triggered HUD-message]] - 如何创建一个类似于<tt>game_text</tt>但可以通过触发输入接收消息字符串的新实体。 | ||
== | == 注释与外部引用 == | ||
# [https://forums.alliedmods.net/showthread.php?t=340355 | # [https://forums.alliedmods.net/showthread.php?t=340355 在L4D2中,该功能无法使用。以下是该问题的技术说明] |
Latest revision as of 14:04, 21 April 2025
![]() |
---|
CGameText |
![]() |

game_text
是一个点实体 ,可在所有的 起源 游戏,除了
求生之路2中使用。[1]
此实体用于在玩家屏幕上显示文本,并且不像env_message使用
titles.txt
文件内预置的文本[证实],此实体的文本内容可以直接在Hammer中定义。在多人游戏中,此实体通常只会向触发“Display”输出的触发者显示文本。通过勾选“All Players” Flag可以给所有玩家显示文本

titles.txt
脚本内预置的键值作为文本参数,这样无需重新编译地图即可更改文本。不像game_text
实体,其还可以使用双引号与换横符
game_text
在大部分起源游戏都支持使用多语言文本(例如#HL2_Chapter4_Title)
注意事项
Game_text
作为HUD元素的一部分渲染的,更准确的说,是/scripts/HudLayout.txt
里的HudMessage元素。
由于历史遗留问题,该实体最初是为低分辨率显示器创建的,所以默认情况下被限制为基于640x480分辨率进行缩放
这会导致分辨率高于1920x1080时出现缩放问题,文本会变得更大,并且一部分文本会被隐藏
该问题还会导致仅适用屏幕的部分区域进行文本绘制,并且长行文本或屏幕边缘附近的文本在宽屏上会被裁剪。这回影响其他适用HudMessage元素渲染的文本,比如经典的“A. I. Disabled”提示


/scripts/HudLayout.txt
并找到"HudMessage"部分,修改"wide"
和"tall"
的值(默认分别为640和480)为“f0”(显示器的完整尺寸)。这将增加文本出现的不可见VGUI屏幕的最大尺寸,使其扩展到 1920x1080 分辨率以上.[仅在2K、4K和带鱼屏上进行测试,尚不确认是否适用于所有分辨率]选项
- All Players : [1]
- 如未勾选,则仅向!activator显示文本
键值
- Name (目标名称) <target_source>[ Edit ]
- 这个名称是其他实体通过 输入/输出 或其他 关键值 (如
parentname
或target
) 来引用该实体时使用的标识符。
该名称也会显示在 Hammer 编辑器的 2D 视图和 实体报告 中。参见: 所有实体均可使用的 通用键值、输入与输出
- Message Text (message) <字符串 >
- 需要在屏幕上显示的文本,\n表示文本中另起一横的部分
- X(0 - 1.0 = left to right) (-1 centers) (x) <字符串 >
- 文本在玩家屏幕上的水平位置,值应介于0和1之间。0为屏幕最左侧,1为屏幕最右侧,-1为居中
- Y (0 - 1.0 = top to bottom) (-1 centers) (y) <字符串 >
- 文本在玩家屏幕上的垂直位置,值应介于0和1之间。0为屏幕最上方,1为屏幕最下方,-1为居中
- Text Effect (effect) <choices>
- 文本的渲染效果
- 0: 淡入/淡出。整个文本逐渐显示,然后逐渐消失
- 1: 致谢名单。待完善: 用途不明,似乎和淡入淡出一样,需要更多信息
- 2: 逐字显示。文本逐字显示,然后整个文本淡出
- Color1 (color) <color255 >
- 文本所使用的主要颜色。
注意:颜色值似乎被添加到游戏背景中,所以纯白或纯黑背景下会导致文本不可见
注意:对于不通过Hammer内创建的实体,其默认值为黑色
- Color2 (color2) <color255 >
- 当Text Effect类型为逐字显示(Scan Out)时,则该值为字符完全显示前使用的颜色,通常使用与Color1不同的颜色。
- Fade in Time (or character scan time) (fadein) <字符串 >
- 文本完全淡入(或逐字显示所需)所需的时间。
- Fade Out Time (fadeout) <字符串 >
- 停留时间过后,文本淡出所需的时间。
- Hold Time (holdtime) <字符串 >
- 文本在淡入之后和开始淡出之前应在屏幕上停留的时间。
注意:对于不通过Hammer内创建的实体,其默认值为0
- Scan time (scan effect only) (fxtime) <字符串 >
- 当Text Effect类型为逐字显示(Scan Out)时,则该值为完全显示所有字符所需的时间
- Text Channel (channel) <choices>
- 最多可以在屏幕上显示六条单独的game_text文本,这些文本被储存在指定的频道中,此键值定义文本应在哪个频道显示,这将覆盖频道中任何已有的文本信息

- Master (master) <字符串 >
- 旧版支持:主实体的名称。如果主实体尚未激活,则此实体不会激活。
输出
- Display
- 显示文本信息
注意:如果未在Flags中勾选All Players,则玩家必须得是!activator才能看见文本
- SetText <字符串 > (存在于自
以来)
- 设置要显示的文本

Display
来更新文本- SetPosX <浮点型 > (存在于自
以来)
- 设置文本的水平位置 (0 - 1.0 =从左到右) (-1为居中)
- SetPosY <浮点型 > (存在于自
以来)
- 设置文本的垂直位置. (0 - 1.0 =从上到下) (-1为居中)
- SetTextColor <color255 > (存在于自
以来)
- 设置文本的主颜色
- SetTextColor2 <color255 > (存在于自
以来)
- 设置文本的过渡颜色
参加
- game_text_tf -
在指定团队的屏幕上显示带有图标的自定义HUD文本
- point_worldtext -
一个类似的实体,以更大的灵活性在游戏内显示自定义文本
- training_annotation -
一个类似的实体,指向游戏上的指定位置
- env_hudhint - 显示自定义HUD文本。通常用于显示按键绑定
- env_message - 在玩家屏幕上显示预置的文本
- point_message - 一个类似的实体,在游戏内的特定位置显示一条小型自定义文本
- Customizable triggered HUD-message - 如何创建一个类似于game_text但可以通过触发输入接收消息字符串的新实体。