Skip to content

Commit

Permalink
Updated Mutation files
Browse files Browse the repository at this point in the history
l4d1.nut:

- Disabled water slowdown for L4D1 Survival.

community5.nut (Death's Door):

- Enabled B&W state when under 25% health.
- Medkits are no longer converted into pills.

mutation15.nut (Versus Survival):

- Made it auto-trigger any outputs on the entity used to start Survival if the pre-round timer expires.

mutation19.nut (Taaannnk!!):

- Players no longer need to wait for incapped Survivors in order to progress at areas like elevators.

tankrun.nut:

- The first map of a Campaign will now spawn two Tier 1 weapons near the start area if no other Tier 1's are nearby.
- Made it so Survivors are auto-revived instantly when incapacitated or hanging from a ledge.
- Car alarms will now spawn a Tank if triggered.
- Disabled water slowdown for all maps.
- Set Survivor revive health to 50.
  • Loading branch information
Rayman1103 committed Sep 18, 2021
1 parent 3d7e0a9 commit 26bc4e3
Show file tree
Hide file tree
Showing 12 changed files with 582 additions and 268 deletions.
2 changes: 1 addition & 1 deletion left4dead2/modes/l4d1coop.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
z_gun_swing_coop_max_penalty 999999999
z_gun_swing_coop_min_penalty 999999999
z_max_survivor_damage 100
z_tank_autoshotgun_dmg_scale 0.75
z_tank_autoshotgun_dmg_scale 1
z_use_tolerance 0.98
}
}
2 changes: 1 addition & 1 deletion left4dead2/modes/l4d1survival.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
z_female_boomer_spawn_chance 100
z_finale_spawn_safety_range 600
z_max_survivor_damage 100
z_tank_autoshotgun_dmg_scale 0.75
z_tank_autoshotgun_dmg_scale 1
z_use_tolerance 0.98
}
}
1 change: 1 addition & 0 deletions left4dead2/modes/tankrun.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
pipe_bomb_timer_duration 1
survivor_allow_crawling 1
survivor_revive_duration 3
survivor_revive_health 50
tank_burn_duration 20
tank_burn_duration_expert 30
tank_burn_duration_hard 25
Expand Down
40 changes: 14 additions & 26 deletions left4dead2/scripts/vscripts/community1.nut
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,9 @@ MutationState <-

function LeftSafeAreaThink()
{
local player = null;
while ( player = Entities.FindByClassname( player, "player" ) )
for ( local player; player = Entities.FindByClassname( player, "player" ); )
{
if ( ( !player.IsValid() ) || ( NetProps.GetPropInt( player, "m_iTeamNum" ) != 2 ) )
if ( NetProps.GetPropInt( player, "m_iTeamNum" ) != 2 )
continue;

if ( ResponseCriteria.GetValue( player, "instartarea" ) == "0" )
Expand All @@ -118,27 +117,21 @@ function LeftSafeAreaThink()
SessionState.LeftSafeAreaThink = false;
break;
}
else
continue;
}
}

