Left 4 Dead 2

Left 4 Dead 2

Special Infected Synchronization (Competitive)
Showing 81-90 of 130 entries
< 1 ... 7  8  9  10  11 ... 13 >
Update: 4 Jul, 2024 @ 10:00am

Additions
  • Added the `SluggishIntensityPercent` option to the `settings.txt` file which determines whether a survivor's intensity has reached a certain percentage before taking their current health into consideration.
  • Added the `WaitForValidAreas` option to the `manualspecialspawn.txt` file which attempts to find a valid nav area before deciding whether to allow special infected to spawn.
  • Added the `SpecialsSupportFlowDistance` option to the `passivetank.txt` file which determines how close a Tank needs to be to the closest survivor in distance before allowing special infected to attack.
  • Added the `SpecialsSupportRange` option to the `passivetank.txt` file which determines how close a Tank needs to be to the closest survivor in flow distance before allowing special infected to attack.
Changes
  • Replaced the `foreach` loops in the `IsTankSpotted`, `ShouldTankEngageEarly`, and `IsHidingSpotRiskyForTank` with the closest survivor to improve performance.
  • Used the `IsAreaInvisible` function instead of using tracelines for the `CommonSeparationCheck` and `SpecialSeparationCheck` functions to improve performance.
  • Changed the `CanSurvivorsSeeSpecial` and `CanSurvivorsSeeTank` functions from integers to booleans to improve performance.
  • Set the `m_isCulling` net prop to `1` for special infected players if their distance is farther than the `RelocateRange` option and the `RelocateFarSpecials` option is set to `true`. This should allow special infected players to despawn like they normally would in Versus.
  • Special infected players who are killed will no longer reset the respawn timer.
  • Allowed the special infected bots to still spawn if a special infected player is in the dying state.
  • Replaced the `IsAnySurvivorIncapacitated` function with the `AreSurvivorsStruggling` function so the `ShouldSpecialsWaitForWitch` function can check if survivors are either sluggish, biled, or immobile before it decides whether special infected are allowed to spawn while a Witch is active.
  • Modified the `IsTankWithinFlowDistance` function to determine the flow distance from multiple survivors as opposed the prioritized survivor to make the Tank hide in the expected nav areas.
  • Modified the `SpecialStatus` function to see if a special infected has spawned before checking if the `special_percentage` local variable is lower than the `StopHidingSpecialPercent` option.
  • Modified the `SpecialSeparationCheck` function to despawn special infected bots if they are too far away based on the `DespawnRange` option.
  • Renamed the options related to `Relocate` in the `manualspecialspawn.txt` file to `Despawn`.
  • Removed the `StopHidingNearFlowDistance` and `StopHidingFarFlowDistance` options as the `HidingSpotFlowDistMax` and `HidingSpotFlowDistMin` options now take their role instead.
  • Moved some options related to the Witch from the `settings.txt` file to the `passivewitch.txt` file.
  • Moved some options related to both the Witch and Tank from the `passivetank.txt` file to the `settings.txt` file.
  • Increased the default value for the `HidingSpotFlowDistMax` option to `2000`.
  • Increased the default value for the `HidingSpotFlowDistMin` option to `500`.
  • Decreased the default value for the `BiledSurvivorsPercent` option to `25`.
  • Decreased the default value for the `HidingSpotRangeMax` option to `1000`.
  • Decreased the default value for the `NavTakenProximity` option to `50`.
  • Decreased the default value for the `PreserveNavSizeX` and `PreserveNavSizeY` options to `75`.
Bug Fixes
  • Reworked the `EnableSpecialAbilityCheck` option to fix an issue where the Jockey was still able to use his leap ability regardless of the value set by the `SpecialAbilityDelay` option.
  • Moved the `SpawnRangeMax` option out of the `foreach` loop from the `IsAnySurvivorTooCloseToArea` function to fix a bug where special infected would not spawn if any survivor was farther from the nav area than the `SpawnRangeMax` option.

Update: 25 Jun, 2024 @ 2:30pm

