Zh/Left 4 Dead 2/Scripting/Director Scripts: Difference between revisions
Dazainerau (talk | contribs) (→导演设置) |
Dazainerau (talk | contribs) (→通用) |
||
Line 211: | Line 211: | ||
|int | |int | ||
| | | | ||
| | |已经安全的nav区域重新填充普感的百分比机会(0-100) | ||
|- | |- | ||
|<code>DisallowThreatType</code> | |<code>DisallowThreatType</code> | ||
|int | |int | ||
| | | | ||
| | |禁止BOSS感染者在合作模式的''threat'' 区域中产生. 有效类型: <code>ZOMBIE_WITCH, ZOMBIE_TANK</code> | ||
|- | |- | ||
|<code>FallenSurvivorPotentialQuantity</code> | |<code>FallenSurvivorPotentialQuantity</code> | ||
|int | |int | ||
| | | | ||
| | |总共有多少倒地的幸存者能出生. | ||
|- | |- | ||
|<code>FallenSurvivorSpawnChance</code> | |<code>FallenSurvivorSpawnChance</code> | ||
Line 231: | Line 231: | ||
|int | |int | ||
|2500 | |2500 | ||
| | |感染者能识别人类的最大距离. | ||
|- | |- | ||
|<code>NearAcquireRange</code> | |<code>NearAcquireRange</code> |
Revision as of 00:02, 15 January 2019
求生之路2导演脚本 是主要用于影响人工智能导演系统(AI Director)的行为的 脚本. 它们被广泛用于自定义结局和尸潮事件.
用法
执行导演脚本的方式是向 info_director 实体进行输入(input). 一个导演设置
表用于给导演系统所使用的变量提供新的临时值. 其他额外的命令可以通过Director
对象访问.

输入
BeginScript <script name>
- 执行一个普通的导演脚本, 比如为了onslaught事件而设计的脚本.
EndScript
- 停止执行脚本并重置导演系统设置中的变量值.
BeginScriptedPanicEvent <script name>
- 执行一次脚本化的尸潮

BeginScriptedPanicEvent
一起使用的脚本将无法工作,即使你能在其他脚本的上下文中使用子目录. 它们必须位于vscripts文件夹下,否则它们只会简单地以1个阶段1秒的延迟运作.通常脚本与僵尸围攻
当导演系统执行BeginScript
输入时,指定的脚本便会运行,直到新的脚本被执行。或者脚本也可通过EndScript
输入来手动结束. 除非改变了导演设置,否则游戏模式照常运行。
僵尸围攻事件可以通过操纵普感和特感的数量上限以及节奏来实现。
c2m4_barns_onslaught.nut
(附注释):
Msg("Initiating Onslaught\n");
DirectorOptions <-
{
// 关闭BOSS感染者(如果真)
ProhibitBosses = false
//LockTempo = true
// 设置普感的产生时间间隔. 普感只有在节奏处于BUILD_UP状态时才会产生.
MobSpawnMinTime = 1
MobSpawnMaxTime = 1
// 每波普感产生多少僵尸.
MobMinSize = 30
MobMaxSize = 30
MobMaxPending = 30
// 修改SUSTAIN_PEAK 和 RELAX 状态的时间长度以缩短普感产生的时间间隔.
SustainPeakMinTime = 5
SustainPeakMaxTime = 10
IntensityRelaxThreshold = 0.99
RelaxMinInterval = 1
RelaxMaxInterval = 5
RelaxMaxFlowTravel = 50
//特感设置
SpecialRespawnInterval = 1.0
SmokerLimit = 2
JockeyLimit = 0
BoomerLimit = 0
HunterLimit = 2
ChargerLimit = 1
// 有效产生区域
PreferredMobDirection = SPAWN_NO_PREFERENCE
ZombieSpawnRange = 2000
}
Director.ResetMobTimer() // 将普感产生计时器归零.
Director.PlayMegaMobWarningSounds() // 即将到来的普感的音效.
结局与脚本化的尸潮事件
结局与脚本化的尸潮事件包含了数种被设置于DirectorOptions
之中的不同的阶段.
结局的导演脚本通常从 <map name>_finale.nut
中被加载. 脚本化的尸潮事件则可以从 info_director 的 BeginScriptedPanicEvent
输入中被执行.

