这篇条目有关 Source引擎。如需详情,点击这里。

AddOutput

From Valve Developer Community
< Zh
Revision as of 00:01, 27 June 2025 by WoShiGeNiCheng (talk | contribs) (Created page with "{{LanguageBar|AddOutput|title=AddOutput输入}} {{TabsBar|main=s2|base=AddOutput}} {{This is a|input|name=AddOutput}} 主要用于为实体的现有{{L|output}}注册额外动作,即"添加"输出。 语法: <syntaxhighlight lang=text><输出> <目标>:[输入]:[参数覆盖]:[延迟]:[触发次数(-1或0=无限,1=一次...)]</syntaxhighlight> * < > = 必填参数 * [ ] = 可选参数(若省略后续参数可不写冒号) * 输出 - 实体已有的输出项 *...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
English (en)Русский (ru)中文 (zh)Translate (Translate)

AddOutput是一个input,可在所有的 起源 起源 游戏中使用。 主要用于为实体的现有output(en)注册额外动作,即"添加"输出。

语法:

<输出> <目标>:[输入]:[参数覆盖]:[延迟]:[触发次数(-1或0=无限,1=一次...)]
  • < > = 必填参数
  • [ ] = 可选参数(若省略后续参数可不写冒号)
  • 输出 - 实体已有的输出项
  • 目标 - 目标实体targetname(en)(支持!caller等特殊目标名)
  • 输入 - 目标实体要触发的输入(留空则使用Use输入)
  • 参数覆盖 - 覆盖参数(留空则使用输出默认值)
  • 延迟 - 延迟秒数(留空为0)
  • 触发次数 - 最大触发次数(留空为-1)

示例

现有名为countermath_counter(en)实体。

trigger_once(en)中的配置示例:

My output named:                OnStartTouch
Target entities named:          counter
Via this input:                 AddOutput
With a parameter override of:   OutValue car:skin

以下写法等效:

  • OutValue car:skin
  • OutValue car:skin:::
  • OutValue car:skin::0:-1
Warning.png警告:在Hammer中切勿使用引号字符("),否则会导致地图编译错误。建议使用或双撇号''替代。

修改键值

AddOutput也可修改实体键值,语法: <键> <值>

Tip.png提示:过度使用AddOutput会降低地图可读性,建议仅在必要时使用。
Cpp.png代码:标准键值修改应使用DEFINE_INPUT(en)定义

特殊键值限制

classname
仅影响部分运行时检查,不会真正改变实体类型
Warning.png警告:在支持存档的游戏中修改classname可能导致严重错误
parentname
父子关系仅在实体生成时建立,运行时修改无效
ambient_generic(en)的SourceEntityName
仅在实体生成时生效

限制

  • 无法添加使用AddContext(en)的输出
  • 冒号会被自动转换为逗号
  • 含空格的键值/输出无法修改

通过ent_fire(en)使用

添加输出:

ent_fire <实体名> addoutput "<输出> <目标>:[输入]:[参数]:[延迟]:[次数]"

修改键值:

ent_fire <实体名> addoutput "<键> <值>"

应用案例

1. 动态修改game_text(en)并显示:

OnStartTouch "game_text,AddOutput,message 前方有火情,请绕行!,0,1"
OnStartTouch "game_text,Display,,0.02,1"

2. 为回合计时器添加结束事件:

OnMapSpawn "team_round_timer_red,AddOutput,OnFinished game_round_win:RoundWin::0:-1,0,-1"

3. 实现玩家透明度变化:

OnStartTouch "!activator,AddOutput,rendermode 1"
OnStartTouch "!activator,Alpha,120,0"
OnEndTouch "!activator,Alpha,255,0.1"

参见