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

$declaresequence

From Valve Developer Community
< Zh
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 tries to comply with the alternate languages guide.

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

当需要添加未在本地声明的其他序列作为层级(例如这些序列实际属于外部.mdl文件时,参见$includemodel(en)),此命令非常有用。$declaresequence 会创建一个空序列条目,使得本地序列指针可以被设置。在运行时,这些引用会被实际的序列索引覆盖。

简而言之:$declaresequence 可用于告知编译器,已声明的序列将从$includemodel(en)中获取,而未声明的序列则来自当前编译。这对多人游戏模组中通过调整声明顺序来防止序列索引错位非常有效。
声明序列将按照$declaresequence行的出现顺序编译,而非原$includemodel文件中的顺序。若需完全保留$includemodel的原始序列顺序且不作任何修改,则无需使用$declaresequence。

Warning.png警告:若使用两个包含同名序列的$includemodel(en).mdl文件,$declaresequence 将无法区分具体声明哪个模型的动画,最终会以相同名称同时声明两者。
通常使用$sequence(en)时会弹出"重复序列"错误,但使用declaresequence编译时不会报错,但游戏中可能出现异常表现。

语法

 $declaresequence (序列名称)

示例

若需替换模型中的一个动画,同时保留$includemodel(en)中的其他动画,需创建DeclareSequence.qci文件列出所有动画。Crowbar(en)工具可自动生成该文件。
然后只需注释掉目标声明序列,并添加$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"
...

最后需要通过$includemodel和$include命令将declaresequence.qci文件与模型包含进编译QC文件:

//引用原始anim_teenangst.mdl获取动画
$includemodel "survivors/animaTeenAngst.mdl"
//通过声明序列保留所有动画并替换指定部分
$include "anim_teenangst_DeclareSequence.qci"