阶段的类型有四种 (其他值会打断结局并使得玩家直接成功获救(ESCAPE)):
- PANIC - 尸潮, 数值是感染者的波数.
- TANK - 产生tank, 数值是产生坦克的数量.
- DELAY - 间歇, 数值是进入下一阶段前等待的秒数.
- SCRIPTED (也叫ONSLAUGHT) - 数值是要调用的VScript的脚本名或者"" (这样设置的的话导演系统将不做任何行为), 如果在这里乱写的话你的游戏就会崩溃. 你的脚本会负责发送
EndCustomScriptedStage
输入给导演系统 (你选择的目标, 比如某个确切的触发量, 计时器, 随机值, 等等.). trigger_finale 输入AdvanceFinaleState
应该也能工作. 否则, 尸潮事件不会结束
一个关于自定义结局脚本的例子:
ERROR <- -1
PANIC <- 0
TANK <- 1
DELAY <- 2
SCRIPTED <- 3
DirectorOptions <-
{
//-----------------------------------------------------
A_CustomFinale_StageCount = 8 // 阶段的数量. 用于计算对抗得分.
A_CustomFinale1 = PANIC
A_CustomFinaleValue1 = 2 // 两拨尸潮.
A_CustomFinale2 = DELAY
A_CustomFinaleValue2 = 12 // 延迟12秒进入下一阶段.
A_CustomFinale3 = TANK
A_CustomFinaleValue3 = 3 // 3只tank!
A_CustomFinale4 = DELAY
A_CustomFinaleValue4 = 12 // 等一段时间.
A_CustomFinale5 = SCRIPTED
A_CustomFinaleValue5 = "my_scripted_stage.nut" // 运行自定义脚本.
A_CustomFinale6 = DELAY
A_CustomFinaleValue6 = 15 // 等它个15秒.
A_CustomFinale7 = TANK
A_CustomFinaleValue7 = 1 // tank什么的可以再来一只.
A_CustomFinale8 = DELAY
A_CustomFinaleValue8 = 10 // 再撑10秒 ... 获救!
//-----------------------------------------------------
CommonLimit = 10
SpecialRespawnInterval = 25
}
function OnBeginCustomFinaleStage( num, type ) // 这个函数会在每个阶段开始时被调用.
{
printl( "Beginning custom finale stage " + num + " of type " + type );
MapScript.DirectorOptions.CommonLimit <- num * 10 // Increase commons by 10 linearly with stages.
}
智能的剧情性节奏(Adaptive Dramatic Pacing)
回调
void Update()
- If you define an
Update()
function in your Director Script, it will run repeatedly much like aThink()
function, but ONLY a finale via trigger_finale is triggered, if you have multiple scripts that are running that define it, they all will be called. The use of Update() is also found in the Bleed Out mutation (mutation3.nut), but needs further testing to see see if it behaves the same way like during a finale.
结局脚本专属
void OnBeginCustomFinaleStage(int num, int type)
- If defined, will be called on every stage change with the number, and type, this is how you would change director options between stages (spawn directions, etc).
num
refers to the finale stage number passed by the director andtype
is the stage type (PANIC, TANK, etc.).
function OnChangeFinaleMusic()
- 待完善: confirm category/working
function OnChangeFinaleStage(?)
- 待完善: confirm category/working
导演设置
DirectorOptions
表里的各种变量就是用来让你随便改的。

更多关于导演设置的信息可以查阅Steam论坛.
注意: 鉴于该区域有太多的互动方式
- 你必须小心地进行设置,以确保设置符合你所需要的结果。
- 同时,如果设置后的导演设置没有起到预期的效果,说明它们之间可能存在冲突。你需要确保你的逻辑无误或者设置一些机制来避免冲突。
注意: 绝对不要使用 = 操作符来影响导演系统. 请使用 <-. 它们的区别在于语义. 如果你用了=, 而该值又声明,则会抛出错误. 而<-, 在另一方面, 能够顺便创建不存在的数值.