function OnGameEvent_round_start_post_nav( params )
{
local spawner = null;
while ( spawner = Entities.FindByClassname( spawner, "info_zombie_spawn" ) )
for ( local spawner; spawner = Entities.FindByClassname( spawner, "info_zombie_spawn" ); )
{
if ( spawner.IsValid() )
{
local population = NetProps.GetPropString( spawner, "m_szPopulation" );

if ( population == "boomer" || population == "hunter" || population == "smoker" || population == "jockey"
|| population == "charger" || population == "spitter" || population == "new_special" || population == "church"
|| population == "tank" || population == "witch" || population == "witch_bride" || population == "river_docks_trap" )
continue;
else
spawner.Kill();
}
local population = NetProps.GetPropString( spawner, "m_szPopulation" );

if ( population == "boomer" || population == "hunter" || population == "smoker" || population == "jockey"
|| population == "charger" || population == "spitter" || population == "new_special" || population == "church"
|| population == "tank" || population == "witch" || population == "witch_bride" || population == "river_docks_trap" )
continue;
else
spawner.Kill();
}

if ( Director.GetMapName() == "c1m1_hotel" )
Expand All @@ -155,8 +148,7 @@ function OnGameEvent_player_left_safe_area( params )
if ( !player )
return;

local instartarea = ResponseCriteria.GetValue( player, "instartarea" );
if ( instartarea == "1" )
if ( ResponseCriteria.GetValue( player, "instartarea" ) == "1" )
{
SessionOptions.cm_MaxSpecials = 0;
SessionState.LeftSafeAreaThink = true;
Expand Down Expand Up @@ -248,11 +240,7 @@ function Update()
LeftSafeAreaThink();
if ( Director.GetCommonInfectedCount() > 0 )
{
local infected = null;
while ( infected = Entities.FindByClassname( infected, "infected" ) )
{
if ( infected.IsValid() )
infected.Kill();
}
for ( local infected; infected = Entities.FindByClassname( infected, "infected" ); )
infected.Kill();
}
}
20 changes: 8 additions & 12 deletions left4dead2/scripts/vscripts/community2.nut
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ DirectorOptions <-
ChargerLimit = 0
JockeyLimit = 0

ProhibitBosses = 1 //tanks still spawn at finales though
ProhibitBosses = true //tanks still spawn at finales though
MegaMobSize = 0

// convert items that aren't useful
Expand All @@ -38,17 +38,13 @@ DirectorOptions <-

function OnGameEvent_round_start_post_nav( params )
{
local spawner = null;
while ( spawner = Entities.FindByClassname( spawner, "info_zombie_spawn" ) )
for ( local spawner; spawner = Entities.FindByClassname( spawner, "info_zombie_spawn" ); )
{
if ( spawner.IsValid() )
{
local population = NetProps.GetPropString( spawner, "m_szPopulation" );

if ( population == "boomer" || population == "spitter" || population == "church" || population == "river_docks_trap" )
continue;
else
spawner.Kill();
}
local population = NetProps.GetPropString( spawner, "m_szPopulation" );

if ( population == "boomer" || population == "spitter" || population == "church" || population == "river_docks_trap" )
continue;
else
spawner.Kill();
}
}
56 changes: 52 additions & 4 deletions left4dead2/scripts/vscripts/community5.nut
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ DirectorOptions <-
{
ActiveChallenge = 1

cm_ShouldHurry = 1
cm_AllowPillConversion = 0
cm_AllowSurvivorRescue = 0
cm_ShouldHurry = true
cm_AllowPillConversion = false
cm_AllowSurvivorRescue = false
SurvivorMaxIncapacitatedCount = 0

weaponsToConvert =
{
weapon_first_aid_kit = "weapon_pain_pills_spawn"
//weapon_first_aid_kit = "weapon_pain_pills_spawn"
weapon_adrenaline = "weapon_pain_pills_spawn"
}

Expand Down Expand Up @@ -52,6 +52,54 @@ DirectorOptions <-
}
}

function OnGameEvent_player_hurt_concise( params )
{
local player = GetPlayerFromUserID( params["userid"] );

if ( (!player) || (!player.IsSurvivor()) )
return;

if ( NetProps.GetPropInt( player, "m_bIsOnThirdStrike" ) == 0 && player.GetHealth() < (player.GetMaxHealth() / 4) )
{
player.SetReviveCount( 0 );
NetProps.SetPropInt( player, "m_isGoingToDie", 1 );
}
}

function CheckHealthAfterLedgeHang( userid )
{
local player = GetPlayerFromUserID( userid );
if ( (!player) || (!player.IsSurvivor()) )
return;

if ( player.GetHealth() < (player.GetMaxHealth() / 4) )
{
player.SetReviveCount( 0 );
NetProps.SetPropInt( player, "m_isGoingToDie", 1 );
}
}

