Zh/L4D2 Level Design/Custom Finale: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
(add gauntlet finale script)
Line 2,729: Line 2,729:
}
}


</source>}}
</source>}}
===director_gauntlet.nuc (为所有长途救援结局共享)===
{{ExpandBox:zh-cn|<source lang=js>
Msg("Initiating Gauntlet\n");
DirectorOptions <-
{
PanicForever = true
PausePanicWhenRelaxing = true
IntensityRelaxThreshold = 0.99
RelaxMinInterval = 25
RelaxMaxInterval = 35
RelaxMaxFlowTravel = 400
LockTempo = 0
SpecialRespawnInterval = 20
PreTankMobMax = 20
ZombieSpawnRange = 3000
ZombieSpawnInFog = true
MobSpawnSize = 5
CommonLimit = 5
GauntletMovementThreshold = 500.0
GauntletMovementTimerLength = 5.0
GauntletMovementBonus = 2.0
GauntletMovementBonusMax = 30.0
// length of bridge to test progress against.
BridgeSpan = 20000
MobSpawnMinTime = 5
MobSpawnMaxTime = 5
MobSpawnSizeMin = 5
MobSpawnSizeMax = 20
minSpeed = 50
maxSpeed = 200
speedPenaltyZAdds = 15
CommonLimitMax = 30
function RecalculateLimits()
{
//Increase common limit based on progress 
    local progressPct = ( Director.GetFurthestSurvivorFlow() / BridgeSpan )
   
    if ( progressPct < 0.0 ) progressPct = 0.0;
    if ( progressPct > 1.0 ) progressPct = 1.0;
   
    MobSpawnSize = MobSpawnSizeMin + progressPct * ( MobSpawnSizeMax - MobSpawnSizeMin )
//Increase common limit based on speed 
    local speedPct = ( Director.GetAveragedSurvivorSpeed() - minSpeed ) / ( maxSpeed - minSpeed );
    if ( speedPct < 0.0 ) speedPct = 0.0;
    if ( speedPct > 1.0 ) speedPct = 1.0;
    MobSpawnSize = MobSpawnSize + speedPct * ( speedPenaltyZAdds );
   
    CommonLimit = MobSpawnSize * 1.5
   
    if ( CommonLimit > CommonLimitMax ) CommonLimit = CommonLimitMax;
   
}
}
function Update()
{
DirectorOptions.RecalculateLimits();
}
</source>}}
</source>}}



Revision as of 17:27, 25 March 2022

English (en)中文 (zh)Translate (Translate)

本页面由大康翻译于2022年1月2日。部分内容由机器翻译。


Template:L4D2 level intro menu:zh-cn

求生之路2 自定义结局会自动从包含阶段列表的脚本(VScript)中读取:<地图名称>_finale.nut。该系统具有在满足任意条件(即终极感染者、Aztec tomb puzzles、feats of strength 等)时增强结局阶段的能力。一旦所有阶段都完成,trigger_finale 会触发 FinaleEscapeStarted 输出。

自定义结局地图包括 c2m5_concert、c3m4_plantation、c4m5_milltown_escape、c7m3_port,假设求生之路1的结局也一样(毫不留情已被确认是使用自定义结局的)。官方地图不使用Standard(标准) 结局类型。

组成内容

地图

最起码,所有需要改变的是 trigger_finale 的 Finale Type (结局类型),从StandardCustom。你还应该考虑其他选项和细节:

  • 除非通过脚本 EntFire(直接或间接)或简单地在游戏中使用 I/O 为导演提供输入 EndCustomScriptedStage,否则猛攻(Onslaught)阶段类型不会结束。
  • info_director: 在自定义结局事件时,OnCustomPanicStageFinished, OnPanicEventFinished (也许只是为了渐强事件),和 OnUserDefinedScriptEvent(1-4) 输出可用,链接到 vscript 阶段状态或方法,如 .UserDefinedEvent1()-.UserDefinedEvent4().
  • trigger_finale: AdvanceFinaleState 输入可用。

脚本

正如 L4D2 脚本文章中所讨论的,有四种阶段类型、附加的自定义结局特定导演选项和可用的特殊功能。

以下是带有附加注释的自定义结局脚本:

c2m5_concert_finale.nut



牺牲结局

牺牲结局基于自定义结局,并在牺牲更新中引入了额外的硬编码修改。

Template:Todo:zh-cn

c7m3_port_finale.nut

这比其他自定义结局更复杂,但本质上是为了自定义体验。该脚本表明牺牲结局类型主要取决于新的游戏内实体和实体功能。



解密的官方结局脚本

这是所有的结局脚本,于 2021 年 8 月 2 日解密。
这些尚未修改以提供任何附加信息,某些部分可能会造成混淆。

c1m4_atrium_finale.nuc


c1m4_finale_wave_1.nuc


c1m4_delay.nuc


c2m5_concert_finale.nuc


c3m4_plantation_finale.nuc


c4m5_milltown_escape_finale.nuc


c6m3_port_finale.nuc


c7m3_port_finale.nuc


c8m5_rooftop_finale.nuc


c9m2_lots_finale.nuc


c10m5_houseboat_finale.nuc


c11m5_runway_finale.nuc


c12m5_cornfield_finale.nuc


c14m1_lighthouse_finale.nuc


c14m2_lighthouse_finale.nuc


</source>}}

director_gauntlet.nuc (为所有长途救援结局共享)



另请参阅

介绍

文档

其他


求生之路2关卡设计/长途救援结局 返回到 求生之路2关卡设计