Left 4 Dead 2

Left 4 Dead 2

Special Infected Synchronization (Competitive)
Showing 91-100 of 134 entries
< 1 ... 8  9  10  11  12 ... 14 >
Update: 7 Apr, 2024 @ 3:00am

Additions
  • Added the `DynamicSpecialTimer` option to the `settings.txt` file which reduces the respawn timer depending on the amount of survivors currently alive.
Bug Fixes
  • Removed the `PreventUnfairSpawns` requirement for the `HasAnySurvivorLeftSafeArea()` function to prevent the special infected from spawning as soon as a survivor leaves the safe area.

Update: 6 Apr, 2024 @ 5:00pm

Additions
  • Added the `DynamicSpecialCount` option to the `settings.txt` file which reduces the `MaxSpecials` variable depending on the amount of survivors currently alive.
  • Added the `MSSCollisionForwardUnits` option to the `settings.txt` file which moves the start of the next traceline forward by the specified amount of units whenever it collides with a player or infected.
Changes
  • Made some changes to how tracelines interact with players or infected that are too close to each other to improve performance.

Update: 23 Mar, 2024 @ 1:00am

Changes
  • Added another check to the `if` statement in the `TeleportSpecials` function to see if the special infected exists in the `StuckSpecials` table. This prevents special infected from spawning on top of those that are stuck.
  • Called the `SmokerPullingSurvivor` function from the `if` statement in the `StuckCheck` function to determine if a Smoker is pulling a survivor before deciding whether to remove the tables. This prevents the Smoker from teleporting/dying even though he isn't stuck.
  • The respawn timer is now reset when a special infected is automatically killed if they're determined to be stuck.
Bug Fixes
  • Changed the variable that goes in the `StuckSpecialsTime` table from `si` to `Time()`. This fixes a fatal error that would occur if the special infected were to successfully teleport to another special infected's current position.

Update: 22 Mar, 2024 @ 3:00pm

Additions
  • Added the `MSSRelocateFarSpecials`, `MSSRelocateRange`, and `MSSRelocateInterval` options to the `settings.txt` file which lets the special infected teleport to the survivors if they are further than the range set by the `MSSRelocateRange` option.
  • Added the `EnableCustomSpecialLimits` option which allows each individual special infected limit to be modified in the `settings.txt` file.
  • Added the `EnableSpecialAbilityCheck` option to the `settings.txt` file which determines how long the special infected aren't allowed to use their abilities after they spawn.
  • Added the `EnableSpecialStuckCheck` option to the `settings.txt` file which determines if the special infected are unable to move for a specified amount of time.
Changes
  • Reworked the `StuckCheck` function to have the stuck special infected respawn on top of other special infected like in Versus. If they cannot find any special infected to spawn onto, then they're killed outright.
  • Moved some statements around in the `OnGameEvent_player_spawn` function so the `AbilityCheck` and `StuckCheck` functions can work without having to enable the `EnableManualSpecialSpawn` option.
  • Called some more tables and functions with local variables to improve performance.
  • Renamed the `ModifySpecialLimits` option to `ModifyMaxSpecials` to differentiate it from `EnableCustomSpecialLimits`.
  • Removed some traceline functions to improve performance.
Bug Fixes
  • Added an additional statement in the `ManualSpawnCheck` function that prevents the special infected from spawning on navigation meshes containing elevator attributes. This prevents them from clipping into elevators.
  • Changed the ID of the `StuckSpecials` and `StuckSpecialsTime` tables from obtaining navigation meshes to specials. This allows the `StuckCheck` function to work properly.
  • Used the `HasPlayerControlledZombies()` function to determine if it returns true instead of checking to see if the game mode is Versus. This prevents the Smoker and Hunter from doing more damage than normal if any game mode allows special infected to be controlled by a player.
  • Added another `foreach` loop to the `SmokerCheck` function so the `TakeDamage` function can find the correct special infected. This prevents some add-ons from accidentally interacting with survivors that are dominated by Smokers.

Update: 28 Feb, 2024 @ 5:00pm

