允许在字符串中使用任意纹理 / 颜色

搬运自workshop.codes,链接:https://workshop.codes/wiki/articles/tx-fg-textures-and-colors-in-strings

在《守望先锋》中,纹理和带颜色的文本分别通过一种特殊代码来表示,即 <TX> 代码和 <FG> 代码。通常情况下,Workshop 会对字符串中的这些代码进行清理(sanitization)。本文将介绍一种绕过这一检查的方法,从而允许在字符串中使用任意纹理 / 颜色。

感谢 Zezombye 发现了这种方法!

目录

实现

下面这段代码可以让你使用一个存储在变量中的、经过转义的 < 字符。(或者使用国服代码导入:Q4NQC)

变量
{
	全局:
		0: Left_Parenthesis
}

规则("Setup <­tx> / <­fg> Code")
{
	事件
	{
		持续 - 全局;
	}

	动作
	{
		生成机器人(全部英雄, 队伍2, 假, 空, 空);
		开始为机器人强制设置名称(最后创建的实体, 自定义字符串("­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­〼"));
		全局.Left_Parenthesis = 字符串分割(首个(最后创建的实体), 空数组);
		开始为机器人强制设置名称(最后创建的实体, 自定义字符串("­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ࡀ"));
		全局.Left_Parenthesis = 截取字符串(字符串替换(自定义字符串("­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­〼"), 全局.Left_Parenthesis,
			首个(最后创建的实体)), 63, 真);
		移除所有机器人;
		创建HUD文本(本地玩家, 自定义字符串("{0}fgF0FF00FF>你好 {0}tx0C00000000005A0B> {0}fgA992C7FF>世界", 全局.Left_Parenthesis), 空, 空, 左边, 100, 颜色(白色), 颜色(白色), 颜色(白色), 可见, 始终不可见);
	}
}

通过使用一个机器人来保存经过转义的 < 字符。随后创建一段 HUD Text,并将这个字符作为 <TX> 和 <FG> 代码的一部分使用。

预览

机制

为了防止 <TX> 和 <FG> 代码被直接使用,Workshop 会在字符串中加入反斜杠进行清理处理,将 < 替换为 \<。引擎正是通过这种方式来区分普通文本和真正的纹理代码。

机器人名称的长度限制为 127 字节,并且在超出限制时会直接截断字符串,不考虑字符串内容的具体结构。

我们可以通过 开始为机器人强制设置名称 动作来修改机器人名称。

用途

<TX> 代码

<TX> 代码可以在字符串中显示纹理,例如各种图标。

<TX> 代码的格式为:

<tx[0C]>

其中 [0C] 是一个 16 位十六进制字符串,例如:

<tx0C0000000002DD5D>

查看代码参考:

TX Reference Sheet

在游戏中查看全部代码:

TX Browser

<FG> 代码

<FG> 代码可以在字符串中改变文本颜色,例如:

"<fg6C48C5FF>Hello World!"

<FG> 代码的格式为:

<fg[RR][GG][BB][AA]>

其中 [RR][GG][BB][AA] 是由 4 个颜色通道组成的十六进制颜色值。

例如:

<fg6C48C5FF>

对应的 RGBA 颜色值为:

(108, 72, 197, 255)

其他信息

  • 截至 2025 年 8 月 8 日,这种方法尚未被修复。(版本 2.17.1.1 - 140729)
  • <TX> 和 <FG> 代码最初被修复,是为了防止玩家滥用这些代码导致其他玩家游戏崩溃。
  • 在 第 17 赛季推出时,游戏曾出现过一个类似的全局漏洞:游戏无法正确地对这些代码进行清理。这一问题已经在 2025 年 8 月 5 日的补丁中修复。

译者注

1、TX 代码会频繁地随着游戏更新而失效,文章中提到的TX Browser的大部分资源已无法使用,感兴趣可以去体验一下。

外服导入代码:8B9H1;国服导入代码:QD82H

2、TX / FG 代码疑似只能使用于 持续 - 全局 ,不接受事件玩家,也不能储存在变量中。如在其他文本处调用 全局.A = 自定义字符串("{0}fgF0FF00FF>你好", 全局.Left_Parenthesis);并不会使“你好”变成黄色。

3、对应颜色的 FG 代码可以直接询问任意AI。

评论
这里空空如也~
这里空空如也~