Left 4 Dead 2

Left 4 Dead 2

Special Infected Synchronization (AI+)
Showing 21-30 of 54 entries
< 1  2  3  4  5  6 >
Update: 6 May, 2024 @ 10:00pm

WARNING: The new directory for the configuration files will be located at `~/ems/sisync-ai+/...` instead of being included in an additional `cfg` folder. To transfer your settings, move the `convars.txt` and `settings.txt` file out of the `cfg` folder and simply place them in the `sisync-ai+` folder.

Additions
  • Added the `OverrideSpecialDirection` option to the `settings.txt` file which determines whether to allow the `PreferredSpecialDirection` option to override the variable set by the `SessionOptions` table.
Changes
  • Added an `if` statement in the `ConfigInitiate()` function to not forcefully set the `ShouldConstrainLargeVolumeSpawn` variable if the `PreferredSpecialDirection` option is neither `9` nor `SPAWN_LARGE_VOLUME`.
  • Added `IsValid()` to more `foreach` functions to reduce the odds of encountering index errors.
  • Simplified the folder structure in the `ems` directory to make it a bit easier to manage.
Bug Fixes
  • Added `tostring()` to the end of `SISync.Settings.ProhibitBosses` in the `ConfigInitiate` function to fix an issue where the `ProhibitBosses` variable might not be changed.

Update: 7 Apr, 2024 @ 3:00am

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

Bug Fixes
  • Added the missing functions for modifying the `SICount` variable. This fixes a bug where the special infected would occasionally be desynchronized.

Update: 22 Mar, 2024 @ 3:00pm

Changes
  • Changed some command variables for Hunter, Jockey, and Tank to their intended values.
  • Called some more tables and functions with local variables to improve performance.

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 `PreventUnfairSpawns` option to `settings.txt` which prevents the special infected from spawning if a cutscene is playing or if the survivors are still in the safe area.
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.
  • Removed a few command variables from `convars.txt` as they didn't affect gameplay in any major way.

Update: 14 Feb, 2024 @ 8:00pm

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.
  • Increased the minimum and maximum initial spawn delay to `30` and `60` seconds respectively.
  • Increased the minimum respawn timer to `45` seconds.
  • Modified the command variables to make the special infected attack more efficiently.
  • Removed the functions and variables that modified the maximum special infected so the Director can control it instead.
Bug Fixes
  • 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

Changes
  • Moved all the `OnGameEvent` functions to `sisync-ai+_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.
  • Reworked the `ReduceSIDuringTank` option to also work with the `cm_MaxSpecials` variable.
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 the `OnGameEvent` functions to make use of `CollectEventCallbacks` and moved `IncludeScript("sisync-ai+")` into the `ScriptMode_Init` function. This should reduce the chance of other add-ons conflicting with this one.

Update: 14 Dec, 2023 @ 7:25pm

Changes
  • Set the `OverrideMobDirection` variable to `false` by default as it made some crescendo events not play out as they were originally intended.