function OnGameEvent_revive_success( params )
{
local player = GetPlayerFromUserID( params["subject"] );

if ( (!params["ledge_hang"]) || (!player) || (!player.IsSurvivor()) )
return;

if ( NetProps.GetPropInt( player, "m_bIsOnThirdStrike" ) == 0 )
EntFire( "worldspawn", "RunScriptCode", "g_ModeScript.CheckHealthAfterLedgeHang(" + params["subject"] + ")", 0.1 );
}

function OnGameEvent_bot_player_replace( params )
{
local player = GetPlayerFromUserID( params["player"] );

if ( (!player) || (NetProps.GetPropInt( player, "m_bIsOnThirdStrike" ) == 1) )
return;

StopSoundOn( "Player.Heartbeat", player );
}

function Update()
{
DirectorOptions.RecalculateHealthDecay();
Expand Down
122 changes: 64 additions & 58 deletions left4dead2/scripts/vscripts/l4d1.nut
Original file line number Diff line number Diff line change
Expand Up @@ -92,77 +92,83 @@ function OnGameEvent_round_start_post_nav( params )
EntFire( wep + "_spawn", "Kill" );
foreach( wep, val in DirectorOptions.weaponsToConvert )
{
local wep_spawner = null;
while ( wep_spawner = Entities.FindByClassname( wep_spawner, wep + "_spawn" ) )
for ( local wep_spawner; wep_spawner = Entities.FindByClassname( wep_spawner, wep + "_spawn" ); )
{
if ( wep_spawner.IsValid() )
local spawnTable =
{
local spawnTable =
{
origin = wep_spawner.GetOrigin(),
angles = wep_spawner.GetAngles().ToKVString(),
targetname = wep_spawner.GetName(),
count = NetProps.GetPropInt( wep_spawner, "m_itemCount" ),
spawnflags = NetProps.GetPropInt( wep_spawner, "m_spawnflags" )
}
wep_spawner.Kill();
SpawnEntityFromTable(val, spawnTable);
origin = wep_spawner.GetOrigin(),
angles = wep_spawner.GetAngles().ToKVString(),
targetname = wep_spawner.GetName(),
count = NetProps.GetPropInt( wep_spawner, "m_itemCount" ),
spawnflags = NetProps.GetPropInt( wep_spawner, "m_spawnflags" )
}
wep_spawner.Kill();
SpawnEntityFromTable(val, spawnTable);
}
}

if ( SessionState.ModeName == "l4d1coop" || SessionState.ModeName == "l4d1vs" )
if ( Director.IsL4D1Campaign() )
{
if ( SessionState.MapName == "c8m5_rooftop" || SessionState.MapName == "c9m2_lots" || SessionState.MapName == "c10m5_houseboat"
|| SessionState.MapName == "c11m5_runway" || SessionState.MapName == "c12m5_cornfield" )
{
local finale = Entities.FindByClassname( null, "trigger_finale" );
if ( finale )
NetProps.SetPropInt( finale, "m_type", 0 );
}
else if ( SessionState.MapName == "c10m4_mainstreet" )
{
local relay = Entities.FindByName( null, "forklift_relay" );
if ( relay )
{
EntityOutputs.RemoveOutput( relay, "OnTrigger", "director", "BeginScript", "c10m4_onslaught" );
EntityOutputs.AddOutput( relay, "OnTrigger", "director", "ForcePanicEvent", "", 9.0, -1 );
}
EntFire( "onslaught1", "Kill" );
}
else if ( SessionState.MapName == "c11m4_terminal" )
DirectorOptions.WaterSlowsMovement <- false;

if ( SessionState.ModeName == "l4d1coop" || SessionState.ModeName == "l4d1vs" )
{
local van = Entities.FindByName( null, "van_button" );
if ( van )
{
EntityOutputs.RemoveOutput( van, "OnPressed", "@director", "", "" );
EntityOutputs.AddOutput( van, "OnPressed", "@director", "ForcePanicEvent", "", 3.0, -1 );
}
local relay = Entities.FindByName( null, "alarm_on_relay" );
if ( relay )
if ( IsMissionFinalMap() )
{
EntityOutputs.RemoveOutput( relay, "OnTrigger", "@director", "", "" );
EntityOutputs.RemoveOutput( relay, "OnTrigger", "alarm_safety_relay", "", "" );
EntityOutputs.AddOutput( relay, "OnTrigger", "@director", "ForcePanicEvent", "", 0.0, -1 );
EntityOutputs.AddOutput( relay, "OnTrigger", "alarm_off_relay", "Trigger", "", 15.0, -1 );
if ( SessionState.MapName != "c7m3_port" )
{
local finale = Entities.FindByClassname( null, "trigger_finale" );
if ( finale )
NetProps.SetPropInt( finale, "m_type", 0 );
}
}
EntFire( "van_follow_trigger", "Kill" );
EntFire( "van_endscript_relay", "Kill" );
EntFire( "onslaught_hint_trigger", "Kill" );
}
else if ( SessionState.MapName == "c12m3_bridge" )
{
local relay = Entities.FindByName( null, "train_engine_relay" );
if ( relay )
else
{
EntityOutputs.RemoveOutput( relay, "OnTrigger", "director", "BeginScript", "c12m3_onslaught" );
EntityOutputs.AddOutput( relay, "OnTrigger", "director", "ForcePanicEvent", "", 2.0, -1 );
if ( SessionState.MapName == "c10m4_mainstreet" )
{
local relay = Entities.FindByName( null, "forklift_relay" );
if ( relay )
{
EntityOutputs.RemoveOutput( relay, "OnTrigger", "director", "BeginScript", "c10m4_onslaught" );
EntityOutputs.AddOutput( relay, "OnTrigger", "director", "ForcePanicEvent", "", 9.0, -1 );
}
EntFire( "onslaught1", "Kill" );
}
else if ( SessionState.MapName == "c11m4_terminal" )
{
local van = Entities.FindByName( null, "van_button" );
if ( van )
{
EntityOutputs.RemoveOutput( van, "OnPressed", "@director", "", "" );
EntityOutputs.AddOutput( van, "OnPressed", "@director", "ForcePanicEvent", "", 3.0, -1 );
}
local relay = Entities.FindByName( null, "alarm_on_relay" );
if ( relay )
{
EntityOutputs.RemoveOutput( relay, "OnTrigger", "@director", "", "" );
EntityOutputs.RemoveOutput( relay, "OnTrigger", "alarm_safety_relay", "", "" );
EntityOutputs.AddOutput( relay, "OnTrigger", "@director", "ForcePanicEvent", "", 0.0, -1 );
EntityOutputs.AddOutput( relay, "OnTrigger", "alarm_off_relay", "Trigger", "", 15.0, -1 );
}
EntFire( "van_follow_trigger", "Kill" );
EntFire( "van_endscript_relay", "Kill" );
EntFire( "onslaught_hint_trigger", "Kill" );
}
else if ( SessionState.MapName == "c12m3_bridge" )
{
local relay = Entities.FindByName( null, "train_engine_relay" );
if ( relay )
{
EntityOutputs.RemoveOutput( relay, "OnTrigger", "director", "BeginScript", "c12m3_onslaught" );
EntityOutputs.AddOutput( relay, "OnTrigger", "director", "ForcePanicEvent", "", 2.0, -1 );
}
EntFire( "zombie_spawn1", "Kill" );
EntFire( "onslaught_hint_template", "Kill" );
}
else if ( SessionState.MapName == "c12m4_barn" )
EntFire( "window_trigger", "Kill" );
}
EntFire( "zombie_spawn1", "Kill" );
EntFire( "onslaught_hint_template", "Kill" );
}
else if ( SessionState.MapName == "c12m4_barn" )
EntFire( "window_trigger", "Kill" );
}
}

Expand Down
Loading

0 comments on commit 26bc4e3

Please sign in to comment.