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

$declaresequence

From Valve Developer Community
< Zh
Revision as of 23:25, 24 January 2025 by MoRanYue (talk | contribs) (chatgpt translation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)
Info content.png
This page needs to be translated.
This page either contains information that is only partially or incorrectly translated, or there isn't a translation yet.
If this page cannot be translated for some reason, or is left untranslated for an extended period of time after this notice is posted, the page should be requested to be deleted.
Also, please make sure the article complies with the alternate languages guide.(en)

$declaresequence是一个QC 命令(en),可在所有的 起源 起源 游戏中使用。 它用于提前声明一个序列

当您希望添加未在本地声明的其他序列作为层时(例如,它们实际上是外部.mdl文件的一部分,参见$includemodel),这非常有用。$declaresequence 会创建一个空的序列条目,以便本地序列指针可以设置,并且在运行时,这些引用会被实际的序列索引覆盖。

用简单的话来说:$declaresequence 可用于告诉编译器声明的序列将从$includemodel中获取,而未声明的序列将从当前编译中获取。如果通过更改已声明序列的顺序进行多人游戏的模组开发,这对于防止序列索引不匹配非常有用。
声明的序列将按$declaresequence行出现的顺序编译,而不是按原始$includemodel文件的顺序。如果您希望保留$includemodel的序列顺序而不进行任何更改,则无需使用$declaresequence。

Warning.png警告:如果您使用两个$includemodel.mdl文件,而这两个文件包含同名的序列,$declaresequence 无法区分这两个mdl文件中的动画,最终会声明它们的同名序列。
通常,如果使用$sequence,会弹出“重复序列”错误,而使用$declaresequence在编译时不会产生此错误,但可能会在游戏中看到结果。

语法

  
 $declaresequence (sequence name)

示例

如果您希望在使用$includemodel中的所有其他动画的同时替换一个模型的动画,您需要创建一个DeclareSequence.qci文件来列出所有动画。Crowbar工具可以为您生成此文件。
然后,只需注释掉您需要替换的声明序列,并用$sequence代替即可。

  
...  
$declaresequence "melee_sweep_FirstAidKit"  
$declaresequence "use_cola"  
$declaresequence "melee_sweep_cola"  

//$declaresequence "use_ammopack"  
$sequence "use_ammopack" "anims/use_ammopack_NEW" fadein 0.2 fadeout 0.2 fps 30  

$declaresequence "crouch_use_ammopack"  
$declaresequence "melee_sweep_ammopack"  
$declaresequence "Defibrillate_Incap_Standing"  
...

当然,您需要在编译QC文件中使用$includemodel和$include命令添加DeclareSequence.qci文件和$includemodel。

  
//引用原始anim_teenangst.mdl以获取动画  
$includemodel "survivors/animaTeenAngst.mdl"  
//使用declaresequence复制所有动画但替换一个(或多个)  
$include "anim_teenangst_DeclareSequence.qci"