diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..df1ab11b0 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,179 @@ +name: Build release packages + +# Owner-only. workflow_dispatch already requires repo write access, and the +# job-level `if` below additionally restricts execution to the repository +# owner, so only the owner can produce a release. +on: + workflow_dispatch: + inputs: + version: + description: 'Release version / tag (e.g. v3.0)' + required: true + type: string + prerelease: + description: 'Mark the GitHub Release as a pre-release' + required: false + type: boolean + default: false + +permissions: + contents: write + +concurrency: + group: release-${{ inputs.version }} + cancel-in-progress: false + +jobs: + release: + name: Compile plugins and package ${{ inputs.version }} + runs-on: ubuntu-latest + # Hard gate: only the repository owner may run this workflow. + if: github.actor == github.repository_owner + + steps: + - uses: actions/checkout@v5 + + # Same upstream compiler our check_plugins.yml CI gates on — pinned to + # SourceMod 1.12. Putting `spcomp` on PATH for the next step. + - name: Setup SourcePawn Compiler (SourceMod 1.12) + uses: rumblefrog/setup-sp@master + with: + version: "1.12" + + - name: Compile every shipped plugin from source + run: | + set -euo pipefail + SCRIPTING="$GITHUB_WORKSPACE/addons/sourcemod/scripting" + PLUGINS="$GITHUB_WORKSPACE/addons/sourcemod/plugins" + + # Compile with the upstream SourceMod 1.12 compiler from + # rumblefrog/setup-sp (on PATH), NOT the spcomp binary committed in + # the repo — a known, reproducible toolchain. The -i include paths + # below still point at the repo's own sources/includes. + COMPILER="spcomp" + + BUILD="$(mktemp -d)" + declare -A BUILT + FAILED="" + COUNT=0 + + # Drive off the .smx files that ship in the repo: each one is + # rebuilt from its same-named .sp source and written straight back + # to its original path (root / fixes / optional / disabled / etc.). + while IFS= read -r -d '' smx; do + name="$(basename "$smx" .smx)" + + if [ -z "${BUILT[$name]:-}" ]; then + if [ -f "$SCRIPTING/$name.sp" ]; then + base="$SCRIPTING" + inc="$SCRIPTING/include" + elif [ -f "$SCRIPTING/sourcemod/$name.sp" ]; then + # Stock SourceMod plugins live one level down with their + # own include tree. + base="$SCRIPTING/sourcemod" + inc="$SCRIPTING/sourcemod/include" + else + echo "::error::No .sp source found for shipped plugin '$name' ($smx)" + FAILED="$FAILED $name" + continue + fi + + echo "Compiling $name ..." + # Run with cwd = the scripting dir and a bare source filename, + # exactly like check_plugins.yml: some plugins (e.g. readyup) + # use working-directory-relative quoted #includes that only + # resolve from there. -i / -o / $BUILD are absolute, so the + # subshell cd does not affect them. + if ( cd "$base" && "$COMPILER" -E -w234 -w217 -O2 -v2 -i "$inc" "-o$BUILD/$name.smx" "$name.sp" ); then + BUILT[$name]="$BUILD/$name.smx" + else + echo "::error::Failed to compile '$name' ($base/$name.sp)" + FAILED="$FAILED $name" + continue + fi + fi + + cp -f "${BUILT[$name]}" "$smx" + COUNT=$((COUNT + 1)) + done < <(find "$PLUGINS" -name '*.smx' -print0) + + echo "Refreshed $COUNT plugin file(s) from ${#BUILT[@]} unique source(s)." + if [ -n "$FAILED" ]; then + echo "::error::One or more plugins failed to build:$FAILED" + exit 1 + fi + + - name: Stage the drop-in overlay + run: | + set -euo pipefail + STAGE="$GITHUB_WORKSPACE/.release" + rm -rf "$STAGE" + mkdir -p "$STAGE" + + # Lean runtime overlay: only what gets dropped over left4dead2/. + cp -a \ + addons cfg scripts \ + host.txt motd.txt myhost.txt mymotd.txt \ + README.md LICENSE \ + "$STAGE"/ + + # Exclude the SourcePawn sources and the bundled compiler from the + # shipped overlay (the compiled .smx in plugins/ are what runs). + rm -rf "$STAGE/addons/sourcemod/scripting" + + echo "STAGE=$STAGE" >> "$GITHUB_ENV" + + - name: Build Linux archive (.so natives only) + run: | + set -euo pipefail + NAME="L4D2-Competitive-Rework-${{ inputs.version }}-linux" + OUT="$GITHUB_WORKSPACE/$NAME.tar.gz" + # Drop every Windows native; keep the .so files. + tar -czf "$OUT" --exclude='*.dll' -C "$STAGE" . + echo "LINUX_ASSET=$OUT" >> "$GITHUB_ENV" + + - name: Build Windows archive (.dll natives only) + run: | + set -euo pipefail + NAME="L4D2-Competitive-Rework-${{ inputs.version }}-windows" + OUT="$GITHUB_WORKSPACE/$NAME.zip" + # Drop every Linux native; keep the .dll files. + ( cd "$STAGE" && zip -qr "$OUT" . -x '*.so' ) + echo "WIN_ASSET=$OUT" >> "$GITHUB_ENV" + + - name: Publish draft GitHub Release + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + VER="${{ inputs.version }}" + PRE="" + if [ "${{ inputs.prerelease }}" = "true" ]; then PRE="--prerelease"; fi + + # Static platform preamble, built via printf so no YAML/shell + # indentation leaks in and gets rendered as a markdown code block. + # GitHub's auto-generated changelog (--generate-notes) is appended + # after this by gh release create. + NOTES="$RUNNER_TEMP/release-notes.md" + { + printf 'Automated build of `%s`.\n\n' "$VER" + printf -- '- **Linux** (`*-linux.tar.gz`): `.so` natives only.\n' + printf -- '- **Windows** (`*-windows.zip`): `.dll` natives only.\n\n' + printf 'Drop-in overlay for `left4dead2/`. All `.smx` plugins are recompiled ' + printf 'from source with the upstream SourceMod 1.12 compiler ' + printf '(rumblefrog/setup-sp); SourcePawn sources are not included in the ' + printf 'archives.\n' + } > "$NOTES" + + # --draft: nothing goes public (and the git tag is NOT created) + # until you review and click Publish on the Releases page. + # --generate-notes: appends a changelog built from merged PRs since + # the previous release (full history for the first one). + gh release create "$VER" \ + --draft \ + --generate-notes \ + --target "$GITHUB_SHA" \ + --title "$VER" \ + --notes-file "$NOTES" \ + $PRE \ + "$LINUX_ASSET" "$WIN_ASSET" diff --git a/README.md b/README.md index 4f5ff739b..129bb3858 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ > [!IMPORTANT] > It is recommended to host servers on Linux, but Windows is supported. > When running Linux ensure that your setup is running a minimum of **`GLIBC 2.35`** (Ubuntu 22.04 or higher) or you will run into issues loading certain extensions. -> This repository only supports Sourcemod **1.12** and up (which comes with the repository for ease of use) +> This repository only supports Sourcemod **1.12** and up (which comes with the repository for ease of use) --- @@ -26,7 +26,7 @@ In its current state it allows anyone to host their own up to date competitive L > **Included Matchmodes:** -* **Zonemod 2.9e** +* **Zonemod 2.9.1b** * **Zonemod Hunters** * **Zonemod Retro** * **NeoMod 0.4a** @@ -38,6 +38,23 @@ In its current state it allows anyone to host their own up to date competitive L --- +## **Download & Installation:** + +> [!IMPORTANT] +> Pick the archive that matches your **Server OS**: +> * **Linux:** `L4D2-Competitive-Rework--linux.tar.gz` +> * **Windows:** `L4D2-Competitive-Rework--windows.zip` + +1. Download the latest archive from the [**Releases**](../../releases/latest) page. +2. Extract it directly into your server's **`left4dead2/`** directory. +3. For first-time server setup on dedicated servers, the [Dedicated Server Install Guide](Dedicated%20Server%20Install%20Guide/README.md) might be of use to you! + +> [!NOTE] +> Releases only include what the servers need, **no** SourcePawn sources or compiler. +> To modify or recompile plugins, clone the repository instead. + +--- + ## **Credits:** > **Foundation/Advanced Work:** @@ -103,6 +120,7 @@ In its current state it allows anyone to host their own up to date competitive L * Aiden * Derpduck +* Mart > [!NOTE] > If your work is being used and I forgot to credit you, don't hesitate to contact me on Discord (user: `sirplease`) \ No newline at end of file diff --git a/addons/sourcemod/configs/matchmodes.txt b/addons/sourcemod/configs/matchmodes.txt index efe552109..134ba2b0d 100644 --- a/addons/sourcemod/configs/matchmodes.txt +++ b/addons/sourcemod/configs/matchmodes.txt @@ -4,11 +4,11 @@ { "zonemod" { - "name" "ZoneMod 2.9.1" + "name" "ZoneMod 2.9.1b" } "zoneretro" { - "name" "ZoneMod Retro 2.9.1" + "name" "ZoneMod Retro 2.9.1b" } "zm3v3" { @@ -109,7 +109,7 @@ { "zonehunters" { - "name" "ZoneHunters 2.9.1" + "name" "ZoneHunters 2.9.1b" } "zh3v3" { diff --git a/addons/sourcemod/gamedata/l4d2_block_autoaim.txt b/addons/sourcemod/gamedata/l4d2_block_autoaim.txt new file mode 100644 index 000000000..377a9d7aa --- /dev/null +++ b/addons/sourcemod/gamedata/l4d2_block_autoaim.txt @@ -0,0 +1,27 @@ +"Games" +{ + "left4dead2" + { + "Functions" + { + "CBasePlayer::ShouldAutoaim" + { + "signature" "CBasePlayer::ShouldAutoaim" + "callconv" "thiscall" + "return" "bool" + "this" "entity" + } + } + + "Signatures" + { + "CBasePlayer::ShouldAutoaim" + { + "library" "server" + "linux" "@_ZN11CBasePlayer13ShouldAutoaimEv" + "windows" "\x56\x8B\xF1\x8B\x06\x8B\x90\x74\x07\x00\x00\xFF\xD2\x84\xC0\x74\x2A\x32\xC0" + /* 56 8B F1 8B 06 8B 90 74 07 00 00 FF D2 84 C0 74 ?? 32 C0 */ + } + } + } +} diff --git a/addons/sourcemod/gamedata/l4d2_fix_tank_rock_handoff.txt b/addons/sourcemod/gamedata/l4d2_fix_tank_rock_handoff.txt new file mode 100644 index 000000000..f983c7842 --- /dev/null +++ b/addons/sourcemod/gamedata/l4d2_fix_tank_rock_handoff.txt @@ -0,0 +1,15 @@ +"Games" +{ + "left4dead2" + { + "Signatures" + { + "CThrow::OnStunned" + { + "library" "server" + "linux" "@_ZN6CThrow9OnStunnedEf" + "windows" "\x55\x8B\xEC\xF3\x0F\x10\x05\x2A\x2A\x2A\x2A\x56" + } + } + } +} diff --git a/addons/sourcemod/gamedata/l4d_fix_prop_los.txt b/addons/sourcemod/gamedata/l4d_fix_prop_los.txt new file mode 100644 index 000000000..af3843f45 --- /dev/null +++ b/addons/sourcemod/gamedata/l4d_fix_prop_los.txt @@ -0,0 +1,46 @@ +"Games" +{ + "#default" + { + "Functions" + { + "l4d_fix_prop_los::CBaseProp::CalculateBlockLOS" + { + "signature" "CBaseProp::CalculateBlockLOS" + "callconv" "thiscall" + "return" "void" + "this" "entity" + } + } + } + + "left4dead" + { + "Signatures" + { + "CBaseProp::CalculateBlockLOS" + { + "library" "server" + "linux" "@_ZN9CBaseProp17CalculateBlockLOSEv" + "windows" "\x83\xEC\x0C\x53\x55\x8B\xE9\x8B\x85\x2A\x2A\x2A\x2A\x8B" + // 83 EC 0C 53 55 8B E9 8B 85 ? ? ? ? 8B + } + } + } + + "left4dead2" + { + "Signatures" + { + "CBaseProp::CalculateBlockLOS" + { + "library" "server" + "linux" "@_ZN9CBaseProp17CalculateBlockLOSEv" + "windows" "\x55\x8B\xEC\x83\xEC\x10\x53\x8B\xD9\x8B\x83\x2A\x2A\x2A\x2A\x8B" + // 55 8B EC 83 EC 10 53 8B D9 8B 83 ? ? ? ? 8B + // Search string "ai_addon_thrownprojectile" + // Called inside + } + } + } +} \ No newline at end of file diff --git a/addons/sourcemod/plugins/fixes/l4d2_fix_changelevel.smx b/addons/sourcemod/plugins/fixes/l4d2_fix_changelevel.smx index 06576165b..947fdb1c0 100644 Binary files a/addons/sourcemod/plugins/fixes/l4d2_fix_changelevel.smx and b/addons/sourcemod/plugins/fixes/l4d2_fix_changelevel.smx differ diff --git a/addons/sourcemod/plugins/fixes/l4d2_fix_tank_rock_handoff.smx b/addons/sourcemod/plugins/fixes/l4d2_fix_tank_rock_handoff.smx new file mode 100644 index 000000000..9c84881c2 Binary files /dev/null and b/addons/sourcemod/plugins/fixes/l4d2_fix_tank_rock_handoff.smx differ diff --git a/addons/sourcemod/plugins/fixes/l4d_fix_prop_los.smx b/addons/sourcemod/plugins/fixes/l4d_fix_prop_los.smx new file mode 100644 index 000000000..b3324d22c Binary files /dev/null and b/addons/sourcemod/plugins/fixes/l4d_fix_prop_los.smx differ diff --git a/addons/sourcemod/plugins/optional/l4d2_block_autoaim.smx b/addons/sourcemod/plugins/optional/l4d2_block_autoaim.smx new file mode 100644 index 000000000..dae0616f4 Binary files /dev/null and b/addons/sourcemod/plugins/optional/l4d2_block_autoaim.smx differ diff --git a/addons/sourcemod/plugins/optional/l4d2_hittable_control.smx b/addons/sourcemod/plugins/optional/l4d2_hittable_control.smx index 3475ef674..6e7d2b2fb 100644 Binary files a/addons/sourcemod/plugins/optional/l4d2_hittable_control.smx and b/addons/sourcemod/plugins/optional/l4d2_hittable_control.smx differ diff --git a/addons/sourcemod/scripting/l4d2_block_autoaim.sp b/addons/sourcemod/scripting/l4d2_block_autoaim.sp new file mode 100644 index 000000000..cb339d5d9 --- /dev/null +++ b/addons/sourcemod/scripting/l4d2_block_autoaim.sp @@ -0,0 +1,81 @@ +#pragma semicolon 1 +#pragma newdecls required + +#include +#include + +#define PLUGIN_VERSION "1.0" +#define GAMEDATA_FILE "l4d2_block_autoaim" +#define FUNCTION_NAME "CBasePlayer::ShouldAutoaim" + +public Plugin myinfo = +{ + name = "[L4D2] Block Autoaim", + author = "Sir", + description = "Strips Auto-Aim from the game entirely (disables controller aim-assist + patches an exploit)", + version = PLUGIN_VERSION, + url = "" +}; + +ConVar g_cvEnabled; +DynamicDetour g_hDetour; +bool g_bDetourEnabled; + +public void OnPluginStart() +{ + GameData gd = new GameData(GAMEDATA_FILE); + if (!gd) { + SetFailState("Missing gamedata \"" ... GAMEDATA_FILE ... ".txt\""); + } + + g_hDetour = DynamicDetour.FromConf(gd, FUNCTION_NAME); + delete gd; + + if (!g_hDetour) { + SetFailState("Failed to set up detour for \"" ... FUNCTION_NAME ... "\""); + } + + g_cvEnabled = CreateConVar( + "l4d2_block_autoaim", + "1", + "Disable Auto-Aim", + FCVAR_NOTIFY, + true, 0.0, true, 1.0 + ); + g_cvEnabled.AddChangeHook(OnEnabledChanged); + + ApplyDetourState(g_cvEnabled.BoolValue); +} + +public void OnPluginEnd() +{ + ApplyDetourState(false); +} + +void OnEnabledChanged(ConVar convar, const char[] oldValue, const char[] newValue) +{ + ApplyDetourState(convar.BoolValue); +} + +void ApplyDetourState(bool enable) +{ + if (enable == g_bDetourEnabled) { + return; + } + + if (enable) { + if (!g_hDetour.Enable(Hook_Pre, Detour_ShouldAutoaim)) { + SetFailState("Failed to enable detour on \"" ... FUNCTION_NAME ... "\""); + } + g_bDetourEnabled = true; + } else { + g_hDetour.Disable(Hook_Pre, Detour_ShouldAutoaim); + g_bDetourEnabled = false; + } +} + +MRESReturn Detour_ShouldAutoaim(int pPlayer, DHookReturn hReturn) +{ + hReturn.Value = 0; + return MRES_Supercede; +} diff --git a/addons/sourcemod/scripting/l4d2_fix_changelevel.sp b/addons/sourcemod/scripting/l4d2_fix_changelevel.sp index 01a2b852a..95d1e9d69 100644 --- a/addons/sourcemod/scripting/l4d2_fix_changelevel.sp +++ b/addons/sourcemod/scripting/l4d2_fix_changelevel.sp @@ -6,13 +6,13 @@ #include #include -#define PLUGIN_VERSION "1.2" +#define PLUGIN_VERSION "1.3" public Plugin myinfo = { name = "[L4D2] Fix Changelevel", author = "Lux (for \"l4d2_changelevel\"), Forgetest", - description = "Fix issues due to forced changelevel (i.e. No gascans in scavenge, incorrect behavior of \"OnGameplayStart\").", + description = "Fix issues due to forced changelevel + resolve partial map names before the engine sees them.", version = PLUGIN_VERSION, url = "https://github.com/Target5150/MoYu_Server_Stupid_Plugins" } @@ -119,17 +119,17 @@ public void OnPluginStart() {SDKType_Bool, SDKPass_Plain} }; g_CallClearTeamScores = gd.CreateSDKCallOrFail(SDKCall_Raw, SDKConf_Signature, "CDirector::ClearTeamScores", params, sizeof(params), false); - + SDKCallParamsWrapper params2[] = { {SDKType_Bool, SDKPass_Plain} }; g_CallOnBeginTransition = gd.CreateSDKCallOrFail(SDKCall_Raw, SDKConf_Signature, "CDirector::OnBeginTransition", params2, sizeof(params2), false); - + SDKCallParamsWrapper params3[] = { {SDKType_String, SDKPass_Pointer} }; g_CallOnBeginChangeLevel = gd.CreateSDKCallOrFail(SDKCall_GameRules, SDKConf_Signature, "CTerrorGameRules::OnBeginChangeLevel", params3, sizeof(params3), false); - + g_iOffs_m_mapDurationTimer = gd.GetOffsetOrFail("CDirector::m_mapDurationTimer"); g_iOffs_m_flTotalMissionElaspedTime = gd.GetOffsetOrFail("CDirector::m_flTotalMissionElaspedTime"); g_iOffs_m_szOriginalMap = gd.GetOffsetOrFail("CDirector::m_szOriginalMap"); @@ -154,17 +154,33 @@ MRESReturn DTR__CVEngineServer__ChangeLevel(DHookParam hParams) { if (!TheDirector) return MRES_Ignored; - + char map[64]/*, reason[64]*/; hParams.GetString(1, map, sizeof(map)); // if (!hParams.IsNull(2)) // hParams.GetString(2, reason, sizeof(reason)); - + + /* + sm_map (and possible other callers) accept partial names like "c4m1" for "c4m1_milltown_a" + these get resolved for display via FindMap() but pass the original "c4m1" back to the + engine, which then gets stuck trying to load a non-existent map. + This way we don't have to modify official SourceMod files with every update. + */ + bool changedParam = false; + char fullMap[64]; + + if (GetMapDisplayName(map, fullMap, sizeof(fullMap))) + { + strcopy(map, sizeof(map), fullMap); + hParams.SetString(1, fullMap); + changedParam = true; + } + if (TheDirector.IsTransitioning()) - return MRES_Ignored; - + return changedParam ? MRES_ChangedHandled : MRES_Ignored; + TheDirector.ClearTeamScores(true); - + ITimer_Start(TheDirector.m_mapDurationTimer); TheDirector.m_flTotalMissionElaspedTime = 0.0; @@ -173,7 +189,7 @@ MRESReturn DTR__CVEngineServer__ChangeLevel(DHookParam hParams) TheDirector.OnBeginTransition(false); GameRules__OnBeginChangeLevel(map); - return MRES_Ignored; + return changedParam ? MRES_ChangedHandled : MRES_Ignored; } void GameRules__OnBeginChangeLevel(const char[] map) @@ -198,4 +214,4 @@ void UTIL_StoreToAddressString(Address dest, const char[] src, int maxlength) StoreToAddress(dest + view_as
(i), src[i], NumberType_Int8); } StoreToAddress(dest + view_as
(len), 0, NumberType_Int8); -} \ No newline at end of file +} diff --git a/addons/sourcemod/scripting/l4d2_fix_tank_rock_handoff.sp b/addons/sourcemod/scripting/l4d2_fix_tank_rock_handoff.sp new file mode 100644 index 000000000..603fd99ff --- /dev/null +++ b/addons/sourcemod/scripting/l4d2_fix_tank_rock_handoff.sp @@ -0,0 +1,84 @@ +#pragma semicolon 1 +#pragma newdecls required + +#include +#include + +#define PLUGIN_VERSION "1.0" +#define GAMEDATA_FILE "l4d2_fix_tank_rock_handoff" + +Handle g_hCThrow_OnStunned = null; + +public Plugin myinfo = +{ + name = "[L4D2] Fix Tank Rock Stuck", + author = "Sir", + description = "Cancels tank rocks that are in the middle of a throw when passing to another player/AI.", + version = PLUGIN_VERSION, + url = "https://github.com/SirPlease/L4D2-Competitive-Rework" +}; + +public void OnPluginStart() +{ + GameData gd = new GameData(GAMEDATA_FILE); + if (!gd) SetFailState("Missing gamedata \"" ... GAMEDATA_FILE ... ".txt\""); + + StartPrepSDKCall(SDKCall_Entity); + if (!PrepSDKCall_SetFromConf(gd, SDKConf_Signature, "CThrow::OnStunned")) + { + delete gd; + SetFailState("Failed to find signature \"CThrow::OnStunned\""); + } + PrepSDKCall_AddParameter(SDKType_Float, SDKPass_Plain); + g_hCThrow_OnStunned = EndPrepSDKCall(); + delete gd; + + if (g_hCThrow_OnStunned == null) + SetFailState("Failed to prep SDKCall for CThrow::OnStunned"); + + HookEvent("player_bot_replace", Event_PlayerBotReplace, EventHookMode_Post); + HookEvent("bot_player_replace", Event_BotPlayerReplace, EventHookMode_Post); +} + +/* Covers Player to Player passes (including forced) */ +public void L4D_OnReplaceTank(int oldTank, int newTank) +{ + CancelPossibleTankThrow(newTank); +} + +/* Covers Player to Bot passes */ +void Event_PlayerBotReplace(Event event, const char[] name, bool dontBroadcast) +{ + int bot = GetClientOfUserId(event.GetInt("bot")); + CancelPossibleTankThrow(bot); +} + +/* Covers Bot to Player passes (as we do in some plugins) */ +void Event_BotPlayerReplace(Event event, const char[] name, bool dontBroadcast) +{ + int player = GetClientOfUserId(event.GetInt("player")); + CancelPossibleTankThrow(player); +} + +void CancelPossibleTankThrow(int client) +{ + if (!IsTank(client)) + return; + + int ability = GetEntPropEnt(client, Prop_Send, "m_customAbility"); + if (ability == -1) + return; + + SDKCall(g_hCThrow_OnStunned, ability, 0.0); +} + +bool IsTank(int client) +{ + if (client <= 0 || client > MaxClients || IsClientInGame(client)) + return false; + + if (GetClientTeam(client) != L4D_TEAM_INFECTED) + return false; + + return GetEntProp(client, Prop_Send, "m_zombieClass") == L4D2_ZOMBIE_CLASS_TANK; +} \ No newline at end of file diff --git a/addons/sourcemod/scripting/l4d2_hittable_control.sp b/addons/sourcemod/scripting/l4d2_hittable_control.sp index 299c97d8b..3c6ec0549 100644 --- a/addons/sourcemod/scripting/l4d2_hittable_control.sp +++ b/addons/sourcemod/scripting/l4d2_hittable_control.sp @@ -140,7 +140,7 @@ public Plugin myinfo = { name = "L4D2 Hittable Control", author = "Stabby, Visor, Sir, Derpduck, Forgetest", - version = "0.9.1", + version = "0.9.3", description = "Allows for customisation of hittable damage values (and debugging)" }; @@ -360,19 +360,20 @@ public void OnEntityCreated(int entity, const char[] classname) } } -public void OnEntityDestroyed(int entity) -{ - if (entity > 0 && entity < MAX_EDICTS) - { - g_nPhysicsHitInfoEntry[entity] = -1; - } -} - void Physics_OnSpawnPost(int entity) { + g_nPhysicsHitInfoEntry[entity] = -1; + int parent = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity"); if (parent != -1) { + // In case the breakable parent was forced to + if (g_nPhysicsHitInfoEntry[parent] == -1) + { + g_nPhysicsHitInfoEntry[parent] = NewPhysicsHitInfo(); + DebugMsg("Physics_OnSpawnPost (missing info from breakable parent#%d) [#%d]", parent, g_nPhysicsHitInfoEntry[parent]); + } + g_nPhysicsHitInfoEntry[entity] = g_nPhysicsHitInfoEntry[parent]; } g_iPhysicsDamage[entity] = -1; @@ -394,10 +395,10 @@ Action Physics_OnTakeDamage(int victim, int &attacker, int &inflictor, float &da if (!IsValidEdict(attacker)) return Plugin_Continue; - DebugMsg("(#%d) Physics_OnTakeDamage (attacker %d)", victim, attacker); - if (attacker > 0 && attacker <= MaxClients && IsTank(attacker)) { + DebugMsg("(#%d) Physics_OnTakeDamage tank (%N #%d)", victim, attacker, attacker); + // A tank punches me, create a new entry if not if (g_nPhysicsHitInfoEntry[victim] == -1) { @@ -414,8 +415,10 @@ Action Physics_OnTakeDamage(int victim, int &attacker, int &inflictor, float &da g_PhysicsHitInfos.SetArray(g_nPhysicsHitInfoEntry[victim], info); DebugMsg("(#%d) Physics_OnTakeDamage [%N]", victim, attacker); } - else if (IsEntityClassname(attacker, "prop_physics*")) + else if (IsEntityClassname(attacker, "prop_physics*") || IsEntityClassname(attacker, "prop_car_alarm")) { + DebugMsg("(#%d) Physics_OnTakeDamage prop_physics (#%d)", victim, attacker); + // Collides with other physics, clone their hit info if (g_nPhysicsHitInfoEntry[attacker] != -1) { @@ -438,7 +441,7 @@ Action Physics_OnTakeDamage(int victim, int &attacker, int &inflictor, float &da selfinfo.lastAttackerTime = GetGameTime(); g_PhysicsHitInfos.SetArray(g_nPhysicsHitInfoEntry[victim], selfinfo); - DebugMsg("(#%d) Physics_OnTakeDamage prop_physics (#%d) [%d]", victim, g_nPhysicsHitInfoEntry[attacker], selfinfo.lastAttackerId); + DebugMsg("(#%d) Physics_OnTakeDamage prop_physics (#%d) [lastAttackerId %d]", victim, g_nPhysicsHitInfoEntry[attacker], selfinfo.lastAttackerId); } } else @@ -597,7 +600,8 @@ Action OnTakeDamage(int victim, int &attacker, int &inflictor, float &damage, in // Hey, we don't care. if (!IsValidEdict(attacker) || !IsValidEdict(inflictor) - || g_nPhysicsHitInfoEntry[inflictor] == -1) + || g_nPhysicsHitInfoEntry[inflictor] == -1 + || (!IsEntityClassname(inflictor, "prop_physics*") && !IsEntityClassname(inflictor, "prop_car_alarm"))) return Plugin_Continue; if (IsTank(victim) && hTankSelfDamage.BoolValue) diff --git a/addons/sourcemod/scripting/l4d_fix_prop_los.sp b/addons/sourcemod/scripting/l4d_fix_prop_los.sp new file mode 100644 index 000000000..236f88aba --- /dev/null +++ b/addons/sourcemod/scripting/l4d_fix_prop_los.sp @@ -0,0 +1,49 @@ +#pragma semicolon 1 +#pragma newdecls required + +#include +#include + +#define PLUGIN_VERSION "1.0" + +public Plugin myinfo = +{ + name = "[L4D & 2] Fix Prop LOS", + author = "Forgetest", + description = "Fix thin/small 'prop_*' entity not blocking LOS.", + version = PLUGIN_VERSION, + url = "https://github.com/Target5150/MoYu_Server_Stupid_Plugins", +} + +methodmap GameDataWrapper < GameData { + public GameDataWrapper(const char[] file) { + GameData gd = new GameData(file); + if (!gd) SetFailState("Missing gamedata \"%s\"", file); + return view_as(gd); + } + public DynamicDetour CreateDetourOrFail( + const char[] name, + DHookCallback preHook = INVALID_FUNCTION, + DHookCallback postHook = INVALID_FUNCTION) { + DynamicDetour hSetup = DynamicDetour.FromConf(this, name); + if (!hSetup) + SetFailState("Missing detour setup \"%s\"", name); + if (preHook != INVALID_FUNCTION && !hSetup.Enable(Hook_Pre, preHook)) + SetFailState("Failed to pre-detour \"%s\"", name); + if (postHook != INVALID_FUNCTION && !hSetup.Enable(Hook_Post, postHook)) + SetFailState("Failed to post-detour \"%s\"", name); + return hSetup; + } +} + +public void OnPluginStart() +{ + GameDataWrapper gd = new GameDataWrapper("l4d_fix_prop_los"); + delete gd.CreateDetourOrFail("l4d_fix_prop_los::CBaseProp::CalculateBlockLOS", DTR_CalculateBlockLOS); + delete gd; +} + +MRESReturn DTR_CalculateBlockLOS(int entity) +{ + return MRES_Supercede; +} \ No newline at end of file diff --git a/cfg/cfgogl/zh1v1/confogl.cfg b/cfg/cfgogl/zh1v1/confogl.cfg index 50b2ab73c..1e470ab1a 100644 --- a/cfg/cfgogl/zh1v1/confogl.cfg +++ b/cfg/cfgogl/zh1v1/confogl.cfg @@ -7,7 +7,7 @@ // ======================================================================================= // ReadyUp Cvars -l4d_ready_cfg_name "1v1 [Zone]Hunters v2.9.1" +l4d_ready_cfg_name "1v1 [Zone]Hunters v2.9.1b" // Confogl Cvars confogl_addcvar mp_gamemode "versus" // Force Versus for the config. diff --git a/cfg/cfgogl/zh1v1/mapinfo.txt b/cfg/cfgogl/zh1v1/mapinfo.txt index b1f234080..9e90051e3 100644 --- a/cfg/cfgogl/zh1v1/mapinfo.txt +++ b/cfg/cfgogl/zh1v1/mapinfo.txt @@ -1113,9 +1113,9 @@ "end_dist" "245.495361" "tank_ban_flow" { - "During sewers" + "During sewers + double ladder drop" { - "min" "60" + "min" "52" "max" "79" } } diff --git a/cfg/cfgogl/zh2v2/confogl.cfg b/cfg/cfgogl/zh2v2/confogl.cfg index 0b5689156..91143818a 100644 --- a/cfg/cfgogl/zh2v2/confogl.cfg +++ b/cfg/cfgogl/zh2v2/confogl.cfg @@ -7,7 +7,7 @@ // ======================================================================================= // ReadyUp Cvars -l4d_ready_cfg_name "2v2 [Zone]Hunters v2.9.1" +l4d_ready_cfg_name "2v2 [Zone]Hunters v2.9.1b" // Confogl Cvars confogl_addcvar mp_gamemode "versus" // Force Versus for the config. diff --git a/cfg/cfgogl/zh2v2/mapinfo.txt b/cfg/cfgogl/zh2v2/mapinfo.txt index b1f234080..9e90051e3 100644 --- a/cfg/cfgogl/zh2v2/mapinfo.txt +++ b/cfg/cfgogl/zh2v2/mapinfo.txt @@ -1113,9 +1113,9 @@ "end_dist" "245.495361" "tank_ban_flow" { - "During sewers" + "During sewers + double ladder drop" { - "min" "60" + "min" "52" "max" "79" } } diff --git a/cfg/cfgogl/zh3v3/confogl.cfg b/cfg/cfgogl/zh3v3/confogl.cfg index fa5f91178..9755a505f 100644 --- a/cfg/cfgogl/zh3v3/confogl.cfg +++ b/cfg/cfgogl/zh3v3/confogl.cfg @@ -7,7 +7,7 @@ // ======================================================================================= // ReadyUp Cvars -l4d_ready_cfg_name "3v3 [Zone]Hunters v2.9.1" +l4d_ready_cfg_name "3v3 [Zone]Hunters v2.9.1b" // Confogl Cvars confogl_addcvar mp_gamemode "versus" // Force Versus for the config. diff --git a/cfg/cfgogl/zh3v3/mapinfo.txt b/cfg/cfgogl/zh3v3/mapinfo.txt index b1f234080..9e90051e3 100644 --- a/cfg/cfgogl/zh3v3/mapinfo.txt +++ b/cfg/cfgogl/zh3v3/mapinfo.txt @@ -1113,9 +1113,9 @@ "end_dist" "245.495361" "tank_ban_flow" { - "During sewers" + "During sewers + double ladder drop" { - "min" "60" + "min" "52" "max" "79" } } diff --git a/cfg/cfgogl/zm1v1/confogl.cfg b/cfg/cfgogl/zm1v1/confogl.cfg index 84ef2955b..c74d78c61 100644 --- a/cfg/cfgogl/zm1v1/confogl.cfg +++ b/cfg/cfgogl/zm1v1/confogl.cfg @@ -8,7 +8,7 @@ // ======================================================================================= // ReadyUp Cvars -l4d_ready_cfg_name "1v1 Zonemod v2.9.1" +l4d_ready_cfg_name "1v1 Zonemod v2.9.1b" // Confogl Cvars confogl_addcvar mp_gamemode "versus" // Force Versus for the config. diff --git a/cfg/cfgogl/zm1v1/mapinfo.txt b/cfg/cfgogl/zm1v1/mapinfo.txt index b1f234080..9e90051e3 100644 --- a/cfg/cfgogl/zm1v1/mapinfo.txt +++ b/cfg/cfgogl/zm1v1/mapinfo.txt @@ -1113,9 +1113,9 @@ "end_dist" "245.495361" "tank_ban_flow" { - "During sewers" + "During sewers + double ladder drop" { - "min" "60" + "min" "52" "max" "79" } } diff --git a/cfg/cfgogl/zm2v2/confogl.cfg b/cfg/cfgogl/zm2v2/confogl.cfg index 42187de65..56699b873 100644 --- a/cfg/cfgogl/zm2v2/confogl.cfg +++ b/cfg/cfgogl/zm2v2/confogl.cfg @@ -8,7 +8,7 @@ // ======================================================================================= // ReadyUp Cvars -l4d_ready_cfg_name "2v2 Zonemod v2.9.1" +l4d_ready_cfg_name "2v2 Zonemod v2.9.1b" // Confogl Cvars confogl_addcvar mp_gamemode "versus" // Force Versus for the config. diff --git a/cfg/cfgogl/zm2v2/mapinfo.txt b/cfg/cfgogl/zm2v2/mapinfo.txt index b1f234080..9e90051e3 100644 --- a/cfg/cfgogl/zm2v2/mapinfo.txt +++ b/cfg/cfgogl/zm2v2/mapinfo.txt @@ -1113,9 +1113,9 @@ "end_dist" "245.495361" "tank_ban_flow" { - "During sewers" + "During sewers + double ladder drop" { - "min" "60" + "min" "52" "max" "79" } } diff --git a/cfg/cfgogl/zm3v3/confogl.cfg b/cfg/cfgogl/zm3v3/confogl.cfg index b60db3ecf..bf6bea286 100644 --- a/cfg/cfgogl/zm3v3/confogl.cfg +++ b/cfg/cfgogl/zm3v3/confogl.cfg @@ -8,7 +8,7 @@ // ======================================================================================= // ReadyUp Cvars -l4d_ready_cfg_name "3v3 Zonemod v2.9.1" +l4d_ready_cfg_name "3v3 Zonemod v2.9.1b" // Confogl Cvars confogl_addcvar mp_gamemode "versus" // Force Versus for the config. diff --git a/cfg/cfgogl/zm3v3/mapinfo.txt b/cfg/cfgogl/zm3v3/mapinfo.txt index b1f234080..9e90051e3 100644 --- a/cfg/cfgogl/zm3v3/mapinfo.txt +++ b/cfg/cfgogl/zm3v3/mapinfo.txt @@ -1113,9 +1113,9 @@ "end_dist" "245.495361" "tank_ban_flow" { - "During sewers" + "During sewers + double ladder drop" { - "min" "60" + "min" "52" "max" "79" } } diff --git a/cfg/cfgogl/zonehunters/confogl.cfg b/cfg/cfgogl/zonehunters/confogl.cfg index 5351869bb..ca0c4fac6 100644 --- a/cfg/cfgogl/zonehunters/confogl.cfg +++ b/cfg/cfgogl/zonehunters/confogl.cfg @@ -7,7 +7,7 @@ // ======================================================================================= // ReadyUp Cvars -l4d_ready_cfg_name "[Zone]Hunters v2.9.1" +l4d_ready_cfg_name "[Zone]Hunters v2.9.1b" // Confogl Cvars confogl_addcvar mp_gamemode "versus" // Force Versus for the config. diff --git a/cfg/cfgogl/zonehunters/mapinfo.txt b/cfg/cfgogl/zonehunters/mapinfo.txt index b255f393d..cc09a5651 100644 --- a/cfg/cfgogl/zonehunters/mapinfo.txt +++ b/cfg/cfgogl/zonehunters/mapinfo.txt @@ -1113,9 +1113,9 @@ "end_dist" "245.495361" "tank_ban_flow" { - "During sewers" + "During sewers + double ladder drop" { - "min" "60" + "min" "52" "max" "79" } } diff --git a/cfg/cfgogl/zonemod/confogl.cfg b/cfg/cfgogl/zonemod/confogl.cfg index ac637a63b..1c3c4c5cf 100644 --- a/cfg/cfgogl/zonemod/confogl.cfg +++ b/cfg/cfgogl/zonemod/confogl.cfg @@ -8,7 +8,7 @@ // ======================================================================================= // ReadyUp Cvars -l4d_ready_cfg_name "ZoneMod v2.9.1" +l4d_ready_cfg_name "ZoneMod v2.9.1b" // Confogl Cvars confogl_addcvar mp_gamemode "versus" // Force Versus for the config. diff --git a/cfg/cfgogl/zonemod/mapinfo.txt b/cfg/cfgogl/zonemod/mapinfo.txt index f512e1e17..e62766c0e 100644 --- a/cfg/cfgogl/zonemod/mapinfo.txt +++ b/cfg/cfgogl/zonemod/mapinfo.txt @@ -1118,9 +1118,9 @@ "end_dist" "245.495361" "tank_ban_flow" { - "During sewers" + "During sewers + double ladder drop" { - "min" "60" + "min" "52" "max" "79" } } diff --git a/cfg/cfgogl/zoneretro/confogl.cfg b/cfg/cfgogl/zoneretro/confogl.cfg index 800343202..23f513f30 100644 --- a/cfg/cfgogl/zoneretro/confogl.cfg +++ b/cfg/cfgogl/zoneretro/confogl.cfg @@ -8,7 +8,7 @@ // ======================================================================================= // ReadyUp Cvars -l4d_ready_cfg_name "ZoneMod Retro v2.9.1" +l4d_ready_cfg_name "ZoneMod Retro v2.9.1b" // Confogl Cvars confogl_addcvar mp_gamemode "versus" // Force Versus for the config. diff --git a/cfg/cfgogl/zoneretro/mapinfo.txt b/cfg/cfgogl/zoneretro/mapinfo.txt index 263048f98..2f0963f1e 100644 --- a/cfg/cfgogl/zoneretro/mapinfo.txt +++ b/cfg/cfgogl/zoneretro/mapinfo.txt @@ -1113,9 +1113,9 @@ "end_dist" "245.495361" "tank_ban_flow" { - "During sewers" + "During sewers + double ladder drop" { - "min" "60" + "min" "52" "max" "79" } } diff --git a/cfg/generalfixes.cfg b/cfg/generalfixes.cfg index e9562a990..332b3907a 100644 --- a/cfg/generalfixes.cfg +++ b/cfg/generalfixes.cfg @@ -70,6 +70,9 @@ sm plugins load fixes/l4d_fix_stagger_dir.smx sm plugins load fixes/l4d2_fix_rocket_pull.smx sm plugins load optional/l4d_return_thrown_items.smx sm plugins load fixes/l4d_prop_touching_rules.smx +sm plugins load fixes/l4d2_fix_tank_rock_handoff.smx +sm plugins load fixes/l4d_fix_prop_los.smx // Anti-Cheat. +sm plugins load optional/l4d2_block_autoaim.smx // Sort of a cheat..? sm plugins load anticheat/l4d2_noghostcheat.smx diff --git a/cfg/stripper/acemodrv/maps/AirCrash.cfg b/cfg/stripper/acemodrv/maps/AirCrash.cfg index 378c9a5e4..c947901b6 100644 --- a/cfg/stripper/acemodrv/maps/AirCrash.cfg +++ b/cfg/stripper/acemodrv/maps/AirCrash.cfg @@ -228,7 +228,7 @@ add: } { ; Bridge event - "origin" "3011 -2710 107" + "origin" "3011 -2710 107" "angles" "0 0 0" "classname" "weapon_item_spawn" "spawnflags" "2" diff --git a/cfg/stripper/acemodrv/maps/OutSkirts.cfg b/cfg/stripper/acemodrv/maps/OutSkirts.cfg index 85467ad89..78b82ceee 100644 --- a/cfg/stripper/acemodrv/maps/OutSkirts.cfg +++ b/cfg/stripper/acemodrv/maps/OutSkirts.cfg @@ -38,7 +38,7 @@ modify: { "solid" "6" } - delete + delete: { "OnHealthChanged" "alarmtimer1Enable01" "OnHealthChanged" "alarm_soundPlaySound01" diff --git a/cfg/stripper/acemodrv/maps/RiverMotel.cfg b/cfg/stripper/acemodrv/maps/RiverMotel.cfg index 07bd4b0be..86680bd5a 100644 --- a/cfg/stripper/acemodrv/maps/RiverMotel.cfg +++ b/cfg/stripper/acemodrv/maps/RiverMotel.cfg @@ -129,7 +129,7 @@ modify: { "OnCase03" "spark1SparkOnce01" } -{ +} ; Remove randomness from some gun spawns modify: diff --git a/cfg/stripper/acemodrv/maps/c2m2_fairgrounds.cfg b/cfg/stripper/acemodrv/maps/c2m2_fairgrounds.cfg index 817d5b978..fee02e958 100644 --- a/cfg/stripper/acemodrv/maps/c2m2_fairgrounds.cfg +++ b/cfg/stripper/acemodrv/maps/c2m2_fairgrounds.cfg @@ -551,7 +551,7 @@ add: ; "boxmaxs" "106 10 367" ; "initialstate" "1" ; "BlockType" "1" -} +;} { "classname" "env_physics_blocker" "origin" "-1408 -1025 441" diff --git a/cfg/stripper/acemodrv/maps/c2m3_coaster.cfg b/cfg/stripper/acemodrv/maps/c2m3_coaster.cfg index d9eb7ba8d..ecda82407 100644 --- a/cfg/stripper/acemodrv/maps/c2m3_coaster.cfg +++ b/cfg/stripper/acemodrv/maps/c2m3_coaster.cfg @@ -1136,7 +1136,7 @@ add: "BlockType" "0" "initialstate" "1" "maxs" "48 8 88" - "mins" "-8 -108 -8" + "mins" "-8 -108 -8" "origin" "204 4528 0" "mapupdate" "1" } diff --git a/cfg/stripper/acemodrv/maps/c8m1_apartment.cfg b/cfg/stripper/acemodrv/maps/c8m1_apartment.cfg index c03aa56c8..c83c12373 100644 --- a/cfg/stripper/acemodrv/maps/c8m1_apartment.cfg +++ b/cfg/stripper/acemodrv/maps/c8m1_apartment.cfg @@ -798,7 +798,7 @@ add: ; "BlockType" "0" ; "initialstate" "1" ; "maxs" "12 8 260" -; "mins" "-240 -8 -208" +; "mins" "-240 -8 -208" ; "origin" "2288 1424 224.35" ; "mapupdate" "1" ;} diff --git a/cfg/stripper/acemodrv/maps/damitdc1.cfg b/cfg/stripper/acemodrv/maps/damitdc1.cfg index 5c016d779..f827cfe58 100644 --- a/cfg/stripper/acemodrv/maps/damitdc1.cfg +++ b/cfg/stripper/acemodrv/maps/damitdc1.cfg @@ -70,4 +70,4 @@ modify: ;"OnCase06" "temp_p2ForceSpawn0-1" "OnCase05" "temp_p1ForceSpawn0-1" } -} +} diff --git a/cfg/stripper/acemodrv/maps/daredux_map5_garage_aw.cfg b/cfg/stripper/acemodrv/maps/daredux_map5_garage_aw.cfg index 1f5c6f24a..d6824aa5f 100644 --- a/cfg/stripper/acemodrv/maps/daredux_map5_garage_aw.cfg +++ b/cfg/stripper/acemodrv/maps/daredux_map5_garage_aw.cfg @@ -724,7 +724,6 @@ add: "initialstate" "1" "BlockType" "1" } -} ; --- Auto crouch trigger for ladders { "classname" "logic_auto" diff --git a/cfg/stripper/acemodrv/maps/l4d2_stadium1_apartment.cfg b/cfg/stripper/acemodrv/maps/l4d2_stadium1_apartment.cfg index 48b9a918d..ac1c4725f 100644 --- a/cfg/stripper/acemodrv/maps/l4d2_stadium1_apartment.cfg +++ b/cfg/stripper/acemodrv/maps/l4d2_stadium1_apartment.cfg @@ -31,6 +31,7 @@ filter: ;Path Picker 1. "hammerid" "2411730" } +{ ;Query. "hammerid" "1951907" } diff --git a/cfg/stripper/acemodrv/maps/l4d_dbd2dc_undead_center.cfg b/cfg/stripper/acemodrv/maps/l4d_dbd2dc_undead_center.cfg index c2c4fe7f3..999173811 100644 --- a/cfg/stripper/acemodrv/maps/l4d_dbd2dc_undead_center.cfg +++ b/cfg/stripper/acemodrv/maps/l4d_dbd2dc_undead_center.cfg @@ -231,6 +231,7 @@ modify: { "spawnflags" "34816" } +} { match: diff --git a/cfg/stripper/acemodrv/maps/l4d_ihm01_forest.cfg b/cfg/stripper/acemodrv/maps/l4d_ihm01_forest.cfg index 56d7793bd..481744845 100644 --- a/cfg/stripper/acemodrv/maps/l4d_ihm01_forest.cfg +++ b/cfg/stripper/acemodrv/maps/l4d_ihm01_forest.cfg @@ -1,5 +1,5 @@ ;----- Make sure it's the same path on both sides (Non-Barricaded) -modify +modify: { match: { diff --git a/cfg/stripper/acemodrv/maps/versus_3.cfg b/cfg/stripper/acemodrv/maps/versus_3.cfg index a9360633c..beb411534 100644 --- a/cfg/stripper/acemodrv/maps/versus_3.cfg +++ b/cfg/stripper/acemodrv/maps/versus_3.cfg @@ -79,7 +79,7 @@ add: } ;block exploit onto roof -add +add: { "solid" "6" "origin" "9891 5143 -1319" @@ -89,7 +89,7 @@ add } ;barrier in "labrynth" because it just leads to a dead end and a broken infected ladder -add +add: { "solid" "6" "origin" "10923 4402 -1560" diff --git a/cfg/stripper/apex/maps/AirCrash.cfg b/cfg/stripper/apex/maps/AirCrash.cfg index 378c9a5e4..c947901b6 100644 --- a/cfg/stripper/apex/maps/AirCrash.cfg +++ b/cfg/stripper/apex/maps/AirCrash.cfg @@ -228,7 +228,7 @@ add: } { ; Bridge event - "origin" "3011 -2710 107" + "origin" "3011 -2710 107" "angles" "0 0 0" "classname" "weapon_item_spawn" "spawnflags" "2" diff --git a/cfg/stripper/apex/maps/OutSkirts.cfg b/cfg/stripper/apex/maps/OutSkirts.cfg index 85467ad89..78b82ceee 100644 --- a/cfg/stripper/apex/maps/OutSkirts.cfg +++ b/cfg/stripper/apex/maps/OutSkirts.cfg @@ -38,7 +38,7 @@ modify: { "solid" "6" } - delete + delete: { "OnHealthChanged" "alarmtimer1Enable01" "OnHealthChanged" "alarm_soundPlaySound01" diff --git a/cfg/stripper/apex/maps/RiverMotel.cfg b/cfg/stripper/apex/maps/RiverMotel.cfg index 07bd4b0be..86680bd5a 100644 --- a/cfg/stripper/apex/maps/RiverMotel.cfg +++ b/cfg/stripper/apex/maps/RiverMotel.cfg @@ -129,7 +129,7 @@ modify: { "OnCase03" "spark1SparkOnce01" } -{ +} ; Remove randomness from some gun spawns modify: diff --git a/cfg/stripper/apex/maps/c14m2_lighthouse.cfg b/cfg/stripper/apex/maps/c14m2_lighthouse.cfg index d881600ec..6c24f82b3 100644 --- a/cfg/stripper/apex/maps/c14m2_lighthouse.cfg +++ b/cfg/stripper/apex/maps/c14m2_lighthouse.cfg @@ -8,7 +8,6 @@ modify: { "hammerid" "2263638" } - { delete: { "OnPressed" "case_footlockerPickRandom0.11" diff --git a/cfg/stripper/apex/maps/c4m4_milltown_b.cfg b/cfg/stripper/apex/maps/c4m4_milltown_b.cfg index 669ee3401..3fa4043de 100644 --- a/cfg/stripper/apex/maps/c4m4_milltown_b.cfg +++ b/cfg/stripper/apex/maps/c4m4_milltown_b.cfg @@ -108,7 +108,7 @@ filter: ; --- didnt remove propane/gas cans and weapon_item_spawns that can spawn propane/gas ; -- first aid kit filters -( +{ "hammerid" "1988529" } { diff --git a/cfg/stripper/apex/maps/c8m4_interior.cfg b/cfg/stripper/apex/maps/c8m4_interior.cfg index 4c9668821..0fa3531f0 100644 --- a/cfg/stripper/apex/maps/c8m4_interior.cfg +++ b/cfg/stripper/apex/maps/c8m4_interior.cfg @@ -67,12 +67,11 @@ modify: "weapon_selection" "tier2_shotgun" } } + +filter: { ; remove hr - filter: - { - "hammerid" "6567279" - } + "hammerid" "6567279" } ; ===================================================== diff --git a/cfg/stripper/apex/maps/c8m5_rooftop.cfg b/cfg/stripper/apex/maps/c8m5_rooftop.cfg index 34671d8f6..c24dc192d 100644 --- a/cfg/stripper/apex/maps/c8m5_rooftop.cfg +++ b/cfg/stripper/apex/maps/c8m5_rooftop.cfg @@ -75,12 +75,11 @@ modify: "weapon_selection" "weapon_pumpshotgun" } } + +filter: { ; remove hr - filter: - { - "hammerid" "3319419" - } + "hammerid" "3319419" } ; ===================================================== diff --git a/cfg/stripper/apex/maps/daredux_map5_garage_aw.cfg b/cfg/stripper/apex/maps/daredux_map5_garage_aw.cfg index 1f5c6f24a..d6824aa5f 100644 --- a/cfg/stripper/apex/maps/daredux_map5_garage_aw.cfg +++ b/cfg/stripper/apex/maps/daredux_map5_garage_aw.cfg @@ -724,7 +724,6 @@ add: "initialstate" "1" "BlockType" "1" } -} ; --- Auto crouch trigger for ladders { "classname" "logic_auto" diff --git a/cfg/stripper/apex/maps/l4d2_stadium1_apartment.cfg b/cfg/stripper/apex/maps/l4d2_stadium1_apartment.cfg index 48b9a918d..ac1c4725f 100644 --- a/cfg/stripper/apex/maps/l4d2_stadium1_apartment.cfg +++ b/cfg/stripper/apex/maps/l4d2_stadium1_apartment.cfg @@ -31,6 +31,7 @@ filter: ;Path Picker 1. "hammerid" "2411730" } +{ ;Query. "hammerid" "1951907" } diff --git a/cfg/stripper/apex/maps/l4d_ihm01_forest.cfg b/cfg/stripper/apex/maps/l4d_ihm01_forest.cfg index 56d7793bd..481744845 100644 --- a/cfg/stripper/apex/maps/l4d_ihm01_forest.cfg +++ b/cfg/stripper/apex/maps/l4d_ihm01_forest.cfg @@ -1,5 +1,5 @@ ;----- Make sure it's the same path on both sides (Non-Barricaded) -modify +modify: { match: { diff --git a/cfg/stripper/apex/maps/versus_3.cfg b/cfg/stripper/apex/maps/versus_3.cfg index a9360633c..beb411534 100644 --- a/cfg/stripper/apex/maps/versus_3.cfg +++ b/cfg/stripper/apex/maps/versus_3.cfg @@ -79,7 +79,7 @@ add: } ;block exploit onto roof -add +add: { "solid" "6" "origin" "9891 5143 -1319" @@ -89,7 +89,7 @@ add } ;barrier in "labrynth" because it just leads to a dead end and a broken infected ladder -add +add: { "solid" "6" "origin" "10923 4402 -1560" diff --git a/cfg/stripper/deadman/maps/AirCrash.cfg b/cfg/stripper/deadman/maps/AirCrash.cfg index 3dcf8bc4e..f9e00f543 100644 --- a/cfg/stripper/deadman/maps/AirCrash.cfg +++ b/cfg/stripper/deadman/maps/AirCrash.cfg @@ -228,7 +228,7 @@ add: } { ; Bridge event - "origin" "3011 -2710 107" + "origin" "3011 -2710 107" "angles" "0 0 0" "classname" "weapon_item_spawn" "spawnflags" "2" diff --git a/cfg/stripper/deadman/maps/OutSkirts.cfg b/cfg/stripper/deadman/maps/OutSkirts.cfg index 6bfb47dcc..5a2a3a3fd 100644 --- a/cfg/stripper/deadman/maps/OutSkirts.cfg +++ b/cfg/stripper/deadman/maps/OutSkirts.cfg @@ -38,7 +38,7 @@ modify: { "solid" "6" } - delete + delete: { "OnHealthChanged" "alarmtimer1Enable01" "OnHealthChanged" "alarm_soundPlaySound01" diff --git a/cfg/stripper/deadman/maps/RiverMotel.cfg b/cfg/stripper/deadman/maps/RiverMotel.cfg index b49df78c5..a0f6c2af6 100644 --- a/cfg/stripper/deadman/maps/RiverMotel.cfg +++ b/cfg/stripper/deadman/maps/RiverMotel.cfg @@ -129,7 +129,7 @@ modify: { "OnCase03" "spark1SparkOnce01" } -{ +} ; Remove randomness from some gun spawns modify: diff --git a/cfg/stripper/deadman/maps/c4m4_milltown_b.cfg b/cfg/stripper/deadman/maps/c4m4_milltown_b.cfg index 16debbaf2..28e9a6bd0 100644 --- a/cfg/stripper/deadman/maps/c4m4_milltown_b.cfg +++ b/cfg/stripper/deadman/maps/c4m4_milltown_b.cfg @@ -108,7 +108,7 @@ filter: ; --- didnt remove propane/gas cans and weapon_item_spawns that can spawn propane/gas ; -- first aid kit filters -( +{ "hammerid" "1988529" } { diff --git a/cfg/stripper/deadman/maps/c5m2_park.cfg b/cfg/stripper/deadman/maps/c5m2_park.cfg index 8c9ca9b78..2c52cec74 100644 --- a/cfg/stripper/deadman/maps/c5m2_park.cfg +++ b/cfg/stripper/deadman/maps/c5m2_park.cfg @@ -25,6 +25,15 @@ modify: "hammerid" "1867428" } replace: + { + "classname" "weapon_ammo_spawn" + "spawnflags" "2" + "solid" "6" + "model" "models/props/terror/ammo_stack.mdl" + "disableshadows" "1" + "count" "5" + "angles" "0 0 0" + } } ; ===================================================== diff --git a/cfg/stripper/deadman/maps/c8m4_interior.cfg b/cfg/stripper/deadman/maps/c8m4_interior.cfg index 63b0bf629..868cb72d8 100644 --- a/cfg/stripper/deadman/maps/c8m4_interior.cfg +++ b/cfg/stripper/deadman/maps/c8m4_interior.cfg @@ -49,12 +49,11 @@ modify: "weapon_selection" "tier2_shotgun" } } + +filter: { ; remove hr - filter: - { - "hammerid" "6567279" - } + "hammerid" "6567279" } ; ===================================================== diff --git a/cfg/stripper/deadman/maps/c8m5_rooftop.cfg b/cfg/stripper/deadman/maps/c8m5_rooftop.cfg index 34785b86f..38f3763d6 100644 --- a/cfg/stripper/deadman/maps/c8m5_rooftop.cfg +++ b/cfg/stripper/deadman/maps/c8m5_rooftop.cfg @@ -75,12 +75,11 @@ modify: "weapon_selection" "weapon_shotgun_chrome" } } + +filter: { ; remove hr - filter: - { - "hammerid" "3319419" - } + "hammerid" "3319419" } ; ===================================================== diff --git a/cfg/stripper/deadman/maps/l4d2_stadium1_apartment.cfg b/cfg/stripper/deadman/maps/l4d2_stadium1_apartment.cfg index ffed6cc39..c9afb903a 100644 --- a/cfg/stripper/deadman/maps/l4d2_stadium1_apartment.cfg +++ b/cfg/stripper/deadman/maps/l4d2_stadium1_apartment.cfg @@ -31,6 +31,7 @@ filter: ;Path Picker 1. "hammerid" "2411730" } +{ ;Query. "hammerid" "1951907" } diff --git a/cfg/stripper/deadman/maps/l4d_ihm01_forest.cfg b/cfg/stripper/deadman/maps/l4d_ihm01_forest.cfg index 845820e58..aa0875058 100644 --- a/cfg/stripper/deadman/maps/l4d_ihm01_forest.cfg +++ b/cfg/stripper/deadman/maps/l4d_ihm01_forest.cfg @@ -1,5 +1,5 @@ ;----- Make sure it's the same path on both sides (Non-Barricaded) -modify +modify: { match: { diff --git a/cfg/stripper/deadman/maps/versus_3.cfg b/cfg/stripper/deadman/maps/versus_3.cfg index 2a6cc6d7a..4525a6c5b 100644 --- a/cfg/stripper/deadman/maps/versus_3.cfg +++ b/cfg/stripper/deadman/maps/versus_3.cfg @@ -79,7 +79,7 @@ add: } ;block exploit onto roof -add +add: { "solid" "6" "origin" "9891 5143 -1319" @@ -89,7 +89,7 @@ add } ;barrier in "labrynth" because it just leads to a dead end and a broken infected ladder -add +add: { "solid" "6" "origin" "10923 4402 -1560" diff --git a/cfg/stripper/eq/maps/AirCrash.cfg b/cfg/stripper/eq/maps/AirCrash.cfg index 378c9a5e4..c947901b6 100644 --- a/cfg/stripper/eq/maps/AirCrash.cfg +++ b/cfg/stripper/eq/maps/AirCrash.cfg @@ -228,7 +228,7 @@ add: } { ; Bridge event - "origin" "3011 -2710 107" + "origin" "3011 -2710 107" "angles" "0 0 0" "classname" "weapon_item_spawn" "spawnflags" "2" diff --git a/cfg/stripper/eq/maps/OutSkirts.cfg b/cfg/stripper/eq/maps/OutSkirts.cfg index 85467ad89..78b82ceee 100644 --- a/cfg/stripper/eq/maps/OutSkirts.cfg +++ b/cfg/stripper/eq/maps/OutSkirts.cfg @@ -38,7 +38,7 @@ modify: { "solid" "6" } - delete + delete: { "OnHealthChanged" "alarmtimer1Enable01" "OnHealthChanged" "alarm_soundPlaySound01" diff --git a/cfg/stripper/eq/maps/RiverMotel.cfg b/cfg/stripper/eq/maps/RiverMotel.cfg index 07bd4b0be..86680bd5a 100644 --- a/cfg/stripper/eq/maps/RiverMotel.cfg +++ b/cfg/stripper/eq/maps/RiverMotel.cfg @@ -129,7 +129,7 @@ modify: { "OnCase03" "spark1SparkOnce01" } -{ +} ; Remove randomness from some gun spawns modify: diff --git a/cfg/stripper/eq/maps/c14m2_lighthouse.cfg b/cfg/stripper/eq/maps/c14m2_lighthouse.cfg index d881600ec..6c24f82b3 100644 --- a/cfg/stripper/eq/maps/c14m2_lighthouse.cfg +++ b/cfg/stripper/eq/maps/c14m2_lighthouse.cfg @@ -8,7 +8,6 @@ modify: { "hammerid" "2263638" } - { delete: { "OnPressed" "case_footlockerPickRandom0.11" diff --git a/cfg/stripper/eq/maps/c4m4_milltown_b.cfg b/cfg/stripper/eq/maps/c4m4_milltown_b.cfg index 43c26991f..bee448b6d 100644 --- a/cfg/stripper/eq/maps/c4m4_milltown_b.cfg +++ b/cfg/stripper/eq/maps/c4m4_milltown_b.cfg @@ -88,7 +88,7 @@ filter: ; --- didnt remove propane/gas cans and weapon_item_spawns that can spawn propane/gas ; -- first aid kit filters -( +{ "hammerid" "1988529" } { diff --git a/cfg/stripper/eq/maps/c8m4_interior.cfg b/cfg/stripper/eq/maps/c8m4_interior.cfg index e7593d435..5fd8eeb1e 100644 --- a/cfg/stripper/eq/maps/c8m4_interior.cfg +++ b/cfg/stripper/eq/maps/c8m4_interior.cfg @@ -25,12 +25,11 @@ modify: "weapon_selection" "tier2_shotgun" } } + +filter: { ; remove hr - filter: - { - "hammerid" "6567279" - } + "hammerid" "6567279" } ; ===================================================== diff --git a/cfg/stripper/eq/maps/c8m5_rooftop.cfg b/cfg/stripper/eq/maps/c8m5_rooftop.cfg index 79aaceba9..cc7d508ea 100644 --- a/cfg/stripper/eq/maps/c8m5_rooftop.cfg +++ b/cfg/stripper/eq/maps/c8m5_rooftop.cfg @@ -51,12 +51,11 @@ modify: "weapon_selection" "weapon_shotgun_chrome" } } + +filter: { ; remove hr - filter: - { - "hammerid" "3319419" - } + "hammerid" "3319419" } ; ===================================================== diff --git a/cfg/stripper/eq/maps/damitdc2.cfg b/cfg/stripper/eq/maps/damitdc2.cfg index cfb1c2e4c..1b8ce655c 100644 --- a/cfg/stripper/eq/maps/damitdc2.cfg +++ b/cfg/stripper/eq/maps/damitdc2.cfg @@ -102,4 +102,4 @@ modify: "OnCase06" "molo2_tForceSpawn0-1" ;"OnCase05" "molo1_tForceSpawn0-1" } -} +} diff --git a/cfg/stripper/eq/maps/daredux_map5_garage_aw.cfg b/cfg/stripper/eq/maps/daredux_map5_garage_aw.cfg index 1f5c6f24a..d6824aa5f 100644 --- a/cfg/stripper/eq/maps/daredux_map5_garage_aw.cfg +++ b/cfg/stripper/eq/maps/daredux_map5_garage_aw.cfg @@ -724,7 +724,6 @@ add: "initialstate" "1" "BlockType" "1" } -} ; --- Auto crouch trigger for ladders { "classname" "logic_auto" diff --git a/cfg/stripper/eq/maps/l4d2_stadium1_apartment.cfg b/cfg/stripper/eq/maps/l4d2_stadium1_apartment.cfg index 48b9a918d..ac1c4725f 100644 --- a/cfg/stripper/eq/maps/l4d2_stadium1_apartment.cfg +++ b/cfg/stripper/eq/maps/l4d2_stadium1_apartment.cfg @@ -31,6 +31,7 @@ filter: ;Path Picker 1. "hammerid" "2411730" } +{ ;Query. "hammerid" "1951907" } diff --git a/cfg/stripper/eq/maps/l4d_ihm01_forest.cfg b/cfg/stripper/eq/maps/l4d_ihm01_forest.cfg index 56d7793bd..481744845 100644 --- a/cfg/stripper/eq/maps/l4d_ihm01_forest.cfg +++ b/cfg/stripper/eq/maps/l4d_ihm01_forest.cfg @@ -1,5 +1,5 @@ ;----- Make sure it's the same path on both sides (Non-Barricaded) -modify +modify: { match: { diff --git a/cfg/stripper/eq/maps/versus_3.cfg b/cfg/stripper/eq/maps/versus_3.cfg index a9360633c..beb411534 100644 --- a/cfg/stripper/eq/maps/versus_3.cfg +++ b/cfg/stripper/eq/maps/versus_3.cfg @@ -79,7 +79,7 @@ add: } ;block exploit onto roof -add +add: { "solid" "6" "origin" "9891 5143 -1319" @@ -89,7 +89,7 @@ add } ;barrier in "labrynth" because it just leads to a dead end and a broken infected ladder -add +add: { "solid" "6" "origin" "10923 4402 -1560" diff --git a/cfg/stripper/neomod/maps/AirCrash.cfg b/cfg/stripper/neomod/maps/AirCrash.cfg index 378c9a5e4..c947901b6 100644 --- a/cfg/stripper/neomod/maps/AirCrash.cfg +++ b/cfg/stripper/neomod/maps/AirCrash.cfg @@ -228,7 +228,7 @@ add: } { ; Bridge event - "origin" "3011 -2710 107" + "origin" "3011 -2710 107" "angles" "0 0 0" "classname" "weapon_item_spawn" "spawnflags" "2" diff --git a/cfg/stripper/neomod/maps/OutSkirts.cfg b/cfg/stripper/neomod/maps/OutSkirts.cfg index 85467ad89..78b82ceee 100644 --- a/cfg/stripper/neomod/maps/OutSkirts.cfg +++ b/cfg/stripper/neomod/maps/OutSkirts.cfg @@ -38,7 +38,7 @@ modify: { "solid" "6" } - delete + delete: { "OnHealthChanged" "alarmtimer1Enable01" "OnHealthChanged" "alarm_soundPlaySound01" diff --git a/cfg/stripper/neomod/maps/RiverMotel.cfg b/cfg/stripper/neomod/maps/RiverMotel.cfg index 07bd4b0be..86680bd5a 100644 --- a/cfg/stripper/neomod/maps/RiverMotel.cfg +++ b/cfg/stripper/neomod/maps/RiverMotel.cfg @@ -129,7 +129,7 @@ modify: { "OnCase03" "spark1SparkOnce01" } -{ +} ; Remove randomness from some gun spawns modify: diff --git a/cfg/stripper/neomod/maps/c2m2_fairgrounds.cfg b/cfg/stripper/neomod/maps/c2m2_fairgrounds.cfg index b4496d18c..1539b8493 100644 --- a/cfg/stripper/neomod/maps/c2m2_fairgrounds.cfg +++ b/cfg/stripper/neomod/maps/c2m2_fairgrounds.cfg @@ -551,7 +551,7 @@ add: ; "boxmaxs" "106 10 367" ; "initialstate" "1" ; "BlockType" "1" -} +;} { "classname" "env_physics_blocker" "origin" "-1408 -1025 441" diff --git a/cfg/stripper/neomod/maps/c2m3_coaster.cfg b/cfg/stripper/neomod/maps/c2m3_coaster.cfg index 3b01a9bea..24db616fc 100644 --- a/cfg/stripper/neomod/maps/c2m3_coaster.cfg +++ b/cfg/stripper/neomod/maps/c2m3_coaster.cfg @@ -1129,7 +1129,7 @@ add: "BlockType" "0" "initialstate" "1" "maxs" "48 8 88" - "mins" "-8 -108 -8" + "mins" "-8 -108 -8" "origin" "204 4528 0" "mapupdate" "1" } diff --git a/cfg/stripper/neomod/maps/c3m4_plantation.cfg b/cfg/stripper/neomod/maps/c3m4_plantation.cfg index f414cf4f5..8ff069e89 100644 --- a/cfg/stripper/neomod/maps/c3m4_plantation.cfg +++ b/cfg/stripper/neomod/maps/c3m4_plantation.cfg @@ -192,6 +192,7 @@ filter: { "targetname" "navblock_coop" } +{ "targetname" "navblock_scavenge" } ; --- Additional clipping around tall mansion ladders to stop players from falling off diff --git a/cfg/stripper/neomod/maps/c8m1_apartment.cfg b/cfg/stripper/neomod/maps/c8m1_apartment.cfg index f95f922e4..e7724f4d0 100644 --- a/cfg/stripper/neomod/maps/c8m1_apartment.cfg +++ b/cfg/stripper/neomod/maps/c8m1_apartment.cfg @@ -890,7 +890,7 @@ add: ; "BlockType" "0" ; "initialstate" "1" ; "maxs" "12 8 260" -; "mins" "-240 -8 -208" +; "mins" "-240 -8 -208" ; "origin" "2288 1424 224.35" ; "mapupdate" "1" ;} diff --git a/cfg/stripper/neomod/maps/daredux_map5_garage_aw.cfg b/cfg/stripper/neomod/maps/daredux_map5_garage_aw.cfg index 1f5c6f24a..d6824aa5f 100644 --- a/cfg/stripper/neomod/maps/daredux_map5_garage_aw.cfg +++ b/cfg/stripper/neomod/maps/daredux_map5_garage_aw.cfg @@ -724,7 +724,6 @@ add: "initialstate" "1" "BlockType" "1" } -} ; --- Auto crouch trigger for ladders { "classname" "logic_auto" diff --git a/cfg/stripper/neomod/maps/l4d2_stadium1_apartment.cfg b/cfg/stripper/neomod/maps/l4d2_stadium1_apartment.cfg index 48b9a918d..ac1c4725f 100644 --- a/cfg/stripper/neomod/maps/l4d2_stadium1_apartment.cfg +++ b/cfg/stripper/neomod/maps/l4d2_stadium1_apartment.cfg @@ -31,6 +31,7 @@ filter: ;Path Picker 1. "hammerid" "2411730" } +{ ;Query. "hammerid" "1951907" } diff --git a/cfg/stripper/neomod/maps/l4d_dbd2dc_undead_center.cfg b/cfg/stripper/neomod/maps/l4d_dbd2dc_undead_center.cfg index c2c4fe7f3..999173811 100644 --- a/cfg/stripper/neomod/maps/l4d_dbd2dc_undead_center.cfg +++ b/cfg/stripper/neomod/maps/l4d_dbd2dc_undead_center.cfg @@ -231,6 +231,7 @@ modify: { "spawnflags" "34816" } +} { match: diff --git a/cfg/stripper/neomod/maps/l4d_ihm01_forest.cfg b/cfg/stripper/neomod/maps/l4d_ihm01_forest.cfg index 56d7793bd..481744845 100644 --- a/cfg/stripper/neomod/maps/l4d_ihm01_forest.cfg +++ b/cfg/stripper/neomod/maps/l4d_ihm01_forest.cfg @@ -1,5 +1,5 @@ ;----- Make sure it's the same path on both sides (Non-Barricaded) -modify +modify: { match: { diff --git a/cfg/stripper/neomod/maps/versus_3.cfg b/cfg/stripper/neomod/maps/versus_3.cfg index a9360633c..beb411534 100644 --- a/cfg/stripper/neomod/maps/versus_3.cfg +++ b/cfg/stripper/neomod/maps/versus_3.cfg @@ -79,7 +79,7 @@ add: } ;block exploit onto roof -add +add: { "solid" "6" "origin" "9891 5143 -1319" @@ -89,7 +89,7 @@ add } ;barrier in "labrynth" because it just leads to a dead end and a broken infected ladder -add +add: { "solid" "6" "origin" "10923 4402 -1560" diff --git a/cfg/stripper/nextmod/maps/AirCrash.cfg b/cfg/stripper/nextmod/maps/AirCrash.cfg index 3dcf8bc4e..f9e00f543 100644 --- a/cfg/stripper/nextmod/maps/AirCrash.cfg +++ b/cfg/stripper/nextmod/maps/AirCrash.cfg @@ -228,7 +228,7 @@ add: } { ; Bridge event - "origin" "3011 -2710 107" + "origin" "3011 -2710 107" "angles" "0 0 0" "classname" "weapon_item_spawn" "spawnflags" "2" diff --git a/cfg/stripper/nextmod/maps/OutSkirts.cfg b/cfg/stripper/nextmod/maps/OutSkirts.cfg index 6bfb47dcc..5a2a3a3fd 100644 --- a/cfg/stripper/nextmod/maps/OutSkirts.cfg +++ b/cfg/stripper/nextmod/maps/OutSkirts.cfg @@ -38,7 +38,7 @@ modify: { "solid" "6" } - delete + delete: { "OnHealthChanged" "alarmtimer1Enable01" "OnHealthChanged" "alarm_soundPlaySound01" diff --git a/cfg/stripper/nextmod/maps/RiverMotel.cfg b/cfg/stripper/nextmod/maps/RiverMotel.cfg index b49df78c5..a0f6c2af6 100644 --- a/cfg/stripper/nextmod/maps/RiverMotel.cfg +++ b/cfg/stripper/nextmod/maps/RiverMotel.cfg @@ -129,7 +129,7 @@ modify: { "OnCase03" "spark1SparkOnce01" } -{ +} ; Remove randomness from some gun spawns modify: diff --git a/cfg/stripper/nextmod/maps/c14m2_lighthouse.cfg b/cfg/stripper/nextmod/maps/c14m2_lighthouse.cfg index d881600ec..6c24f82b3 100644 --- a/cfg/stripper/nextmod/maps/c14m2_lighthouse.cfg +++ b/cfg/stripper/nextmod/maps/c14m2_lighthouse.cfg @@ -8,7 +8,6 @@ modify: { "hammerid" "2263638" } - { delete: { "OnPressed" "case_footlockerPickRandom0.11" diff --git a/cfg/stripper/nextmod/maps/c4m4_milltown_b.cfg b/cfg/stripper/nextmod/maps/c4m4_milltown_b.cfg index 87fab90aa..842305e44 100644 --- a/cfg/stripper/nextmod/maps/c4m4_milltown_b.cfg +++ b/cfg/stripper/nextmod/maps/c4m4_milltown_b.cfg @@ -108,7 +108,7 @@ filter: ; --- didnt remove propane/gas cans and weapon_item_spawns that can spawn propane/gas ; -- first aid kit filters -( +{ "hammerid" "1988529" } { diff --git a/cfg/stripper/nextmod/maps/c8m4_interior.cfg b/cfg/stripper/nextmod/maps/c8m4_interior.cfg index 172d74fa8..6222c2ebd 100644 --- a/cfg/stripper/nextmod/maps/c8m4_interior.cfg +++ b/cfg/stripper/nextmod/maps/c8m4_interior.cfg @@ -68,12 +68,11 @@ modify: "weapon_selection" "tier2_shotgun" } } + +filter: { ; remove hr - filter: - { - "hammerid" "6567279" - } + "hammerid" "6567279" } ; ===================================================== @@ -119,7 +118,7 @@ filter: { "model" "models/props_equipment/light_floodlight.mdl" -] +} ; ===================================================== ; =================== GLITCH FIX ==================== diff --git a/cfg/stripper/nextmod/maps/c8m5_rooftop.cfg b/cfg/stripper/nextmod/maps/c8m5_rooftop.cfg index 3dde4b929..f612a2601 100644 --- a/cfg/stripper/nextmod/maps/c8m5_rooftop.cfg +++ b/cfg/stripper/nextmod/maps/c8m5_rooftop.cfg @@ -49,12 +49,11 @@ modify: "weapon_selection" "weapon_shotgun_chrome" } } + +filter: { ; remove hr - filter: - { - "hammerid" "3319419" - } + "hammerid" "3319419" } ; ===================================================== diff --git a/cfg/stripper/nextmod/maps/daredux_map5_garage_aw.cfg b/cfg/stripper/nextmod/maps/daredux_map5_garage_aw.cfg index 1f5c6f24a..d6824aa5f 100644 --- a/cfg/stripper/nextmod/maps/daredux_map5_garage_aw.cfg +++ b/cfg/stripper/nextmod/maps/daredux_map5_garage_aw.cfg @@ -724,7 +724,6 @@ add: "initialstate" "1" "BlockType" "1" } -} ; --- Auto crouch trigger for ladders { "classname" "logic_auto" diff --git a/cfg/stripper/nextmod/maps/l4d2_stadium1_apartment.cfg b/cfg/stripper/nextmod/maps/l4d2_stadium1_apartment.cfg index ffed6cc39..c9afb903a 100644 --- a/cfg/stripper/nextmod/maps/l4d2_stadium1_apartment.cfg +++ b/cfg/stripper/nextmod/maps/l4d2_stadium1_apartment.cfg @@ -31,6 +31,7 @@ filter: ;Path Picker 1. "hammerid" "2411730" } +{ ;Query. "hammerid" "1951907" } diff --git a/cfg/stripper/nextmod/maps/l4d_ihm01_forest.cfg b/cfg/stripper/nextmod/maps/l4d_ihm01_forest.cfg index 845820e58..aa0875058 100644 --- a/cfg/stripper/nextmod/maps/l4d_ihm01_forest.cfg +++ b/cfg/stripper/nextmod/maps/l4d_ihm01_forest.cfg @@ -1,5 +1,5 @@ ;----- Make sure it's the same path on both sides (Non-Barricaded) -modify +modify: { match: { diff --git a/cfg/stripper/nextmod/maps/versus_3.cfg b/cfg/stripper/nextmod/maps/versus_3.cfg index 2a6cc6d7a..4525a6c5b 100644 --- a/cfg/stripper/nextmod/maps/versus_3.cfg +++ b/cfg/stripper/nextmod/maps/versus_3.cfg @@ -79,7 +79,7 @@ add: } ;block exploit onto roof -add +add: { "solid" "6" "origin" "9891 5143 -1319" @@ -89,7 +89,7 @@ add } ;barrier in "labrynth" because it just leads to a dead end and a broken infected ladder -add +add: { "solid" "6" "origin" "10923 4402 -1560" diff --git a/cfg/stripper/pmelite/maps/AirCrash.cfg b/cfg/stripper/pmelite/maps/AirCrash.cfg index 378c9a5e4..c947901b6 100644 --- a/cfg/stripper/pmelite/maps/AirCrash.cfg +++ b/cfg/stripper/pmelite/maps/AirCrash.cfg @@ -228,7 +228,7 @@ add: } { ; Bridge event - "origin" "3011 -2710 107" + "origin" "3011 -2710 107" "angles" "0 0 0" "classname" "weapon_item_spawn" "spawnflags" "2" diff --git a/cfg/stripper/pmelite/maps/OutSkirts.cfg b/cfg/stripper/pmelite/maps/OutSkirts.cfg index 85467ad89..78b82ceee 100644 --- a/cfg/stripper/pmelite/maps/OutSkirts.cfg +++ b/cfg/stripper/pmelite/maps/OutSkirts.cfg @@ -38,7 +38,7 @@ modify: { "solid" "6" } - delete + delete: { "OnHealthChanged" "alarmtimer1Enable01" "OnHealthChanged" "alarm_soundPlaySound01" diff --git a/cfg/stripper/pmelite/maps/RiverMotel.cfg b/cfg/stripper/pmelite/maps/RiverMotel.cfg index 07bd4b0be..86680bd5a 100644 --- a/cfg/stripper/pmelite/maps/RiverMotel.cfg +++ b/cfg/stripper/pmelite/maps/RiverMotel.cfg @@ -129,7 +129,7 @@ modify: { "OnCase03" "spark1SparkOnce01" } -{ +} ; Remove randomness from some gun spawns modify: diff --git a/cfg/stripper/pmelite/maps/c14m2_lighthouse.cfg b/cfg/stripper/pmelite/maps/c14m2_lighthouse.cfg index d881600ec..6c24f82b3 100644 --- a/cfg/stripper/pmelite/maps/c14m2_lighthouse.cfg +++ b/cfg/stripper/pmelite/maps/c14m2_lighthouse.cfg @@ -8,7 +8,6 @@ modify: { "hammerid" "2263638" } - { delete: { "OnPressed" "case_footlockerPickRandom0.11" diff --git a/cfg/stripper/pmelite/maps/c4m4_milltown_b.cfg b/cfg/stripper/pmelite/maps/c4m4_milltown_b.cfg index 2fc0f0c96..cbd2db34e 100644 --- a/cfg/stripper/pmelite/maps/c4m4_milltown_b.cfg +++ b/cfg/stripper/pmelite/maps/c4m4_milltown_b.cfg @@ -108,7 +108,7 @@ filter: ; --- didnt remove propane/gas cans and weapon_item_spawns that can spawn propane/gas ; -- first aid kit filters -( +{ "hammerid" "1988529" } { diff --git a/cfg/stripper/pmelite/maps/c8m4_interior.cfg b/cfg/stripper/pmelite/maps/c8m4_interior.cfg index 4c9668821..0fa3531f0 100644 --- a/cfg/stripper/pmelite/maps/c8m4_interior.cfg +++ b/cfg/stripper/pmelite/maps/c8m4_interior.cfg @@ -67,12 +67,11 @@ modify: "weapon_selection" "tier2_shotgun" } } + +filter: { ; remove hr - filter: - { - "hammerid" "6567279" - } + "hammerid" "6567279" } ; ===================================================== diff --git a/cfg/stripper/pmelite/maps/c8m5_rooftop.cfg b/cfg/stripper/pmelite/maps/c8m5_rooftop.cfg index 003e2a684..f6470b692 100644 --- a/cfg/stripper/pmelite/maps/c8m5_rooftop.cfg +++ b/cfg/stripper/pmelite/maps/c8m5_rooftop.cfg @@ -75,12 +75,11 @@ modify: "weapon_selection" "weapon_shotgun_chrome" } } + +filter: { ; remove hr - filter: - { - "hammerid" "3319419" - } + "hammerid" "3319419" } ; ===================================================== diff --git a/cfg/stripper/pmelite/maps/daredux_map5_garage_aw.cfg b/cfg/stripper/pmelite/maps/daredux_map5_garage_aw.cfg index 1f5c6f24a..d6824aa5f 100644 --- a/cfg/stripper/pmelite/maps/daredux_map5_garage_aw.cfg +++ b/cfg/stripper/pmelite/maps/daredux_map5_garage_aw.cfg @@ -724,7 +724,6 @@ add: "initialstate" "1" "BlockType" "1" } -} ; --- Auto crouch trigger for ladders { "classname" "logic_auto" diff --git a/cfg/stripper/pmelite/maps/l4d2_stadium1_apartment.cfg b/cfg/stripper/pmelite/maps/l4d2_stadium1_apartment.cfg index 48b9a918d..ac1c4725f 100644 --- a/cfg/stripper/pmelite/maps/l4d2_stadium1_apartment.cfg +++ b/cfg/stripper/pmelite/maps/l4d2_stadium1_apartment.cfg @@ -31,6 +31,7 @@ filter: ;Path Picker 1. "hammerid" "2411730" } +{ ;Query. "hammerid" "1951907" } diff --git a/cfg/stripper/pmelite/maps/l4d_ihm01_forest.cfg b/cfg/stripper/pmelite/maps/l4d_ihm01_forest.cfg index 56d7793bd..481744845 100644 --- a/cfg/stripper/pmelite/maps/l4d_ihm01_forest.cfg +++ b/cfg/stripper/pmelite/maps/l4d_ihm01_forest.cfg @@ -1,5 +1,5 @@ ;----- Make sure it's the same path on both sides (Non-Barricaded) -modify +modify: { match: { diff --git a/cfg/stripper/pmelite/maps/versus_3.cfg b/cfg/stripper/pmelite/maps/versus_3.cfg index a9360633c..beb411534 100644 --- a/cfg/stripper/pmelite/maps/versus_3.cfg +++ b/cfg/stripper/pmelite/maps/versus_3.cfg @@ -79,7 +79,7 @@ add: } ;block exploit onto roof -add +add: { "solid" "6" "origin" "9891 5143 -1319" @@ -89,7 +89,7 @@ add } ;barrier in "labrynth" because it just leads to a dead end and a broken infected ladder -add +add: { "solid" "6" "origin" "10923 4402 -1560" diff --git a/cfg/stripper/zonemod/maps/AirCrash.cfg b/cfg/stripper/zonemod/maps/AirCrash.cfg index 378c9a5e4..c947901b6 100644 --- a/cfg/stripper/zonemod/maps/AirCrash.cfg +++ b/cfg/stripper/zonemod/maps/AirCrash.cfg @@ -228,7 +228,7 @@ add: } { ; Bridge event - "origin" "3011 -2710 107" + "origin" "3011 -2710 107" "angles" "0 0 0" "classname" "weapon_item_spawn" "spawnflags" "2" diff --git a/cfg/stripper/zonemod/maps/OutSkirts.cfg b/cfg/stripper/zonemod/maps/OutSkirts.cfg index 85467ad89..78b82ceee 100644 --- a/cfg/stripper/zonemod/maps/OutSkirts.cfg +++ b/cfg/stripper/zonemod/maps/OutSkirts.cfg @@ -38,7 +38,7 @@ modify: { "solid" "6" } - delete + delete: { "OnHealthChanged" "alarmtimer1Enable01" "OnHealthChanged" "alarm_soundPlaySound01" diff --git a/cfg/stripper/zonemod/maps/RiverMotel.cfg b/cfg/stripper/zonemod/maps/RiverMotel.cfg index 07bd4b0be..86680bd5a 100644 --- a/cfg/stripper/zonemod/maps/RiverMotel.cfg +++ b/cfg/stripper/zonemod/maps/RiverMotel.cfg @@ -129,7 +129,7 @@ modify: { "OnCase03" "spark1SparkOnce01" } -{ +} ; Remove randomness from some gun spawns modify: diff --git a/cfg/stripper/zonemod/maps/c2m3_coaster.cfg b/cfg/stripper/zonemod/maps/c2m3_coaster.cfg index a4c64eaaa..6602be03c 100644 --- a/cfg/stripper/zonemod/maps/c2m3_coaster.cfg +++ b/cfg/stripper/zonemod/maps/c2m3_coaster.cfg @@ -1163,7 +1163,7 @@ add: "BlockType" "0" "initialstate" "1" "maxs" "48 8 88" - "mins" "-8 -108 -8" + "mins" "-8 -108 -8" "origin" "204 4528 0" "mapupdate" "1" } diff --git a/cfg/stripper/zonemod/maps/c8m1_apartment.cfg b/cfg/stripper/zonemod/maps/c8m1_apartment.cfg index c03aa56c8..c83c12373 100644 --- a/cfg/stripper/zonemod/maps/c8m1_apartment.cfg +++ b/cfg/stripper/zonemod/maps/c8m1_apartment.cfg @@ -798,7 +798,7 @@ add: ; "BlockType" "0" ; "initialstate" "1" ; "maxs" "12 8 260" -; "mins" "-240 -8 -208" +; "mins" "-240 -8 -208" ; "origin" "2288 1424 224.35" ; "mapupdate" "1" ;} diff --git a/cfg/stripper/zonemod/maps/cdta_03warehouse.cfg b/cfg/stripper/zonemod/maps/cdta_03warehouse.cfg index f8f3b804d..10073924f 100644 --- a/cfg/stripper/zonemod/maps/cdta_03warehouse.cfg +++ b/cfg/stripper/zonemod/maps/cdta_03warehouse.cfg @@ -8,6 +8,13 @@ ; == DIRECTOR & EVENT MODIFICATION == ; == Modify director behaviour and events == ; ===================================================== +; --- Run nav fixes script +; --- Fix 1: Fixes AI having issues pathing over the balcony under the fire escape and attempting to path into the fire escape from under it +add: +{ + "classname" "logic_auto" + "OnMapSpawn" "director,RunScriptFile,nav_fixes/cdta_03warehouse_navfixes,20,-1" +} ; --- Remove director script that causes the map to spawn natural hordes modify: { @@ -786,6 +793,45 @@ modify: "damagefilter" "explosion_filter_class" } } +; --- Fix the broken apartment window frames being solid +modify: +{ + match: + { + "model" "models/props_windows/window_urban_apt_frame.mdl" + } + replace: + { + "spawnflags" "268" + } +} +; --- Replace fire escape ladder with dynamic prop (physics version causes navs to be blocked automatically which prevents pathing) +; --- & Remove the nav blocker covering the ladder to prevent AI tanks getting themselves stuck / being unable to path through the building +filter: +{ + "targetname" "elblock" +} +{ + "targetname" "escapeladder" +} +add: +{ + "classname" "prop_dynamic_override" + "origin" "-896 -7943 419.7" + "angles" "0 0 -13" + "model" "models/dtafireescape/dta_fireescapeladder.mdl" + "solid" "6" + "disableshadows" "1" +} +; --- Re-add func_playerinfectedclip on fire escape that is removed by global filters +add: +{ + "classname" "func_playerinfected_clip" + "targetname" "escapeclip2" + "model" "*267" + "spawnflags" "2" + "Solidity" "2" +} ; --- Remove triggers that lower the ladder filter: { @@ -1085,6 +1131,48 @@ add: "team" "2" } +; ###### NAVIGATIONS ATTRIBUTE / BLOCK CHANGES ###### +; ===================================================== +; == NAVIGATIONS == +; == Navigation fix , Flow block changes == +; ===================================================== + + +; --- fix the navigation atrribute [obscured] make Si spawn IN Svv sight +; --- 修复[obscured](强制复活)属性导致的特感可以在人类视线内复活的区域 + +; --- the wirehouse 出门仓库 +add: +{ + "classname" "point_nav_attribute_region" + "crouch" "0" + "maxs" "600 400 180" + "mins" "-600 -200 -20" + "mob_only" "0" + "precise" "0" + "remove_attributes" "1" + "spawnflags" "4096" + "stairs" "0" + "tank_only" "0" + "targetname" "nav_fix_obscured_remove01" + "origin" "-4880 -6248 348" +} + +; --- hotel entrance 公寓入口 +{ + "classname" "point_nav_attribute_region" + "crouch" "0" + "maxs" "200 128 80" + "mins" "-200 -128 -20" + "mob_only" "0" + "precise" "0" + "remove_attributes" "1" + "spawnflags" "4096" + "stairs" "0" + "tank_only" "0" + "targetname" "nav_fix_obscured_remove02" + "origin" "-400 -7296 340" +} ; ####### MISCELLANEOUS / MAP SPECIFIC CHANGES ###### ; ===================================================== diff --git a/cfg/stripper/zonemod/maps/cwm1_intro.cfg b/cfg/stripper/zonemod/maps/cwm1_intro.cfg index 383d68211..90eda7872 100644 --- a/cfg/stripper/zonemod/maps/cwm1_intro.cfg +++ b/cfg/stripper/zonemod/maps/cwm1_intro.cfg @@ -204,73 +204,73 @@ add: "BlockType" "1" } ; --- Block tent by the fallen semi-trailer -{ - "classname" "env_physics_blocker" - "origin" "2265.73 2542.02 760" - "angles" "0 -1 0" - "mins" "-190 -5 -520" - "maxs" "190 5 520" - "boxmins" "-190 -5 -520" - "boxmaxs" "190 5 520" - "initialstate" "1" - "BlockType" "1" -} -{ - "classname" "env_physics_blocker" - "origin" "2270.27 2801.98 760" - "angles" "0 -1 0" - "mins" "-190 -5 -520" - "maxs" "190 5 520" - "boxmins" "-190 -5 -520" - "boxmaxs" "190 5 520" - "initialstate" "1" - "BlockType" "1" -} -{ - "classname" "env_physics_blocker" - "origin" "2081.03 2675.26 760" - "angles" "0 -1 0" - "mins" "-3 -125 -520" - "maxs" "3 125 520" - "boxmins" "-3 -125 -520" - "boxmaxs" "3 125 520" - "initialstate" "1" - "BlockType" "1" -} -{ - "classname" "env_physics_blocker" - "origin" "2454.97 2668.74 760" - "angles" "0 -1 0" - "mins" "-3 -125 -520" - "maxs" "3 125 520" - "boxmins" "-3 -125 -520" - "boxmaxs" "3 125 520" - "initialstate" "1" - "BlockType" "1" -} +;{ +; "classname" "env_physics_blocker" +; "origin" "2265.73 2542.02 760" +; "angles" "0 -1 0" +; "mins" "-190 -5 -520" +; "maxs" "190 5 520" +; "boxmins" "-190 -5 -520" +; "boxmaxs" "190 5 520" +; "initialstate" "1" +; "BlockType" "1" +;} +;{ +; "classname" "env_physics_blocker" +; "origin" "2270.27 2801.98 760" +; "angles" "0 -1 0" +; "mins" "-190 -5 -520" +; "maxs" "190 5 520" +; "boxmins" "-190 -5 -520" +; "boxmaxs" "190 5 520" +; "initialstate" "1" +; "BlockType" "1" +;} +;{ +; "classname" "env_physics_blocker" +; "origin" "2081.03 2675.26 760" +; "angles" "0 -1 0" +; "mins" "-3 -125 -520" +; "maxs" "3 125 520" +; "boxmins" "-3 -125 -520" +; "boxmaxs" "3 125 520" +; "initialstate" "1" +; "BlockType" "1" +;} +;{ +; "classname" "env_physics_blocker" +; "origin" "2454.97 2668.74 760" +; "angles" "0 -1 0" +; "mins" "-3 -125 -520" +; "maxs" "3 125 520" +; "boxmins" "-3 -125 -520" +; "boxmaxs" "3 125 520" +; "initialstate" "1" +; "BlockType" "1" +;} ; --- Block standing on fallen semi-trailer before the warehouse -{ - "classname" "env_physics_blocker" - "origin" "1838.11 2506.13 748" - "angles" "0 -35 0" - "mins" "-58.5 -266.5 -532" - "maxs" "58.5 266.5 532" - "boxmins" "-58.5 -266.5 -532" - "boxmaxs" "58.5 266.5 532" - "initialstate" "1" - "BlockType" "1" -} -{ - "classname" "env_physics_blocker" - "origin" "2021.64 2621.78 748" - "angles" "0 -35 0" - "mins" "-25.5 -66.5 -532" - "maxs" "25.5 66.5 532" - "boxmins" "-25.5 -66.5 -532" - "boxmaxs" "25.5 66.5 532" - "initialstate" "1" - "BlockType" "1" -} +;{ +; "classname" "env_physics_blocker" +; "origin" "1838.11 2506.13 748" +; "angles" "0 -35 0" +; "mins" "-58.5 -266.5 -532" +; "maxs" "58.5 266.5 532" +; "boxmins" "-58.5 -266.5 -532" +; "boxmaxs" "58.5 266.5 532" +; "initialstate" "1" +; "BlockType" "1" +;} +;{ +; "classname" "env_physics_blocker" +; "origin" "2021.64 2621.78 748" +; "angles" "0 -35 0" +; "mins" "-25.5 -66.5 -532" +; "maxs" "25.5 66.5 532" +; "boxmins" "-25.5 -66.5 -532" +; "boxmaxs" "25.5 66.5 532" +; "initialstate" "1" +; "BlockType" "1" +;} ; --- Block standing on the beige truck and trailer before the warehouse { "classname" "env_physics_blocker" @@ -358,6 +358,31 @@ add: ; == OUT OF BOUNDS == ; == Block players getting outside / under the map == ; ===================================================== +; --- Block infected out of bounds / under the map spots in the river +{ + "classname" "env_physics_blocker" + "origin" "-447 480 -141" + "mins" "-2049 -96 -51" + "maxs" "2049 96 51" + "initialstate" "1" + "BlockType" "0" +} +{ + "classname" "env_physics_blocker" + "origin" "-240 -360 -160" + "mins" "-16 -1272 -32" + "maxs" "16 1272 32" + "initialstate" "1" + "BlockType" "0" +} +{ + "classname" "env_physics_blocker" + "origin" "5752 416 -156" + "mins" "-136 -32 -36" + "maxs" "136 32 36" + "initialstate" "1" + "BlockType" "0" +} ; --- Block out of bounds areas for survivors by the starting saferoom ; --- Hedges { @@ -630,6 +655,15 @@ add: "initialstate" "1" "BlockType" "0" } +; --- Block a perma-stuck spot between 2 tents +{ + "classname" "env_physics_blocker" + "origin" "2320 1812 161.5" + "mins" "-50 -8 -49.5" + "maxs" "50 8 49.5" + "initialstate" "1" + "BlockType" "0" +} ; --- Block perma-stuck spot in some bushes to the right of the warehouse { "classname" "env_physics_blocker" @@ -640,6 +674,36 @@ add: "BlockType" "0" } +; ===================================================== +; == NUISANCE CHANGES == +; == Clipping improvements, QOL map changes == +; ===================================================== +; --- Clipping on car stops by the starting saferoom to prevent getting stuck +{ + "classname" "env_physics_blocker" + "origin" "3476 -2750 122.5" + "mins" "-6 -49 -2.5" + "maxs" "6 49 2.5" + "initialstate" "1" + "BlockType" "0" +} +{ + "classname" "env_physics_blocker" + "origin" "3476 -2596 122.5" + "mins" "-6 -49 -2.5" + "maxs" "6 49 2.5" + "initialstate" "1" + "BlockType" "0" +} +{ + "classname" "env_physics_blocker" + "origin" "3475 -2448 122.5" + "mins" "-6 -49 -2.5" + "maxs" "6 49 2.5" + "initialstate" "1" + "BlockType" "0" +} + ; ############# LADDER CHANGES AND FIXES ############ ; ===================================================== ; == LADDER ADDITIONS / FIXES == diff --git a/cfg/stripper/zonemod/maps/daredux_map5_garage_aw.cfg b/cfg/stripper/zonemod/maps/daredux_map5_garage_aw.cfg index 1f5c6f24a..d6824aa5f 100644 --- a/cfg/stripper/zonemod/maps/daredux_map5_garage_aw.cfg +++ b/cfg/stripper/zonemod/maps/daredux_map5_garage_aw.cfg @@ -724,7 +724,6 @@ add: "initialstate" "1" "BlockType" "1" } -} ; --- Auto crouch trigger for ladders { "classname" "logic_auto" diff --git a/cfg/stripper/zonemod/maps/l4d2_city17_01.cfg b/cfg/stripper/zonemod/maps/l4d2_city17_01.cfg index 55900f52c..62e57fd94 100644 --- a/cfg/stripper/zonemod/maps/l4d2_city17_01.cfg +++ b/cfg/stripper/zonemod/maps/l4d2_city17_01.cfg @@ -186,7 +186,7 @@ add: "BlockType" "1" "initialstate" "1" "maxs" "220 80 80" - "mins" "-8 -12 -80" + "mins" "-8 -12 -80" "targetname" "eb_van01" "origin" "4060 -5128 -44" } diff --git a/cfg/stripper/zonemod/maps/l4d2_stadium1_apartment.cfg b/cfg/stripper/zonemod/maps/l4d2_stadium1_apartment.cfg index 29f758783..4ae7deb27 100644 --- a/cfg/stripper/zonemod/maps/l4d2_stadium1_apartment.cfg +++ b/cfg/stripper/zonemod/maps/l4d2_stadium1_apartment.cfg @@ -153,6 +153,7 @@ filter: ;Path Picker 1. "hammerid" "2411730" } +{ ;Query. "hammerid" "1951907" } diff --git a/cfg/stripper/zonemod/maps/l4d_dbd2dc_undead_center.cfg b/cfg/stripper/zonemod/maps/l4d_dbd2dc_undead_center.cfg index dbb041787..a5382eebd 100644 --- a/cfg/stripper/zonemod/maps/l4d_dbd2dc_undead_center.cfg +++ b/cfg/stripper/zonemod/maps/l4d_dbd2dc_undead_center.cfg @@ -231,6 +231,7 @@ modify: { "spawnflags" "34816" } +} { match: @@ -493,7 +494,7 @@ modify: ; ################ JUNK/PROP CHANGES ############### ; ===================================================== ; == JUNK/PROPs == -; == Remove or change Junk/Props == +; == Remove or change Junk/Props == ; ===================================================== filter: { diff --git a/cfg/stripper/zonemod/maps/uz_town.cfg b/cfg/stripper/zonemod/maps/uz_town.cfg index a6cca296a..38949558c 100644 --- a/cfg/stripper/zonemod/maps/uz_town.cfg +++ b/cfg/stripper/zonemod/maps/uz_town.cfg @@ -143,3 +143,55 @@ add: "BlockType" "1" "classname" "env_physics_blocker" } + +; ############# LADDER CHANGES AND FIXES ############ +; ===================================================== +; == LADDER ADDITIONS / FIXES == +; == Add or change ladders == +; ===================================================== + +add: +; --- Infected ladder near the barricade with two static police cars to not get stuck at the other side (both side of the fences) +{ + "classname" "func_simpleladder" + "origin" "-1260 0 7" + "angles" "0 0 0" + "model" "*168" + "normal.x" "-1" + "normal.y" "0" + "normal.z" "0" + "team" "2" +} +{ + "classname" "func_simpleladder" + "origin" "-4762 3328 7" + "angles" "0 180 0" + "model" "*168" + "normal.x" "1" + "normal.y" "0" + "normal.z" "0" + "team" "2" +} + +; --- Infected ladder near the barricade with two static police cars to not get stuck at the other side (both houses rooftop) +add: +{ + "classname" "func_simpleladder" + "origin" "-2956 2423 39" + "angles" "0 0 0" + "model" "*176" + "normal.x" "0" + "normal.y" "-1" + "normal.z" "0" + "team" "2" +} +{ + "classname" "func_simpleladder" + "origin" "-4020 1281 39" + "angles" "0 180 0" + "model" "*176" + "normal.z" "0" + "normal.y" "1" + "normal.x" "0" + "team" "2" +} diff --git a/cfg/stripper/zonemod/maps/x1m3_city.cfg b/cfg/stripper/zonemod/maps/x1m3_city.cfg index a330bd5e9..9752dacd9 100644 --- a/cfg/stripper/zonemod/maps/x1m3_city.cfg +++ b/cfg/stripper/zonemod/maps/x1m3_city.cfg @@ -163,7 +163,7 @@ filter: add: { "classname" "prop_dynamic" - "origin" "-3197 2819 -559" + "origin" "-3197 2869 -559" "angles" "0 0 0" "solid" "6" "rendercolor" "255 255 255" @@ -171,7 +171,7 @@ add: } { "classname" "prop_dynamic" - "origin" "-3190 2820 -520" + "origin" "-3190 2870 -520" "angles" "0 346.5 0" "solid" "6" "rendercolor" "255 255 255" @@ -179,7 +179,7 @@ add: } { "classname" "prop_dynamic" - "origin" "-3184 2820 -481" + "origin" "-3184 2870 -481" "angles" "0 270 0" "solid" "6" "rendercolor" "255 255 255" @@ -574,4 +574,42 @@ modify: { "glowstate" "0" } +} + +; ############ DIRECTOR AND EVENT CHANGES ########### +; ===================================================== +; == DIRECTOR & EVENT MODIFICATION == +; == Modify director behaviour and events == +; ===================================================== +; --- Run nav fixes script +; --- Fix 1: Fixes god spot room behind previously unbreakable door in event holdout spot +add: +{ + "classname" "logic_auto" + "OnMapSpawn" "director,RunScriptFile,nav_fixes/x1m3_city_navfixes,20,-1" +} +; --- Fix unbreakable locked door on top floor of event holdout +modify: +{ + match: + { + "hammerid" "412017" + } + replace: + { + "spawnflags" "0" + } +} +; --- Fix broken infected ladder by the end saferoom +modify: +{ + match: + { + "hammerid" "413620" + } + replace: + { + "normal.x" "-1" + "normal.y" "0" + } } \ No newline at end of file diff --git a/scripts/vscripts/nav_fixes/cdta_03warehouse_navfixes.nut b/scripts/vscripts/nav_fixes/cdta_03warehouse_navfixes.nut new file mode 100644 index 000000000..641d4b156 --- /dev/null +++ b/scripts/vscripts/nav_fixes/cdta_03warehouse_navfixes.nut @@ -0,0 +1,25 @@ +printl("\n[NavFixes] cdta_03warehouse initialized\n") + +//Fix 1: Fix AI having issues pathing over the balcony under the fire escape// +//Issue: Nav area on balcony has is only connected by the ladder which AI doesn't see as a valid path from above, and nav under the fire escape is connected to the fire escape which causes AI to attempt to path through it +function cdta_03warehouse_navfixes_fix1() +{ + //Get nav areas: + //Problematic nav areas + local fix1_balconyNav_a = NavMesh.GetNavAreaByID(162748) + local fix1_underLadderNav_b = NavMesh.GetNavAreaByID(162745) + //Nav areas to connect + local fix1_nav_a = NavMesh.GetNavAreaByID(162689) + local fix1_nav_b = NavMesh.GetNavAreaByID(136940) + + //Create one-way connection between nav areas + fix1_balconyNav_a.ConnectTo(fix1_nav_a,-1) + //Disconnect invalid navs on fire escape + fix1_underLadderNav_b.Disconnect(fix1_nav_b) + fix1_nav_b.Disconnect(fix1_underLadderNav_b) + + printl("\n[NavFixes] Fix 1 applied\n") +} + + +cdta_03warehouse_navfixes_fix1() \ No newline at end of file diff --git a/scripts/vscripts/nav_fixes/x1m3_city_navfixes.nut b/scripts/vscripts/nav_fixes/x1m3_city_navfixes.nut new file mode 100644 index 000000000..f8ccea7ee --- /dev/null +++ b/scripts/vscripts/nav_fixes/x1m3_city_navfixes.nut @@ -0,0 +1,25 @@ +printl("\n[NavFixes] x1m3_city_navfixes initialized\n") + +//Fix 1: Fix god spot room behind previously unbreakable door in holdout area// +//Issue: Nav area has no connections to the main room, making it impossible for common to path +function x1m3_city_navfixes_fix1() +{ + //Get nav areas: + //Problematic nav areas + local fix1_jesusNav_a = NavMesh.GetNavAreaByID(1607) + //Create two way connection on railing so commons have an alternative way to path + local fix1_jesusNav_b = NavMesh.GetNavAreaByID(10647) + //Nav areas to connect + local fix1_nav_a = NavMesh.GetNavAreaByID(12) + local fix1_nav_b = NavMesh.GetNavAreaByID(8961) + + //Create two-way connection between nav areas + fix1_nav_a.ConnectTo(fix1_jesusNav_a,-1) + fix1_jesusNav_a.ConnectTo(fix1_nav_a,-1) + fix1_nav_b.ConnectTo(fix1_jesusNav_b,-1) + + printl("\n[NavFixes] Fix 1 applied\n") +} + + +x1m3_city_navfixes_fix1() \ No newline at end of file