Changes
  • Added a call to the `IndividualSpecialsLimiter` function when the `OverrideMaxSpecials` option is enabled. Do note that either the `OverrideMaxSpecials` or `ModifySpecialLimits` option would need to be disabled to prevent the special infected from spawning if using the Admin System's `!director stop` command in chat.
  • Optimized the `IsTankCloseToDamageAttribute` function by determining the closest navigation mesh's position as opposed to the survivor's exact origin. This should improve performance in situations where the Tank cannot reach a survivor who is on an invalid navigation mesh.
  • Created a local variable to increase the value of the `CheckBuildPathLength` option based on the size of the navigation meshes containing the `DAMAGING` attribute.
  • Increased the default value for the `CheckBuildPathFlowDist` option to `1000`.
  • Increased the default value for the `NewBuildPathFlowDistMax` option to `1000`.
  • Decreased the default value for the `NewBuildPathFlowDistMax` option to `-1000`.

Update: 24 Jun, 2024 @ 11:55pm

Bug Fixes
  • Fixed a bug with the `OverrideMaxSpecials` option where the total special count would not update to the `MaxSpecialsTank` option when a Tank is active.

Update: 24 Jun, 2024 @ 10:00am

Additions
  • Added the `EnableBattlefieldRespawnInterval` option to the `settings.txt` file which determines whether the special infected's respawn timers will use the `BattlefieldRespawnIntervalMax` and `BattlefieldRespawnIntervalMin` options during panic events.
  • Added the `BattlefieldRespawnIntervalMax` and `BattlefieldRespawnIntervalMin` options to the `settings.txt` file which determines the minimum and maximum amount of time the special infected have to wait until they are able to spawn again during panic events.
  • Added the `LetTankThrowOnAnyAttributes` option to the `settings.txt` file which determines whether the Tank is allowed to throw rocks if he is standing on attributes not marked as `OBSCURED`.
  • Added the `CanSpawnOnNoFlowAttributes` option to the `manualspecialspawn.txt` file which determines whether the special infected can spawn on attributes that do not follow the flow.
  • Added the `NavVisibilityCalculation` option to the `manualspecialspawn.txt` file which determines how much of the navigation mesh should not be seen by any survivor to be considered valid. Setting this option to `0` will disable the visibility calculation, `1` will make the navigation mesh invalid if any part of it is visible to a survivor, and `2` will make the navigation mesh invalid if a survivor can see the majority of it.
  • Added the `CanHideOnObscuredAttributes` option to the `passivetank.txt` file which determines whether the Tank is allowed to move to areas marked as `OBSCURED` regardless of whether any of the survivors can see it.
  • Added the `CanHideOnNoFlowAttributes` option to the `passivetank.txt` file which determines whether the Tank is allowed to move to areas that do not follow the flow.
  • Added the `FindHidingSpotFlowDistMax` and `FindHidingSpotFlowDistMin` options to the `passivetank.txt` file which determines the minimum and maximum flow distance the Tank can find a place to hide.
  • Added the `AvoidDamageAttributes` and other related options to the `passivetank.txt` file which attempts to prevent the Tank from running into navigation meshes marked as `DAMAGING`.
  • Added the `EngageInterval` option to the `passivetank.txt` file which determines how fast the function will check to see if the Tank should engage with the survivors.
  • Added another number to the `DistanceOrder` option which randomizes the order of the navigation meshes in the array.
  • Different command variables can now be loaded for each map by adding the `convars_*mapname.txt` file to the `~/ems/sisync-comp/maps/convars/` directory.
Changes
  • Used the `GetCenter()` function for navigation meshes smaller than the `PreserveNavSizeX` and `PreserveNavSizeY` options so the special infected can spawn more often.
  • Added a check to the `CheckHiddenSpawns` function to prevent the special infected from spawning farther than `SpawnRangeMax`.
  • Renamed the `ModifyMaxSpecials` option to `ModifySpecialLimits` to better describe what it is intended to do.
  • Increased the default value for the `FlowDistMax` option to `1500`.
  • Increased the `DominatorLimit` variable to 3 if the `MaxSpecials` variable is less than 6 while the `EnableCustomSpecialLimits` option is set to `false`.
  • Removed the `RemoveAttributes` function as it was a rather hacky way to allow special infected to spawn.
