Left 4 Dead 2

Left 4 Dead 2

Special Infected Synchronization (Competitive)
正在显示第 91 - 100 项,共 135 项条目
< 1 ... 8  9  10  11  12 ... 14 >
更新于:2024 年 5 月 6 日 下午 10:00

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.

更新于:2024 年 4 月 7 日 上午 3:00

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.

更新于:2024 年 4 月 6 日 下午 5:00

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.

更新于:2024 年 3 月 23 日 上午 1:00

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.

更新于:2024 年 3 月 22 日 下午 3:00

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.

更新于:2024 年 2 月 28 日 下午 5:00

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.

更新于:2024 年 2 月 14 日 下午 8:00

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.

更新于:2023 年 12 月 31 日 下午 1:00

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.

更新于:2023 年 12 月 25 日 下午 4:00

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.

更新于:2023 年 12 月 17 日 下午 3:30

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.