Additions
  • Added the `AllowAgressiveSpecials` option to `settings.txt` which determines whether specials will behave more aggressively when they spawn. This mostly applies to Tanks.
  • Added the `OptimizeTankPriority` option to `settings.txt` which only optimizes the Tank's priority as opposed to letting the `OptimizeSpecialPriority` affect all playable special infected.
  • Added the `MSSNavTakenProximity` option to `settings.txt` which determines how close the special infected are allowed to spawn next to each other.
Changes
  • Added local variables for functions that create tables for survivors and special infected. This improves performance by having the `foreach` statements only call the functions once as opposed to running the functions per player.
  • Added two more tracelines for the center of the bounding box which checks to see if the survivors have line-of-sight. This should reduce the chances of the special infected spawning within the survivors' vision.
  • Reworked the collision check to let the tracelines form an `X` in two directions from top to bottom as opposed to only forming an `X` at the very top of the bounding box while tracing a single line from top to bottom. This should reduce the odds of the special infected getting stuck in geometry.
  • Reworked the `PriorityCheck` function by splitting it into separate functions and making each special infected focus on the closest available survivor instead of changing their target priority when a survivor is either covered in vomit, dominated by another special infected, or incapacitated.
  • Reworked the `SmokerCheck` function so the smoker's tongue can do damage while pulling survivors even if they get stuck on a wall for a brief moment.
  • Increased the default value for `MSSNavMaxTrace` to `50` thanks to the performance optimizations.
  • Allowed the tracemask functions to convert the string variables for `MSSTraceMaskCollision` and `MSSTraceMaskVision` to integers. This allows compatible strings to be used to determine the type of tracemasks the functions will perform.
  • Renamed `PreventEarlySpawns` to `PreventUnfairSpawns` and also made it affect cutscenes for those that prefer vanilla behavior.
  • Increased the default minimum and maximum respawn interval to `28` and `32` respectively.
  • Removed a few command variables from `convars.txt` as they didn't affect gameplay in any major way.
Bug Fixes
  • Returned null for the `ManualSpawnCheck` function if the survivor count is `0`. This prevents a fatal error from occurring if all players are dead.
  • Added `IsPlayerABot(player)` to the start of some `foreach` statements which prevents the functions from affecting players who are playing as special infected.
  • Allowed some function calls in the `Update()` function to run before the safe area statement. This should prevent some options like `SpecialAbilityDelay` from breaking in case any of the survivors are in the safe area.

Update: 14 Feb, 2024 @ 8:00pm

Additions
  • Added `ManualSpecialSpawnEnable` and its related options to the `settings.txt` file which allows the `ManualSpawnCheck` function to control where the special infected will spawn. A list of its related options can be viewed in this thread.
  • Added `EnablePounceDamage` to the `settings.txt` file which determines whether the Hunter can apply extra damage to a pounced survivor based on the height he lunged from.
  • Added `EnableTongueDamage` to the `settings.txt` file which determines whether the Smoker's tongue does extra damage while a survivor is being pulled.
  • Added `ModifyChargeHealth` to the `settings.txt` file which decreases Charger's health to its base value whenever he uses his charge ability.
  • Added `OptimizeSpecialPriority` to the `settings.txt` file which aims to make the special infected prioritize survivors that are not covered in vomit and are neither incapacitated nor dominated by special infected.
  • Added `SkipTankCelebration` to the `settings.txt` file which allows the Tank to skip his celebration animations whenever he hits a survivor.
  • Added `SpecialAbilityDelay` to the `settings.txt` file which prevents the special infected from using their abilities for a specified amount of time once they spawn.
Changes
  • Replaced the `Director.IsPlayingIntro()` function with the `SISync.CanSurvivorsMove()` function which checks to see if the survivors' flags are set to `FL_FROZEN`. This will allow any in-game cutscene that prevents the survivors from moving to not spawn special infected during that time.
  • Changed the `SmokerPullTime` variable to a table so it can save the current time for each individual Smoker. This prevents potential conflicts if multiple Smokers are pulling the survivors at the same time.
  • Increased the `FlowDistanceFromSafeArea` option to `1500` to make it less likely for survivors to camp in the safe area at the start of each chapter.
  • Modified the command variables to make the special infected attack more efficiently.