Bug Fixes
  • Fixed a bug with the `WaitForSpecialPlayer` option where the special infected would not spawn if a player is on the `SPECTATORS` team.
  • Moved the `DeleteNavIndexes` function outside of the `foreach` loop in the `FindHiddenSpawns` function so the index search does not end prematurely.
  • Rewrote the `TotalSpecialsLimiter` and `SpecialModifier` functions to fix a potential index error that could occur if the `MaxSpecials` variable does not exist in the `DirectorOptions` table.
  • Reverted the `CommandABot` function for passive Tanks to `BOT_CMD_RESET` as they would still be moving to their hiding spots even when the statements say they should attack. If a new function is implemented in a future update that would remove `BOT_CMD_MOVE` queries, then I will change the `CommandABot` function again.

Update: 7 Jun, 2024 @ 10:00am

Additions
  • Added the `NavMaxInvalid` option to the settings.txt file which determines the maximum amount of invalid navigation meshes to ignore.
  • Added the `NavMaxValid` option to the settings.txt file which determines the maximum amount of valid navigation meshes to find.
  • Added the `WaitForSpecialPlayer` option to the `settings.txt` file which will only allow the special infected to spawn together if a player is able to spawn as a special infected. This only occurs if a player is on the special infected team.
  • Added the `ForceDropIncapped` option to the `settings.txt` file which forces a SurvivorBot to stop reviving if an incapped survivor gets hit by the infected.
  • Added the `SpecialTargetReviverRange` option to the `settings.txt` file which forces the special infected to target the closest survivor who is reviving an incapped teammate if they are within the specified distance.
  • Added the `CanSpawnOnObscuredAttributes` option to the `manualspecialspawn.txt` file which determines whether the special infected are allowed to spawn on attributes marked as `OBSCURED`.
  • Added the `RelocateCloseRange` option to the `passivetank.txt` file which forces the Tank to relocate to a new hiding spot if a survivor is within a certain distance from the Tank.
  • Added the `RelocateNearFlowDistance` option to the `passivetank.txt` file which forces the Tank to relocate to a new hiding spot if a survivor is within a certain flow distance from the Tank.
  • Added the `EngageDistanceDivider` option to the `passivetank.txt` file which determines whether the Tank should approach the survivors depending on the distance to the furthest flow survivor divided by this option.
  • Added the `StopHidingFarFlowDistance` option to the `passivetank.txt` file which forces the Tank to approach the survivors if he is too far away from them.
  • Added the `FrustrationLimit` option to the `passivetank.txt` file which determines how many times the Tank can be frustrated before he is forced to rush in.
  • Added the `DistanceCalculation` option to both the `manualspecialspawn.txt` and `passivetank.txt` files which determines how the navigation meshes will be sorted. Setting the option to `0` will sort the navigation meshes by distance, `1` will sort them by flow distance based on Units Increasing Toward Goal, and `2` will sort them by flow distance based on Units Increasing Away From Start.
  • Added the `DistanceOrder` option to both the `manualspecialspawn.txt` and `passivetank.txt` files which determines the sorting order of the navigation mesh. Setting the option to `0` will sort the navigation meshes from closest to farthest while `1` will sort them from farthest to closest.
  • New `.txt` files can now be created for each map by adding them to the `~/ems/sisync-comp/maps/...` directory.
