求生之路2关卡设计/长途救援结局(Gauntlet 终局)
< Zh | L4D2 Level Design(Redirected from L4D2 Level Design/Gauntlet Finale/zh)
Jump to navigation
Jump to search
本简体中文页面由大康翻译。更新于2022年4月17日。

本文需要更新以包含有关该主题的当前信息。
记得在本文的讨论页上查看标记者留下的任何注释。
记得在本文的讨论页上查看标记者留下的任何注释。
求生之路2 在《教区》战役中引入了长途救援终局。该结局要求玩家逃到关卡的尽头,而救援车辆已经在等待他们,而不是让玩家在封闭的区域中待命。在教区中,玩家必须穿过一座桥才能到达救援直升机。
你可能希望遵循本文基于 c5m5_bridge.vmf 的反编译地图 。
概述
本结局(长途救援结局)主要由标准结局 组成,并进行了一些新的添加和修改:
- trigger_finale 使用“Gauntlet”作为结局类型(Finale Type)设置。
- 一个 info_target ,在地图末端靠近救援车辆的地方命名为“nav_flow_target”,但不在标有 RESCUE_VEHICLE 的导航网格上。否则它将被阻止并且不会生成导航流。
- 通常没有救援房间,但如果添加了救援房间,则应该可以使用。如果在到达终局区域之前发生了战斗,请考虑添加一个。
- 默认情况下,结局取决于 director_gauntlet.nuc 脚本,即使没有设置“脚本文件”字段。
注意:在“脚本文件”(Script File) 字段中定义不同的脚本将首先运行默认的 director_gauntlet,然后它将运行你定义的任何脚本。
长途救援结局结构不是很灵活,应考虑解决方法。在准备逃生车辆之前,只允许生成一只 Tank。"director_debug 1"显示,在 trigger_finale 第二次触发 GauntletStopPanic 时,它被认为是一个转义序列。
director_gauntlet.nuc
这是原始的 Gauntlet Finale 脚本,如果你想根据自己的目的对其进行调整。
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
// 测试进度的桥梁长度。
BridgeSpan = 20000
MobSpawnMinTime = 5
MobSpawnMaxTime = 5
MobSpawnSizeMin = 5
MobSpawnSizeMax = 20
minSpeed = 50
maxSpeed = 200
speedPenaltyZAdds = 15
CommonLimitMax = 30
function RecalculateLimits()
{
// 根据进度增加共同限制
local progressPct = ( Director.GetFurthestSurvivorFlow() / BridgeSpan )
if ( progressPct < 0.0 ) progressPct = 0.0;
if ( progressPct > 1.0 ) progressPct = 1.0;
MobSpawnSize = MobSpawnSizeMin + progressPct * ( MobSpawnSizeMax - MobSpawnSizeMin )
// 根据速度增加共同限制
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();
}
提示
Bridge Span Value (大桥跨度值)
该脚本有一个“BridgeSpan”设置,用于确定 Gauntlet 区域的长度,以便计算对抗游戏的进度。
此值以 Hammer 单位为单位,只需在 trigger_finale 一侧创建一个固实体,而另一侧是救援车辆所在的位置,就可以轻松地在 Hammer 中获取该值。
如下图所示,这个画笔实体的宽度为 20096.0 个单位。所以脚本设置为 20000 单位以使数字四舍五入。