Bug Fixes
  • Fixed a potential error that could occur when an invalid survivor entity is found in the `DamageCheck` function.
  • Set the `MaxSpecials` and `cm_MaxSpecials` variables to a fixed number rather than changing them to `0` whenever the special infected are not allowed to spawn. This allows team switching to work as intended.

Update: 31 Dec, 2023 @ 1:00pm

Additions
  • Added a new option named `FlowDistanceFromSafeArea` to `~/ems/sisync-comp/cfg/settings.txt`. This determines the maximum range the survivors are allowed to be away from the safe area without allowing the special infected to spawn if at least one survivor is still in the safe area.
Changes
  • Moved all the `OnGameEvent` functions to `sisync-comp_events.nut` and added an `IncludeScript` that directly calls this file. This simply makes the code more organized.
Bug Fixes
  • Used the `Director.ResetSpecialTimers()` after setting the `SessionOptions.cm_SpecialRespawnInterval` variable to `0` when the special infected are ready to spawn. This prevents the special infected from spawning prematurely if a campaign decides to use the `cm_MaxSpecials` variable mid-game.
  • Used the `SISync.InitialSpawnTime` instead of the `SessionOptions.SpecialInitialSpawnDelayMin` and `SessionOptions.SpecialInitialSpawnDelayMax` variables for determining the initial spawn delay. This allows the initial spawn delay to be reset and prevents the special infected from spawning if the intro is currently playing and the survivors haven't left the safe area.
  • Used the `SISync.AllowAggressiveSpecials` variable to only set the `SessionOptions.cm_AggressiveSpecials` variable to `true` if the intro isn't playing and the survivors have left the safe area. This prevents the special infected in custom campaigns such as Glubtastic 2 from rushing down the survivors.
  • Added the `SISync.cm_MSMissing` variable in the `try/catch` statement to determine whether the `cm_MaxSpecials` variable is missing. This fixes a bug where the special infected wouldn't be synchronized if the `SessionOptions.MaxSpecials` variable wasn't set to `0` first.

Update: 25 Dec, 2023 @ 4:00pm

Changes
  • Allowed the `SISync.Events.OnGameEvent_player_death` function to call the `SISync.ReduceSpecials()` function whenever a special infected is killed instead of letting it be called in the `SISync.RespawnCheck` function whenever a special infected has spawned. This should allow more special infected to spawn in case the total special infected currently active hasn't reached the `MaxSpecials` variable yet.
  • Replaced the `ReduceSIDuringTank` option with `MaxSpecialsTank` to determine how many special infected to spawn while a Tank is active.
  • Removed the command variables which modified the `SUSTAIN PEAK` and `RELAX` tempo and added the `SessionOptions.AlwaysAllowWanderers` variable in the `if (SISync.Settings.AlwaysAllowSpawns)` statement instead. This should make it more convenient to allow the special infected to spawn regardless of the survivor's intensity.
Bug Fixes
  • Removed the `MapOptions` table and moved a few of its variables to the `SISync.ConfigInitiate` function. This fixes an issue where the variables in the `MapOptions` table such as `cm_AggressiveSpecials` and `ShouldAllowSpecialsWithTank` weren't being utilized.

Update: 17 Dec, 2023 @ 3:30pm

Changes
  • Modified numerous command variables to remove the `SUSTAIN PEAK` and `RELAX` tempo so the special infected can still spawn.
  • Modified the `OnGameEvent` functions to make use of `CollectEventCallbacks` and moved `IncludeScript("sisync-comp")` into the `ScriptMode_Init` function. This should reduce the chance of other add-ons conflicting with this one.
Bug Fixes
  • Fixed a bug where the special limits would always divide the `SISync.Settings.MaxSpecials` variable by 3 even when it's lower than or equal to 6.

Update: 15 Dec, 2023 @ 7:30am

Bug Fixes
  • Allowed the `NavEdit` function to keep the `BATTLESTATION` spawn attributes intact. This should allow SurvivorBots that make use of these spawn attributes to function properly (such as Francis and Zoey in the finale of The Passing).