Changes
  • Sorted the navigation meshes from the closest to farthest distance before using trace lines. This improves performance if `EnableManualSpecialSpawn` is set to `true` and allows special infected to attack more efficiently.
  • Alllowed the special infected to spawn on navigation meshes with invalid flow distances so they could have more places to attack (ex. No Mercy's living room in Chapter 1).
  • Changed the name of the `StopHidingFlowDistance` option to `StopHidingNearFlowDistance` to make it distinguishable from the `StopHidingFarFlowDistance` option.
  • Changed the name of the `NavMaxTrace` option to `NavMaxSpotted` to make it distinguishable from the `NavMaxInvalid` and `NavMaxValid` options.
  • Allowed the special infected to spawn if a Tank is active and a survivor has left the safe area even if the furthest flow distance is below the `FlowDistanceFromSafeArea` option.
  • Allowed the special infected to spawn if a Witch is active and a survivor is incapacitated while the `EnableSpecialSyncNearWitch` option is set to `true`.
  • Set the default value for the `EnableManualSpecialSpawn` option to `true`.
  • Reduced the default value for the `NavMaxSpotted` option to `10`
  • Reduced the default value for the `FlowDistanceBehindWitch` option to `100`.
  • Reduced the default value for the `FlowDistMax` option to `750`
  • Reduced the default value for the `FlowDistMin` option to `-750`
Bug Fixes
  • Fixed a bug with the `EnableSpecialSyncNearWitch` option where the special infected would still spawn if the wandering Witch is idle.
  • Changed the `CommandABot` commands from `BOT_CMD_RESET` to `BOT_CMD_ATTACK` for passive Tanks. This should prevent the Tank music from occasionally resetting and potentially skipping the Tank fight in finales.

Update: 6 May, 2024 @ 10:00pm

WARNING: The new directory for the configuration files will be located at `~/ems/sisync-comp/...` 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-comp` folder.

Additions
  • Added the `EnableSpecialSyncNearWitch` option to the `settings.txt` file which allows the special infected to only attack together when the Witch is aggroed.
  • Added the `FlowDistanceAheadOfWitch` option to the `settings.txt` file which determines how far the survivors need to be ahead of the Witch in flow distance for the special infected to start attacking automatically.
  • Added the `FlowDistanceBehindWitch` option to the `settings.txt` file which determines how far the survivors need to be behind the Witch in flow distance for the special infected to start attacking automatically.
  • Added the `FlowDistanceBacktrackingWitch` option to the `settings.txt` file which determines how far the survivors need to be behind their furthest flow distance for the special infected to start attacking automatically.
  • Added the `MultFlowDistBehindWitch` option to the `settings.txt` file which multiplies the `FlowDistanceBehindWitch` option depending on the `RespawnIntervalMin` and `RespawnIntervalMax` options.
  • Added the `TankRockThrowRange` option to the `settings.txt` file which determines how close the Tank needs to be to the survivors to be allowed to throw rocks.
  • 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.
  • Added the `SpecialPriorityTime` and `TankPriorityTime` options to the `settings.txt` file which prevents them from changing priorities to a different survivor for a specified amount of time.
  • Added the `ShouldAllowSpecialsWithTank` option to the `settings.txt` file which determines whether special infected are allowed to spawn while the Tank is active. Any other value will let the Director automatically handle this instead.
  • Added `EnablePassiveTank` and other related options to the `passivetank.txt` file which allows the Tank to go into hiding until certain factors arise (time exceeding `FrustrationTime`, survivors dominated/incapacitated by special infected, etc.).
Changes
  • Separated the options for `CustomSpecialLimits`, `ManualSpawnCheck`, and `PassiveTank` into their own `.txt` files located in `~/ems/sisync-comp/settings/` to make them easier to find.
  • Modified the parenthesis to cover the `trace.enthit.GetClassname()` variables instead of `entities_hit.rawin(id)` to further improve performance.
  • Changed the `TraceMaskCollision` option to `TRACE_MASK_VISION` to prevent the special infected from spawning into objects.
  • Increased the `BoundingWidth` and `BoundingHeight` to `32` and `80` respectively to reduce the odds of the special infected getting stuck in geometry.
  • Prevented the Tank from throwing rocks if any survivor is ahead of him in flow distance if `OptimizeTankPriority` is enabled.
  • Added the `sv_rescue_disabled` command variable to the `convars.txt` file which prevents survivors from being rescued from rescue closets like in Versus.
  • Added an optional rule to an `if` statement in the `ManualSpawnCheck` function that determines whether to forcefully add navigation meshes to `NavTable`. This is used by the `SpecialSeparationCheck` to add navigation meshes to the table when the special infected need to teleport closer to the survivors if they are ahead in flow distance so they aren't constantly using outdated navigation meshes.
  • 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
  • Removed `HasPlayerControlledZombies()` from the `CancelTankCelebration()` function and added `!IsPlayerABot()` to the `foreach` loop. This allows the AI-controlled Tanks to not celebrate when their attack succeeds even if a player is allowed to play as a special infected.
  • Grabbed the ID of the special infected through local variables instead of obtaining them from the `foreach` loops. This allows tables that make use of IDs such as the `StuckCheck` function to work as intended.
  • Added `tostring()` to the end of `SISync.Settings.ProhibitBosses` in the `ConfigInitiate` function to fix an issue where the `ProhibitBosses` variable might not be set to a boolean value.

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.