通用
Name | Type | Default value | Description |
---|---|---|---|
AddToSpawnTimer
|
|||
AllowCrescendoEvents
|
bool | ||
AllowWitchesInCheckpoints
|
bool | ||
AlwaysAllowWanderers
|
bool | ||
BuildUpMinInterval
|
|||
ClearedWandererRespawnChance
|
int | 已经安全的nav区域重新填充普感的百分比机会(0-100) | |
DisallowThreatType
|
int | 禁止BOSS感染者在合作模式的threat 区域中产生. 有效类型: ZOMBIE_WITCH, ZOMBIE_TANK
| |
FallenSurvivorPotentialQuantity
|
int | 总共有多少倒地的幸存者能出生. | |
FallenSurvivorSpawnChance
|
float | [0...1] | |
FarAcquireRange
|
int | 2500 | 感染者能识别人类的最大距离. |
NearAcquireRange
|
int | 200 | The range where common infected can spot survivors in the least amount of time. |
FarAcquireTime
|
float | 5.0 | The time it takes for an infected to acquire the survivor after spotting them at maximum range. |
NearAcquireTime
|
float | 0.5 | The time it takes for an infected to acquire the survivor after spotting them at minimum range. |
GasCansOnBacks
|
bool | Puts the Hard Rain diesel cans on the survivors backs. | |
IgnoreNavThreatAreas
|
bool | Likely prevents bosses from spawning along the nav. 待完善: confirm category/working
| |
InfectedFlags
|
int | Applies flags to newly spawned infected. Valid flags are: INFECTED_FLAG_CANT_SEE_SURVIVORS, INFECTED_FLAG_CANT_HEAR_SURVIVORS, INFECTED_FLAG_CANT_FEEL_SURVIVORS
| |
IntensityRelaxAllowWanderersThreshold
|
float | ||
IntensityRelaxThreshold
|
float | All survivors must be below this intensity before a Peak is allowed to switch to Relax (in addition to the normal peak timer) | |
JournalString
|
string | 待完善: Used in holdout, seems to build some kind of table.
| |
LockTempo
|
bool | false | The horde spawning pacing consists of: BUILD_UP -> spawn horde -> SUSTAIN_PEAK -> RELAX -> BUILD_UP again. Setting LockTempo = true removes the "SUSTAIN_PEAK -> RELAX -> BUILD_UP" bit making your hordes spawn constantly without a delay. |
MobRechargeRate
|
int | Guessing it's the speed at which a mob regenerates (i.e. next mob). | |
MobSpawnMaxTime
|
int | 180-240 | Maximum time in seconds between mob spawns. Default value depends on difficulty. |
MobSpawnMinTime
|
int | 90-120 | Minimum time in seconds between mob spawns. Default value depends on difficulty. |
MusicDynamicMobScanStopSize
|
int | When fewer than this many of a mob are in play, the mob music stops. | |
MusicDynamicMobSpawnSize
|
int | 25 | Spawning a mob this large will play the mob music. |
MusicDynamicMobStopSize
|
int | When a mob gets to this size we think about stopping the mob music. | |
NumReservedWanderers
|
int | The number of wandering infected that cannot be despawned for mobs. | |
NoMobSpawns
|
bool | false | Prevents new mobs from spawning. Does not reset the timer, and already pending infected still spawn. |
PanicForever
|
int | This seems to only work in gauntlets. | |
PausePanicWhenRelaxing
|
bool | 待完善: confirm category/working
| |
PreferredMobDirection
|
int | Valid flags are: SPAWN_ABOVE_SURVIVORS, SPAWN_ANYWHERE, SPAWN_BEHIND_SURVIVORS, SPAWN_FAR_AWAY_FROM_SURVIVORS, SPAWN_IN_FRONT_OF_SURVIVORS, SPAWN_LARGE_VOLUME, SPAWN_NEAR_IT_VICTIM, SPAWN_NO_PREFERENCE
![]() SPAWN_NEAR_IT_VICTIM does not exist before a finale and will cause an error, so I'm assuming the director picks someone as IT when the finale starts. SPAWN_LARGE_VOLUME is what makes you be a mile away on DC finale. | |
PreferredMobPosition
|
Vector | 待完善: confirm category/working; used in dash
| |
PreferredMobPositionRange
|
int | 待完善: confirm category/working; used in dash
| |
PreferredSpecialDirection
|
int | ![]() PreferredMobDirection appear to work, BUT the following have also been seen, it is unknown if it's just redundancy.
SPAWN_SPECIALS_ANYWHERE, SPAWN_SPECIALS_IN_FRONT_OF_SURVIVORS | |
ProhibitBosses
|
bool | Prohibits tanks and witches from being spawned by the Director. Only functional in coop mode. | |
RelaxMaxFlowTravel
|
float | How far the survivors can advance along the flow before transitioning from RELAX to BUILD_UP. | |
RelaxMaxInterval
|
float | Maximum time to spend in the RELAX tempo. | |
RelaxMinInterval
|
float | Minimum time to spend in the RELAX tempo. | |
ShouldAllowMobsWithTank
|
bool | Whether to spawn mobs when a tank is in play. 待完善: confirm category/working; possibly finale specific
| |
ShouldAllowSpecialsWithTank
|
bool | Whether to spawn Special Infected when a tank is in play. 待完善: confirm category/working; possibly finale specific
| |
ShouldConstrainLargeVolumeSpawn
|
bool | 待完善: confirm category/working
| |
ShouldIgnoreClearStateForSpawn
|
bool | 待完善: confirm category/working
| |
SpawnBehindSurvivorsDistance
|
Appears to require PreferredSpecialDirection = SPAWN_BEHIND_SURVIVORS
| ||
SpecialInfectedAssault
|
待完善: confirm category/working
| ||
SpecialInitialSpawnDelayMax
|
float | ||
SpecialInitialSpawnDelayMin
|
float | ||
SpecialRespawnInterval
|
float | Time in seconds before a Special Infected slot can respawn an infected. | |
SurvivorMaxIncapacitatedCount
|
int | Maximum amount of survivor incapacitating before dying. | |
SustainPeakMaxTime
|
float | in minutes | |
SustainPeakMinTime
|
float | in minutes | |
TankHitDamageModifierCoop
|
float | 1.0 | (mutation1.nut Last Man on Earth) 待完善: confirm category
|
TankRunSpawnDelay
|
float | 15 | in seconds (mutation19.nut Taaannnkk!) 待完善: confirm category
|
TempHealthDecayRate
|
float | 0.27 | 0.27 is the pain_pills_decay_rate default, higher values equals quicker decay.
|
WanderingZombieDensityModifier
|
float | 1.0 | Multiplier for the amount of wandering infected. |
ZombieDiscardRange
|
int | 待完善: possibly range for despawning wanderers
| |
ZombieDontClear
|
|||
ZombieSpawnInFog
|
bool | false | Allows zombies to spawn in in line-of-sight of survivors in fogged areas. |
ZombieSpawnRange
|
float | Maximum distance from the survivors that the infected can spawn. | |
ZombieTankHealth
|
int | Sets the amount of health a tank spawns with. |
限制出生
Name | Type | Default value | Description |
---|---|---|---|
BileMobSize
|
int | Number of commons that spawn when a bile bomb is thrown. Appears to only work in finale. Found in Dead Center and The Sacrifice finales. | |
BoomerLimit
|
int | 1 | Maximum number of Boomers allowed to be in play simultaneously. |
ChargerLimit
|
int | 1 | Maximum number of chargers allowed to be in play simultaneously. |
CommonLimit
|
int | 30 | Maximum number of commons allowed to be in play simultaneously. |
DominatorLimit
|
int | Maximum number of Hunters, Smokers, Jockeys and Chargers allowed to be in play simultaneously. 待完善: confirm category/working
| |
HunterLimit
|
int | 1 | Maximum number of Hunters allowed to be in play simultaneously. |
JockeyLimit
|
int | 1 | Maximum number of Jockeys allowed to be in play simultaneously. |
MaxSpecials
|
int | 2 | Maximum number of Director spawned Special Infected allowed to be in play simultaneously. |
MegaMobSize
|
int | The amount of total infected spawned during a panic event. | |
MobMaxPending
|
int | How many infected can be left pending to spawn when the mob size is larger than CommonLimit .
| |
MobMaxSize
|
int | 30 | Maximum amount of infected that can spawn in a mob. |
MobMinSize
|
int | 10 | Minimum amount of infected that can spawn in a mob. |
MobSpawnSize
|
int | Static amount of infected in a mob. Likely overrides MobMinSize and MobMinSize .
| |
PreTankMobMax
|
int | 待完善: confirm category/working; possibly gauntlet finale specific
| |
SmokerLimit
|
bool | 1 | Maximum number of Smokers allowed to be in play simultaneously. |
SpitterLimit
|
int | 1 | Maximum number of Spitters allowed to be in play simultaneously. |
TankLimit
|
int | 1 | Maximum number of Tanks allowed to be in play simultaneously. |
WitchLimit
|
int | 1 | Maximum number of Witches allowed to be in play simultaneously.1 |
EMS阶段专属
[待完善]
See L4D2_EMS/Appendix:_Spawning_Infected
Name | Type | Default value | Description |
---|---|---|---|
PanicSpecialsOnly
|
bool | The Panic should end when we finish with Specials, not wait for the MegaMob. | |
PanicWavePauseMax
|
float | 待完善: confirm category/working
| |
PanicWavePauseMin
|
float | 待完善: confirm category/working
| |
ScriptedStageType
|
int | The type of stage to run next. See L4D2_EMS/StageTypeAppendix for a description of stage types. | |
ScriptedStageValue
|
int | Dependant on the stage type. | |
SpawnDirectionCount
|
待完善: confirm category/working
| ||
SpawnDirectionMask
|
int | A bitfield (using SPAWNDIR_N, _NE, _E , etc) of directors to spawn from _relative to_ a map entity named Compass in your map. Designed for Survival-like game modes. See L4D2_EMS/Appendix:_Spawning_Infected.
| |
SpawnSetPosition
|
Vector | The center point of the area infected can spawn in, when SpawnSetRule is set to SPAWN_POSITIONAL .
| |
SpawnSetRadius
|
int | How far from the center point infected can spawn, when SpawnSetRule is set to SPAWN_POSITIONAL .
| |
SpawnSetRule
|
int | Overrides the mode of spawning used. Seems to be non-functional in finales. Valid flags are: SPAWN_ANYWHERE, SPAWN_FINALE, SPAWN_BATTLEFIELD, SPAWN_SURVIVORS, SPAWN_POSITIONAL
| |
TotalBoomers
|
int | Number of Boomers allowed in a wave. | |
TotalChargers
|
int | Number of Chargers allowed in a wave. | |
TotalHunters
|
int | Number of Hunters allowed in a wave. | |
TotalJockeys
|
int | Number of Jockeys allowed in a wave. | |
TotalSmokers
|
int | Number of Smokers allowed in a wave. | |
TotalSpecials
|
int | Total number of Special Infected allowed in a wave. | |
TotalSpitters
|
int | Number of Spitters allowed in a wave. |
- function
void g_ModeScript::GetNextStage()
- Called by the director when it wants a new stage. It can be forced with
Director.ForceNextStage()
结局专属/相关
A normal finale consists of X number of stages. Some variables in DirectorOptions can only be used during finales. Multiple staged events can be defined in the same script, with the Options starting with A_, B_, C_ etc.
Name | Type | Default value | Description |
---|---|---|---|
A_CustomFinale_StageCount
|
int | Number of stages. Needs to be set for Versus scoring to function properly. | |
A_CustomFinaleX
|
int | Stage type (enumerated PANIC, SCRIPTED (AKA ONSLAUGHT), DELAY, TANK), where X is the stage number. Also used in scripted panic events. | |
A_CustomFinaleValueX
|
* | Value depends on the stage type above. Also used in scripted panic events. Please see the example above. | |
A_CustomFinaleMusicX
|
string | Soundscript entry to play. For instance, A_CustomFinaleMusic1 = "C2M5.BadManTank2" . Note that c2m5_concert_finale.nut does not use this method and instead opted to use entities within the map instead. In the c2m5 script A_CustomFinaleMusic4 = "" , suggesting that no song is actually played automatically via script.
| |
EnforceFinaleNavSpawnRules
|
bool | Possibly used to enforce the finale spawning behavior without running a finale. 待完善: confirm category/working
| |
HordeEscapeCommonLimit
|
Number of commons allowed in the escape stage. | ||
EscapeSpawnTanks
|
bool | Whether to spawn tanks in the escape sequence. 待完善: possibly EMS stage related
| |
MinimumStageTime
|
int | The minimum amount of time a SCRIPTED stage is allowed to run before ending. |
夹击战专属/相关
These options are specific to Gauntlet finales. Most of these can be found in director_gauntlet.nut
Name | Type | Default value | Description |
---|---|---|---|
CustomTankKiteDistance
|
int | 3000 | 待完善: confirm category/working
|
- Movement Bonus related options
- The Movement Bonus successively increases the delay between hordes when the survivors are not making progress toward the Gauntlet goal. The Current Bonus value ticks down every second, allows a horde to spawn when it reaches 0. When a horde spawns the Current Bonus is reset to the Movement Bonus value. The Movement Bonus increases at set intervals, and is reset when the survivors cross the Movement Threshold, which is then incremented. Use
director_debug 1
to see the values.
Name | Type | Default value | Description |
---|---|---|---|
GauntletMovementThreshold
|
float | The amount of flow units the survivors can advance before the Movement Bonus is reset. | |
GauntletMovementTimerLength
|
float | The interval between each Movement Bonus increase, in seconds. | |
GauntletMovementBonus
|
float | The initial value, and the amount the movement Bonus increases each interval, in seconds. | |
GauntletMovementBonusMax
|
float | The maximum value that the Movement Bonus can reach. |
对抗模式专属/相关
Name | Type | Default value | Description |
---|---|---|---|
TankHitDamageModifierVersus
|
float | 1.0 | |
ZombieGhostDelayMax
|
int | 30 | Maximum time in seconds until allowing player infected to respawn. |
ZombieGhostDelayMin
|
int | 20 | Minimum time in seconds until allowing player infected to respawn. |
清道夫模式专属/相关
Name | Type | Default value | Description |
---|---|---|---|
ScavengeClusterBonusTime
|
float | 待完善: confirm category/working
| |
ScavengeRoundInitialTime
|
float | 待完善: confirm category/working
| |
ScavengeScoreBonusTime
|
float | (used in mutation13.nut Follow the Liter) |
生还者模式专属/相关
Name | Type | Default value | Description |
---|---|---|---|
SurvivalSetupTime
|
float | (Used in mutation15.nut for Survival Versus with setup time of 90 seconds) |
突变模式专属/相关
Some of these values are mutation specific values of the global ones (cm_CommonLimit,cm_MaxSpecials, etc.), so use them if you are making a mutation, in case any map scripts are changing the global values.
Name | Type | Default value | Description |
---|---|---|---|
cm_AggressiveSpecials
|
bool | true | |
cm_AllowPillConversion
|
bool | true | Allows pills to be converted to health kits. |
cm_AllowSurvivorRescue
|
bool | ||
cm_AutoReviveFromSpecialIncap
|
bool | false | Instantly revives a survivor when incapacitated by a Special Infected. |
cm_AutoSpawnInfectedGhosts
|
bool | ||
cm_BaseCommonAttackDamage
|
|||
cm_BaseSpecialLimit
|
int | ||
cm_CommonLimit
|
int | ||
cm_DominatorLimit
|
int | ||
cm_FirstManOut
|
int | false | Ends the escape when the first survivor reaches the escape vehicle. |
cm_frustrationTimer
|
|||
cm_HeadshotOnly
|
|||
cm_HealingGnome
|
|||
cm_InfiniteFuel
|
(mutation7.nut Chainsaw Massacre) | ||
cm_MaxSpecials
|
|||
cm_NoRescueClosets
|
|||
cm_NoSurvivorBots
|
|||
cm_ProhibitBosses
|
|||
cm_ShouldEscortHumanPlayers
|
|||
cm_ShouldHurry
|
|||
cm_SingleScavengeCluster
|
Used for scavenge cans to spawn one-by-one. | ||
cm_SpecialRespawnInterval
|
|||
cm_SpecialSlotCountdownTime
|
|||
cm_SpecialsRetreatToCover
|
|||
cm_TankLimit
|
|||
cm_TankRun
|
Used in Taaank! mutation (mutation19.nut). | ||
cm_TempHealthOnly
|
|||
cm_VIPTarget
|
|||
cm_WanderingZombieDensityModifier
|
|||
cm_WitchLimit
|
无用设置
These don't seem to be read by the director.
Name | Type | Default value | Description |
---|---|---|---|
ActiveChallenge
|
bool | false | Activates mutation mode. Seems to be obsolete with the EMS update. |
MegaMobMaxSize
|
int | Maximum amount of total infected spawned during a panic event. Doesn't work 2014.04.29 | |
MegaMobMinSize
|
int | Minimum amount of total infected spawned during a panic event. Doesn't work 2014.04.29 |
钩子函数
These functions are placed in the DirectorOptions table, and get called at map load.
Function | Signature | Description |
---|---|---|
AllowWeaponSpawn
|
bool AllowWeaponSpawn(string classname)
|
Returns true or false if the given classname is allowed to spawn, used by several mutations. |
ConvertWeaponSpawn
|
string ConvertWeaponSpawn(string classname)
|
Converts a weapon spawn of given classname to another, used by several mutations. |
ConvertZombieClass
|
int ConvertZombieClass(infectedClass)
|
Converts one spawn into another, used by the Taaannnk!! mutation (mutation19.nut). |
GetDefaultItem
|
string GetDefaultItem(index)
|
Repeatedly called with incrementing indices. Return a string of a weapon name to make it a default item for survivors, or 0 to end the iteration. |
ShouldAvoidItem
|
bool ShouldAvoidItem(string classname)
|
待完善: Probably a bot related function or spawn related
|
枚举
- Director Enumerations
注意:These are (or some are) script specific, hence the duplicate values.
- ALLOW_BASH_ALL = 0
- ALLOW_BASH_NONE = 2
- ALLOW_BASH_PUSHONLY = 1
- BOT_CANT_FEEL = 4
- BOT_CANT_HEAR = 2
- BOT_CANT_SEE = 1
- BOT_CMD_ATTACK = 0
- BOT_CMD_MOVE = 1
- BOT_CMD_RESET = 3
- BOT_CMD_RETREAT = 2
- BOT_QUERY_NOTARGET = 1
- DMG_BLAST = 64
- DMG_BLAST_SURFACE = 134217728
- DMG_BUCKSHOT = 536870912
- DMG_BULLET = 2
- DMG_BURN = 8
- DMG_HEADSHOT = 1073741824
- DMG_MELEE = 2097152
- DMG_STUMBLE = 33554432
- FINALE_CUSTOM_CLEAROUT = 11
- FINALE_CUSTOM_DELAY = 10
- FINALE_CUSTOM_PANIC = 7
- FINALE_CUSTOM_SCRIPTED = 9
- FINALE_CUSTOM_TANK = 8
- FINALE_FINAL_BOSS = 5
- FINALE_GAUNTLET_1 = 0
- FINALE_GAUNTLET_2 = 3
- FINALE_GAUNTLET_BOSS = 16
- FINALE_GAUNTLET_BOSS_INCOMING = 15
- FINALE_GAUNTLET_ESCAPE = 17
- FINALE_GAUNTLET_HORDE = 13
- FINALE_GAUNTLET_HORDE_BONUSTIME = 14
- FINALE_GAUNTLET_START = 12
- FINALE_HALFTIME_BOSS = 2
- FINALE_HORDE_ATTACK_1 = 1
- FINALE_HORDE_ATTACK_2 = 4
- FINALE_HORDE_ESCAPE = 6
- HUD_FAR_LEFT = 7
- HUD_FAR_RIGHT = 8
- HUD_FLAG_ALIGN_CENTER = 512
- HUD_FLAG_ALIGN_LEFT = 256
- HUD_FLAG_ALIGN_RIGHT = 768
- HUD_FLAG_ALLOWNEGTIMER = 128
- HUD_FLAG_AS_TIME = 16
- HUD_FLAG_BEEP = 4
- HUD_FLAG_BLINK = 8
- HUD_FLAG_COUNTDOWN_WARN = 32
- HUD_FLAG_NOBG = 64
- HUD_FLAG_NOTVISIBLE = 16384
- HUD_FLAG_POSTSTR = 2
- HUD_FLAG_PRESTR = 1
- HUD_FLAG_TEAM_INFECTED = 2048
- HUD_FLAG_TEAM_MASK = 3072
- HUD_FLAG_TEAM_SURVIVORS = 1024
- HUD_LEFT_BOT = 1
- HUD_LEFT_TOP = 0
- HUD_MID_BOT = 3
- HUD_MID_BOX = 9
- HUD_MID_TOP = 2
- HUD_RIGHT_BOT = 5
- HUD_RIGHT_TOP = 4
- HUD_SCORE_1 = 11
- HUD_SCORE_2 = 12
- HUD_SCORE_3 = 13
- HUD_SCORE_4 = 14
- HUD_SCORE_TITLE = 10
- HUD_SPECIAL_COOLDOWN = 4
- HUD_SPECIAL_MAPNAME = 6
- HUD_SPECIAL_MODENAME = 7
- HUD_SPECIAL_ROUNDTIME = 5
- HUD_SPECIAL_TIMER0 = 0
- HUD_SPECIAL_TIMER1 = 1
- HUD_SPECIAL_TIMER2 = 2
- HUD_SPECIAL_TIMER3 = 3
- HUD_TICKER = 6
- INFECTED_FLAG_CANT_FEEL_SURVIVORS = 32768
- INFECTED_FLAG_CANT_HEAR_SURVIVORS = 16384
- INFECTED_FLAG_CANT_SEE_SURVIVORS = 8192
- IN_ATTACK = 1
- IN_ATTACK2 = 2048
- IN_BACK = 16
- IN_CANCEL = 64
- IN_DUCK = 4
- IN_FORWARD = 8
- IN_JUMP = 2
- IN_LEFT = 512
- IN_RELOAD = 8192
- IN_RIGHT = 1024
- IN_USE = 32
- SCRIPTED_SPAWN_BATTLEFIELD = 2
- SCRIPTED_SPAWN_FINALE = 0
- SCRIPTED_SPAWN_POSITIONAL = 3
- SCRIPTED_SPAWN_SURVIVORS = 1
- SCRIPT_SHUTDOWN_EXIT_GAME = 4
- SCRIPT_SHUTDOWN_LEVEL_TRANSITION = 3
- SCRIPT_SHUTDOWN_MANUAL = 0
- SCRIPT_SHUTDOWN_ROUND_RESTART = 1
- SCRIPT_SHUTDOWN_TEAM_SWAP = 2
- SPAWNDIR_E = 4
- SPAWNDIR_N = 1
- SPAWNDIR_NE = 2
- SPAWNDIR_NW = 128
- SPAWNDIR_S = 16
- SPAWNDIR_SE = 8
- SPAWNDIR_SW = 32
- SPAWNDIR_W = 64
- SPAWN_ABOVE_SURVIVORS = 6
- SPAWN_ANYWHERE = 0
- SPAWN_BATTLEFIELD = 2
- SPAWN_BEHIND_SURVIVORS = 1
- SPAWN_FAR_AWAY_FROM_SURVIVORS = 5
- SPAWN_FINALE = 0
- SPAWN_IN_FRONT_OF_SURVIVORS = 7
- SPAWN_LARGE_VOLUME = 9
- SPAWN_NEAR_IT_VICTIM = 2
- SPAWN_NEAR_POSITION = 10
- SPAWN_NO_PREFERENCE = -1
- SPAWN_POSITIONAL = 3
- SPAWN_SPECIALS_ANYWHERE = 4
- SPAWN_SPECIALS_IN_FRONT_OF_SURVIVORS = 3
- SPAWN_SURVIVORS = 1
- SPAWN_VERSUS_FINALE_DISTANCE = 8
- STAGE_CLEAROUT = 4
- STAGE_DELAY = 2
- STAGE_ESCAPE = 7
- STAGE_NONE = 9
- STAGE_PANIC = 0
- STAGE_RESULTS = 8
- STAGE_SETUP = 5
- STAGE_TANK = 1
- TIMER_COUNTDOWN = 2
- TIMER_COUNTUP = 1
- TIMER_DISABLE = 0
- TIMER_SET = 4
- TIMER_STOP = 3
- TRACE_MASK_ALL = -1
- TRACE_MASK_NPC_SOLID = 33701899
- TRACE_MASK_PLAYER_SOLID = 33636363
- TRACE_MASK_SHOT = 1174421507
- TRACE_MASK_VISIBLE_AND_NPCS = 33579137
- TRACE_MASK_VISION = 33579073
- UPGRADE_EXPLOSIVE_AMMO = 1
- UPGRADE_INCENDIARY_AMMO = 0
- UPGRADE_LASER_SIGHT = 2
- ZOMBIE_BOOMER = 2
- ZOMBIE_CHARGER = 6
- ZOMBIE_HUNTER = 3
- ZOMBIE_JOCKEY = 5
- ZOMBIE_NORMAL = 0
- ZOMBIE_SMOKER = 1
- ZOMBIE_SPITTER = 4
- ZOMBIE_TANK = 8
- ZOMBIE_WITCH = 7
- ZSPAWN_MOB = 10
- ZSPAWN_MUDMEN = 12
- ZSPAWN_WITCHBRIDE = 11