├── .gitignore ├── .gitattributes ├── cfg └── lgofnoc │ ├── cocaine │ ├── lgofnoc.cfg │ ├── lgofnoc_off.cfg │ ├── lgofnoc_plugins.cfg │ └── lgofnoc_once.cfg │ ├── hunters │ ├── lgofnoc.cfg │ ├── lgofnoc_off.cfg │ ├── lgofnoc_plugins.cfg │ └── lgofnoc_once.cfg │ ├── parity │ ├── lgofnoc.cfg │ ├── lgofnoc_off.cfg │ ├── lgofnoc_plugins.cfg │ └── lgofnoc_once.cfg │ ├── pm1v1 │ ├── lgofnoc.cfg │ ├── lgofnoc_off.cfg │ ├── maps │ │ ├── c6m3_port.cfg │ │ ├── c1m4_atrium.cfg │ │ ├── c5m5_bridge.cfg │ │ ├── c7m1_docks.cfg │ │ ├── c7m2_barge.cfg │ │ └── c13m4_cutthroatcreek.cfg │ ├── lgofnoc_plugins.cfg │ └── lgofnoc_once.cfg │ ├── pm2v2 │ ├── lgofnoc.cfg │ ├── lgofnoc_off.cfg │ ├── c6m3_port.cfg │ ├── c1m4_atrium.cfg │ ├── c5m5_bridge.cfg │ ├── c7m1_docks.cfg │ ├── c7m2_barge.cfg │ ├── c13m4_cutthroatcreek.cfg │ ├── lgofnoc_plugins.cfg │ └── lgofnoc_once.cfg │ ├── pm3v3 │ ├── lgofnoc.cfg │ ├── lgofnoc_off.cfg │ ├── c1m4_atrium.cfg │ ├── c5m5_bridge.cfg │ ├── c6m3_port.cfg │ ├── c7m1_docks.cfg │ ├── c7m2_barge.cfg │ ├── c13m4_cutthroatcreek.cfg │ ├── lgofnoc_plugins.cfg │ └── lgofnoc_once.cfg │ ├── promod │ ├── lgofnoc.cfg │ ├── lgofnoc_off.cfg │ ├── lgofnoc_plugins.cfg │ ├── stripper │ │ ├── maps │ │ │ ├── l4d_ihm05_lakeside.cfg │ │ │ ├── c7m3_port.cfg │ │ │ ├── l4d_ihm04_lumberyard.cfg │ │ │ ├── damitdc1.cfg │ │ │ ├── l4d_ihm01_forest.cfg │ │ │ ├── srocchurch.cfg │ │ │ ├── cwm2_warehouse.cfg │ │ │ ├── cdta_01detour.cfg │ │ │ ├── versus_4.cfg │ │ │ ├── l4d2_stadium5_stadium.cfg │ │ │ ├── cwm1_intro.cfg │ │ │ ├── cdta_02road.cfg │ │ │ ├── l4d2_vs_stadium2_riverwalk.cfg │ │ │ ├── cwm3_drain.cfg │ │ │ ├── l4d_yama_3.cfg │ │ │ ├── c11m5_runway.cfg │ │ │ ├── C12m3_bridge.cfg │ │ │ ├── hf03_themansion.cfg │ │ │ ├── damitdc2.cfg │ │ │ ├── c6m2_bedlam.cfg │ │ │ ├── l4d2_stadium1_apartment.cfg │ │ │ ├── l4d2_bts02_station.cfg │ │ │ ├── l4d2_bts03_town.cfg │ │ │ ├── l4d_ihm02_manor.cfg │ │ │ ├── c10m5_houseboat.cfg │ │ │ ├── c9m2_lots.cfg │ │ │ ├── damitdc4.cfg │ │ │ ├── c13m4_cutthroatcreek.cfg │ │ │ ├── cwm4_building.cfg │ │ │ ├── versus_1.cfg │ │ │ ├── hf01_theforest.cfg │ │ │ ├── l4d2_bts04_cinema.cfg │ │ │ ├── c6m3_port.cfg │ │ │ ├── l4d2_stadium3_city1.cfg │ │ │ ├── c7m2_barge.cfg │ │ │ ├── cdta_03warehouse.cfg │ │ │ ├── jsarena204_arena.cfg │ │ │ ├── c10m2_drainage.cfg │ │ │ ├── c8m5_rooftop.cfg │ │ │ ├── c9m1_alleys.cfg │ │ │ ├── mnac.cfg │ │ │ ├── C12m2_traintunnel.cfg │ │ │ ├── c3m4_plantation.cfg │ │ │ ├── hf02_thesteeple.cfg │ │ │ ├── c2m5_concert.cfg │ │ │ ├── c10m1_caves.cfg │ │ │ ├── c11m4_terminal.cfg │ │ │ ├── c11m2_offices.cfg │ │ │ ├── plaza_espana.cfg │ │ │ ├── c11m1_greenhouse.cfg │ │ │ └── damitdc3.cfg │ │ └── global_filters.cfg │ └── lgofnoc_once.cfg │ ├── promodhr │ ├── lgofnoc.cfg │ ├── lgofnoc_off.cfg │ ├── lgofnoc_plugins.cfg │ └── lgofnoc_once.cfg │ ├── retro │ ├── lgofnoc.cfg │ ├── lgofnoc_off.cfg │ ├── lgofnoc_plugins.cfg │ └── lgofnoc_once.cfg │ ├── shared │ ├── nowitch.cfg │ ├── lock.cfg │ ├── cocaine.cfg │ ├── notank.cfg │ ├── hr.cfg │ ├── hunters.cfg │ ├── db.cfg │ ├── 2v2.cfg │ ├── hb.cfg │ ├── 4v4.cfg │ ├── 1v1.cfg │ ├── 3v3.cfg │ ├── items_cocaine.cfg │ ├── items_promod.cfg │ ├── retro.cfg │ └── items_base.cfg │ ├── hunters1v1 │ ├── lgofnoc.cfg │ ├── lgofnoc_off.cfg │ ├── maps │ │ ├── c6m3_port.cfg │ │ ├── c1m4_atrium.cfg │ │ ├── c5m5_bridge.cfg │ │ ├── c7m1_docks.cfg │ │ ├── c7m2_barge.cfg │ │ └── c13m4_cutthroatcreek.cfg │ ├── lgofnoc_plugins.cfg │ └── lgofnoc_once.cfg │ ├── hunters2v2 │ ├── lgofnoc.cfg │ ├── lgofnoc_off.cfg │ ├── lgofnoc_plugins.cfg │ └── lgofnoc_once.cfg │ ├── hunters3v3 │ ├── lgofnoc.cfg │ ├── lgofnoc_off.cfg │ ├── lgofnoc_plugins.cfg │ └── lgofnoc_once.cfg │ ├── lgofnoc.cfg │ ├── maps │ └── c4m2_sugarmill_a.cfg │ ├── lgofnoc_off.cfg │ └── lgofnoc_once.cfg ├── addons └── sourcemod │ ├── scripting │ ├── .gitignore │ ├── damage_bonus.inc │ ├── include │ │ ├── l4d2_saferoom_detect.inc │ │ ├── code_patcher.inc │ │ ├── pause.inc │ │ └── readyup.inc │ ├── finale_tank_blocker.sp │ ├── temphealthfix.sp │ ├── finalefix.sp │ ├── map_distances.sp │ ├── l4d2_character_fix.sp │ ├── incap_punch_fix.sp │ ├── l4d2_fix_deathspit.sp │ ├── l4d_inaudible_ghosts.sp │ ├── staggersolver.sp │ ├── l4d2_jockeyed_charger_fix.sp │ ├── aitankgank.sp │ ├── l4d_notank.sp │ ├── l4d_pounceprotect.sp │ ├── blockheatseekingchargers.sp │ ├── blocktrolls.sp │ ├── bossspawningfix.sp │ ├── l4d2_si_ffblock.sp │ ├── botkick.sp │ ├── l4d2_startercommon.sp │ └── l4d_jockey_ledgehang.sp │ ├── gamedata │ ├── staggersolver.txt │ ├── l4d_wlimits.txt │ ├── l4d_pounceprotect.txt │ ├── l4d2_zcs.txt │ ├── l4d2_dominators.txt │ └── code_patcher.txt │ └── configs │ └── matchmodes.txt └── scripts └── vscripts ├── l4d2_stadium5_stadium_promod.nut ├── c12m4_onslaught_1v1.nut ├── c12m4_onslaught_2v2.nut ├── c12m4_onslaught_3v3.nut ├── c12m4_onslaught_promod.nut ├── map2_ambient_promod.nut ├── c10m4_onslaught_1v1.nut ├── c12m3_onslaught_1v1.nut ├── c10m4_onslaught_2v2.nut ├── c10m4_onslaught_3v3.nut ├── c12m3_onslaught_2v2.nut ├── c12m3_onslaught_3v3.nut ├── c12m3_onslaught_promod.nut ├── c10m4_onslaught_promod.nut ├── c11m4_onslaught_1v1.nut ├── c11m4_onslaught_2v2.nut ├── c11m4_onslaught_3v3.nut ├── l4d_dbd2dc_new_dawn_tank_music_helper_promod.nut ├── c11m4_onslaught_promod.nut ├── cdta02_passive_promod.nut ├── cdta01_passive_promod.nut ├── cdta03_passive_promod.nut ├── hf02_thesteeple_rolling_tunnel_promod.nut ├── sb_map1_default_promod.nut ├── cdta04_passive_promod.nut ├── hf04_escape_tank_helper_2_promod.nut ├── l4d_dbd2dc_new_dawn_tank_early_helper_promod.nut ├── l4d_ihm02_manor_tank_helper_promod.nut ├── l4d_dbd2dc_new_dawn_finale_promod.nut ├── sb_map3_jail_crescendo_cooldown_promod.nut ├── l4d_dbd2dc_new_dawn_tank_early_helper_2_promod.nut ├── cwm4_building_tank_helper_promod.nut ├── hf04_escape_onslaught_promod.nut ├── l4d_dbd2dc_new_dawn_tank_early_helper_1_promod.nut ├── l4d_dbd2dc_new_dawn_tank_helper_promod.nut ├── hf04_escape_tank_helper_promod.nut ├── cdta_05finalroad_onslaught_promod.nut └── cdta_05finalroad_tank_helper_promod.nut /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.smx binary 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/cocaine/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/parity/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm1v1/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm1v1/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm2v2/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm2v2/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm3v3/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm3v3/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promodhr/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/retro/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/retro/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/nowitch.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/cocaine/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters1v1/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters1v1/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters2v2/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters2v2/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters3v3/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters3v3/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/parity/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promodhr/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/.gitignore: -------------------------------------------------------------------------------- 1 | *.smx 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/lgofnoc.cfg: -------------------------------------------------------------------------------- 1 | sm_cvar z_witch_health 1000 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/maps/c4m2_sugarmill_a.cfg: -------------------------------------------------------------------------------- 1 | sm_cvar z_witch_health 500 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm2v2/c6m3_port.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 5 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm1v1/maps/c6m3_port.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 3 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm2v2/c1m4_atrium.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 5 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm2v2/c5m5_bridge.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 2 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm2v2/c7m1_docks.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 12 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm2v2/c7m2_barge.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 12 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm3v3/c1m4_atrium.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 10 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm3v3/c5m5_bridge.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 4 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm3v3/c6m3_port.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 10 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm3v3/c7m1_docks.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 19 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm3v3/c7m2_barge.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 19 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters1v1/maps/c6m3_port.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 3 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm1v1/maps/c1m4_atrium.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 3 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm1v1/maps/c5m5_bridge.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 1 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm1v1/maps/c7m1_docks.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 6 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm1v1/maps/c7m2_barge.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 6 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters1v1/maps/c1m4_atrium.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 3 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters1v1/maps/c5m5_bridge.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 1 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters1v1/maps/c7m1_docks.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 6 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters1v1/maps/c7m2_barge.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 6 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm2v2/c13m4_cutthroatcreek.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 2 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm3v3/c13m4_cutthroatcreek.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 4 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm1v1/maps/c13m4_cutthroatcreek.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 1 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters1v1/maps/c13m4_cutthroatcreek.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_addcvar z_common_limit 1 2 | -------------------------------------------------------------------------------- /cfg/lgofnoc/lgofnoc_off.cfg: -------------------------------------------------------------------------------- 1 | lgofnoc_resetcvars 2 | reset_static_maps 3 | cls_resetclientcvars 4 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters/lgofnoc_plugins.cfg: -------------------------------------------------------------------------------- 1 | // bug fixes and general features 2 | exec lgofnoc/shared/plugincore.cfg 3 | -------------------------------------------------------------------------------- /cfg/lgofnoc/parity/lgofnoc_plugins.cfg: -------------------------------------------------------------------------------- 1 | // bug fixes and general features 2 | exec lgofnoc/shared/plugincore.cfg 3 | -------------------------------------------------------------------------------- /cfg/lgofnoc/cocaine/lgofnoc_plugins.cfg: -------------------------------------------------------------------------------- 1 | // bug fixes and general features 2 | exec lgofnoc/shared/plugincore.cfg 3 | 4 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters3v3/lgofnoc_plugins.cfg: -------------------------------------------------------------------------------- 1 | // bug fixes and general features 2 | exec lgofnoc/shared/plugincore.cfg 3 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm1v1/lgofnoc_plugins.cfg: -------------------------------------------------------------------------------- 1 | // bug fixes and general features 2 | exec lgofnoc/shared/plugincore.cfg 3 | 4 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm2v2/lgofnoc_plugins.cfg: -------------------------------------------------------------------------------- 1 | // bug fixes and general features 2 | exec lgofnoc/shared/plugincore.cfg 3 | 4 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm3v3/lgofnoc_plugins.cfg: -------------------------------------------------------------------------------- 1 | // bug fixes and general features 2 | exec lgofnoc/shared/plugincore.cfg 3 | 4 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/lgofnoc_plugins.cfg: -------------------------------------------------------------------------------- 1 | // bug fixes and general features 2 | exec lgofnoc/shared/plugincore.cfg 3 | 4 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promodhr/lgofnoc_plugins.cfg: -------------------------------------------------------------------------------- 1 | // bug fixes and general features 2 | exec lgofnoc/shared/plugincore.cfg 3 | 4 | -------------------------------------------------------------------------------- /cfg/lgofnoc/retro/lgofnoc_plugins.cfg: -------------------------------------------------------------------------------- 1 | // bug fixes and general features 2 | exec lgofnoc/shared/plugincore.cfg 3 | 4 | -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/lock.cfg: -------------------------------------------------------------------------------- 1 | l4d_wlimits_lock 2 | lgofnoc_setcvars 3 | cls_startclientchecking 4 | //lgofnoc_lockplugins 5 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters1v1/lgofnoc_plugins.cfg: -------------------------------------------------------------------------------- 1 | // bug fixes and general features 2 | exec lgofnoc/shared/plugincore.cfg 3 | 4 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters2v2/lgofnoc_plugins.cfg: -------------------------------------------------------------------------------- 1 | // bug fixes and general features 2 | exec lgofnoc/shared/plugincore.cfg 3 | 4 | -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/cocaine.cfg: -------------------------------------------------------------------------------- 1 | //simple enough 2 | exec lgofnoc/items_cocaine.cfg 3 | lgofnoc_addcvar host_timescale 1.10 4 | -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/notank.cfg: -------------------------------------------------------------------------------- 1 | sm plugins load_unlock 2 | sm plugins load optional/l4d_notank.smx 3 | sm plugins load_lock 4 | 5 | -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/hr.cfg: -------------------------------------------------------------------------------- 1 | // Adds a limit of 1 usable HR 2 | // also nerfs it! 3 | 4 | // [l4d_weapon_attributes.smx] 5 | sm_weapon hunting_rifle clipsize 10 6 | sm_weapon hunting_rifle tankdamagemult 0.835 7 | 8 | // [l4d_weapon_limits.smx] 9 | l4d_wlimits_add 1 1 weapon_hunting_rifle 10 | -------------------------------------------------------------------------------- /addons/sourcemod/gamedata/staggersolver.txt: -------------------------------------------------------------------------------- 1 | "Games" 2 | { 3 | "left4dead2" 4 | { 5 | "Signatures" 6 | { 7 | "IsStaggering" 8 | { 9 | "library" "server" 10 | "windows" "\x83\xB9\x2A\x2A\x2A\x2A\xFF\x74" 11 | "linux" "@_ZNK13CTerrorPlayer12IsStaggeringEv" 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /scripts/vscripts/l4d2_stadium5_stadium_promod.nut: -------------------------------------------------------------------------------- 1 | // Suicide Blitz Finale 2 | 3 | DirectorOptions <- 4 | { 5 | //Horde from the Front. 6 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 7 | 8 | //Just in case. 9 | ZombieSpawnInFog = true 10 | ZombieSpawnRange = 2700 11 | CommonLimit = 25 12 | } 13 | 14 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/l4d_ihm05_lakeside.cfg: -------------------------------------------------------------------------------- 1 | ; ====================================================== 2 | ; =============== I Hate Mountains 5 ================= 3 | ; ====================================================== 4 | 5 | ;---- Remove the Miniguns 6 | filter: 7 | { 8 | "classname" "prop_minigun_l4d1" 9 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/hunters.cfg: -------------------------------------------------------------------------------- 1 | // Hunters Cvars 2 | lgofnoc_addcvar_playerscaled z_versus_hunter_limit 1 2 3 4 3 | lgofnoc_addcvar z_versus_smoker_limit 0 4 | lgofnoc_addcvar z_versus_boomer_limit 0 5 | lgofnoc_addcvar z_versus_jockey_limit 0 6 | lgofnoc_addcvar z_versus_charger_limit 0 7 | lgofnoc_addcvar z_versus_spitter_limit 0 8 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c7m3_port.cfg: -------------------------------------------------------------------------------- 1 | 2 | ; ===================================================== 3 | ; ================ EXPLOITS BLOCKED ================= 4 | ; ===================================================== 5 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 6 | ; none 7 | ; ===================================================== -------------------------------------------------------------------------------- /addons/sourcemod/gamedata/l4d_wlimits.txt: -------------------------------------------------------------------------------- 1 | "Games" 2 | { 3 | "left4dead2" 4 | { 5 | "Signatures" 6 | { 7 | "CWeaponAmmoSpawn_Use" 8 | { 9 | "library" "server" 10 | "linux" "@_ZN16CWeaponAmmoSpawn3UseEP11CBaseEntityS1_8USE_TYPEf" 11 | "windows" "\x55\x8B\xEC\x51\x53\x8B\x5D\x08\x85" 12 | /* 55 8B EC 51 53 8B 5D 08 85 */ 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/db.cfg: -------------------------------------------------------------------------------- 1 | //unLock&Load 2 | sm plugins load_unlock 3 | sm plugins load optional/damage_bonus.smx 4 | sm plugins load_lock 5 | 6 | // Damage Bonus Cvars 7 | lgofnoc_addcvar sm_static_bonus 5 8 | //lgofnoc_addcvar sm_max_damage 800 //not used since sm_damage_mapmulti is used 9 | lgofnoc_addcvar sm_damage_multi 1.0 10 | lgofnoc_addcvar sm_damage_mapmulti 1.5 11 | 12 | -------------------------------------------------------------------------------- /cfg/lgofnoc/cocaine/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // 4v4 2 | exec lgofnoc/shared/4v4.cfg //ALWAYS exec the player num .cfg first if your cfg's use addcvar_playerscale 3 | // Promod 4 | exec lgofnoc/shared/promod.cfg //exec promod before specifying any extras! 5 | // Cocaine 6 | exec lgofnoc/shared/cocaine.cfg 7 | // Damage Bonus 8 | exec lgofnoc/shared/db.cfg 9 | // Locking 10 | exec lgofnoc/shared/lock.cfg 11 | -------------------------------------------------------------------------------- /addons/sourcemod/gamedata/l4d_pounceprotect.txt: -------------------------------------------------------------------------------- 1 | "Games" 2 | { 3 | "left4dead" 4 | { 5 | "Offsets" 6 | { 7 | "CBaseAbility_OnOwnerTakeDamage" 8 | { 9 | "windows" "206" 10 | "linux" "207" 11 | } 12 | } 13 | } 14 | "left4dead2" 15 | { 16 | "Offsets" 17 | { 18 | "CBaseAbility_OnOwnerTakeDamage" 19 | { 20 | "windows" "221" 21 | "linux" "222" 22 | } 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/parity/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // 4v4 2 | exec lgofnoc/shared/4v4.cfg //ALWAYS exec the player num .cfg first if your cfg's use addcvar_playerscale 3 | // Promod 4 | exec lgofnoc/shared/promod.cfg //exec promod before specifying any extras! 5 | // Promod Item Settings 6 | exec lgofnoc/shared/items_promod.cfg 7 | // Damage Bonus 8 | exec lgofnoc/shared/hb.cfg 9 | // Locking 10 | exec lgofnoc/shared/lock.cfg 11 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm2v2/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // 2v2 2 | exec lgofnoc/shared/2v2.cfg //ALWAYS exec the player num .cfg first if your cfg's use addcvar_playerscale 3 | // Promod 4 | exec lgofnoc/shared/promod.cfg //exec promod before specifying any extras! 5 | // Promod Item Settings 6 | exec lgofnoc/shared/items_promod.cfg 7 | // Damage Bonus 8 | exec lgofnoc/shared/db.cfg 9 | // Locking 10 | exec lgofnoc/shared/lock.cfg 11 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm3v3/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // 3v3 2 | exec lgofnoc/shared/3v3.cfg //ALWAYS exec the player num .cfg first if your cfg's use addcvar_playerscale 3 | // Promod 4 | exec lgofnoc/shared/promod.cfg //exec promod before specifying any extras! 5 | // Promod Item Settings 6 | exec lgofnoc/shared/items_promod.cfg 7 | // Damage Bonus 8 | exec lgofnoc/shared/db.cfg 9 | // Locking 10 | exec lgofnoc/shared/lock.cfg 11 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // 4v4 2 | exec lgofnoc/shared/4v4.cfg //ALWAYS exec the player num .cfg first if your cfg's use addcvar_playerscale 3 | // Promod 4 | exec lgofnoc/shared/promod.cfg //exec promod before specifying any extras! 5 | // Promod Item Settings 6 | exec lgofnoc/shared/items_promod.cfg 7 | // Damage Bonus 8 | exec lgofnoc/shared/db.cfg 9 | // Locking 10 | exec lgofnoc/shared/lock.cfg 11 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promodhr/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // 4v4 2 | exec lgofnoc/shared/4v4.cfg //ALWAYS exec the player num .cfg first if your cfg's use addcvar_playerscale 3 | // Promod 4 | exec lgofnoc/shared/promod.cfg //exec promod before specifying any extras! 5 | // Promod Item Settings 6 | exec lgofnoc/shared/items_promod.cfg 7 | // Damage Bonus 8 | exec lgofnoc/shared/db.cfg 9 | // HR 10 | exec lgofnoc/shared/hr.cfg 11 | // Locking 12 | exec lgofnoc/shared/lock.cfg 13 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // 4v4 2 | exec lgofnoc/shared/4v4.cfg //ALWAYS exec the player num .cfg first if your cfg's use addcvar_playerscale 3 | // Promod 4 | exec lgofnoc/shared/promod.cfg //exec promod before specifying any extras! 5 | // Promod Item Settings 6 | exec lgofnoc/shared/items_promod.cfg 7 | // Hunters 8 | exec lgofnoc/shared/hunters.cfg 9 | // Damage Bonus 10 | exec lgofnoc/shared/db.cfg 11 | // Locking 12 | exec lgofnoc/shared/lock.cfg 13 | -------------------------------------------------------------------------------- /cfg/lgofnoc/pm1v1/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // 1v1 2 | exec lgofnoc/shared/1v1.cfg //ALWAYS exec the player num .cfg first if your cfg's use addcvar_playerscale 3 | // Promod 4 | exec lgofnoc/shared/promod.cfg //exec promod before specifying any extras! 5 | // Promod Item Settings 6 | exec lgofnoc/shared/items_promod.cfg 7 | // Damage Bonus 8 | exec lgofnoc/shared/db.cfg 9 | // No Tank 10 | exec lgofnoc/shared/notank.cfg 11 | // Locking 12 | exec lgofnoc/shared/lock.cfg 13 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters2v2/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // 2v2 2 | exec lgofnoc/shared/2v2.cfg //ALWAYS exec the player num .cfg first if your cfg's use addcvar_playerscale 3 | // Promod 4 | exec lgofnoc/shared/promod.cfg //exec promod before specifying any extras! 5 | // Promod Item Settings 6 | exec lgofnoc/shared/items_promod.cfg 7 | // Hunters 8 | exec lgofnoc/shared/hunters.cfg 9 | // Damage Bonus 10 | exec lgofnoc/shared/db.cfg 11 | // Locking 12 | exec lgofnoc/shared/lock.cfg 13 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters3v3/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // 3v3 2 | exec lgofnoc/shared/3v3.cfg //ALWAYS exec the player num .cfg first if your cfg's use addcvar_playerscale 3 | // Promod 4 | exec lgofnoc/shared/promod.cfg //exec promod before specifying any extras! 5 | // Promod Item Settings 6 | exec lgofnoc/shared/items_promod.cfg 7 | // Hunters 8 | exec lgofnoc/shared/hunters.cfg 9 | // Damage Bonus 10 | exec lgofnoc/shared/db.cfg 11 | // Locking 12 | exec lgofnoc/shared/lock.cfg 13 | -------------------------------------------------------------------------------- /cfg/lgofnoc/retro/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // 4v4 2 | exec lgofnoc/shared/4v4.cfg //ALWAYS exec the player num .cfg first if your cfg's use addcvar_playerscale 3 | // Promod 4 | exec lgofnoc/shared/promod.cfg //exec promod before specifying any extras! 5 | // Promod Item Settings 6 | exec lgofnoc/shared/items_promod.cfg 7 | // Retro classes 8 | exec lgofnoc/shared/retro.cfg 9 | // Damage Bonus 10 | exec lgofnoc/shared/db.cfg 11 | // Locking 12 | exec lgofnoc/shared/lock.cfg 13 | -------------------------------------------------------------------------------- /cfg/lgofnoc/hunters1v1/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // 1v1 2 | exec lgofnoc/shared/1v1.cfg //ALWAYS exec the player num .cfg first if your cfg's use addcvar_playerscale 3 | // Promod 4 | exec lgofnoc/shared/promod.cfg //exec promod before specifying any extras! 5 | // Promod Item Settings 6 | exec lgofnoc/shared/items_promod.cfg 7 | // Hunters 8 | exec lgofnoc/shared/hunters.cfg 9 | // Damage Bonus 10 | exec lgofnoc/shared/db.cfg 11 | // No Tank 12 | exec lgofnoc/shared/notank.cfg 13 | // Locking 14 | exec lgofnoc/shared/lock.cfg 15 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/l4d_ihm04_lumberyard.cfg: -------------------------------------------------------------------------------- 1 | ; ====================================================== 2 | ; =============== I Hate Mountains 4 ================= 3 | ; ====================================================== 4 | 5 | ;---- Prevent Dynamic Pathing - Leave it open for both Sides. 6 | modify: 7 | { 8 | match: 9 | { 10 | "hammerid" "99293" 11 | } 12 | delete: 13 | { 14 | "OnGameplayStart" "barricade_casePickRandom0-1" 15 | } 16 | insert: 17 | { 18 | "OnGameplayStart" "barricade_navblockerUnblockNav0-1" 19 | } 20 | } -------------------------------------------------------------------------------- /scripts/vscripts/c12m4_onslaught_1v1.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 1 10 | MobSpawnMaxTime = 2 11 | MobMaxPending = 6 12 | MobMinSize = 6 13 | MobMaxSize = 6 14 | SustainPeakMinTime = 1 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 3 18 | RelaxMaxInterval = 3 19 | RelaxMaxFlowTravel = 200 20 | } 21 | 22 | Director.ResetMobTimer() -------------------------------------------------------------------------------- /scripts/vscripts/c12m4_onslaught_2v2.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 1 10 | MobSpawnMaxTime = 2 11 | MobMaxPending = 15 12 | MobMinSize = 15 13 | MobMaxSize = 15 14 | SustainPeakMinTime = 1 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 3 18 | RelaxMaxInterval = 3 19 | RelaxMaxFlowTravel = 200 20 | } 21 | 22 | Director.ResetMobTimer() -------------------------------------------------------------------------------- /scripts/vscripts/c12m4_onslaught_3v3.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 1 10 | MobSpawnMaxTime = 2 11 | MobMaxPending = 22 12 | MobMinSize = 22 13 | MobMaxSize = 22 14 | SustainPeakMinTime = 1 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 3 18 | RelaxMaxInterval = 3 19 | RelaxMaxFlowTravel = 200 20 | } 21 | 22 | Director.ResetMobTimer() -------------------------------------------------------------------------------- /scripts/vscripts/c12m4_onslaught_promod.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 1 10 | MobSpawnMaxTime = 2 11 | MobMaxPending = 25 12 | MobMinSize = 25 13 | MobMaxSize = 25 14 | SustainPeakMinTime = 1 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 3 18 | RelaxMaxInterval = 3 19 | RelaxMaxFlowTravel = 200 20 | } 21 | 22 | Director.ResetMobTimer() -------------------------------------------------------------------------------- /scripts/vscripts/map2_ambient_promod.nut: -------------------------------------------------------------------------------- 1 | // Suicide Blitz Map 2 2 | 3 | Msg("Initiating Riverwalk Script\n"); 4 | 5 | DirectorOptions <- 6 | { 7 | AlwaysAllowWanderers = true 8 | MobSpawnMinTime = 3500 9 | MobSpawnMaxTime = 3500 10 | MobMinSize = 15 11 | MobMaxSize = 20 12 | 13 | 14 | 15 | 16 | SpitterLimit = 1 17 | 18 | 19 | NumReservedWanderers = 10 20 | ZombieSpawnInFog = true 21 | ZombieSpawnRange = 2500 22 | CommonLimit = 25 23 | MaxSpecials = 2 24 | SmokerLimit = 1 25 | 26 | WitchLimit = 1 27 | 28 | 29 | } 30 | 31 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/damitdc1.cfg: -------------------------------------------------------------------------------- 1 | ; ======================================================== 2 | ; =================== Dam It 1 ======================= 3 | ; ======================================================== 4 | 5 | ; Add sniper in treehouse for eq 6 | add: 7 | { 8 | "origin" "4228 11497 -352" 9 | "weapon_selection" "weapon_hunting_rifle" 10 | "spawnflags" "3" 11 | "spawn_without_director" "0" 12 | "solid" "6" 13 | "skin" "0" 14 | "model" "models/w_models/weapons/w_smg_a.mdl" 15 | "disableshadows" "0" 16 | "count" "4" 17 | "body" "0" 18 | "angles" "0 29 90" 19 | "classname" "weapon_spawn" 20 | } -------------------------------------------------------------------------------- /scripts/vscripts/c10m4_onslaught_1v1.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 5 10 | MobSpawnMaxTime = 5 11 | MobMaxPending = 5 12 | MobMinSize = 5 13 | MobMaxSize = 5 14 | SustainPeakMinTime = 3 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 8 18 | RelaxMaxInterval = 8 19 | RelaxMaxFlowTravel = 5000 20 | } 21 | 22 | Director.ResetMobTimer() 23 | Director.PlayMegaMobWarningSounds() -------------------------------------------------------------------------------- /scripts/vscripts/c12m3_onslaught_1v1.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 1 10 | MobSpawnMaxTime = 2 11 | MobMaxPending = 0 12 | MobMinSize = 4 13 | MobMaxSize = 4 14 | SustainPeakMinTime = 1 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 3 18 | RelaxMaxInterval = 3 19 | RelaxMaxFlowTravel = 200 20 | } 21 | 22 | Director.ResetMobTimer() 23 | Director.PlayMegaMobWarningSounds() -------------------------------------------------------------------------------- /scripts/vscripts/c10m4_onslaught_2v2.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 5 10 | MobSpawnMaxTime = 5 11 | MobMaxPending = 10 12 | MobMinSize = 10 13 | MobMaxSize = 10 14 | SustainPeakMinTime = 3 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 8 18 | RelaxMaxInterval = 8 19 | RelaxMaxFlowTravel = 5000 20 | } 21 | 22 | Director.ResetMobTimer() 23 | Director.PlayMegaMobWarningSounds() -------------------------------------------------------------------------------- /scripts/vscripts/c10m4_onslaught_3v3.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 5 10 | MobSpawnMaxTime = 5 11 | MobMaxPending = 16 12 | MobMinSize = 15 13 | MobMaxSize = 15 14 | SustainPeakMinTime = 3 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 8 18 | RelaxMaxInterval = 8 19 | RelaxMaxFlowTravel = 5000 20 | } 21 | 22 | Director.ResetMobTimer() 23 | Director.PlayMegaMobWarningSounds() -------------------------------------------------------------------------------- /scripts/vscripts/c12m3_onslaught_2v2.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 1 10 | MobSpawnMaxTime = 2 11 | MobMaxPending = 0 12 | MobMinSize = 10 13 | MobMaxSize = 10 14 | SustainPeakMinTime = 1 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 3 18 | RelaxMaxInterval = 3 19 | RelaxMaxFlowTravel = 200 20 | } 21 | 22 | Director.ResetMobTimer() 23 | Director.PlayMegaMobWarningSounds() -------------------------------------------------------------------------------- /scripts/vscripts/c12m3_onslaught_3v3.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 1 10 | MobSpawnMaxTime = 2 11 | MobMaxPending = 0 12 | MobMinSize = 16 13 | MobMaxSize = 16 14 | SustainPeakMinTime = 1 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 3 18 | RelaxMaxInterval = 3 19 | RelaxMaxFlowTravel = 200 20 | } 21 | 22 | Director.ResetMobTimer() 23 | Director.PlayMegaMobWarningSounds() -------------------------------------------------------------------------------- /scripts/vscripts/c12m3_onslaught_promod.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 1 10 | MobSpawnMaxTime = 2 11 | MobMaxPending = 0 12 | MobMinSize = 22 13 | MobMaxSize = 22 14 | SustainPeakMinTime = 1 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 3 18 | RelaxMaxInterval = 3 19 | RelaxMaxFlowTravel = 200 20 | } 21 | 22 | Director.ResetMobTimer() 23 | Director.PlayMegaMobWarningSounds() -------------------------------------------------------------------------------- /scripts/vscripts/c10m4_onslaught_promod.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 5 10 | MobSpawnMaxTime = 5 11 | MobMaxPending = 21 12 | MobMinSize = 21 13 | MobMaxSize = 21 14 | SustainPeakMinTime = 3 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 8 18 | RelaxMaxInterval = 8 19 | RelaxMaxFlowTravel = 5000 20 | } 21 | 22 | Director.ResetMobTimer() 23 | Director.PlayMegaMobWarningSounds() -------------------------------------------------------------------------------- /scripts/vscripts/c11m4_onslaught_1v1.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 3 10 | MobSpawnMaxTime = 3 11 | MobMaxPending = 5 12 | MobMinSize = 5 13 | MobMaxSize = 5 14 | SustainPeakMinTime = 3 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 4 18 | RelaxMaxInterval = 4 19 | RelaxMaxFlowTravel = 5000 20 | } 21 | 22 | Director.ResetMobTimer() 23 | Director.PlayMegaMobWarningSounds() 24 | -------------------------------------------------------------------------------- /scripts/vscripts/c11m4_onslaught_2v2.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 3 10 | MobSpawnMaxTime = 3 11 | MobMaxPending = 12 12 | MobMinSize = 12 13 | MobMaxSize = 12 14 | SustainPeakMinTime = 3 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 4 18 | RelaxMaxInterval = 4 19 | RelaxMaxFlowTravel = 5000 20 | } 21 | 22 | Director.ResetMobTimer() 23 | Director.PlayMegaMobWarningSounds() 24 | -------------------------------------------------------------------------------- /scripts/vscripts/c11m4_onslaught_3v3.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 3 10 | MobSpawnMaxTime = 3 11 | MobMaxPending = 17 12 | MobMinSize = 17 13 | MobMaxSize = 17 14 | SustainPeakMinTime = 3 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 4 18 | RelaxMaxInterval = 4 19 | RelaxMaxFlowTravel = 5000 20 | } 21 | 22 | Director.ResetMobTimer() 23 | Director.PlayMegaMobWarningSounds() 24 | -------------------------------------------------------------------------------- /scripts/vscripts/l4d_dbd2dc_new_dawn_tank_music_helper_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to convert Dead Before Dawn: DC's finale to a gauntlet. 2 | // This script makes sure the tank music is playing when it's supposed to. 3 | // Refer to the corresponding stripper file. 4 | 5 | if (!Director.IsTankInPlay()) 6 | { 7 | // There is assumed to be a generic_ambient entity named 'tank_music' 8 | // that was started when this script was initially kicked off. 9 | // Kill the music now. 10 | EntFire( "tank_music", "StopSound", 0 ); 11 | 12 | // Kill the timer that keeps firing this script. 13 | EntFire( "tank_music_timer", "Disable", 0 ); 14 | 15 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/2v2.cfg: -------------------------------------------------------------------------------- 1 | // Cvars and stuff for 2v2 match modes 2 | lgofnoc_addcvar survivor_limit 2 3 | lgofnoc_addcvar z_max_player_zombies 2 4 | 5 | // [survivor_mvp.smx] 6 | sm plugins load_unlock 7 | sm plugins load optional/survivor_mvp.smx 8 | sm plugins load_lock 9 | lgofnoc_addcvar sm_survivor_mvp_enabled 1 10 | lgofnoc_addcvar sm_survivor_mvp_counttank 0 11 | lgofnoc_addcvar sm_survivor_mvp_countwitch 0 12 | lgofnoc_addcvar sm_survivor_mvp_showff 0 13 | lgofnoc_addcvar sm_survivor_mvp_brevity 0 14 | 15 | // [l4d_weapon_limits.smx] 16 | l4d_wlimits_add 1 0 weapon_pistol_magnum 17 | l4d_wlimits_add 0 1 weapon_hunting_rifle 18 | 19 | -------------------------------------------------------------------------------- /scripts/vscripts/c11m4_onslaught_promod.nut: -------------------------------------------------------------------------------- 1 | Msg("Initiating Onslaught\n"); 2 | 3 | DirectorOptions <- 4 | { 5 | // This turns off tanks and witches. 6 | ProhibitBosses = true 7 | 8 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 9 | MobSpawnMinTime = 3 10 | MobSpawnMaxTime = 3 11 | MobMaxPending = 24 12 | MobMinSize = 24 13 | MobMaxSize = 24 14 | SustainPeakMinTime = 3 15 | SustainPeakMaxTime = 3 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 4 18 | RelaxMaxInterval = 4 19 | RelaxMaxFlowTravel = 5000 20 | } 21 | 22 | Director.ResetMobTimer() 23 | Director.PlayMegaMobWarningSounds() 24 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/l4d_ihm01_forest.cfg: -------------------------------------------------------------------------------- 1 | ; ====================================================== 2 | ; =============== I Hate Mountains 1 ================= 3 | ; ====================================================== 4 | 5 | ;----- Make sure it's the same path on both sides (Non-Barricaded) 6 | modify 7 | { 8 | match: 9 | { 10 | "targetname" "director" 11 | } 12 | delete: 13 | { 14 | "OnGameplayStart" "barricade_casePickRandom0-1" 15 | } 16 | insert: 17 | { 18 | "OnGameplayStart" "barricade_navblockerUnblockNav0-1" 19 | } 20 | } 21 | 22 | ;----- Get rid of Minigun at end Saferoom 23 | filter: 24 | { 25 | "hammerid" "464763" 26 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/hb.cfg: -------------------------------------------------------------------------------- 1 | //unLock & Load! 2 | sm plugins load_unlock 3 | sm plugins load optional/l4d2_scoremod.smx 4 | sm plugins load_lock 5 | // Typical Scoremod Cvars 6 | lgofnoc_addcvar SM_enable 1 7 | lgofnoc_addcvar SM_healthbonusratio 2.0 8 | lgofnoc_addcvar SM_survivalbonusratio 0.0 9 | lgofnoc_addcvar SM_tempmulti_incap_0 0.30625 10 | lgofnoc_addcvar SM_tempmulti_incap_1 0.17500 11 | lgofnoc_addcvar SM_tempmulti_incap_2 0.10000 12 | lgofnoc_addcvar SM_first_aid_heal_percent 0.1 13 | lgofnoc_addcvar SM_pain_pills_health_value 50 14 | lgofnoc_addcvar SM_adrenaline_health_buffer 25 15 | lgofnoc_addcvar SM_mapmulti 1 16 | lgofnoc_addcvar SM_custommaxdistance 1 17 | 18 | -------------------------------------------------------------------------------- /scripts/vscripts/cdta02_passive_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to remove natural hordes from Detour Ahead Map 2 2 | 3 | Msg("DA2 Ambient\n"); 4 | 5 | DirectorOptions <- 6 | { 7 | AlwaysAllowWanderers = false 8 | MobSpawnMinTime = 3500 9 | MobSpawnMaxTime = 3500 10 | MobMinSize = 10 11 | MobMaxSize = 30 12 | MobMaxPending = 30 13 | SustainPeakMinTime = 5 14 | SustainPeakMaxTime = 15 15 | IntensityRelaxThreshold = 0.6 16 | RelaxMinInterval = 30 17 | RelaxMaxInterval = 45 18 | RelaxMaxFlowTravel = 900 19 | SmokerLimit = 2 20 | HunterLimit = 2 21 | ChargerLimit = 2 22 | SpecialRespawnInterval = 30.0 23 | NumReservedWanderers = 15 24 | ZombieSpawnInFog = true 25 | MaxSpecials = 3 26 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/4v4.cfg: -------------------------------------------------------------------------------- 1 | // Cvars and stuff for 4v4 match modes 2 | lgofnoc_addcvar survivor_limit 4 3 | lgofnoc_addcvar z_max_player_zombies 4 4 | 5 | // [survivor_mvp.smx] 6 | sm plugins load_unlock 7 | sm plugins load optional/survivor_mvp.smx 8 | sm plugins load_lock 9 | lgofnoc_addcvar sm_survivor_mvp_enabled 1 10 | lgofnoc_addcvar sm_survivor_mvp_counttank 0 11 | lgofnoc_addcvar sm_survivor_mvp_countwitch 0 12 | lgofnoc_addcvar sm_survivor_mvp_showff 0 13 | lgofnoc_addcvar sm_survivor_mvp_brevity 0 14 | 15 | // [l4d_weapon_limits.smx] 16 | l4d_wlimits_add 3 1 weapon_smg weapon_smg_silenced 17 | l4d_wlimits_add 1 0 weapon_pistol_magnum 18 | l4d_wlimits_add 0 1 weapon_hunting_rifle 19 | -------------------------------------------------------------------------------- /scripts/vscripts/cdta01_passive_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to remove natural hordes from Detour Ahead Map 1 2 | 3 | Msg("DA1 Ambient\n"); 4 | 5 | DirectorOptions <- 6 | { 7 | AlwaysAllowWanderers = true 8 | MobSpawnMinTime = 3500 9 | MobSpawnMaxTime = 3500 10 | MobMinSize = 10 11 | MobMaxSize = 30 12 | MobMaxPending = 30 13 | SustainPeakMinTime = 5 14 | SustainPeakMaxTime = 8 15 | IntensityRelaxThreshold = 0.6 16 | RelaxMinInterval = 25 17 | RelaxMaxInterval = 30 18 | RelaxMaxFlowTravel = 850 19 | SmokerLimit = 2 20 | HunterLimit = 2 21 | SpecialRespawnInterval = 30.0 22 | NumReservedWanderers = 10 23 | ZombieSpawnInFog = true 24 | MaxSpecials = 2 25 | ProhibitBosses = true 26 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/1v1.cfg: -------------------------------------------------------------------------------- 1 | // In-built cvars' settings for 3v3 match modes 2 | lgofnoc_addcvar survivor_limit 1 3 | lgofnoc_addcvar z_max_player_zombies 1 4 | lgofnoc_addcvar survivor_ledge_grab_health 0 5 | lgofnoc_addcvar survivor_max_incapacitated_count 0 6 | 7 | // [1v1_skeetstats.smx] + [1v1pm.smx] 8 | sm plugins load_unlock 9 | sm plugins load optional/1v1_skeetstats.smx 10 | sm plugins load optional/1v1pm.smx 11 | sm plugins load_lock 12 | lgofnoc_addcvar sm_skeetstat_brevity 32 13 | lgofnoc_addcvar sm_1v1_dmgthreshold 33 14 | lgofnoc_addcvar z_pounce_damage 33 15 | lgofnoc_addcvar hunter_pz_claw_dmg 0 16 | 17 | // [l4d_weapon_limits.smx] 18 | l4d_wlimits_add 0 1 weapon_hunting_rifle 19 | 20 | -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/3v3.cfg: -------------------------------------------------------------------------------- 1 | // In-built cvars' settings for 3v3 match modes 2 | lgofnoc_addcvar survivor_limit 3 3 | lgofnoc_addcvar z_max_player_zombies 3 4 | 5 | // [survivor_mvp.smx] 6 | sm plugins load_unlock 7 | sm plugins load optional/survivor_mvp.smx 8 | sm plugins load_lock 9 | lgofnoc_addcvar sm_survivor_mvp_enabled 1 10 | lgofnoc_addcvar sm_survivor_mvp_counttank 0 11 | lgofnoc_addcvar sm_survivor_mvp_countwitch 0 12 | lgofnoc_addcvar sm_survivor_mvp_showff 0 13 | lgofnoc_addcvar sm_survivor_mvp_brevity 0 14 | 15 | // [l4d_weapon_limits.smx] 16 | l4d_wlimits_add 2 1 weapon_smg weapon_smg_silenced 17 | l4d_wlimits_add 1 0 weapon_pistol_magnum 18 | l4d_wlimits_add 0 1 weapon_hunting_rifle 19 | -------------------------------------------------------------------------------- /scripts/vscripts/cdta03_passive_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to remove natural hordes from Detour Ahead Map 3 2 | 3 | Msg("DA3 Ambient\n"); 4 | 5 | DirectorOptions <- 6 | { 7 | AlwaysAllowWanderers = true 8 | MobSpawnMinTime = 3500 9 | MobSpawnMaxTime = 3500 10 | MobMinSize = 10 11 | MobMaxSize = 30 12 | MobMaxPending = 30 13 | SustainPeakMinTime = 5 14 | SustainPeakMaxTime = 8 15 | IntensityRelaxThreshold = 0.6 16 | RelaxMinInterval = 25 17 | RelaxMaxInterval = 40 18 | RelaxMaxFlowTravel = 1100 19 | HunterLimit = 2 20 | SpecialRespawnInterval = 30.0 21 | ZombieSpawnRange = 2600 22 | NumReservedWanderers = 10 23 | ZombieSpawnInFog = true 24 | MaxSpecials = 3 25 | } 26 | 27 | Director.ResetMobTimer() -------------------------------------------------------------------------------- /scripts/vscripts/hf02_thesteeple_rolling_tunnel_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to lower the horde on the final event on map 2 of Haunted Forest 2 | DirectorOptions <- 3 | { 4 | // This turns off tanks and witches. 5 | ProhibitBosses = true 6 | 7 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 8 | MobSpawnMinTime = 4 9 | MobSpawnMaxTime = 4 10 | MobMaxPending = 12 11 | MobMinSize = 12 12 | MobMaxSize = 12 13 | MobSpawnSize = 12 14 | SustainPeakMinTime = 2 15 | SustainPeakMaxTime = 2 16 | IntensityRelaxThreshold = 0.90 17 | RelaxMinInterval = 3 18 | RelaxMaxInterval = 3 19 | RelaxMaxFlowTravel = 200 20 | CommonLimit = 16 21 | } 22 | 23 | Director.ResetMobTimer() 24 | Director.PlayMegaMobWarningSounds() -------------------------------------------------------------------------------- /scripts/vscripts/sb_map1_default_promod.nut: -------------------------------------------------------------------------------- 1 | // Suicide Blitz Map 1 2 | 3 | Msg("sb_map1_default\n"); 4 | 5 | DirectorOptions <- 6 | { 7 | AlwaysAllowWanderers = true 8 | MobSpawnMinTime = 3500 9 | MobSpawnMaxTime = 3500 10 | MobMinSize = 10 11 | MobMaxSize = 30 12 | MobMaxPending = 30 13 | SustainPeakMinTime = 5 14 | SustainPeakMaxTime = 8 15 | IntensityRelaxThreshold = 0.95 16 | RelaxMinInterval = 10 17 | RelaxMaxInterval = 30 18 | RelaxMaxFlowTravel = 850 19 | 20 | SpitterLimit = 1 21 | 22 | SpecialRespawnInterval = 30 23 | NumReservedWanderers = 10 24 | ZombieSpawnInFog = true 25 | MaxSpecials = 2 26 | ProhibitBosses = true 27 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/srocchurch.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =================== Warcelona 1 ================= 3 | ; ===================================================== 4 | 5 | ; Enable bosses in church 6 | modify: 7 | { 8 | match: 9 | { 10 | "targetname" "trigger6" 11 | } 12 | delete: 13 | { 14 | "OnStartTouch" "directorBeginScriptchurch_quiet0-1" 15 | } 16 | } 17 | 18 | ; Make it so infected don't take damage by entering church on bridge 19 | filter: 20 | { 21 | "targetname" "hurt_infected_churchB" 22 | } 23 | { 24 | "targetname" "hurt_infected_church" 25 | } 26 | { 27 | "targetname" "hurt_infected_bridge" 28 | } 29 | -------------------------------------------------------------------------------- /addons/sourcemod/gamedata/l4d2_zcs.txt: -------------------------------------------------------------------------------- 1 | "Games" 2 | { 3 | "left4dead2" 4 | { 5 | "Offsets" 6 | { 7 | "oAbility" 8 | { 9 | "windows" "916" 10 | "linux" "936" 11 | } 12 | } 13 | 14 | "Signatures" 15 | { 16 | "SetClass" 17 | { 18 | "library" "server" 19 | "windows" "\x56\x8B\xF1\xE8****\x83\xF8\x03\x0F\x85****\xA1****\x83\xC0\x01" 20 | "linux" "@_ZN13CTerrorPlayer8SetClassE15ZombieClassType" 21 | } 22 | 23 | "CreateAbility" 24 | { 25 | "library" "server" 26 | "windows" "\x83\xEC\x0C\x56\x8B\x74\x24\x14\x85\xF6\x0F\x84\xF7\x00\x00\x00" 27 | "linux" "@_ZN12CBaseAbility15CreateForPlayerEP13CTerrorPlayer" 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /scripts/vscripts/cdta04_passive_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to remove natural hordes from Detour Ahead Map 4 2 | 3 | Msg("DA4 Ambient\n"); 4 | 5 | DirectorOptions <- 6 | { 7 | AlwaysAllowWanderers = true 8 | MobSpawnMinTime = 3500 9 | MobSpawnMaxTime = 3500 10 | MobMinSize = 10 11 | MobMaxSize = 35 12 | MobMaxPending = 30 13 | SustainPeakMinTime = 5 14 | SustainPeakMaxTime = 8 15 | IntensityRelaxThreshold = 0.6 16 | RelaxMinInterval = 31 17 | RelaxMaxInterval = 40 18 | RelaxMaxFlowTravel = 1400 19 | SmokerLimit = 2 20 | HunterLimit = 2 21 | ChargerLimit = 1 22 | SpecialRespawnInterval = 30.0 23 | ZombieSpawnRange = 2600 24 | NumReservedWanderers = 10 25 | ZombieSpawnInFog = true 26 | MaxSpecials = 3 27 | } 28 | 29 | Director.ResetMobTimer() -------------------------------------------------------------------------------- /scripts/vscripts/hf04_escape_tank_helper_2_promod.nut: -------------------------------------------------------------------------------- 1 | // Once the tank dies on Haunted Forest finale, 2 | // this onslaught script is run to verify common limit doesn't increase. 3 | 4 | tanks <-{ 5 | tank1 = "models/infected/hulk.mdl", 6 | tank2 = "models/infected/hulk_dlc3.mdl" 7 | } 8 | 9 | function TankIsAlive() 10 | { 11 | foreach (t, m in tanks) 12 | { 13 | tank <- Entities.FindByModel(null, m); 14 | if (tank) 15 | { 16 | return true; 17 | } 18 | } 19 | return false; 20 | } 21 | 22 | if (!TankIsAlive()) 23 | { 24 | // Kill the timer that keeps running this script 25 | EntFire( "tank_spawned_timer_2", "Disable", 0 ); 26 | 27 | // Reset Common Limit 28 | EntFire( "director", "BeginScript", "hf04_escape_onslaught_promod"); 29 | } -------------------------------------------------------------------------------- /scripts/vscripts/l4d_dbd2dc_new_dawn_tank_early_helper_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to prevent early tanks on Dead Before Dawn:DC finale 2 | // from getting stuck behind the finale start gate 3 | 4 | tanks <-{ 5 | tank1 = "models/infected/hulk.mdl", 6 | tank2 = "models/infected/hulk_dlc3.mdl" 7 | } 8 | 9 | function TeleTank() 10 | { 11 | foreach (t, m in tanks) 12 | { 13 | tank <- Entities.FindByModel(null, m); 14 | 15 | if (tank) 16 | { 17 | pos <- tank.GetOrigin(); 18 | 19 | // -1436.083740 153.653137 -1151.968750; 20 | pos.x = -1436.083740; 21 | pos.y = 153.653137; 22 | pos.z = -1175.968750; 23 | tank.SetOrigin(pos); 24 | 25 | // Kill the timer that keeps running this script 26 | EntFire( "tank_early_timer", "Disable", 0 ); 27 | } 28 | } 29 | } 30 | 31 | TeleTank(); 32 | -------------------------------------------------------------------------------- /scripts/vscripts/l4d_ihm02_manor_tank_helper_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to control the spawn of I Hate Mountains 2 (map 2) tank. 2 | // Refer to the corresponding stripper file. 3 | 4 | tanks <-{ 5 | tank1 = "models/infected/hulk.mdl", 6 | tank2 = "models/infected/hulk_dlc3.mdl" 7 | } 8 | 9 | function TeleTank() 10 | { 11 | foreach (t, m in tanks) 12 | { 13 | tank <- Entities.FindByModel(null, m); 14 | if (tank) 15 | { 16 | pos <- tank.GetOrigin(); 17 | 18 | // Coordinates to where we want to teleport the tank 19 | // -1304.231079 -702.810608 967.286316; 20 | pos.x = -1304.231079; 21 | pos.y = -702.810608; 22 | pos.z = 967.286316; 23 | tank.SetOrigin(pos); 24 | 25 | // Kill the timer that keeps running this script 26 | EntFire( "tank_spawned_timer", "Disable", 0 ); 27 | } 28 | } 29 | } 30 | 31 | TeleTank(); -------------------------------------------------------------------------------- /addons/sourcemod/gamedata/l4d2_dominators.txt: -------------------------------------------------------------------------------- 1 | "Games" 2 | { 3 | "left4dead2" 4 | { 5 | "Addresses" 6 | { 7 | "bIsDominator" 8 | { 9 | "windows" 10 | { 11 | "signature" "CTerrorPlayer::IsClassOverLimit" 12 | "read" "156" 13 | } 14 | "linux" 15 | { 16 | "signature" "CTerrorPlayer::IsClassOverLimit::bIsDominator" 17 | } 18 | } 19 | } 20 | "Signatures" 21 | { 22 | "CTerrorPlayer::IsClassOverLimit::bIsDominator" 23 | { 24 | "library" "server" 25 | "linux" "@_ZZN13CTerrorPlayer16IsClassOverLimitEiE12bIsDominator" 26 | } 27 | "CTerrorPlayer::IsClassOverLimit" 28 | { 29 | "library" "server" 30 | "windows" "\x83\xEC\x40\x56\x8B\x74\x24\x48\x83\xC6\xFF\x83\xFE\x05\x0F\x87\xEF\x00\x00\x00" 31 | /* 83 EC 40 56 8B 74 24 48 83 C6 FF 83 FE 05 0F 87 EF 00 00 00 */ 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/cwm2_warehouse.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =================== Carried Off 2 =================== 3 | ; ===================================================== 4 | 5 | ; Block spool shortcut in warehouse 6 | add: 7 | { 8 | "solid" "6" 9 | "origin" "3345 315 147" 10 | "angles" "50 75 0" 11 | "model" "models/props_industrial/warehouse_shelf004.mdl" 12 | "classname" "prop_dynamic" 13 | } 14 | 15 | 16 | ; Remove hittable that can be used to get to god spot in warehouse 17 | filter: 18 | { 19 | "model" "models/props/cs_assault/handtruck.mdl" 20 | "angles" "0 77 0" 21 | } 22 | 23 | ; Create shortcut into last building by safe room - map is too long 24 | ;add: 25 | ;{ 26 | ; "origin" "8642 4774 159" 27 | ; "solid" "6" 28 | ; "angles" "0 160 0" 29 | ; "model" "models/props_vehicles/van_interior.mdl" 30 | ; "classname" "prop_dynamic" 31 | ;} -------------------------------------------------------------------------------- /scripts/vscripts/l4d_dbd2dc_new_dawn_finale_promod.nut: -------------------------------------------------------------------------------- 1 | DirectorOptions <- 2 | { 3 | ProhibitBosses = true 4 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 5 | MobMaxPending = 20 6 | MobMinSize = 20 7 | MobMaxSize = 20 8 | SustainPeakMinTime = 1 9 | SustainPeakMaxTime = 3 10 | 11 | PanicForever = true 12 | PausePanicWhenRelaxing = false 13 | 14 | IntensityRelaxThreshold = 0.90 15 | RelaxMinInterval = 3 16 | RelaxMaxInterval = 3 17 | RelaxMaxFlowTravel = 200 18 | 19 | LockTempo = 0 20 | SpecialRespawnInterval = 20 21 | PreTankMobMax = 20 22 | ZombieSpawnRange = 2000 23 | ZombieSpawnInFog = true 24 | 25 | MobSpawnSize = 20 26 | CommonLimit = 20 27 | 28 | // length of bridge to test progress against. 29 | BridgeSpan = 10000 30 | 31 | MobSpawnMinTime = 3 32 | MobSpawnMaxTime = 3 33 | 34 | MobSpawnSizeMin = 20 35 | MobSpawnSizeMax = 20 36 | } 37 | 38 | Director.ResetMobTimer(); -------------------------------------------------------------------------------- /scripts/vscripts/sb_map3_jail_crescendo_cooldown_promod.nut: -------------------------------------------------------------------------------- 1 | // Suicide Blitz Map 3 2 | 3 | Msg("Resuming Normal Map3 Script\n"); 4 | 5 | local SPAWN_ANYWHERE = 0 6 | 7 | DirectorOptions <- 8 | { 9 | MobSpawnMinTime = 3500 10 | MobSpawnMaxTime = 3500 11 | MobMinSize = 20 12 | MobMaxSize = 30 13 | MobMaxPending = 25 14 | SustainPeakMinTime = 5 15 | SustainPeakMaxTime = 8 16 | IntensityRelaxThreshold = 0.9 17 | RelaxMinInterval = 20 18 | RelaxMaxInterval = 45 19 | RelaxMaxFlowTravel = 1500 20 | TankLimit = 1 21 | WitchLimit = 1 22 | 23 | JockeyLimit = 1 24 | BoomerLimit = 1 25 | SpecialRespawnInterval = 30.0 26 | 27 | NumReservedWanderers = 5 28 | PreferredMobDirection = SPAWN_ANYWHERE 29 | 30 | FallenSurvivorPotentialQuantity = 6 31 | FallenSurvivorSpawnChance = 0.75 32 | } 33 | 34 | Director.ResetMobTimer() -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/cdta_01detour.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =================== Detour Ahead 1 ============== 3 | ; ===================================================== 4 | 5 | ; Make it so windows on house can be entered by survivors (necessary for newest version of detour head) 6 | modify: 7 | { 8 | match: 9 | { 10 | "classname" "info_gamemode" 11 | } 12 | delete: 13 | { 14 | "OnVersus" "versus_survivor_blockEnable0-1" 15 | } 16 | } 17 | filter: 18 | { 19 | "targetname" "versus_survivor_block" 20 | } 21 | 22 | ; Prevent map from triggering natural hordes 23 | modify: 24 | { 25 | match: 26 | { 27 | "targetname" "coop_scriptstart" 28 | } 29 | delete: 30 | { 31 | "OnTrigger" "directorBeginScriptcdta01_passive0-1" 32 | } 33 | insert: 34 | { 35 | "OnTrigger" "directorBeginScriptcdta01_passive_promod0-1" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /scripts/vscripts/l4d_dbd2dc_new_dawn_tank_early_helper_2_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to prevent early tanks on Dead Before Dawn:DC finale 2 | // from getting stuck behind the finale start gate. 3 | // This works in conjunction with the l4d_dbd2dc_new_dawn_tank_early_helper_1_promod.nut script. 4 | 5 | tanks <-{ 6 | tank1 = "models/infected/hulk.mdl", 7 | tank2 = "models/infected/hulk_dlc3.mdl" 8 | } 9 | 10 | function TeleTank() 11 | { 12 | foreach (t, m in tanks) 13 | { 14 | tank <- Entities.FindByModel(null, m); 15 | 16 | if (tank) 17 | { 18 | pos <- tank.GetOrigin(); 19 | 20 | // -1436.083740 153.653137 -1151.968750; 21 | pos.x = -1436.083740; 22 | pos.y = 153.653137; 23 | pos.z = -1175.968750; 24 | tank.SetOrigin(pos); 25 | 26 | // Kill the timer that keeps running this script 27 | EntFire( "tank_early_timer_2", "Disable", 0 ); 28 | } 29 | } 30 | } 31 | 32 | TeleTank(); 33 | -------------------------------------------------------------------------------- /scripts/vscripts/cwm4_building_tank_helper_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to fix Carried Off's Gauntlet Finale. 2 | // The tank will now spawn in the same place for boths teams. 3 | // Refer to the corresponding stripper file. 4 | 5 | tanks <-{ 6 | tank1 = "models/infected/hulk.mdl", 7 | tank2 = "models/infected/hulk_dlc3.mdl" 8 | } 9 | 10 | function TeleTank() 11 | { 12 | foreach (t, m in tanks) 13 | { 14 | tank <- Entities.FindByModel(null, m); 15 | if (tank) 16 | { 17 | pos <- tank.GetOrigin(); 18 | 19 | // Coordinates to where we want to teleport the tank 20 | // "284.567841 668.269165 1406.031250" 21 | // -172.901581 515.258118 1406.031250; 22 | pos.x = -172.901581; 23 | pos.y = 515.258118; 24 | pos.z = 1406.031250; 25 | tank.SetOrigin(pos); 26 | 27 | // Kill the timer that keeps running this script 28 | EntFire( "tank_spawned_timer", "Disable", 0 ); 29 | } 30 | } 31 | } 32 | 33 | TeleTank(); -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/versus_4.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================== Firetower Trail 4 =============== 3 | ; ===================================================== 4 | 5 | ; Remove the hardcoded finale tank because its bugged 6 | modify: 7 | { 8 | match: 9 | { 10 | "classname" "logic_relay" 11 | "targetname" "tank_pls" 12 | } 13 | delete: 14 | { 15 | "OnTrigger" "final_tankSpawnZombietank0-1" 16 | "OnTrigger" "final_tankSpawnZombiehunter7-1" 17 | "OnTrigger" "final_tankSpawnZombiehunter49-1" 18 | "OnTrigger" "tank_screamPlaySound0-1" 19 | "OnTrigger" "final_eventSpawnZombiecharger0-1" 20 | } 21 | } 22 | 23 | ; Add a spawn in beginning of map - huge open area 24 | add: 25 | { 26 | "solid" "6" 27 | "origin" "13142 3646 -1274" 28 | "angles" "0 0 0" 29 | "model" "models/props_vehicles/airport_catering_truck.mdl" 30 | "classname" "prop_dynamic" 31 | } -------------------------------------------------------------------------------- /scripts/vscripts/hf04_escape_onslaught_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to lower the horde on Haunted Forest's Gauntlet finale. 2 | DirectorOptions <- 3 | { 4 | ProhibitBosses = true 5 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 6 | MobMaxPending = 10 7 | MobMinSize = 10 8 | MobMaxSize = 10 9 | SustainPeakMinTime = 2 10 | SustainPeakMaxTime = 2 11 | 12 | PanicForever = true 13 | PausePanicWhenRelaxing = false 14 | 15 | IntensityRelaxThreshold = 0.90 16 | RelaxMinInterval = 5 17 | RelaxMaxInterval = 5 18 | RelaxMaxFlowTravel = 200 19 | 20 | LockTempo = 0 21 | SpecialRespawnInterval = 20 22 | PreTankMobMax = 10 23 | ZombieSpawnRange = 3000 24 | ZombieSpawnInFog = true 25 | 26 | MobSpawnSize = 10 27 | CommonLimit = 18 28 | 29 | // length of bridge to test progress against. 30 | BridgeSpan = 10000 31 | 32 | MobSpawnMinTime = 5 33 | MobSpawnMaxTime = 5 34 | 35 | MobSpawnSizeMin = 10 36 | MobSpawnSizeMax = 10 37 | } 38 | 39 | -------------------------------------------------------------------------------- /scripts/vscripts/l4d_dbd2dc_new_dawn_tank_early_helper_1_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to prevent early tanks on Dead Before Dawn:DC finale 2 | // from getting stuck behind the finale start gate. 3 | // This works in conjunction with the l4d_dbd2dc_new_dawn_tank_early_helper_2_promod.nut script. 4 | 5 | tanks <-{ 6 | tank1 = "models/infected/hulk.mdl", 7 | tank2 = "models/infected/hulk_dlc3.mdl" 8 | } 9 | 10 | function TeleTank() 11 | { 12 | foreach (t, m in tanks) 13 | { 14 | tank <- Entities.FindByModel(null, m); 15 | 16 | if (tank) 17 | { 18 | // Kill the second timer that is responsible for teleporting the early tank 19 | // because the tank spawned early enough that we don't need to worry about him getting stuck 20 | EntFire( "tank_early_timer_2", "Kill", 0 ); 21 | 22 | // Kill the timer that keeps running this script 23 | EntFire( "tank_early_timer_1", "Disable", 0 ); 24 | } 25 | } 26 | } 27 | 28 | TeleTank(); 29 | -------------------------------------------------------------------------------- /cfg/lgofnoc/lgofnoc_once.cfg: -------------------------------------------------------------------------------- 1 | // Lgofnoc Rate Settings 2 | // Custom netcode settings for configs that utilize this file 3 | // Make changes here to accommodate higher tickrates 4 | // Default 30 Tick 5 | lgofnoc_addcvar sv_minrate 30000 6 | lgofnoc_addcvar sv_maxrate 30000 7 | lgofnoc_addcvar sv_minupdaterate 30 8 | lgofnoc_addcvar sv_maxupdaterate 101 9 | lgofnoc_addcvar sv_mincmdrate 30 10 | lgofnoc_addcvar sv_maxcmdrate 101 11 | lgofnoc_addcvar sv_client_min_interp_ratio 0 12 | lgofnoc_addcvar sv_client_max_interp_ratio 2 13 | lgofnoc_addcvar nb_update_frequency 0 14 | 15 | // [lerpmonitor.smx] 16 | lgofnoc_addcvar sm_allowed_lerp_changes 5 17 | lgofnoc_addcvar sm_lerp_change_spec 1 18 | lgofnoc_addcvar sm_readyup_lerp_changes 1 19 | lgofnoc_addcvar sm_min_lerp 0.000 20 | lgofnoc_addcvar sm_max_lerp 0.100 21 | 22 | // [client_settings.smx] <0 or nothing to spec, 1 to kick, 2 to warn> 23 | confogl_trackclientcvar mat_hdr_level 1 2.0 0 0.0 24 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/l4d2_stadium5_stadium.cfg: -------------------------------------------------------------------------------- 1 | ; ======================================================== 2 | ; =================== Suicide Blitz 5 ================ 3 | ; ======================================================== 4 | 5 | filter: 6 | ;---- Remove all the grenade launcher gimmick stuff. 7 | { 8 | "hammerid" "1455556" 9 | } 10 | { 11 | "hammerid" "1455634" 12 | } 13 | { 14 | "hammerid" "1455636" 15 | } 16 | { 17 | "hammerid" "1455638" 18 | } 19 | ;---- Stubborn Kits 20 | { 21 | "classname" "weapon_first_aid_kit_spawn" 22 | } 23 | 24 | ;---- Don't warn about the Gimmick. 25 | modify: 26 | { 27 | match: 28 | { 29 | "targetname" "warn survivors_trigger" 30 | } 31 | delete: 32 | { 33 | "OnTrigger" "ldq_launcherHowAngry01" 34 | } 35 | } 36 | 37 | ;---- Activate VScript (Horde comes from the front) 38 | modify: 39 | { 40 | match: 41 | { 42 | "targetname" "end_btn" 43 | } 44 | insert: 45 | { 46 | "OnPressed" "directorBeginScriptl4d2_stadium5_stadium_promod0-1" 47 | } 48 | } -------------------------------------------------------------------------------- /scripts/vscripts/l4d_dbd2dc_new_dawn_tank_helper_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to convert Dead Before Dawn: DC's finale to a gauntlet. 2 | // This script ensures the tank spawns in the same place for both teams. 3 | // Refer to the corresponding stripper file. 4 | 5 | tanks <-{ 6 | tank1 = "models/infected/hulk.mdl", 7 | tank2 = "models/infected/hulk_dlc3.mdl" 8 | } 9 | 10 | function TeleTank() 11 | { 12 | foreach (t, m in tanks) 13 | { 14 | tank <- Entities.FindByModel(null, m); 15 | if (tank) 16 | { 17 | pos <- tank.GetOrigin(); 18 | 19 | // Coordinates to where we want to teleport the tank 20 | // "-1014.411316 2127.294922 -416.949554" 21 | pos.x = -1014.411316; 22 | pos.y = 2127.294922; 23 | pos.z = -416.949554; 24 | tank.SetOrigin(pos); 25 | 26 | // Kill the timer that keeps running this script 27 | EntFire( "tank_spawned_timer", "Disable", 0 ); 28 | 29 | // Start the timer that monitors the tank music 30 | EntFire( "tank_music_timer", "Enable", 0 ); 31 | } 32 | } 33 | } 34 | 35 | TeleTank(); -------------------------------------------------------------------------------- /scripts/vscripts/hf04_escape_tank_helper_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to ensure Haunted Forest finale tank spawn is consistent between teams 2 | // Refer to the corresponding stripper file. 3 | 4 | tanks <-{ 5 | tank1 = "models/infected/hulk.mdl", 6 | tank2 = "models/infected/hulk_dlc3.mdl" 7 | } 8 | 9 | function TeleTank() 10 | { 11 | foreach (t, m in tanks) 12 | { 13 | tank <- Entities.FindByModel(null, m); 14 | if (tank) 15 | { 16 | pos <- tank.GetOrigin(); 17 | 18 | // Coordinates to where we want to teleport the tank 19 | // "-217.643219 2641.622803 -801.968750" 20 | pos.x = -217.643219; 21 | pos.y = 2641.622803; 22 | pos.z = -801.968750; 23 | tank.SetOrigin(pos); 24 | 25 | // Kill the timer that keeps running this script 26 | EntFire( "tank_spawned_timer", "Disable", 0 ); 27 | 28 | // Start the timer that monitors whether the tank is in play or not 29 | // and resets the commonlimit once the tank dies 30 | EntFire( "tank_spawned_timer_2", "Enable", 0 ); 31 | } 32 | } 33 | } 34 | 35 | TeleTank(); -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/cwm1_intro.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =================== Carried Off 1 =================== 3 | ; ===================================================== 4 | 5 | ; Box to block fenced in area behind trailer 6 | add: 7 | { 8 | "solid" "6" 9 | "origin" "2108 1751 112" 10 | "angles" "0 70 0" 11 | "model" "models/props_unique/spawn_apartment/boxes_rooftop.mdl" 12 | "classname" "prop_dynamic" 13 | } 14 | 15 | ; Van to help survivors get out of fenced in area behind trailer 16 | add: 17 | { 18 | "solid" "6" 19 | "origin" "2863 1542 111" 20 | "angles" "0 270 0" 21 | "model" "models/props_vehicles/van_interior.mdl" 22 | "classname" "prop_dynamic" 23 | } 24 | { 25 | "solid" "6" 26 | "origin" "2799 1561 198" 27 | "angles" "0 -52 0" 28 | "model" "models/props/cs_militia/boxes_garage_lower.mdl" 29 | "classname" "prop_dynamic" 30 | } 31 | { 32 | "solid" "6" 33 | "origin" "2700 1507 111" 34 | "angles" "0 0 0" 35 | "model" "models/props/cs_militia/boxes_garage_lower.mdl" 36 | "classname" "prop_dynamic" 37 | } 38 | -------------------------------------------------------------------------------- /addons/sourcemod/configs/matchmodes.txt: -------------------------------------------------------------------------------- 1 | "MatchModes" 2 | { 3 | 4 | // You can delete any section. Or add your own, for example: 5 | // 6 | // "Scavenge" 7 | // { 8 | // "scavogl" //config's directory 9 | // { 10 | // "name" "Scavogl" //that appears in the menu 11 | // } 12 | // //.... (list of other configs) 13 | // } 14 | 15 | "4v4" 16 | { 17 | "promod" 18 | { 19 | "name" "Pro Mod" 20 | } 21 | "promodhr" 22 | { 23 | "name" "Pro Mod HR" 24 | } 25 | "parity" 26 | { 27 | "name" "Parity" 28 | } 29 | "retro" 30 | { 31 | "name" "Retro" 32 | } 33 | "hunters" 34 | { 35 | "name" "Hunters" 36 | } 37 | } 38 | "3v3" 39 | { 40 | "pm3v3" 41 | { 42 | "name" "3v3 Pro Mod" 43 | } 44 | "hunters3v3" 45 | { 46 | "name" "3v3 Hunters" 47 | } 48 | } 49 | "2v2" 50 | { 51 | "pm2v2" 52 | { 53 | "name" "2v2 Pro Mod" 54 | } 55 | "hunters2v2" 56 | { 57 | "name" "2v2 Hunters" 58 | } 59 | } 60 | "1v1" 61 | { 62 | "pm1v1" 63 | { 64 | "name" "1v1 Pro Mod" 65 | } 66 | "hunters1v1" 67 | { 68 | "name" "1v1 Hunters" 69 | } 70 | "deadman" 71 | { 72 | "name" "1v1 Deadman" 73 | } 74 | } 75 | 76 | } 77 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/cdta_02road.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =================== Detour Ahead 2 ============== 3 | ; ===================================================== 4 | 5 | ; Prevent map from triggering natural hordes 6 | modify: 7 | { 8 | match: 9 | { 10 | "targetname" "safespottimer" 11 | } 12 | delete: 13 | { 14 | "OnTimer" "directorBeginScriptcdta02_passive01" 15 | } 16 | insert: 17 | { 18 | "OnTimer" "directorBeginScriptcdta02_passive_promod01" 19 | } 20 | } 21 | { 22 | match: 23 | { 24 | "origin" "-3283.5 -348.5 -16" 25 | "filtername" "triggerfilter" 26 | "classname" "trigger_once" 27 | } 28 | delete: 29 | { 30 | "OnTrigger" "directorBeginScriptcdta02_passive0-1" 31 | } 32 | insert: 33 | { 34 | "OnTrigger" "directorBeginScriptcdta02_passive_promod0-1" 35 | } 36 | } 37 | { 38 | match: 39 | { 40 | "targetname" "gbutton" 41 | } 42 | delete: 43 | { 44 | ; Yes the script is typed in wrong - broken map 45 | "OnPressed" "directorBeginScriptdta02_passive5-1" 46 | } 47 | insert: 48 | { 49 | "OnPressed" "directorBeginScriptcdta02_passive_promod5-1" 50 | } 51 | } 52 | 53 | 54 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/l4d2_vs_stadium2_riverwalk.cfg: -------------------------------------------------------------------------------- 1 | ; ======================================================== 2 | ; =================== Suicide Blitz 2 ================ 3 | ; ======================================================== 4 | 5 | add: 6 | ;---- Add Exploding Barrel at Event 7 | { 8 | "origin" "3634 6263 -219" 9 | "targetname" "event_gascan" 10 | "spawnflags" "268" 11 | "skin" "0" 12 | "rendercolor" "255 255 255" 13 | "renderamt" "255" 14 | "physdamagescale" "0.1" 15 | "model" "models/props_industrial/barrel_fuel.mdl" 16 | "inertiaScale" "1.0" 17 | "glowcolor" "255 255 255" 18 | "fadescale" "1" 19 | "fademindist" "-1" 20 | "damagefilter" "filter_invunerable" 21 | "BreakableType" "0" 22 | "angles" "0 0 0" 23 | "classname" "prop_fuel_barrel" 24 | "hammerid" "4495529" 25 | "OnBreak" "canbreak_relayTrigger01" 26 | } 27 | modify: 28 | ;---- Kill VScript, add our own. 29 | { 30 | match: 31 | { 32 | "hammerid" "3443867" 33 | } 34 | delete: 35 | { 36 | "OnMapSpawn" "directorBeginScriptmap2_ambient0-1" 37 | } 38 | insert: 39 | { 40 | "OnMapSpawn" "directorBeginScriptmap2_ambient_promod0-1" 41 | } 42 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/cwm3_drain.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =================== Carried Off 3 =================== 3 | ; ===================================================== 4 | 5 | ; Ammo pickup half way through event 6 | add: 7 | { 8 | "solid" "6" 9 | "origin" "564 -255 112" 10 | "spawnflags" "2" 11 | "skin" "0" 12 | "model" "models/props/terror/ammo_stack.mdl" 13 | "count" "5" 14 | "body" "0" 15 | "angles" "0 315 0" 16 | "classname" "weapon_ammo_spawn" 17 | } 18 | 19 | ; Block some of death charge area upon entering the bridge event area 20 | { 21 | "solid" "6" 22 | "origin" "-332 335 112" 23 | "angles" "0 90 0" 24 | "model" "models/props_mill/mill_railing_128.mdl" 25 | "classname" "prop_dynamic" 26 | } 27 | { 28 | "solid" "6" 29 | "origin" "-332 202 112" 30 | "angles" "0 90 0" 31 | "model" "models/props_mill/mill_railing_128.mdl" 32 | "classname" "prop_dynamic" 33 | } 34 | 35 | ; Extend fencing in sewers outside of safe room to prevent people from getting punched over 36 | { 37 | "solid" "6" 38 | "origin" "-1280 -2240 -388" 39 | "angles" "0 270 0" 40 | "model" "models/props_urban/fence001_256.mdl" 41 | "classname" "prop_dynamic" 42 | } 43 | -------------------------------------------------------------------------------- /scripts/vscripts/cdta_05finalroad_onslaught_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to fix Detour Ahead's Gauntlet Finale. 2 | // Values were decided based on values in cdta_05finalroadversus.nut + 3 | // tweaks to make it more balanced for competition and even for both teams. 4 | function StartGauntlet() 5 | { 6 | DirectorOptions <- 7 | { 8 | ProhibitBosses = true 9 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 10 | MobMaxPending = 20 11 | MobMinSize = 20 12 | MobMaxSize = 20 13 | SustainPeakMinTime = 1 14 | SustainPeakMaxTime = 3 15 | 16 | PanicForever = true 17 | PausePanicWhenRelaxing = false 18 | 19 | IntensityRelaxThreshold = 0.90 20 | RelaxMinInterval = 3 21 | RelaxMaxInterval = 3 22 | RelaxMaxFlowTravel = 200 23 | 24 | LockTempo = 0 25 | SpecialRespawnInterval = 20 26 | PreTankMobMax = 20 27 | ZombieSpawnRange = 3000 28 | ZombieSpawnInFog = true 29 | 30 | MobSpawnSize = 20 31 | CommonLimit = 20 32 | 33 | // length of bridge to test progress against. 34 | BridgeSpan = 10000 35 | 36 | MobSpawnMinTime = 3 37 | MobSpawnMaxTime = 3 38 | 39 | MobSpawnSizeMin = 20 40 | MobSpawnSizeMax = 20 41 | } 42 | 43 | Director.ResetMobTimer(); 44 | } 45 | 46 | StartGauntlet(); 47 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/global_filters.cfg: -------------------------------------------------------------------------------- 1 | ;remove infected clips 2 | filter: 3 | { 4 | "classname" "func_playerinfected_clip" 5 | } 6 | ;replace ghost hurts with hurts 7 | modify: 8 | { 9 | match: 10 | { 11 | "classname" "trigger_hurt_ghost" 12 | } 13 | replace: 14 | { 15 | "classname" "trigger_hurt" 16 | } 17 | } 18 | ; Stop Intro Freeze, credit to Sir 19 | filter: 20 | { 21 | "targetname" "relay_intro_setup" 22 | } 23 | modify: 24 | { 25 | match: 26 | { 27 | "targetname" "relay_intro_start" 28 | } 29 | insert: 30 | { 31 | "OnTrigger" "camera_introDisable0-1" 32 | "OnTrigger" "relay_intro_finishedTrigger1-1" 33 | } 34 | } 35 | ; ===================================================== 36 | ; ================== PROMOD CONES =================== 37 | ; ===================================================== 38 | modify: 39 | { 40 | match: 41 | { 42 | "spawnflags" "256" 43 | "model" "models/props_fortifications/orange_cone001_reference.mdl" 44 | } 45 | replace: 46 | { 47 | "spawnflags" "260" 48 | } 49 | } 50 | ; ===================================================== 51 | -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/items_cocaine.cfg: -------------------------------------------------------------------------------- 1 | //Cool stuff! 2 | uim_limit weapon_chainsaw 0 0 0 3 | uim_limit weapon_grenade_launcher 0 0 0 4 | uim_limit weapon_rifle_m60 0 0 0 5 | uim_limit weapon_upgradepack_explosive 0 0 0 6 | uim_limit weapon_upgradepack_incendiary 0 0 0 7 | uim_limit weapon_defibrillator 0 0 0 8 | uim_limit weapon_first_aid_kit 0 0 0 9 | uim_limit weapon_pain_pills 0 0 0 10 | uim_limit weapon_adrenaline 10 10 10 11 | uim_limit weapon_molotov 0 0 0 12 | uim_limit weapon_pipe_bomb 0 0 0 13 | uim_limit weapon_vomitjar 0 0 0 14 | uim_limit prop_fuel_barrel 0 0 0 15 | uim_limit lasersights 0 0 0 16 | uim_limit upgrade_laser_sight 0 0 0 17 | uim_limit gascan 0 0 0 18 | uim_limit propanetank 0 0 0 19 | uim_limit oxygentank 0 0 0 20 | uim_limit fireworkscrate 0 0 0 21 | 22 | //Load base specifiers and keyvalues to be dispatched for entity spawns 23 | //note that currently this must be done AFTER the limits are set, otherwise things will break 24 | exec lgofnoc/shared/items_base.cfg 25 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/l4d_yama_3.cfg: -------------------------------------------------------------------------------- 1 | ; ====================================================== 2 | ; ===================== Yama 3 ======================= 3 | ; ====================================================== 4 | 5 | add: 6 | ;----- Versus Relay 7 | modify: 8 | { 9 | match: 10 | { 11 | "classname" "info_gamemode" 12 | } 13 | insert: 14 | { 15 | "OnVersusPostIO" "versus_relayTrigger0-1" 16 | } 17 | } 18 | add: 19 | { 20 | "origin" "5924 9036 1752" 21 | "targetname" "versus_relay" 22 | "spawnflags" "1" 23 | "classname" "logic_relay" 24 | } 25 | 26 | ;----- Survivor Versus Spawn positions 27 | { 28 | "origin" "506 -6492 -279" 29 | "targetname" "bill_position" 30 | "GameMode" "versus" 31 | "angles" "0 165 0" 32 | "classname" "info_survivor_position" 33 | } 34 | { 35 | "origin" "504 -6452 -279" 36 | "targetname" "zoey_position" 37 | "GameMode" "versus" 38 | "angles" "0 190 0" 39 | "classname" "info_survivor_position" 40 | } 41 | { 42 | "origin" "294 -6528 -279" 43 | "targetname" "francis_position" 44 | "GameMode" "versus" 45 | "angles" "0 55 0" 46 | "classname" "info_survivor_position" 47 | } 48 | { 49 | "origin" "286 -6474 -279" 50 | "targetname" "louis_position" 51 | "GameMode" "versus" 52 | "angles" "0 15.5 0" 53 | "classname" "info_survivor_position" 54 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c11m5_runway.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================= PROMOD FINALE FIX ================= 3 | ; ===================================================== 4 | filter: 5 | ; --- filter out restricted junk 6 | { 7 | "classname" "weapon_item_spawn" 8 | } 9 | modify: 10 | ; --- fix vanishing finale pills in proper placements 11 | { 12 | match: 13 | { 14 | "hammerid" "4376594" 15 | } 16 | replace: 17 | { 18 | "spawnflags" "2" 19 | } 20 | } 21 | { 22 | match: 23 | { 24 | "hammerid" "4376596" 25 | } 26 | replace: 27 | { 28 | "spawnflags" "2" 29 | } 30 | } 31 | { 32 | match: 33 | { 34 | "hammerid" "4376652" 35 | } 36 | replace: 37 | { 38 | "spawnflags" "2" 39 | } 40 | } 41 | { 42 | match: 43 | { 44 | "hammerid" "4376676" 45 | } 46 | replace: 47 | { 48 | "spawnflags" "2" 49 | } 50 | } 51 | ; ===================================================== 52 | 53 | 54 | ; ===================================================== 55 | ; ================ EXPLOITS BLOCKED ================= 56 | ; ===================================================== 57 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 58 | ; none 59 | ; ===================================================== -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/C12m3_bridge.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================ EXPLOITS BLOCKED ================= 3 | ; ===================================================== 4 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 5 | add: 6 | ; --- jump to vantage point halfway through first outside area 7 | { 8 | ; invisible block above ledge 9 | "origin" "2458 -9744 -20" 10 | "angles" "0 -45 0" 11 | "mins" "-64 -64 0" 12 | "maxs" "0 64 150" 13 | "boxmins" "-64 -64 0" 14 | "boxmaxs" "0 64 150" 15 | "initialstate" "1" 16 | "BlockType" "1" 17 | "classname" "env_physics_blocker" 18 | } 19 | ; --- block climbing event bridge to get off map 20 | { 21 | ; invisible block along bridge side section 22 | "targetname" "bridge_exploit_blocker" 23 | "origin" "5876 -12836 916" 24 | "mins" "-20 -172 -828" 25 | "maxs" "20 172 828" 26 | "initialstate" "1" 27 | "BlockType" "1" 28 | "classname" "env_physics_blocker" 29 | } 30 | ; 31 | modify: 32 | { 33 | match: 34 | { 35 | "targetname" "train_engine_button" 36 | } 37 | insert: 38 | { 39 | "OnPressed" "bridge_exploit_blockerKill0-1" 40 | } 41 | } 42 | ; ===================================================== 43 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/hf03_themansion.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================= Haunted Forest 3 ================== 3 | ; ===================================================== 4 | 5 | ; Force both alt paths to be available 6 | filter: 7 | { 8 | "classname" "logic_case" 9 | "targetname" "case_altpaths" 10 | } 11 | { 12 | "targetname" "brush_altpath1" 13 | } 14 | { 15 | "targetname" "prop_altpath1" 16 | } 17 | { 18 | "targetname" "brush_altpath2" 19 | } 20 | { 21 | "targetname" "prop_altpath2" 22 | } 23 | { 24 | "targetname" "navblocker_path2" 25 | } 26 | { 27 | "targetname" "navblocker_path1" 28 | } 29 | { 30 | "targetname" "door_altpath" 31 | } 32 | 33 | ; Remove fake tank sounds 34 | filter: 35 | { 36 | "targetname" "relay_faketank" 37 | } 38 | 39 | ;New Barricade to force survivors down one of the paths 40 | add: 41 | { 42 | "solid" "6" 43 | "origin" "-3176 -760 267" 44 | "angles" "0 0 0" 45 | "model" "models/props_unique/wooden_barricade.mdl" 46 | "classname" "prop_dynamic" 47 | } 48 | { 49 | "solid" "6" 50 | "origin" "-3234 -832 267" 51 | "angles" "0 0 0" 52 | "model" "models/props/cs_militia/crate_extralargemill.mdl" 53 | "classname" "prop_dynamic" 54 | } 55 | 56 | ; Remove pills from end safe room 57 | filter: 58 | { 59 | "origin" "-3067.74 897.31 448" 60 | "classname" "weapon_item_spawn" 61 | } 62 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/damitdc2.cfg: -------------------------------------------------------------------------------- 1 | ; ======================================================== 2 | ; =================== Dam It 2 ======================= 3 | ; ======================================================== 4 | 5 | ; Disable the Dam event tank because 2 tanks (and one with horde) is OP 6 | modify: 7 | { 8 | match: 9 | { 10 | "targetname" "tank1" 11 | } 12 | insert: 13 | { 14 | "OnTrigger" "zombie_tankSpawnZombie5-1" 15 | } 16 | delete: 17 | { 18 | "OnTrigger" "tank2PickRandom5-1" 19 | } 20 | } 21 | 22 | ; We mimic the way the event already works by spawning a single tank in a safe location 23 | ; when the event is triggered 24 | add: 25 | { 26 | "targetname" "zombie_tank" 27 | "origin" "-2583.721191 1572.600098 -481.968750" 28 | "population" "tank" 29 | "offer_tank" "1" 30 | "angles" "0 0 0" 31 | "classname" "info_zombie_spawn" 32 | } 33 | 34 | ; Make it so the tank spawns the same amount of time after the event is started 35 | modify: 36 | { 37 | match: 38 | { 39 | "targetname" "tank_case" 40 | } 41 | delete: 42 | { 43 | ; Delete all except case 7 44 | "OnCase04" "tank1Trigger15-1" 45 | "OnCase02" "tank1Trigger10-1" 46 | "OnCase05" "tank1Trigger20-1" 47 | ;"OnCase07" "tank1Trigger5-1" 48 | "OnCase03" "tank1Trigger15-1" 49 | "OnCase06" "tank1Trigger10-1" 50 | "OnCase01" "tank1Trigger20-1" 51 | } 52 | } -------------------------------------------------------------------------------- /addons/sourcemod/scripting/damage_bonus.inc: -------------------------------------------------------------------------------- 1 | #if defined _damage_bonus_included_ 2 | #endinput 3 | #endif 4 | #define _damage_bonus_included_ 5 | 6 | /** 7 | * Gives the current bonus for the current round assuming no more damage taken. 8 | * 9 | * @return The current bonus 10 | */ 11 | native DamageBonus_GetCurrentBonus(); 12 | 13 | /** 14 | * Gets the real bonus for the specific round. This only reports for completed 15 | * rounds. Value otherwise should be 0. 16 | * 17 | * @param roundNumber The round to get the bonus from (0 or 1) 18 | */ 19 | native DamageBonus_GetRoundBonus(roundNumber); 20 | 21 | /** 22 | * Gets the real damage for the specific round. This includes incomplete 23 | * rounds. 24 | * 25 | * @param roundNumber The round to get the bonus from (0 or 1) 26 | */ 27 | native DamageBonus_GetRoundDamage(roundNumber); 28 | 29 | 30 | public SharedPlugin:__pl_damage_bonus = 31 | { 32 | name = "l4d2_damagebonus", 33 | file = "damage_bonus.smx", 34 | #if defined REQUIRE_PLUGIN 35 | required = 1, 36 | #else 37 | required = 0, 38 | #endif 39 | }; 40 | 41 | public __pl_damage_bonus_SetNTVOptional() 42 | { 43 | MarkNativeAsOptional("DamageBonus_GetCurrentBonus"); 44 | MarkNativeAsOptional("DamageBonus_GetRoundBonus"); 45 | MarkNativeAsOptional("DamageBonus_GetRoundDamage"); 46 | } 47 | 48 | // vim: ft=sourcepawn et sw=8 49 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c6m2_bedlam.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================ EXPLOITS BLOCKED ================= 3 | ; ===================================================== 4 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 5 | add: 6 | ; --- block survivor hang-climb to the top of roofs before plank 7 | { 8 | ; invisible block above roof 9 | "origin" "224 2824 440" 10 | "mins" "-192 -56 -104" 11 | "maxs" "192 56 104" 12 | "initialstate" "1" 13 | "BlockType" "1" 14 | "classname" "env_physics_blocker" 15 | } 16 | ; --- block grief jumping on opening gates to stop them from opening 17 | { 18 | ; invisible block above switch (first) 19 | "origin" "2535 5641 -979" 20 | "mins" "-7 -5 -13" 21 | "maxs" "7 5 13" 22 | "initialstate" "1" 23 | "BlockType" "1" 24 | "classname" "env_physics_blocker" 25 | } 26 | { 27 | ; invisible block above switch (second) 28 | "origin" "5180 5402 -967" 29 | "mins" "-2 -8 -47" 30 | "maxs" "2 8 47" 31 | "initialstate" "1" 32 | "BlockType" "1" 33 | "classname" "env_physics_blocker" 34 | } 35 | { 36 | ; invisible block along railing 37 | "origin" "5183 5616 -1004" 38 | "mins" "-1 -128 -60" 39 | "maxs" "1 128 60" 40 | "initialstate" "1" 41 | "BlockType" "1" 42 | "classname" "env_physics_blocker" 43 | } 44 | ; ===================================================== -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/items_promod.cfg: -------------------------------------------------------------------------------- 1 | //Cool stuff! 2 | uim_limit weapon_chainsaw 0 0 0 3 | uim_limit weapon_grenade_launcher 0 0 0 4 | uim_limit weapon_rifle_m60 0 0 0 5 | uim_limit weapon_upgradepack_explosive 0 0 0 6 | uim_limit weapon_upgradepack_incendiary 0 0 0 7 | uim_limit weapon_defibrillator 0 0 0 8 | uim_limit weapon_first_aid_kit 0 0 0 9 | uim_limit weapon_pain_pills 0 5 0 10 | uim_limit weapon_adrenaline 0 0 0 11 | uim_limit weapon_molotov 0 0 0 12 | uim_limit weapon_pipe_bomb 0 0 0 13 | uim_limit weapon_vomitjar 0 0 0 14 | uim_limit prop_fuel_barrel 0 0 0 15 | uim_limit lasersights 0 0 0 16 | uim_limit upgrade_laser_sight 0 0 0 17 | uim_limit gascan 0 0 0 18 | uim_limit propanetank 0 0 0 19 | uim_limit oxygentank 0 0 0 20 | uim_limit fireworkscrate 0 0 0 21 | 22 | //s_, m_, or e_ are automatically prefixed to the name 23 | uim_limit_createcvar weapon_pain_pills @ pills @ 24 | 25 | lgofnoc_addcvar_scaled m_pills 1 2 3 5 //is cvar limiting currently broken? 26 | 27 | //Load base specifiers and keyvalues to be dispatched for entity spawns 28 | //note that currently this must be done AFTER the limits are set, otherwise things will break 29 | exec lgofnoc/shared/items_base.cfg 30 | 31 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/l4d2_stadium1_apartment.cfg: -------------------------------------------------------------------------------- 1 | ; ======================================================== 2 | ; =================== Suicide Blitz 1 ================ 3 | ; ======================================================== 4 | 5 | ;---- Make random Tier 1 spawn a Shotgun and place an Uzi near it. 6 | modify: 7 | { 8 | match: 9 | { 10 | "targetname" "vs_tier1" 11 | } 12 | replace: 13 | { 14 | "weapon_selection" "tier1_shotgun" 15 | } 16 | } 17 | add: 18 | { 19 | "origin" "-418 933 -6" 20 | "weapon_selection" "any_smg" 21 | "spawn_without_director" "1" 22 | "solid" "6" 23 | "count" "5" 24 | "angles" "0 161 -90" 25 | "classname" "weapon_spawn" 26 | } 27 | 28 | ;---- Fix Randoming Pathing/Weapon Spawns. (Forced to take the longer route) 29 | filter: 30 | { 31 | ;Path Picker 2. 32 | "hammerid" "2411828" 33 | } 34 | { 35 | ;Path Picker 1. 36 | "hammerid" "2411730" 37 | } 38 | ;Query. 39 | "hammerid" "1951907" 40 | } 41 | modify: 42 | { 43 | match: 44 | { 45 | "hammerid" "66462" 46 | } 47 | delete: 48 | { 49 | "OnPressed" "path_pickerPickRandom0-1" 50 | } 51 | } 52 | ;----- Prevent Horde Settings, Add our own VScript 53 | { 54 | match: 55 | { 56 | "targetname" "elevator stop relay" 57 | } 58 | delete: 59 | { 60 | "OnTrigger" "directorBeginScriptsb_map1_default0-1" 61 | } 62 | insert: 63 | { 64 | "OnTrigger" "directorBeginScriptsb_map1_default_promod0-1" 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/include/l4d2_saferoom_detect.inc: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | 22 | /* 23 | Check if entity is in a saferoom 24 | returns bool (errors/incorrect data returns false) 25 | */ 26 | native SAFEDETECT_IsEntityInStartSaferoom(entity); 27 | native SAFEDETECT_IsEntityInEndSaferoom(entity); 28 | 29 | /* 30 | Check if player (client) is in a saferoom 31 | returns bool (errors/incorrect data returns false) 32 | */ 33 | native SAFEDETECT_IsPlayerInStartSaferoom(client); 34 | native SAFEDETECT_IsPlayerInEndSaferoom(client); -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/l4d2_bts02_station.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================== Back To School 2 ================= 3 | ; ===================================================== 4 | 5 | ; Force both the truck event and the gas->car event 6 | modify: 7 | { 8 | match: 9 | { 10 | "targetname" "event_case" 11 | } 12 | delete: 13 | { 14 | "OnCase01" "event1_killTrigger0-1" 15 | "OnCase02" "event2_killTrigger0-1" 16 | "OnCase02" "event1_killKill0-1" 17 | "OnCase01" "event2_killKill0-1" 18 | "OnCase01" "Farm02_path08Kill0-1" 19 | "OnCase02" "Smalltown01_path05Kill0-1" 20 | } 21 | } 22 | 23 | ; Add prop to prevent tanks from pushing pickup truck into the cave by the safe room 24 | ; Commented out and enforced tank to spawn after 40% in mapinfo.txt instead. 25 | ;add: 26 | ;{ 27 | ; "solid" "6" 28 | ; "origin" "4039 -3032 2685" 29 | ; "angles" "0 0 0" 30 | ; "model" "models/props_wasteland/rock_moss02.mdl" 31 | ; "classname" "prop_dynamic" 32 | ;} 33 | 34 | ; Always allow tank spawns 35 | modify: 36 | { 37 | match: 38 | { 39 | "targetname" "logic1" 40 | } 41 | delete: 42 | { 43 | "OnTrigger" "directorBeginScriptbts02_station.nut67.011" 44 | } 45 | } 46 | modify: 47 | { 48 | match: 49 | { 50 | "classname" "prop_door_rotating_checkpoint" 51 | "origin" "4727.1 -2408.25 2773" 52 | } 53 | delete: 54 | { 55 | "OnOpen" "directorBeginScriptbts02_station.nut51" 56 | } 57 | } 58 | 59 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/l4d2_bts03_town.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================== Back To School 3 ================= 3 | ; ===================================================== 4 | 5 | ; Add prop to allow survivors to climb back over fence if they 6 | ; try to skip the event (which they can't actually do) 7 | add: 8 | { 9 | "origin" "-2456 889 8" 10 | "classname" "prop_dynamic" 11 | "angles" "0 -80 0" 12 | "solid" "6" 13 | "model" "models/props_vehicles/van_interior.mdl" 14 | } 15 | 16 | ; Disable the newspaper-prison event because its stupid and this map is hard 17 | modify: 18 | { 19 | match: 20 | { 21 | "targetname" "way_case" 22 | } 23 | delete: 24 | { 25 | "OnCase02" "way_caseKill0-1" 26 | } 27 | } 28 | 29 | ; Disable stupid wooden panel building alarm event in beginning 30 | ; (which is replaced with cool lookin suicide guy in the beginning) 31 | modify: 32 | { 33 | match: 34 | { 35 | "targetname" "minievent_case" 36 | } 37 | delete: 38 | { 39 | "OnCase03" "minievent_triggerKill0-1" 40 | } 41 | } 42 | 43 | ; Always allow tank spawns 44 | modify: 45 | { 46 | match: 47 | { 48 | "targetname" "b_alarm_off" 49 | } 50 | delete: 51 | { 52 | "OnPressed" "directorBeginScriptbts03_town.nut0.01-1" 53 | } 54 | } 55 | modify: 56 | { 57 | match: 58 | { 59 | "classname" "prop_door_rotating_checkpoint" 60 | "origin" "2607.65 -2050 52.52" 61 | } 62 | delete: 63 | { 64 | "OnOpen" "directorBeginScriptbts03_town.nut51" 65 | } 66 | } 67 | 68 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/l4d_ihm02_manor.cfg: -------------------------------------------------------------------------------- 1 | ; ====================================================== 2 | ; =============== I Hate Mountains 2 ================= 3 | ; ====================================================== 4 | 5 | ;---- Remove Template for Tier 2 Forced Spawns 6 | filter: 7 | { 8 | "targetname" "weapons_template" 9 | } 10 | 11 | ;---- Remove Miniguns 12 | { 13 | "classname" "prop_minigun_l4d1" 14 | } 15 | 16 | ; We force an early tank spawn because the nav is all over the place in this map, 17 | ; so we monitor for when the tank spawns so we can teleport him to a safe distance from the survivors. 18 | add: 19 | { 20 | "targetname" "tank_spawned_timer" 21 | "origin" "-1304.231079 -702.810608 1067.286316" 22 | "UseRandomTime" "0" 23 | "UpperRandomBound" "1" 24 | "StartDisabled" "0" 25 | "spawnflags" "0" 26 | "LowerRandomBound" "1" 27 | "classname" "logic_timer" 28 | "RefireTime" "1" 29 | 30 | "OnTimer" "directorBeginScriptl4d_ihm02_manor_tank_helper_promod0-1" 31 | } 32 | 33 | ; Disable second tank. Tank is in same area. 34 | modify: 35 | { 36 | match: 37 | { 38 | "targetname" "helicopter_horde_trigger" 39 | } 40 | delete: 41 | { 42 | "OnTrigger" "tank_versusSpawnZombie01" 43 | } 44 | } 45 | 46 | 47 | ; Disable infinite horde 48 | modify: 49 | { 50 | match: 51 | { 52 | "targetname" "horde_coming" 53 | } 54 | delete: 55 | { 56 | "OnTrigger" "helicopter_horde_timerEnable0-1" 57 | } 58 | } 59 | { 60 | match: 61 | { 62 | "targetname" "helicopter_crash_relay5" 63 | } 64 | insert: 65 | { 66 | "OnTrigger" "DirectorEndScript0-1" 67 | "OnTrigger" "DirectorForcePanicEvent1-1" 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c10m5_houseboat.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================= PROMOD FINALE FIX ================= 3 | ; ===================================================== 4 | filter: 5 | ; --- filter out restricted junk 6 | { 7 | "classname" "weapon_item_spawn" 8 | } 9 | modify: 10 | ; --- fix vanishing finale pills in proper placements 11 | { 12 | match: 13 | { 14 | "hammerid" "2242167" 15 | } 16 | replace: 17 | { 18 | "spawnflags" "2" 19 | } 20 | } 21 | { 22 | match: 23 | { 24 | "hammerid" "2242169" 25 | } 26 | replace: 27 | { 28 | "spawnflags" "2" 29 | } 30 | } 31 | { 32 | match: 33 | { 34 | "hammerid" "2242171" 35 | } 36 | replace: 37 | { 38 | "spawnflags" "2" 39 | } 40 | } 41 | { 42 | match: 43 | { 44 | "hammerid" "2242173" 45 | } 46 | replace: 47 | { 48 | "spawnflags" "2" 49 | } 50 | } 51 | ; ===================================================== 52 | 53 | 54 | ; ===================================================== 55 | ; ================ EXPLOITS BLOCKED ================= 56 | ; ===================================================== 57 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 58 | add: 59 | ; --- block climbing into squished section outside saferoom 60 | { 61 | ; invisible block inside narrow section 62 | "origin" "2244 4076 100" 63 | "mins" "-60 -84 -28" 64 | "maxs" "60 84 28" 65 | "initialstate" "1" 66 | "BlockType" "1" 67 | "classname" "env_physics_blocker" 68 | } 69 | ; ===================================================== -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c9m2_lots.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================ EXPLOITS BLOCKED ================= 3 | ; ===================================================== 4 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 5 | add: 6 | ; --- block climbing in windows at finale using dumpsters and zombies 7 | { 8 | ; invisible block in windows by dumpster 9 | "origin" "6850 7040 268" 10 | "mins" "-2 -128 -44" 11 | "maxs" "2 128 44" 12 | "initialstate" "1" 13 | "BlockType" "1" 14 | "classname" "env_physics_blocker" 15 | } 16 | { 17 | ; invisible block in windows on opposite side 18 | "origin" "7328 6850 268" 19 | "mins" "-96 -2 -44" 20 | "maxs" "96 2 44" 21 | "initialstate" "1" 22 | "BlockType" "1" 23 | "classname" "env_physics_blocker" 24 | } 25 | ; --- block generator campspot (near door) 26 | { 27 | ; invisible block above generator 28 | "origin" "7475 6756 64" 29 | "angles" "0 -45 0" 30 | "mins" "-16 -16 0" 31 | "maxs" "16 16 248" 32 | "boxmins" "-16 -16 0" 33 | "boxmaxs" "16 16 248" 34 | "initialstate" "1" 35 | "BlockType" "1" 36 | "classname" "env_player_blocker" 37 | } 38 | ; --- block generator campspot (@button) 39 | { 40 | ; invisible block above generator 41 | "origin" "6834 5902 64" 42 | "angles" "0 45 0" 43 | "mins" "-16 -16 0" 44 | "maxs" "16 16 248" 45 | "boxmins" "-16 -16 0" 46 | "boxmaxs" "16 16 248" 47 | "initialstate" "1" 48 | "BlockType" "1" 49 | "classname" "env_player_blocker" 50 | } 51 | ; ===================================================== -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/damitdc4.cfg: -------------------------------------------------------------------------------- 1 | ; ======================================================== 2 | ; =================== Dam It 4 ======================= 3 | ; ======================================================== 4 | 5 | ; Fix distance scoring (until next release of map fixes it at least) 6 | filter: 7 | { 8 | "targetname" "radio_template" 9 | } 10 | modify: 11 | { 12 | match: 13 | { 14 | "classname" "trigger_finale" 15 | } 16 | replace: 17 | { 18 | "StartDisabled" "1" 19 | "VersusTravelCompletion" "0.2" 20 | } 21 | } 22 | { 23 | match: 24 | { 25 | "targetname" "radio_firstpress_ready_later" 26 | } 27 | delete: 28 | { 29 | "OnTrigger" "radio_templateForceSpawn0.5-1" 30 | } 31 | insert: 32 | { 33 | "OnTrigger" "radioEnable0.5-1" 34 | } 35 | } 36 | { 37 | match: 38 | { 39 | "targetname" "radio_firstpress_ready" 40 | } 41 | delete: 42 | { 43 | "OnTrigger" "radio_templateForceSpawn17.5-1" 44 | } 45 | insert: 46 | { 47 | "OnTrigger" "radioEnable17.5-1" 48 | } 49 | } 50 | 51 | ; Make ammo and weapon spawns consistent between teams 52 | modify: 53 | { 54 | match: 55 | { 56 | "targetname" "guns_case" 57 | } 58 | delete: 59 | { 60 | ; delete all except guns1 61 | ;"OnCase01" "guns1_templateForceSpawn0-1" 62 | "OnCase02" "guns2_templateForceSpawn0-1" 63 | "OnCase03" "guns3_templateForceSpawn0-1" 64 | "OnCase04" "guns4_templateForceSpawn0-1" 65 | } 66 | } 67 | { 68 | match: 69 | { 70 | "targetname" "ammo_case" 71 | } 72 | delete: 73 | { 74 | ; delete all except ammo3 75 | "OnCase01" "ammo1_templateForceSpawn0-1" 76 | "OnCase02" "ammo2_templateForceSpawn0-1" 77 | ;"OnCase03" "ammo3_templateForceSpawn0-1" 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c13m4_cutthroatcreek.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================= PROMOD FINALE FIX ================= 3 | ; ===================================================== 4 | modify: 5 | ; --- prevent ammo piles from being filtered out 6 | { 7 | match: 8 | { 9 | "hammerid" "2012267" 10 | } 11 | replace: 12 | { 13 | "classname" "weapon_ammo_spawn" 14 | } 15 | } 16 | { 17 | match: 18 | { 19 | "hammerid" "2010044" 20 | } 21 | replace: 22 | { 23 | "classname" "weapon_ammo_spawn" 24 | } 25 | } 26 | { 27 | match: 28 | { 29 | "hammerid" "2438432" 30 | } 31 | replace: 32 | { 33 | "classname" "weapon_ammo_spawn" 34 | } 35 | } 36 | { 37 | match: 38 | { 39 | "hammerid" "2469309" 40 | } 41 | replace: 42 | { 43 | "classname" "weapon_ammo_spawn" 44 | } 45 | } 46 | filter: 47 | ; --- filter out restricted junk 48 | { 49 | "classname" "weapon_item_spawn" 50 | } 51 | add: 52 | ; --- add 4 static pills in boat near tank spawn area 53 | { 54 | "classname" "weapon_first_aid_kit_spawn" 55 | "spawnflags" "2" 56 | "origin" "-1764 -1948 -266" 57 | "angles" "0 0 0" 58 | } 59 | { 60 | "classname" "weapon_first_aid_kit_spawn" 61 | "spawnflags" "2" 62 | "origin" "-1760 -1972 -268" 63 | "angles" "0 0 0" 64 | } 65 | { 66 | "classname" "weapon_first_aid_kit_spawn" 67 | "spawnflags" "2" 68 | "origin" "-1752 -1948 -266" 69 | "angles" "0 0 0" 70 | } 71 | { 72 | "classname" "weapon_first_aid_kit_spawn" 73 | "spawnflags" "2" 74 | "origin" "-1752 -1964 -268" 75 | "angles" "0 0 0" 76 | } 77 | ; ===================================================== -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/cwm4_building.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =================== Carried Off 4 =================== 3 | ; ===================================================== 4 | 5 | ; Remove hardcoded throwables 6 | modify: 7 | { 8 | match: 9 | { 10 | "classname" "weapon_item_spawn" 11 | } 12 | replace: 13 | { 14 | ; Pipe Bombs 15 | "item5" "0" 16 | 17 | ; Molotovs 18 | "item3" "0" 19 | 20 | ; Adrenaline 21 | "item11" "0" 22 | 23 | ; Bile Bombs 24 | "item13" "0" 25 | } 26 | } 27 | 28 | ; Some barriers around the hole in the hallway 29 | add: 30 | { 31 | "solid" "6" 32 | "origin" "-285 472 768" 33 | "angles" "0 -23 0" 34 | "model" "models/props_office/filecabinet01group.mdl" 35 | "classname" "prop_dynamic" 36 | } 37 | add: 38 | { 39 | "solid" "6" 40 | "origin" "-475 423 767" 41 | "angles" "0 0 0" 42 | "model" "models/props/cs_militia/boxes_garage_lower.mdl" 43 | "classname" "prop_dynamic" 44 | } 45 | 46 | ; Make tank spawns equal for both teams 47 | ; This just starts a reoccurring script that will teleport the 48 | ; tank to a safe distance away from the survivors once he spawns 49 | modify: 50 | { 51 | match: 52 | { 53 | "targetname" "trigger_stopgauntlet" 54 | } 55 | insert: 56 | { 57 | "OnTrigger" "tank_spawned_timerEnable0-1" 58 | } 59 | } 60 | 61 | add: 62 | { 63 | "targetname" "tank_spawned_timer" 64 | "origin" "284.567841 668.269165 1506.031250" 65 | "UseRandomTime" "0" 66 | "UpperRandomBound" "1" 67 | "StartDisabled" "1" 68 | "spawnflags" "0" 69 | "LowerRandomBound" "1" 70 | "classname" "logic_timer" 71 | "RefireTime" "1" 72 | 73 | "OnTimer" "directorBeginScriptcwm4_building_tank_helper_promod0-1" 74 | } -------------------------------------------------------------------------------- /addons/sourcemod/scripting/finale_tank_blocker.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #include 22 | #include 23 | #include 24 | 25 | #define FINALE_STAGE_TANK 8 26 | 27 | public Plugin:myinfo = 28 | { 29 | name = "Finale Even-Numbered Tank Blocker", 30 | author = "Stabby", 31 | description = "Blocks even-numbered non-flow finale tanks.", 32 | version = "1", 33 | url = "nourl" 34 | }; 35 | 36 | new iTankCount[2]; 37 | 38 | public Action:L4D2_OnChangeFinaleStage(&finaleType, const String:arg[]) { 39 | if (finaleType == FINALE_STAGE_TANK) { 40 | if (++iTankCount[GameRules_GetProp("m_bInSecondHalfOfRound")] % 2 == 0) return Plugin_Handled; 41 | } 42 | return Plugin_Continue; 43 | } 44 | 45 | public OnMapEnd() { 46 | iTankCount[0] = 0; 47 | iTankCount[1] = 0; 48 | } 49 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/temphealthfix.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #include 22 | 23 | public Plugin:myinfo = 24 | { 25 | name = "Hittable Temp Health Fixer", 26 | author = "CanadaRox", 27 | description = "Ensures that survivors that have been incapacitated with a hittable object get their temp health set correctly", 28 | version = "13.3.7", 29 | url = "https://bitbucket.org/CanadaRox/random-sourcemod-stuff/" 30 | }; 31 | 32 | public OnPluginStart() HookEvent("player_incapacitated_start", Incap_Event); 33 | 34 | public Incap_Event(Handle:event, const String:name[], bool:dontBroadcast) 35 | { 36 | new client = GetClientOfUserId(GetEventInt(event, "userid")); 37 | SetEntPropFloat(client, Prop_Send, "m_healthBufferTime", GetGameTime()); 38 | SetEntPropFloat(client, Prop_Send, "m_healthBuffer", 0.0); 39 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/versus_1.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================= Firetower Trail 1 ================= 3 | ; ===================================================== 4 | 5 | ; Remove AI infected spawning 6 | filter: 7 | { 8 | "classname" "commentary_zombie_spawner" 9 | } 10 | 11 | ; This map has a lot of mini-shortcuts in it that I originally blocked 12 | ; to force a consistent route for the survivors, but since the map is so cramped 13 | ; it turned out to be too hard to fight tanks without a way to "circle around" in the map 14 | ; so these shortcut blocks are commented out here. 15 | ;Doorway 1 (Preventing droptown shortcut) 16 | ;add: 17 | ;{ 18 | ; "solid" "6" 19 | ; "origin" "2507 9339 -1818" 20 | ; "angles" "0 0 0" 21 | ; "model" "models/props_cemetery/cemetery_gate_128.mdl" 22 | ; "classname" "prop_dynamic" 23 | ;} 24 | ;; Window 1 (Beneath Doorway 1) 25 | ;add: 26 | ;{ 27 | ; "solid" "6" 28 | ; "origin" "2409 9265 -1890" 29 | ; "angles" "0 90 0" 30 | ; "model" "models/props_cemetery/cemetery_gate_128.mdl" 31 | ; "classname" "prop_dynamic" 32 | ;} 33 | ;; Doorway 3 (Top of stairs) 34 | ;add: 35 | ;{ 36 | ; "solid" "6" 37 | ; "origin" "2126 9643 -1758" 38 | ; "angles" "0 90 0" 39 | ; "model" "models/props_debris/barricade_tall01a.mdl" 40 | ; "classname" "prop_dynamic" 41 | ;} 42 | ;; Doorway 4 (Drop into water shortcut) 43 | ;add: 44 | ;{ 45 | ; "solid" "6" 46 | ; "origin" "2043 9475 -1956" 47 | ; "angles" "0 90 0" 48 | ; "model" "models/props_cemetery/cemetery_gate_128.mdl" 49 | ; "classname" "prop_dynamic" 50 | ;} 51 | 52 | ; Step up for broken infected ladder by saferoom 53 | add: 54 | { 55 | "solid" "6" 56 | "origin" "3215 8227 -2104" 57 | "angles" "-5 0 9" 58 | "model" "models/props/de_train/pallet_barrels.mdl" 59 | "classname" "prop_dynamic" 60 | } 61 | 62 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/include/code_patcher.inc: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #pragma semicolon 1 22 | 23 | #if defined codepatcher_inc_ 24 | #endinput 25 | #endif 26 | #define codepatcher_inc_ 27 | 28 | native bool:IsPatchApplied(const String:name[]); 29 | 30 | native Address:GetPatchAddress(const String:name[]); 31 | 32 | native bool:IsPlatformWindows(); 33 | 34 | forward OnPatchApplied(const String:name[]); 35 | 36 | public SharedPlugin:__pl_l4d2util = 37 | { 38 | name = "code_patcher", 39 | file = "code_patcher.smx", 40 | #if defined REQUIRE_PLUGIN 41 | required = 1, 42 | #else 43 | required = 0, 44 | #endif 45 | }; 46 | 47 | public __pl_lgofnoc_SetNTVOptional() 48 | { 49 | MarkNativeAsOptional("IsPatchApplied"); 50 | MarkNativeAsOptional("GetPatchAddress"); 51 | MarkNativeAsOptional("IsPlatformWindows"); 52 | } 53 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/hf01_theforest.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================= Haunted Forest 1 ================== 3 | ; ===================================================== 4 | 5 | ; Force both dynamic paths to be available 6 | filter: 7 | { 8 | "classname" "logic_case" 9 | "targetname" "case_dynamic_path_a" 10 | } 11 | { 12 | "targetname" "brush_path2" 13 | } 14 | { 15 | "targetname" "prop_dyna_car_path2" 16 | } 17 | { 18 | "targetname" "prop_dyna_tree_path2" 19 | } 20 | { 21 | "targetname" "brush_path1" 22 | } 23 | { 24 | "targetname" "prop_dyna_tree_path1" 25 | } 26 | { 27 | "targetname" "prop_dyna_rock_path1" 28 | } 29 | { 30 | "targetname" "prop_dyna_car_path1" 31 | } 32 | { 33 | "targetname" "decal_blood_path1" 34 | } 35 | { 36 | "targetname" "smoke_path1" 37 | } 38 | { 39 | "targetname" "light_pathlight" 40 | } 41 | { 42 | "targetname" "sprite_pathlight" 43 | } 44 | { 45 | "targetname" "spotlight_pathlight" 46 | } 47 | { 48 | "targetname" "navblock_tunnelpath" 49 | } 50 | { 51 | "targetname" "navblock_carpath" 52 | } 53 | 54 | ; Right path after the 3 hanging bodies 55 | ; If your standing in the path by the props here looking forward: 56 | ; Less Y moves things to the right 57 | ; Less X moves things down the slope towards you 58 | add: 59 | { 60 | "solid" "6" 61 | "origin" "-7799 8253 165" 62 | "angles" "0 0 0" 63 | "model" "models/props_wasteland/rockcliff_cluster03b.mdl" 64 | "classname" "prop_dynamic" 65 | } 66 | add: 67 | { 68 | "solid" "6" 69 | "origin" "-7869 8153 60" 70 | "angles" "0 0 0" 71 | "model" "models/props_foliage/urban_tree_base_bushes01_large.mdl" 72 | "classname" "prop_dynamic" 73 | } 74 | add: 75 | { 76 | "solid" "6" 77 | "origin" "-7423 7965 60" 78 | "angles" "0 0 0" 79 | "model" "models/props_foliage/urban_trees_small01.mdl" 80 | "classname" "prop_dynamic" 81 | } 82 | -------------------------------------------------------------------------------- /addons/sourcemod/gamedata/code_patcher.txt: -------------------------------------------------------------------------------- 1 | "Games" 2 | { 3 | "left4dead2" 4 | { 5 | "Addresses" 6 | { 7 | "CTerrorPlayer::FireBullet_Signature" 8 | { 9 | "linux" 10 | { 11 | "signature" "CTerrorPlayer::FireBullet" 12 | } 13 | "windows" 14 | { 15 | "signature" "CTerrorPlayer::FireBullet" 16 | } 17 | } 18 | } 19 | "Signatures" 20 | { 21 | "CTerrorPlayer::FireBullet" 22 | { 23 | "library" "server" 24 | "linux" "@_ZN13CTerrorPlayer10FireBulletE6VectorRK6QAngle10CSWeaponIDi" 25 | "windows" "\x55\x8b\xec\x81\xec\x2a\x2a\x2a\x2a\x8b\x45\x18\x57\x8b\xf9" 26 | } 27 | } 28 | "Offsets" 29 | { 30 | "CTerrorPlayer::FireBullet_SpreadPatch" 31 | { 32 | "linux" "886" 33 | "windows" "835" 34 | } 35 | "Platform" 36 | { 37 | "linux" "0" 38 | "windows" "1" 39 | } 40 | } 41 | "Keys" 42 | { 43 | "sgspread_signature" "CTerrorPlayer::FireBullet_Signature" 44 | "sgspread_offset" "CTerrorPlayer::FireBullet_SpreadPatch" 45 | "sgspread_length_windows" "78" 46 | "sgspread_length_linux" "85" 47 | "sgspread_bytes_windows" "\x83\xec\x0c\x31\xc0\x89\x45\xa0\x8b\xd6\x8b\xc4\x83\xfa\x04\x7f\x02\xeb\x1f\xc7\x45\xa0\x00\x00\xa0\x40\x89\x10\x01\x38\x83\x28\x04\xdb\x00\xc7\x00\x00\x00\xb4\x43\xd9\x00\xde\xf1\x83\xea\x05\xeb\x12\xc7\x45\xa0\x00\x00\x40\x40\x83\xea\x02\xc7\x00\x00\x00\xf0\x42\xd9\x00\x89\x10\xdb\x00\xde\xc9\x0f\x1f\x40\x00" 48 | "sgspread_bytes_linux" "\x8d\x8d\x54\xff\xff\xff\xf3\x0f\x11\x01\x8b\x55\x20\x8b\xc4\x83\xfa\x04\x7f\x02\xeb\x16\x89\x10\x01\x38\x83\x28\x05\xdb\x00\xc7\x00\x00\x00\x34\x43\xd8\x38\x83\xea\x05\xeb\x17\xc7\x00\x02\x00\x00\x00\xdb\x00\xd8\x39\xd9\x19\x83\xea\x02\xc7\x00\x00\x00\x70\x42\xd9\x00\x89\x10\xda\x08\x6a\x2d\x8f\x00\xda\x00\xd9\x95\x3c\xff\xff\xff\x90\x90" 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/retro.cfg: -------------------------------------------------------------------------------- 1 | // Misc game cvars 2 | lgofnoc_addcvar ammo_shotgun_max 128 3 | lgofnoc_addcvar ammo_smg_max 480 4 | lgofnoc_addcvar boomer_pz_claw_dmg 2 5 | 6 | // Retro ZC Cvars 7 | lgofnoc_addcvar_scaled z_versus_hunter_limit 1 2 3 3 8 | lgofnoc_addcvar_scaled z_versus_smoker_limit 0 1 1 1 9 | lgofnoc_addcvar_scaled z_versus_boomer_limit 0 0 0 1 10 | lgofnoc_addcvar z_versus_jockey_limit 0 11 | lgofnoc_addcvar z_versus_charger_limit 0 12 | lgofnoc_addcvar z_versus_spitter_limit 0 13 | 14 | // [l4d_weapon_attributes.smx] 15 | sm_weapon pumpshotgun spreadpershot 0.4 16 | sm_weapon pumpshotgun maxspread 3 17 | sm_weapon pumpshotgun rangemod 1 18 | sm_weapon pumpshotgun minstandspread 0.5 19 | sm_weapon pumpshotgun maxmovespread 0.8 20 | sm_weapon pumpshotgun damage 32 21 | sm_weapon pumpshotgun bullets 8 22 | 23 | // [l4d2_dominatorscontrol.smx] 24 | sm plugins load_unlock 25 | sm plugins load optional/l4d2_dominatorscontrol.smx 26 | sm plugins load_lock 27 | lgofnoc_addcvar l4d2_dominators 0 28 | 29 | // [l4d2_uncommon_blocker.smx] 30 | lgofnoc_addcvar sm_uncinfblock_enabled 1 31 | lgofnoc_addcvar sm_uncinfblock_types 31 32 | 33 | // [l4d2_weaponrules.smx] 34 | l4d2_addweaponrule pistol_magnum pistol 35 | l4d2_addweaponrule melee pistol 36 | l4d2_addweaponrule smg_silenced smg 37 | l4d2_addweaponrule smg_mp5 smg 38 | l4d2_addweaponrule rifle smg 39 | l4d2_addweaponrule rifle_desert smg 40 | l4d2_addweaponrule rifle_ak47 smg 41 | l4d2_addweaponrule rifle_sg552 smg 42 | l4d2_addweaponrule shotgun_chrome pumpshotgun 43 | l4d2_addweaponrule autoshotgun pumpshotgun 44 | l4d2_addweaponrule shotgun_spas pumpshotgun 45 | l4d2_addweaponrule sniper_military hunting_rifle 46 | l4d2_addweaponrule sniper_scout hunting_rifle 47 | l4d2_addweaponrule sniper_awp hunting_rifle 48 | 49 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/finalefix.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #include 22 | #include 23 | 24 | public Plugin:myinfo = 25 | { 26 | name = "L4D2 Finale Incap Distance Fixifier", 27 | author = "CanadaRox", 28 | description = "Kills survivors before the score is calculated so you don't get full distance if you are incapped as the rescue vehicle leaves.", 29 | version = "1.0", 30 | url = "https://bitbucket.org/CanadaRox/random-sourcemod-stuff" 31 | }; 32 | 33 | public OnPluginStart() 34 | { 35 | HookEvent("finale_vehicle_leaving", FinaleEnd_Event, EventHookMode_PostNoCopy); 36 | } 37 | 38 | public FinaleEnd_Event(Handle:event, const String:name[], bool:dontBroadcast) 39 | { 40 | for (new i = 1; i < MaxClients; i++) 41 | { 42 | if (IsClientInGame(i) && GetClientTeam(i) == 2 && IsPlayerIncap(i)) 43 | { 44 | ForcePlayerSuicide(i); 45 | } 46 | } 47 | } 48 | 49 | stock IsPlayerIncap(client) return GetEntProp(client, Prop_Send, "m_isIncapacitated"); -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/l4d2_bts04_cinema.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================== Back To School 4 ================= 3 | ; ===================================================== 4 | 5 | ; Force survivors to always take route through the theater 6 | modify: 7 | { 8 | match: 9 | { 10 | "targetname" "way_case" 11 | } 12 | delete: 13 | { 14 | "OnCase02" "way2Trigger0-1" 15 | } 16 | } 17 | 18 | ; Always allow tank spawns 19 | ; + keep movie screen playing since event is different 20 | modify: 21 | { 22 | match: 23 | { 24 | "targetname" "cont_relay" 25 | } 26 | delete: 27 | { 28 | "OnTrigger" "directorBeginScriptbts04_cinema.nut3.011" 29 | "OnTrigger" "movie_sndKill0.51-1" 30 | "OnTrigger" "ladder_shKill0.5-1" 31 | "OnTrigger" "proj_lightTurnOff0.5-1" 32 | "OnTrigger" "movieKill0.5-1" 33 | "OnTrigger" "movie_sndStopSound0.5-1" 34 | "OnTrigger" "proj_beamLightOff0.5-1" 35 | "OnTrigger" "light_off_sndPlaySound0.3-1" 36 | "OnTrigger" "axe2_sndPlaySound0-1" 37 | "OnTrigger" "axe_tempForceSpawn0.05-1" 38 | } 39 | } 40 | modify: 41 | { 42 | match: 43 | { 44 | "targetname" "saferome_door" 45 | } 46 | delete: 47 | { 48 | "OnOpen" "directorBeginScriptbts04_cinema.nut51" 49 | } 50 | } 51 | 52 | ;Shorten cinema event because sometimes when you chop the wire, axe disappears completely 53 | modify: 54 | { 55 | match: 56 | { 57 | "targetname" "b_axe1" 58 | } 59 | insert: 60 | { 61 | "OnTimeUp" "cont_relayTrigger0-1" 62 | } 63 | } 64 | modify: 65 | { 66 | match: 67 | { 68 | "targetname" "cinema_ins3" 69 | } 70 | replace: 71 | { 72 | "hint_caption" "The sound didn't stop! Find a way out!" 73 | } 74 | } 75 | modify: 76 | { 77 | match: 78 | { 79 | "targetname" "b_switcher1" 80 | } 81 | insert: 82 | { 83 | "OnPressed" "movieKill0.5-1" 84 | } 85 | } 86 | 87 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c6m3_port.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =========== PROMOD SAFEROOM WEAPONS FIX =========== 3 | ; ===================================================== 4 | modify: 5 | ; --- fix saferooms having no shotgun/uzi/disappearing weapon spawns 6 | { 7 | ; no uzi fix 8 | match: 9 | { 10 | "hammerid" "21242" 11 | } 12 | replace: 13 | { 14 | "weapon_selection" "any_rifle" 15 | } 16 | } 17 | { 18 | ; no shotgun fix 19 | match: 20 | { 21 | "hammerid" "21252" 22 | } 23 | replace: 24 | { 25 | "weapon_selection" "tier2_shotgun" 26 | } 27 | } 28 | ; ===================================================== 29 | 30 | 31 | ; ===================================================== 32 | ; ================ EXPLOITS BLOCKED ================= 33 | ; ===================================================== 34 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 35 | add: 36 | ; --- block saferoom trigger bounds 37 | { 38 | ; invisible block inside saferoom door 39 | "targetname" "block_versus_start_checkpoint" 40 | "origin" "-2246 -276 -252" 41 | "mins" "0 -374 0" 42 | "maxs" "16 0 252" 43 | "initialstate" "1" 44 | "BlockType" "1" 45 | "classname" "env_physics_blocker" 46 | } 47 | ; 48 | modify: 49 | { 50 | match: 51 | { 52 | "targetname" "checkpoint_exit" 53 | } 54 | insert: 55 | { 56 | "OnOpen" "block_versus_start_checkpointKill0-1" 57 | } 58 | } 59 | add: 60 | ; --- block hole in start of bridge allowing access out of map 61 | { 62 | ; invisible block across gap to the side of bridge 63 | "origin" "196 -1316 260" 64 | "mins" "-4 -36 -300" 65 | "maxs" "4 36 300" 66 | "initialstate" "1" 67 | "BlockType" "1" 68 | "classname" "env_physics_blocker" 69 | } 70 | ; ===================================================== -------------------------------------------------------------------------------- /addons/sourcemod/scripting/map_distances.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #pragma semicolon 1 22 | 23 | #include 24 | #include 25 | #include 26 | 27 | public Plugin:myinfo = 28 | { 29 | name = "Map Distances", 30 | author = "Stabby", 31 | description = "Simple plugin that reads max_distance from mapinfo and sets it as the custom max distance for a map.", 32 | version = "2", 33 | url = "https://github.com/Stabbath/ProMod" 34 | }; 35 | 36 | new bool: g_bLGOAvailable; 37 | 38 | public OnAllPluginsLoaded() { 39 | g_bLGOAvailable = LibraryExists("lgofnoc"); 40 | } 41 | 42 | public OnLibraryRemoved(const String:name[]) { 43 | if (StrEqual(name, "lgofnoc")) g_bLGOAvailable = false; 44 | } 45 | 46 | public OnLibraryAdded(const String:name[]) { 47 | if (StrEqual(name, "lgofnoc")) g_bLGOAvailable = true; 48 | } 49 | 50 | public OnMapStart() { 51 | new mapscore = g_bLGOAvailable ? LGO_GetMapValueInt("max_distance", -1) : -1; 52 | 53 | if (mapscore >= 0) L4D_SetVersusMaxCompletionScore(mapscore); 54 | } 55 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/l4d2_stadium3_city1.cfg: -------------------------------------------------------------------------------- 1 | ; ======================================================== 2 | ; =================== Suicide Blitz 3 ================ 3 | ; ======================================================== 4 | 5 | ;---- Remove Random T2 Spawner (Does not get converted to T1) 6 | filter: 7 | { 8 | "hammerid" "215937" 9 | } 10 | 11 | ;---- Add some Weapon Spawns. 12 | add: 13 | { 14 | "origin" "4281 6468 -65" 15 | "weapon_selection" "tier1_any" 16 | "spawn_without_director" "1" 17 | "solid" "6" 18 | "count" "5" 19 | "angles" "0 115.5 90" 20 | "classname" "weapon_spawn" 21 | } 22 | { 23 | "origin" "-634.272 6729.65 45" 24 | "weapon_selection" "any_smg" 25 | "spawn_without_director" "1" 26 | "solid" "6" 27 | "count" "5" 28 | "angles" "0 243.5 90" 29 | "classname" "weapon_spawn" 30 | } 31 | { 32 | "origin" "-612 6715 45" 33 | "weapon_selection" "tier1_shotgun" 34 | "spawn_without_director" "1" 35 | "solid" "6" 36 | "count" "5" 37 | "angles" "0 264 90" 38 | "classname" "weapon_spawn" 39 | } 40 | { 41 | "origin" "1023 7064.16 7.13" 42 | "weapon_selection" "tier1_any" 43 | "spawn_without_director" "1" 44 | "solid" "6" 45 | "count" "5" 46 | "angles" "0 8.155 88.6681" 47 | "classname" "weapon_spawn" 48 | } 49 | 50 | ;---- Prevent Mobtimers to get set back to default by VScript 51 | modify: 52 | { 53 | match: 54 | { 55 | "targetname" "alarm_off_relay" 56 | } 57 | delete: 58 | { 59 | "OnTrigger" "directorBeginScriptsb_map3_jail_crescendo_cooldown5-1" 60 | } 61 | insert: 62 | { 63 | "OnTrigger" "directorBeginScriptsb_map3_jail_crescendo_cooldown_promod5-1" 64 | } 65 | } 66 | { 67 | match: 68 | { 69 | "targetname" "dynamic_on2" 70 | } 71 | delete: 72 | { 73 | "OnTrigger" "directorBeginScriptsb_map3_jail_crescendo_cooldown43-1" 74 | } 75 | insert: 76 | { 77 | "OnTrigger" "directorBeginScriptsb_map3_jail_crescendo_cooldown_promod43-1" 78 | } 79 | } 80 | 81 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/include/pause.inc: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #if defined _pause_included_ 22 | #endinput 23 | #endif 24 | #define _pause_included_ 25 | 26 | /** 27 | * Returns if the game is currently paused from this pause plugin. 28 | * This can't tell you if it is paused from another plugin on manual pause 29 | * 30 | * @return Current pause state 31 | */ 32 | native bool:IsInPause(); 33 | 34 | /** 35 | * Called when a pause starts 36 | * If delayed pauses are on this will be called when the delay ends and the 37 | * pause actually begins 38 | */ 39 | forward OnPause(); 40 | 41 | /** 42 | * Called when the pause ends and the round goes live 43 | */ 44 | forward OnUnpause(); 45 | 46 | public SharedPlugin:__pl_pause = 47 | { 48 | name = "pause", 49 | file = "pause.smx", 50 | #if defined REQUIRE_PLUGIN 51 | required = 1, 52 | #else 53 | required = 0, 54 | #endif 55 | }; 56 | 57 | public __pl_pause_SetNTVOptional() 58 | { 59 | MarkNativeAsOptional("IsInPause"); 60 | } 61 | 62 | // vim: ft=sourcepawn et sw=8 63 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/l4d2_character_fix.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #include 22 | 23 | new Handle:hCvarMaxZombies; 24 | 25 | public Plugin:myinfo = { 26 | name = "Character Fix", 27 | author = "someone", 28 | version = "0.1", 29 | description = "Fixes character change exploit in 1v1, 2v2, 3v3" 30 | }; 31 | 32 | public OnPluginStart() { 33 | AddCommandListener(TeamCmd, "jointeam") 34 | hCvarMaxZombies = FindConVar("z_max_player_zombies"); 35 | } 36 | 37 | public Action:TeamCmd(client, const String:command[], argc) { 38 | if (client && argc > 0) 39 | { 40 | static String:sBuffer[128]; 41 | GetCmdArg(1, sBuffer, sizeof(sBuffer)); 42 | new newteam = StringToInt(sBuffer); 43 | if (GetClientTeam(client)==2 && (StrEqual("Infected", sBuffer, false) || newteam==3)) 44 | { 45 | new zombies = 0; 46 | for (new i=1; i <= MaxClients; i++) 47 | { 48 | if (IsClientInGame(i) && GetClientTeam(i)==3) 49 | zombies++; 50 | } 51 | if (zombies>=GetConVarInt(hCvarMaxZombies)) 52 | return Plugin_Handled; 53 | } 54 | } 55 | return Plugin_Continue; 56 | } -------------------------------------------------------------------------------- /addons/sourcemod/scripting/incap_punch_fix.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #pragma semicolon 1 22 | 23 | #include 24 | 25 | public Plugin:myinfo = 26 | { 27 | name = "Incap Punch Fix", 28 | author = "CanadaRox", 29 | description = "Survivors go flying when they are incapped with a punch!!", 30 | version = "1", 31 | url = "" 32 | }; 33 | 34 | public OnPluginStart() 35 | { 36 | HookEvent("player_incapacitated", PlayerIncap); 37 | } 38 | 39 | public Action:PlayerIncap(Handle:event, String:event_name[], bool:dontBroadcast) 40 | { 41 | new client = GetClientOfUserId(GetEventInt(event, "userid")); 42 | new String:weapon[256]; 43 | GetEventString(event, "weapon", weapon, 256); 44 | 45 | if (StrEqual(weapon, "tank_claw")) 46 | { 47 | SetEntProp(client, Prop_Send, "m_isIncapacitated", 0); 48 | SetEntityHealth(client, 0); 49 | CreateTimer(0.1, Reincap_Timer, client); 50 | } 51 | } 52 | 53 | public Action:Reincap_Timer(Handle:timer, any:client) 54 | { 55 | SetEntProp(client, Prop_Send, "m_isIncapacitated", 1); 56 | SetEntityHealth(client, 300); 57 | } 58 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c7m2_barge.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ============ END PILL/ITEM SPAWN REMOVAL =========== 3 | ; ===================================================== 4 | filter: 5 | { 6 | "hammerid" "662060" 7 | } 8 | ; ===================================================== 9 | 10 | 11 | ; ===================================================== 12 | ; ================ EXPLOITS BLOCKED ================= 13 | ; ===================================================== 14 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 15 | add: 16 | ; --- block hang-leg-up exploit near barge (pre-event) 17 | { 18 | ; invisible block along barge edge 19 | "targetname" "barge_exploit_blocker" 20 | "origin" "-5032 -226 120" 21 | "angles" "0 -175 0" 22 | "mins" "0 0 -400" 23 | "maxs" "1300 10 180" 24 | "boxmins" "0 0 -400" 25 | "boxmaxs" "1300 10 180" 26 | "initialstate" "0" 27 | "BlockType" "1" 28 | "classname" "env_physics_blocker" 29 | } 30 | ; 31 | modify: 32 | { 33 | match: 34 | { 35 | "classname" "info_gamemode" 36 | } 37 | insert: 38 | { 39 | "OnCoop" "barge_exploit_blockerEnable0-1" 40 | "OnVersus" "barge_exploit_blockerEnable0-1" 41 | } 42 | } 43 | ; 44 | modify: 45 | { 46 | match: 47 | { 48 | "targetname" "panic_trigger" 49 | } 50 | insert: 51 | { 52 | ; delay, because you can't get on the barge earlier anyway 53 | "OnTrigger" "barge_exploit_blockerKill15-1" 54 | } 55 | } 56 | add: 57 | ; --- block sitting in saferoom roof as SI preventing round end 58 | { 59 | ; invisible block above destroyed saferoom roof 60 | "origin" "-11104 3112 309" 61 | "mins" "-208 -152 -3" 62 | "maxs" "208 152 3" 63 | "initialstate" "1" 64 | "BlockType" "2" 65 | "classname" "env_physics_blocker" 66 | } 67 | ; ===================================================== -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/cdta_03warehouse.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =================== Detour Ahead 3 ============== 3 | ; ===================================================== 4 | 5 | ; Make sure saferoom gun selection is diverse 6 | modify: 7 | { 8 | match: 9 | { 10 | "angles" "0 345 83" 11 | "classname" "weapon_spawn" 12 | } 13 | replace: 14 | { 15 | "count" "4" 16 | "weapon_selection" "any_smg" 17 | } 18 | } 19 | { 20 | match: 21 | { 22 | "angles" "0 71 -94" 23 | "classname" "weapon_spawn" 24 | } 25 | replace: 26 | { 27 | "count" "4" 28 | "weapon_selection" "tier1_shotgun" 29 | } 30 | } 31 | 32 | ; extra vent on roof to reduce death-jockeys/death-chargers 33 | ; Comented out: In newest version of the map, there is a railing on the roof so this prop isn't really necessary except maybe to add an extra spawn 34 | ;add: 35 | ;{ 36 | ; "solid" "6" 37 | ; "origin" "-5469 -6492 576" 38 | ; "angles" "0 0 0" 39 | ; "model" "models/props_rooftop/acvent04.mdl" 40 | ; "classname" "prop_dynamic" 41 | ;} 42 | 43 | ; Make it so the hallway in the apartment is blocked by boxes and stuff (usually randomly decided between teams) 44 | modify: 45 | { 46 | match: 47 | { 48 | "targetname" "aptblockcase" 49 | } 50 | delete: 51 | { 52 | "OnCase01" "aptclip1Kill0-1" 53 | } 54 | } 55 | 56 | ; Make it so the sewer layout isn't random/different between teams 57 | modify: 58 | { 59 | match: 60 | { 61 | "targetname" "randomgate" 62 | } 63 | delete: 64 | { 65 | "OnCase01" "sewertemplate1aForceSpawn0-1" 66 | } 67 | } 68 | { 69 | match: 70 | { 71 | "targetname" "randomgate2" 72 | } 73 | delete: 74 | { 75 | "OnCase04" "sewertemplate2bForceSpawn0-1" 76 | } 77 | } 78 | 79 | ; Prevent map from triggering natural hordes 80 | modify: 81 | { 82 | match: 83 | { 84 | "origin" "-5120 -7000 402" 85 | "filtername" "survivorfilter" 86 | "classname" "trigger_once" 87 | } 88 | delete: 89 | { 90 | "OnTrigger" "directorBeginScriptcdta03_passive0-1" 91 | } 92 | insert: 93 | { 94 | "OnTrigger" "directorBeginScriptcdta03_passive_promod0-1" 95 | } 96 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/jsarena204_arena.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =================== Arena of the Dead 4 ========= 3 | ; ===================================================== 4 | 5 | ; Remove Pill spawns so we can ensure the pills at the radio 6 | filter: 7 | { 8 | ; Pills 9 | "classname" "weapon_item_spawn" 10 | "item4" "1" 11 | } 12 | { 13 | ; Kits 14 | "classname" "weapon_item_spawn" 15 | "item2" "1" 16 | } 17 | 18 | ; 4 Pills at the radio 19 | add: 20 | { 21 | "origin" "-457 -433 318" 22 | "angles" "0 0 0" 23 | "classname" "weapon_item_spawn" 24 | "spawnflags" "2" 25 | "item1" "0" 26 | "item2" "0" 27 | "item3" "0" 28 | "item4" "1" 29 | "item5" "0" 30 | "item6" "0" 31 | "item7" "0" 32 | "item8" "0" 33 | "item11" "0" 34 | "item12" "0" 35 | "item13" "0" 36 | "item16" "0" 37 | "item17" "0" 38 | "item18" "0" 39 | } 40 | add: 41 | { 42 | "origin" "-464 -443 318" 43 | "angles" "0 0 0" 44 | "classname" "weapon_item_spawn" 45 | "spawnflags" "2" 46 | "item1" "0" 47 | "item2" "0" 48 | "item3" "0" 49 | "item4" "1" 50 | "item5" "0" 51 | "item6" "0" 52 | "item7" "0" 53 | "item8" "0" 54 | "item11" "0" 55 | "item12" "0" 56 | "item13" "0" 57 | "item16" "0" 58 | "item17" "0" 59 | "item18" "0" 60 | } 61 | add: 62 | { 63 | "origin" "-464 -453 318" 64 | "angles" "0 0 0" 65 | "classname" "weapon_item_spawn" 66 | "spawnflags" "2" 67 | "item1" "0" 68 | "item2" "0" 69 | "item3" "0" 70 | "item4" "1" 71 | "item5" "0" 72 | "item6" "0" 73 | "item7" "0" 74 | "item8" "0" 75 | "item11" "0" 76 | "item12" "0" 77 | "item13" "0" 78 | "item16" "0" 79 | "item17" "0" 80 | "item18" "0" 81 | } 82 | add: 83 | { 84 | "origin" "-447 -463 318" 85 | "angles" "0 0 0" 86 | "classname" "weapon_item_spawn" 87 | "spawnflags" "2" 88 | "item1" "0" 89 | "item2" "0" 90 | "item3" "0" 91 | "item4" "1" 92 | "item5" "0" 93 | "item6" "0" 94 | "item7" "0" 95 | "item8" "0" 96 | "item11" "0" 97 | "item12" "0" 98 | "item13" "0" 99 | "item16" "0" 100 | "item17" "0" 101 | "item18" "0" 102 | } 103 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c10m2_drainage.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ============ END PILL/ITEM SPAWN REMOVAL =========== 3 | ; ===================================================== 4 | filter: 5 | { 6 | "hammerid" "1814273" 7 | } 8 | { 9 | "hammerid" "1787790" 10 | } 11 | { 12 | "hammerid" "1787818" 13 | } 14 | { 15 | "hammerid" "1787826" 16 | } 17 | { 18 | "hammerid" "1814310" 19 | } 20 | { 21 | "hammerid" "1787830" 22 | } 23 | ; ===================================================== 24 | 25 | 26 | ; ===================================================== 27 | ; ================ EXPLOITS BLOCKED ================= 28 | ; ===================================================== 29 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 30 | add: 31 | ; --- block drainage tunnel hole near rescue closet to prevent getting knocked inside 32 | { 33 | ; invisible block in drainage tunnel hole 34 | "origin" "-8044 -7280 -408" 35 | "mins" "-4 -104 -56" 36 | "maxs" "4 104 56" 37 | "initialstate" "1" 38 | "BlockType" "1" 39 | "classname" "env_physics_blocker" 40 | } 41 | ; --- block climbing wall with common to bypass event 42 | { 43 | ; invisible block along wall section 44 | "origin" "-8050 -8422 -487" 45 | "mins" "-26 -75 -88" 46 | "maxs" "26 75 88" 47 | "initialstate" "1" 48 | "BlockType" "1" 49 | "classname" "env_physics_blocker" 50 | } 51 | ; --- block common jumping up into windows to get on roofs and off map 52 | { 53 | ; invisible block in windows 54 | "origin" "-6452 -6008 136" 55 | "mins" "-167 -8 -44" 56 | "maxs" "167 8 44" 57 | "initialstate" "1" 58 | "BlockType" "1" 59 | "classname" "env_physics_blocker" 60 | } 61 | ; --- block bhopping into windows near end of map 62 | { 63 | ; invisible block in windows 64 | "origin" "-8252 -6008 16" 65 | "mins" "-352 -8 -64" 66 | "maxs" "352 8 64" 67 | "initialstate" "1" 68 | "BlockType" "1" 69 | "classname" "env_physics_blocker" 70 | } 71 | ; ===================================================== 72 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c8m5_rooftop.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =========== PROMOD SAFEROOM WEAPONS FIX =========== 3 | ; ===================================================== 4 | modify: 5 | ; --- fix saferooms having no shotgun/uzi/disappearing weapon spawns 6 | { 7 | ; no uzi fix 8 | match: 9 | { 10 | "hammerid" "3319417" 11 | } 12 | replace: 13 | { 14 | "weapon_selection" "any_rifle" 15 | } 16 | } 17 | { 18 | ; no shotgun fix 19 | match: 20 | { 21 | "hammerid" "3319415" 22 | } 23 | replace: 24 | { 25 | "weapon_selection" "tier2_shotgun" 26 | } 27 | } 28 | { 29 | ; no hr fix 30 | match: 31 | { 32 | "hammerid" "3319419" 33 | } 34 | replace: 35 | { 36 | "classname" "weapon_hunting_rifle_spawn" 37 | } 38 | } 39 | ; ===================================================== 40 | 41 | 42 | ; ===================================================== 43 | ; ================ EXPLOITS BLOCKED ================= 44 | ; ===================================================== 45 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 46 | add: 47 | ; --- block cheap corner of roof without SI ladders 48 | { 49 | ; invisible block where corner jump possible 50 | "origin" "7676 7964 5956" 51 | "mins" "-68 -12 -12" 52 | "maxs" "68 12 12" 53 | "initialstate" "1" 54 | "BlockType" "1" 55 | "classname" "env_physics_blocker" 56 | } 57 | ; --- block SI ladder inaccessible spot you can zombie jump to 58 | { 59 | ; invisible block above roof section 60 | "origin" "5984 7760 7153" 61 | "mins" "-50 -130 -943" 62 | "maxs" "50 130 943" 63 | "initialstate" "1" 64 | "BlockType" "1" 65 | "classname" "env_physics_blocker" 66 | } 67 | ; --- block corner roof-edge jesus spot 68 | { 69 | ; invisible block along edge of corner 70 | "origin" "5116 7872 5946" 71 | "mins" "-4 -104 -6" 72 | "maxs" "4 104 6" 73 | "initialstate" "1" 74 | "BlockType" "1" 75 | "classname" "env_physics_blocker" 76 | } 77 | ; ===================================================== 78 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/l4d2_fix_deathspit.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #pragma semicolon 1 22 | 23 | #include 24 | #include 25 | 26 | public Plugin:myinfo = { 27 | name = "L4D2 Fix Death Spit", 28 | author = "Jahze", 29 | description = "Removes invisible death spit", 30 | version = "1.0", 31 | url = "https://github.com/Jahze/l4d2_plugins" 32 | } 33 | public OnPluginStart() { 34 | HookEvent("spitter_killed", SpitterKilledEvent, EventHookMode_PostNoCopy); 35 | } 36 | 37 | public SpitterKilledEvent(Handle:event, const String:name[], bool:dontBroadcast) { 38 | CreateTimer(1.0, FindDeathSpit); 39 | } 40 | 41 | public Action:FindDeathSpit(Handle:timer) { 42 | new entity = -1; 43 | 44 | while ((entity = FindEntityByClassname(entity, "insect_swarm")) != -1) { 45 | new maxFlames = L4D2Direct_GetInfernoMaxFlames(entity); 46 | new currentFlames = GetEntProp(entity, Prop_Send, "m_fireCount"); 47 | 48 | if (maxFlames == 2 && currentFlames == 2) { 49 | SetEntProp(entity, Prop_Send, "m_fireCount", 1); 50 | L4D2Direct_SetInfernoMaxFlames(entity, 1); 51 | } 52 | } 53 | } 54 | 55 | -------------------------------------------------------------------------------- /cfg/lgofnoc/shared/items_base.cfg: -------------------------------------------------------------------------------- 1 | //Laser sights 2 | uim_addrule specifier lasersights classname upgrade_spawn 3 | uim_addrule keyvalue lasersights laser_sight 1 4 | //For gascans 5 | uim_addrule specifier gascan classname prop_physics 6 | uim_addrule specifier gascan prop_data m_ModelName models/props_junk/gascan001a.mdl 7 | uim_addrule keyvalue gascan model models/props_junk/gascan001a.mdl 8 | uim_addrule keyvalue gascan Spawnflags 256 9 | //So we can properly identify, remove and spawn propane tanks 10 | uim_addrule specifier propanetank classname prop_physics 11 | uim_addrule specifier propanetank prop_data m_ModelName models/props_junk/propanecanister001a.mdl 12 | uim_addrule keyvalue propanetank model models/props_junk/propanecanister001a.mdl 13 | uim_addrule keyvalue propanetank Spawnflags 256 14 | //So we can properly identify, remove and spawn oxygen tanks 15 | uim_addrule specifier oxygentank classname prop_physics 16 | uim_addrule specifier oxygentank prop_data m_ModelName models/props_equipment/oxygentank01.mdl 17 | uim_addrule keyvalue oxygentank model models/props_equipment/oxygentank01.mdl 18 | uim_addrule keyvalue oxygentank Spawnflags 256 19 | //So we can properly identify, remove and spawn fireworks crates 20 | uim_addrule specifier fireworkscrate classname prop_physics 21 | uim_addrule specifier fireworkscrate prop_data m_ModelName models/props_junk/explosive_box001.mdl 22 | uim_addrule keyvalue fireworkscrate model models/props_junk/explosive_box001.mdl 23 | uim_addrule keyvalue fireworkscrate Spawnflags 257 24 | //So we can properly spawn fuel barrels 25 | uim_addrule keyvalue prop_fuel_barrel model models/props_industrial/barrel_fuel.mdl 26 | uim_addrule keyvalue prop_fuel_barrel BasePiece models/props_industrial/barrel_fuel_partb.mdl 27 | uim_addrule keyvalue prop_fuel_barrel FlyingPiece01 models/props_industrial/barrel_fuel_parta.mdl 28 | uim_addrule keyvalue prop_fuel_barrel DetonateParticles weapon_pipebomb 29 | uim_addrule keyvalue prop_fuel_barrel FlyingParticles barrel_fly 30 | uim_addrule keyvalue prop_fuel_barrel DetonateSound BaseGrenade.Explode 31 | 32 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c9m1_alleys.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ============ END PILL/ITEM SPAWN REMOVAL =========== 3 | ; ===================================================== 4 | filter: 5 | { 6 | "hammerid" "1576953" 7 | } 8 | { 9 | "hammerid" "1576949" 10 | } 11 | { 12 | "hammerid" "1576945" 13 | } 14 | { 15 | "hammerid" "1576935" 16 | } 17 | ; ===================================================== 18 | 19 | 20 | ; ===================================================== 21 | ; ================ EXPLOITS BLOCKED ================= 22 | ; ===================================================== 23 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 24 | add: 25 | ; --- block jumps before event area using truck 26 | { 27 | ; invisible block on top of truck trailer 28 | "origin" "156 -6648 -22" 29 | "mins" "0 0 0" 30 | "maxs" "530 126 333" 31 | "initialstate" "1" 32 | "BlockType" "1" 33 | "classname" "env_physics_blocker" 34 | } 35 | { 36 | ; invisible block on awning 37 | "origin" "28 -6652 -25" 38 | "mins" "0 -770 0" 39 | "maxs" "130 0 410" 40 | "initialstate" "1" 41 | "BlockType" "1" 42 | "classname" "env_physics_blocker" 43 | } 44 | ; --- block zombie-breakable wall until event has started 45 | { 46 | ; invisible block in wall 47 | "targetname" "breakable_wall_blocker" 48 | "origin" "-2298 -6064 64" 49 | "mins" "-16 0 0" 50 | "maxs" "0 120 124" 51 | "initialstate" "1" 52 | "BlockType" "1" 53 | "classname" "env_player_blocker" 54 | } 55 | ; 56 | modify: 57 | { 58 | match: 59 | { 60 | "targetname" "fire_howitzer" 61 | } 62 | insert: 63 | { 64 | "OnPressed" "breakable_wall_blockerKill0-1" 65 | } 66 | } 67 | add: 68 | ; --- block top of toll-booth (campspot) 69 | { 70 | ; invisible block above toll-booth 71 | "origin" "-1027 -5054 172" 72 | "mins" "-100 0 -116" 73 | "maxs" "0 100 100" 74 | "initialstate" "1" 75 | "BlockType" "1" 76 | "classname" "env_physics_blocker" 77 | } 78 | ; ===================================================== 79 | 80 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/l4d_inaudible_ghosts.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #pragma semicolon 1 22 | #include 23 | #include 24 | 25 | public Plugin:myinfo = 26 | { 27 | name = "L4D Inaudible Ghosts", 28 | author = "AtomicStryker, DieTeeTasse, ProdigySim", 29 | description = "Keep survivors from hearing jumping infected ghosts.", 30 | version = "1.0", 31 | url = "http://bitbucket.org/ProdigySim/misc-sourcemod-plugins/" 32 | } 33 | 34 | 35 | new isGhostOffset; 36 | public OnPluginStart() { 37 | isGhostOffset = FindSendPropInfo("CTerrorPlayer", "m_isGhost"); // daHURRDURR 38 | AddNormalSoundHook(NormalSHook:SoundHook); 39 | } 40 | 41 | public Action:SoundHook(clients[64], &numClients, String:sample[PLATFORM_MAX_PATH], &entity) { 42 | // infected fall sound and is ghost 43 | if (StrEqual(sample, "player/jumplanding_zombie.wav") && 44 | GetEntData(entity, isGhostOffset)) 45 | { 46 | // add infected and spectators to array 47 | numClients = 0; 48 | for (new i = 1; i < MaxClients+1; i++) { 49 | if (!IsClientInGame(i)) continue; 50 | if (IsFakeClient(i)) continue; 51 | if (GetClientTeam(i) != 3) continue; // team infected 52 | 53 | clients[numClients] = i; 54 | numClients++; 55 | } 56 | return Plugin_Changed; 57 | } 58 | return Plugin_Continue; 59 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/mnac.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =================== Warcelona 4 ================= 3 | ; ===================================================== 4 | ;;;;---- Saferoom Weapons! -----;;;; 5 | 6 | modify: 7 | { 8 | match: 9 | { 10 | "hammerid" "1621041" 11 | } 12 | delete: 13 | { 14 | "weapon_selection" "tier2_any" 15 | } 16 | insert: 17 | { 18 | "weapon_selection" "any_rifle" 19 | } 20 | } 21 | add: 22 | { 23 | "origin" "9037.99 12565.7 -4456.3" 24 | "weapon_selection" "tier2_shotgun" 25 | "spawnflags" "2" 26 | "spawn_without_director" "1" 27 | "solid" "6" 28 | "skin" "0" 29 | "disableshadows" "1" 30 | "count" "5" 31 | "body" "0" 32 | "angles" "-90 2 0" 33 | "classname" "weapon_spawn" 34 | } 35 | { 36 | "origin" "9037.99 12575.7 -4456.3" 37 | "weapon_selection" "any_sniper_rifle" 38 | "spawnflags" "2" 39 | "spawn_without_director" "1" 40 | "solid" "6" 41 | "skin" "0" 42 | "disableshadows" "1" 43 | "count" "5" 44 | "body" "0" 45 | "angles" "-90 2 0" 46 | "classname" "weapon_spawn" 47 | } 48 | 49 | ;;;;---- Our Dynamic Routing has to Go! -----;;;; 50 | 51 | modify: 52 | { 53 | match: 54 | { 55 | "targetname" "PATH_A_LOGIC" 56 | } 57 | delete: 58 | { 59 | "OnCase01" "A_path2Kill01" 60 | "OnCase02" "A_path1Kill01" 61 | } 62 | insert: 63 | { 64 | "OnCase01" "A_path2Kill01" 65 | "OnCase02" "A_path2Kill01" 66 | } 67 | } 68 | { 69 | match: 70 | { 71 | "targetname" "PATH_B_LOGIC" 72 | } 73 | delete: 74 | { 75 | "OnCase01" "B_path2Kill01" 76 | "OnCase02" "B_path1Kill01" 77 | } 78 | insert: 79 | { 80 | "OnCase01" "B_path2Kill01" 81 | "OnCase02" "B_path2Kill01" 82 | } 83 | } 84 | { 85 | match: 86 | { 87 | "targetname" "PATH_C_LOGIC" 88 | } 89 | delete: 90 | { 91 | "OnCase01" "C_path1Kill01" 92 | "OnCase02" "C_path2Kill01" 93 | "OnCase03" "C_path3Kill01" 94 | } 95 | insert: 96 | { 97 | "OnCase01" "C_path3Kill01" 98 | "OnCase02" "C_path3Kill01" 99 | "OnCase03" "C_path3Kill01" 100 | } 101 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/C12m2_traintunnel.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ============ END PILL/ITEM SPAWN REMOVAL =========== 3 | ; ===================================================== 4 | filter: 5 | { 6 | "hammerid" "1679543" 7 | } 8 | ; ===================================================== 9 | 10 | 11 | ; ===================================================== 12 | ; ================ EXPLOITS BLOCKED ================= 13 | ; ===================================================== 14 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 15 | add: 16 | ; --- block pipes to avoid using ladder in final section of tunnel 17 | { 18 | ; invisible block above pipes 19 | "origin" "-2366 -8664 60" 20 | "angles" "0 -45 0" 21 | "mins" "0 0 -120" 22 | "maxs" "960 32 212" 23 | "boxmins" "0 0 -120" 24 | "boxmaxs" "960 32 212" 25 | "initialstate" "1" 26 | "BlockType" "1" 27 | "classname" "env_physics_blocker" 28 | } 29 | ; ===================================================== 30 | 31 | 32 | ; ===================================================== 33 | ; ================= NON-RESTRICTIVE =================== 34 | ; ===================================================== 35 | add: 36 | ; ----------- add SI spawn cover near exit door (inside) 37 | { 38 | ; concrete bags (next to stairs) 39 | "solid" "6" 40 | "origin" "-6860 -7780 -64" 41 | "angles" "0 90 0" 42 | "model" "models/props/de_prodigy/concretebags.mdl" 43 | "classname" "prop_dynamic" 44 | } 45 | 46 | ; ----------- final bit before saferoom 47 | { 48 | ; flipped flatcar -- force survivors to take one more turn 49 | "solid" "6" 50 | "origin" "-1750 -9550 40" 51 | "angles" "13 265 85" 52 | "model" "models/props_vehicles/train_flatcar.mdl" 53 | "classname" "prop_dynamic" 54 | } 55 | { 56 | ; invisible block -- to avoid survivors jumping on top of the flatcar 57 | ; little cheap-ass at the moment, oddly blocks jump (ok now) 58 | "origin" "-1820 -9410 190" 59 | "mins" "-100 -90 0" 60 | "maxs" "100 80 100" 61 | "initialstate" "1" 62 | "BlockType" "1" 63 | "classname" "env_player_blocker" 64 | } 65 | ; ===================================================== 66 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/staggersolver.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #pragma semicolon 1 22 | 23 | #include 24 | #include 25 | 26 | #define GAMEDATA_FILE "staggersolver" 27 | 28 | public Plugin:myinfo = 29 | { 30 | name = "Super Stagger Solver", 31 | author = "CanadaRox", 32 | description = "Blocks all button presses during stumbles", 33 | version = "(^.^)", 34 | }; 35 | 36 | new Handle:g_hGameConf; 37 | new Handle:g_hIsStaggering; 38 | 39 | public OnPluginStart() 40 | { 41 | g_hGameConf = LoadGameConfigFile(GAMEDATA_FILE); 42 | if (g_hGameConf == INVALID_HANDLE) 43 | SetFailState("[Stagger Solver] Could not load game config file."); 44 | 45 | StartPrepSDKCall(SDKCall_Player); 46 | 47 | if (!PrepSDKCall_SetFromConf(g_hGameConf, SDKConf_Signature, "IsStaggering")) 48 | SetFailState("[Stagger Solver] Could not find signature IsStaggering."); 49 | PrepSDKCall_SetReturnInfo(SDKType_PlainOldData, SDKPass_Plain); 50 | g_hIsStaggering = EndPrepSDKCall(); 51 | if (g_hIsStaggering == INVALID_HANDLE) 52 | SetFailState("[Stagger Solver] Failed to load signature IsStaggering"); 53 | 54 | CloseHandle(g_hGameConf); 55 | } 56 | 57 | public Action:OnPlayerRunCmd(client, &buttons) 58 | { 59 | if (IsClientInGame(client) && IsPlayerAlive(client) && SDKCall(g_hIsStaggering, client)) 60 | { 61 | buttons = 0; 62 | } 63 | return Plugin_Continue; 64 | } 65 | 66 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/l4d2_jockeyed_charger_fix.sp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | /** 5 | Linux only! Sorry about that. 6 | **/ 7 | 8 | #define CLEAP_ONTOUCH_OFFSET 215 9 | 10 | new Handle:hCLeap_OnTouch; 11 | 12 | public Plugin:myinfo = 13 | { 14 | name = "L4D2 Jockeyed Charger Fix", 15 | author = "Visor", 16 | description = "Prevent jockeys and chargers from capping the same target simultaneously", 17 | version = "1.2", 18 | url = "https://github.com/Attano/smplugins" 19 | } 20 | 21 | public OnPluginStart() 22 | { 23 | hCLeap_OnTouch = DHookCreate(CLEAP_ONTOUCH_OFFSET, HookType_Entity, ReturnType_Void, ThisPointer_CBaseEntity, CLeap_OnTouch); 24 | DHookAddParam(hCLeap_OnTouch, HookParamType_CBaseEntity); 25 | DHookAddEntityListener(ListenType_Created, OnEntityCreated); 26 | } 27 | 28 | public OnEntityCreated(entity, const String:classname[]) 29 | { 30 | if (StrEqual(classname, "ability_leap")) 31 | { 32 | DHookEntity(hCLeap_OnTouch, false, entity); 33 | } 34 | } 35 | 36 | public MRESReturn:CLeap_OnTouch(ability, Handle:hParams) 37 | { 38 | new jockey = GetEntPropEnt(ability, Prop_Send, "m_owner"); 39 | new survivor = DHookGetParam(hParams, 1); 40 | if (IsValidJockey(jockey)/* probably redundant */ && IsSurvivor(survivor)) 41 | { 42 | if (IsBeingCarried(survivor) || (IsQueuedForPummeling(survivor) && !IsBeingPummeled(survivor))) 43 | { 44 | //PrintToChatAll("\x01[SM] A charged jockey(%N) glitch on %N has been prevented.", jockey, survivor); 45 | return MRES_Supercede; 46 | } 47 | } 48 | return MRES_Ignored; 49 | } 50 | 51 | bool:IsSurvivor(client) 52 | { 53 | return (client > 0 && client <= MaxClients && IsClientInGame(client) && GetClientTeam(client) == 2); 54 | } 55 | 56 | bool:IsValidJockey(client) 57 | { 58 | return (client > 0 59 | && client <= MaxClients 60 | && IsClientInGame(client) 61 | && GetClientTeam(client) == 3 62 | && GetEntProp(client, Prop_Send, "m_zombieClass") == 5); 63 | } 64 | 65 | bool:IsBeingCarried(survivor) 66 | { 67 | return (GetEntData(survivor, 10860) > 0); 68 | } 69 | 70 | bool:IsQueuedForPummeling(survivor) 71 | { 72 | return (GetEntData(survivor, 15988) > 0); 73 | } 74 | 75 | bool:IsBeingPummeled(survivor) 76 | { 77 | return (GetEntData(survivor, 15976) > 0); 78 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c3m4_plantation.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================ EXPLOITS BLOCKED ================= 3 | ; ===================================================== 4 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 5 | ; none 6 | ; ===================================================== 7 | 8 | 9 | ; ===================================================== 10 | ; ================ NUISANCE CHANGES ================= 11 | ; ===================================================== 12 | add: 13 | ; --- block spot to get stuck in, in corner of first barn on the left 14 | { 15 | ; invisible block in corner 16 | "origin" "-1735 -955 30" 17 | "mins" "-90 -67 0" 18 | "maxs" "0 0 102" 19 | "initialstate" "1" 20 | "BlockType" "0" 21 | "classname" "env_physics_blocker" 22 | } 23 | ; ===================================================== 24 | 25 | 26 | ; ===================================================== 27 | ; ================= NON-RESTRICTIVE =================== 28 | ; ===================================================== 29 | add: 30 | ; -------- provide SI spawns near saferoom 31 | { 32 | ; trailer 33 | "solid" "6" 34 | "origin" "-4480 -980 -97" 35 | "angles" "0 -96 0" 36 | "model" "models/props_trailers/trailer_small01.mdl" 37 | "classname" "prop_dynamic" 38 | } 39 | { 40 | ; pickup truck 41 | "solid" "6" 42 | "origin" "-4380 -1530 -96" 43 | "angles" "0 -15 -1" 44 | "model" "models/props_vehicles/pickup_regcab.mdl" 45 | "classname" "prop_dynamic" 46 | "rendercolor" "30 50 30" 47 | } 48 | { 49 | ; pickup truck -- glass 50 | "solid" "6" 51 | "origin" "-4380 -1530 -96" 52 | "angles" "0 -15 -1" 53 | "model" "models/props_vehicles/pickup_regcab_glass.mdl" 54 | "classname" "prop_dynamic" 55 | } 56 | { 57 | ; cypres stump 58 | "solid" "6" 59 | "origin" "-4750 -1450 -100" 60 | "angles" "0 0 0" 61 | "model" "models/props_foliage/swamp_cypress_stump01.mdl" 62 | "classname" "prop_dynamic" 63 | } 64 | 65 | ; -------- block some more LOS in first barn 66 | { 67 | ; plywood -- on right 68 | "solid" "6" 69 | "origin" "-2178 -977 19" 70 | "angles" "90 0 0" 71 | "model" "models/props_highway/plywood_02.mdl" 72 | "classname" "prop_dynamic" 73 | } 74 | ; ===================================================== -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/hf02_thesteeple.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================= Haunted Forest 2 ================== 3 | ; ===================================================== 4 | 5 | ; Force dynamic ladder chokes to both be available 6 | filter: 7 | { 8 | "classname" "logic_case" 9 | "targetname" "case_path_a" 10 | } 11 | { 12 | "targetname" "brush_clipsteeplehole_a1" 13 | } 14 | { 15 | "targetname" "brush_steeplehole_a1" 16 | } 17 | { 18 | "targetname" "brush_clipsteeplehole_a2" 19 | } 20 | { 21 | "targetname" "brush_steeplehole_a2" 22 | } 23 | { 24 | "targetname" "blocker_path_a2" 25 | } 26 | { 27 | "targetname" "blocker_hole_a1" 28 | } 29 | { 30 | "targetname" "spotlight_altpath" 31 | } 32 | { 33 | "targetname" "bulb_altpath" 34 | } 35 | { 36 | "targetname" "sprite_altpath" 37 | } 38 | { 39 | "targetname" "prop_path" 40 | } 41 | 42 | ; Reblock one of the paths 43 | add: 44 | { 45 | "solid" "6" 46 | "origin" "3442 -1092 229" 47 | "angles" "90 0 0" 48 | "model" "models/props_cemetery/cemetery_gate_128.mdl" 49 | "classname" "prop_dynamic" 50 | } 51 | 52 | 53 | ; There are lots of weapon_item_spawns but barely any have kits or pills enabled. 54 | ; The ones that actually have kit spawns are in bad locations so just remove them. 55 | ; Enable pills on the rest. 56 | filter: 57 | { 58 | ; First remove all possible kit spawn locations 59 | "classname" "weapon_item_spawn" 60 | "item2" "1" 61 | } 62 | 63 | modify: 64 | { 65 | match: 66 | { 67 | "classname" "weapon_item_spawn" 68 | } 69 | replace: 70 | { 71 | "item4" "1" 72 | } 73 | } 74 | 75 | ; Use custom rolling tunnel script so the horde is less thick 76 | modify: 77 | { 78 | match: 79 | { 80 | "classname" "trigger_once" 81 | "origin" "-7367 -5539 -480" 82 | } 83 | delete: 84 | { 85 | "OnStartTouch" "directorBeginScripthf02_rolling_tunnel3-1" 86 | } 87 | insert: 88 | { 89 | "OnStartTouch" "directorBeginScripthf02_thesteeple_rolling_tunnel_promod3-1" 90 | } 91 | } 92 | 93 | ; Remove pills next to safe room 94 | filter: 95 | { 96 | "origin" "-3931 -7757 -319" 97 | "classname" "weapon_item_spawn" 98 | } 99 | { 100 | "origin" "-4186.33 -8089.94 -376" 101 | "classname" "weapon_item_spawn" 102 | } 103 | { 104 | "origin" "-3612.73 -7795.28 -376" 105 | "classname" "weapon_item_spawn" 106 | } 107 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/aitankgank.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #pragma semicolon 1 22 | 23 | #include 24 | #include 25 | 26 | public Plugin:myinfo = 27 | { 28 | name = "AI Tank Gank", 29 | author = "Stabby", 30 | version = "0.2", 31 | description = "Kills tanks on pass to AI." 32 | }; 33 | 34 | new Handle:hKillOnCrash = INVALID_HANDLE; 35 | 36 | public OnPluginStart() 37 | { 38 | hKillOnCrash = CreateConVar("tankgank_killoncrash", "0", 39 | "If 0, tank will not be killed if the player that controlled it crashes.", 40 | FCVAR_PLUGIN, true, 0.0, true, 1.0); 41 | HookEvent("player_bot_replace", OnTankGoneAi); 42 | } 43 | 44 | public Action:OnTankGoneAi(Handle:event, const String: name[], bool:dontBroadcast) 45 | { 46 | new formerTank = GetClientOfUserId(GetEventInt(event, "player")); 47 | new newTank = GetClientOfUserId(GetEventInt(event, "bot")); 48 | 49 | if (GetClientTeam(newTank) == 3 && GetEntProp(newTank, Prop_Send, "m_zombieClass") == 8) 50 | { 51 | if (formerTank == 0 && !GetConVarBool(hKillOnCrash) ) //if people disconnect, formerTank = 0 instead of the old player's id 52 | { 53 | CreateTimer(1.0, Timed_CheckAndKill, newTank); 54 | return; 55 | } 56 | ForcePlayerSuicide(newTank); 57 | } 58 | } 59 | 60 | public Action:Timed_CheckAndKill(Handle:unused, any:newTank) 61 | { 62 | if (IsFakeClient(newTank)) 63 | { 64 | ForcePlayerSuicide(newTank); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/l4d_notank.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | 22 | #pragma semicolon 1 23 | 24 | #include 25 | #include 26 | 27 | public Plugin:myinfo = 28 | { 29 | name = "No Tank", 30 | author = "Don", 31 | description = "Slays any tanks that spawn. Designed for 1v1 configs", 32 | version = "1.1", 33 | url = "https://bitbucket.org/DonSanchez/random-sourcemod-stuff" 34 | } 35 | 36 | public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max) 37 | { 38 | decl String:sGame[12]; 39 | GetGameFolderName(sGame, sizeof(sGame)); 40 | if (StrEqual(sGame, "left4dead") || StrEqual(sGame, "left4dead2")) // Only load the plugin if the server is running Left 4 Dead or Left 4 Dead 2. 41 | { 42 | return APLRes_Success; 43 | } 44 | else 45 | { 46 | strcopy(error, err_max, "Plugin only supports L4D1/2"); 47 | return APLRes_Failure; 48 | } 49 | } 50 | 51 | new iSpawned; 52 | 53 | public OnPluginStart() 54 | { 55 | HookEvent("tank_spawn", Event_tank_spawn_Callback); 56 | } 57 | 58 | public Event_tank_spawn_Callback(Handle:event, const String:name[], bool:dontBroadcast) 59 | { 60 | iSpawned = GetClientOfUserId(GetEventInt(event, "userid")); 61 | if (IsClientInGame(iSpawned) && IsPlayerAlive(iSpawned)) 62 | { 63 | CreateTimer(1.0, SlayTank); // Slaying or kicking tanks instantly would break finale maps. 64 | } 65 | } 66 | 67 | public Action:SlayTank(Handle:timer) 68 | { 69 | ForcePlayerSuicide(iSpawned); 70 | } 71 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/l4d_pounceprotect.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #include 22 | #include 23 | 24 | public Plugin:myinfo = 25 | { 26 | name = "L4D2 Pounce Protect", 27 | author = "ProdigySim", 28 | description = "Prevent damage from blocking a hunter's ability to pounce", 29 | version = "1.0", 30 | url = "http://www.l4dnation.com/" 31 | } 32 | 33 | new Handle:hCBaseAbility_OnOwnerTakeDamage; 34 | public OnPluginStart() 35 | { 36 | new Handle:gameConf = LoadGameConfigFile("l4d_pounceprotect"); 37 | new OnOwnerTakeDamageOffset = GameConfGetOffset(gameConf, "CBaseAbility_OnOwnerTakeDamage"); 38 | 39 | hCBaseAbility_OnOwnerTakeDamage = DHookCreate( 40 | OnOwnerTakeDamageOffset, 41 | HookType_Entity, 42 | ReturnType_Void, 43 | ThisPointer_Ignore, 44 | CBaseAbility_OnOwnerTakeDamage); 45 | DHookAddParam(hCBaseAbility_OnOwnerTakeDamage, HookParamType_ObjectPtr); 46 | 47 | DHookAddEntityListener(ListenType_Created, OnEntityCreated); 48 | } 49 | 50 | public OnEntityCreated(entity, const String:classname[]) 51 | { 52 | if(StrEqual(classname, "ability_lunge")) 53 | { 54 | DHookEntity(hCBaseAbility_OnOwnerTakeDamage, false, entity); 55 | } 56 | } 57 | 58 | // During this function call the game simply validates the owner entity 59 | // and then sets a bool saying you can't pounce again if you're already mid-pounce. 60 | // afaik 61 | public MRESReturn:CBaseAbility_OnOwnerTakeDamage(Handle:hParams) 62 | { 63 | // Skip the whole function plox 64 | return MRES_Supercede; 65 | } 66 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c2m5_concert.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================ EXPLOITS BLOCKED ================= 3 | ; ===================================================== 4 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 5 | add: 6 | ; --- block saferoom-door jump to glitch-area 7 | { 8 | ; invisible block over fence 9 | "origin" "-1048 2208 -100" 10 | "angles" "0 -45 0" 11 | "mins" "-200 0 0" 12 | "maxs" "0 20 80" 13 | "boxmins" "-200 0 0" 14 | "boxmaxs" "0 20 80" 15 | "initialstate" "1" 16 | "BlockType" "1" 17 | "classname" "env_physics_blocker" 18 | } 19 | ; --- block top of two tents near saferoom (to avoid tanks punching survs up there) 20 | { 21 | ; invisible block above tents 22 | "origin" "-2163.5 1888.2 -150" 23 | "mins" "-2 -160 -100" 24 | "maxs" "278 10 220" 25 | "initialstate" "1" 26 | "BlockType" "1" 27 | "classname" "env_physics_blocker" 28 | } 29 | ; --- block tops of tents further down the corridor 30 | { 31 | ; invisible block above tent 32 | "origin" "-2428 2119 -113" 33 | "angles" "0 160 0" 34 | "mins" "0 0 0" 35 | "maxs" "130 130 120" 36 | "boxmins" "0 0 0" 37 | "boxmaxs" "130 130 120" 38 | "initialstate" "1" 39 | "BlockType" "1" 40 | "classname" "env_physics_blocker" 41 | } 42 | { 43 | ; invisible block above open tent 44 | "origin" "-2690 2131 -113" 45 | "angles" "0 -178 0" 46 | "mins" "0 0 0" 47 | "maxs" "130 130 120" 48 | "boxmins" "0 0 0" 49 | "boxmaxs" "130 130 120" 50 | "initialstate" "1" 51 | "BlockType" "1" 52 | "classname" "env_physics_blocker" 53 | } 54 | ; --- block top of unmarked food cart at concert entrance 55 | { 56 | ; invisible block above food cart 57 | "origin" "-4094 3264 -10" 58 | "angles" "0 3 0" 59 | "mins" "-110 -56 -98" 60 | "maxs" "110 56 98" 61 | "boxmins" "-110 -56 -98" 62 | "boxmaxs" "110 56 98" 63 | "initialstate" "1" 64 | "BlockType" "1" 65 | "classname" "env_physics_blocker" 66 | } 67 | ; ===================================================== 68 | 69 | 70 | ; ===================================================== 71 | ; ===== remove all-or-nothing forklift ===== 72 | ; ===================================================== 73 | filter: 74 | { 75 | "hammerid" "2383226" 76 | } 77 | ; "hammerid" "2243338" 78 | ; ==================================================== 79 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c10m1_caves.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ============ END PILL/ITEM SPAWN REMOVAL =========== 3 | ; ===================================================== 4 | filter: 5 | { 6 | "hammerid" "1629697" 7 | } 8 | { 9 | "hammerid" "1629671" 10 | } 11 | { 12 | "hammerid" "1558088" 13 | } 14 | { 15 | "hammerid" "1629705" 16 | } 17 | ; ===================================================== 18 | 19 | 20 | ; ===================================================== 21 | ; ================ EXPLOITS BLOCKED ================= 22 | ; ===================================================== 23 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 24 | add: 25 | ; --- block jump across bridge to skip ladders 26 | { 27 | ; invisible block on right side 28 | "origin" "-12072 -11992 -18" 29 | "mins" "0 0 0" 30 | "maxs" "18 20 200" 31 | "initialstate" "1" 32 | "BlockType" "1" 33 | "classname" "env_player_blocker" 34 | } 35 | { 36 | ; invisible block on left side 37 | "origin" "-12584 -11992 -18" 38 | "mins" "-26 0 0" 39 | "maxs" "0 20 200" 40 | "initialstate" "1" 41 | "BlockType" "1" 42 | "classname" "env_player_blocker" 43 | } 44 | ; ===================================================== 45 | 46 | 47 | ; ===================================================== 48 | ; ================ NUISANCE CHANGES ================= 49 | ; ===================================================== 50 | add: 51 | ; --- block hunters falling off and under map at end of map (confogl only) 52 | { 53 | ; invisible block along back rocky section 54 | "origin" "-11872 -4626 1034" 55 | "mins" "-448 -238 -470" 56 | "maxs" "448 238 470" 57 | "initialstate" "1" 58 | "BlockType" "0" 59 | "classname" "env_physics_blocker" 60 | } 61 | ; --- block SI getting permanently stuck in corner near SI ladder (confogl only) 62 | { 63 | ; invisible block in corner near rocks 64 | "origin" "-11353 -4837 591" 65 | "mins" "-71 -45 -21" 66 | "maxs" "71 45 21" 67 | "initialstate" "1" 68 | "BlockType" "0" 69 | "classname" "env_physics_blocker" 70 | } 71 | ; ===================================================== 72 | 73 | 74 | ; ===================================================== 75 | ; --- remove startkits 76 | filter: 77 | { 78 | "hammerid" "1400699" 79 | } 80 | { 81 | "hammerid" "1400051" 82 | } 83 | { 84 | "hammerid" "1479253" 85 | } 86 | { 87 | "hammerid" "1479313" 88 | } 89 | ; ============================== 90 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/blockheatseekingchargers.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #include 22 | new bIsCharging[MAXPLAYERS + 1] = false; 23 | 24 | public Plugin:myinfo = 25 | { 26 | name = "Block heatseeking chargers", 27 | author = "Tabun, Greenice", 28 | description = "What name says", 29 | url = "http://steamcommunity.com/id/uk-greenice" 30 | } 31 | 32 | public OnPluginStart() 33 | { 34 | HookEvent("player_bot_replace", BotReplacesPlayer); 35 | HookEvent("charger_charge_start", Event_ChargeStart); 36 | HookEvent("charger_charge_end", Event_ChargeEnd); 37 | HookEvent("player_first_spawn", OnPlayerFirstSpawn); 38 | } 39 | 40 | public Event_ChargeStart(Handle:event, const String:name[], bool:dontBroadcast) 41 | { 42 | new client = GetClientOfUserId(GetEventInt(event, "userid")); 43 | bIsCharging[client] = true; 44 | } 45 | 46 | public Event_ChargeEnd(Handle:event, const String:name[], bool:dontBroadcast) 47 | { 48 | new client = GetClientOfUserId(GetEventInt(event, "userid")); 49 | bIsCharging[client] = false; 50 | } 51 | 52 | public Action:BotReplacesPlayer(Handle:event, const String:name[], bool:dontBroadcast) 53 | { 54 | new client = GetClientOfUserId(GetEventInt(event, "player")); 55 | if (bIsCharging[client]) 56 | { 57 | new bot = GetClientOfUserId(GetEventInt(event, "bot")); 58 | KickClient(bot, "Charger"); 59 | bIsCharging[client] = false; 60 | } 61 | } 62 | 63 | public OnPlayerFirstSpawn(Handle:event, const String:name[], bool:dontBroadcast) 64 | { 65 | new PlayerId = GetEventInt(event, "userid"); 66 | new client = GetClientOfUserId(PlayerId); 67 | bIsCharging[client] = false; 68 | } -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c11m4_terminal.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================== PROMOD TABLES ================== 3 | ; ===================================================== 4 | modify: 5 | { 6 | match: 7 | { 8 | "model" "models/props_interiors/table_folding.mdl" 9 | "classname" "prop_physics" 10 | } 11 | delete: 12 | { 13 | "model" "models/props_interiors/table_folding.mdl" 14 | } 15 | } 16 | modify: 17 | { 18 | match: 19 | { 20 | "model" "models/props_interiors/chair_cafeteria.mdl" 21 | "classname" "prop_physics" 22 | } 23 | delete: 24 | { 25 | "model" "models/props_interiors/chair_cafeteria.mdl" 26 | } 27 | } 28 | ; ===================================================== 29 | 30 | 31 | ; ===================================================== 32 | ; ================ PROMOD ONSLAUGHT ================= 33 | ; ===================================================== 34 | modify: 35 | { 36 | match: 37 | { 38 | ; logic_relay @ alarm 39 | "hammerid" "7063599" 40 | } 41 | delete: 42 | { 43 | "OnTrigger" "@directorBeginScriptc11m4_onslaught0.1-1" 44 | } 45 | insert: 46 | { 47 | "OnTrigger" "directorBeginScriptc11m4_onslaught_promod0.1-1" 48 | } 49 | } 50 | ; ===================================================== 51 | 52 | 53 | ; ===================================================== 54 | ; ================ EXPLOITS BLOCKED ================= 55 | ; ===================================================== 56 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 57 | add: 58 | ; --- block using crashed airplane to ledge-hang up onto roofs 59 | { 60 | ; invisible block across front of crashed airplane 61 | "origin" "2472 1866 358" 62 | "mins" "-16 -118 -38" 63 | "maxs" "16 118 38" 64 | "initialstate" "1" 65 | "BlockType" "1" 66 | "classname" "env_physics_blocker" 67 | } 68 | ; ===================================================== 69 | 70 | 71 | ; ===================================================== 72 | ; ================= NON-RESTRICTIVE =================== 73 | ; ===================================================== 74 | add: 75 | ; ----------- first area after saferoom 76 | { 77 | ; stone debris - tall (near saferoom) 78 | "targetname" "tabbernaut_los" 79 | "solid" "6" 80 | "origin" "110 3500 340" 81 | "angles" "0 75 0" 82 | "model" "models/props_debris/barricade_tall04a.mdl" 83 | "classname" "prop_dynamic" 84 | } 85 | ; ===================================================== -------------------------------------------------------------------------------- /addons/sourcemod/scripting/blocktrolls.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #include 22 | 23 | public Plugin:myinfo = 24 | { 25 | name = "Block Trolls", 26 | description = "Prevents calling votes while others are loading", 27 | author = "ProdigySim, CanadaRox", 28 | version = "2.0.0.0", 29 | url = "http://www.sourcemod.net/" 30 | }; 31 | new bool:g_bBlockCallvote; 32 | 33 | enum L4D2Team 34 | { 35 | L4D2Team_None = 0, 36 | L4D2Team_Spectator, 37 | L4D2Team_Survivor, 38 | L4D2Team_Infected 39 | } 40 | 41 | public OnPluginStart() 42 | { 43 | AddCommandListener(Vote_Listener, "callvote"); 44 | AddCommandListener(Vote_Listener, "vote"); 45 | } 46 | 47 | public OnMapStart() 48 | { 49 | g_bBlockCallvote = true; 50 | CreateTimer(60.0, EnableCallvoteTimer); 51 | } 52 | 53 | public Action:Vote_Listener(client, const String:command[], argc) 54 | { 55 | if (g_bBlockCallvote) 56 | { 57 | ReplyToCommand(client, 58 | "[SM] Voting is not enabled until 60s into the round"); 59 | return Plugin_Handled; 60 | } 61 | new L4D2Team:team = L4D2Team:GetClientTeam(client); 62 | if (client && IsClientInGame(client) && 63 | (team == L4D2Team_Survivor || team == L4D2Team_Infected)) 64 | { 65 | return Plugin_Continue; 66 | } 67 | ReplyToCommand(client, 68 | "[SM] You must be ingame and not a spectator to vote"); 69 | return Plugin_Handled; 70 | } 71 | 72 | public Action:CallvoteCallback(client, args) 73 | { 74 | if (g_bBlockCallvote) 75 | { 76 | return Plugin_Handled; 77 | } 78 | return Plugin_Continue; 79 | } 80 | 81 | public Action:EnableCallvoteTimer(Handle:timer) 82 | { 83 | g_bBlockCallvote = false; 84 | return Plugin_Stop; 85 | } 86 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c11m2_offices.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ============ END PILL/ITEM SPAWN REMOVAL =========== 3 | ; ===================================================== 4 | filter: 5 | { 6 | "hammerid" "9120351" 7 | } 8 | { 9 | "hammerid" "7941040" 10 | } 11 | { 12 | "hammerid" "9105768" 13 | } 14 | { 15 | "hammerid" "9120445" 16 | } 17 | { 18 | "hammerid" "9120449" 19 | } 20 | { 21 | "hammerid" "9122001" 22 | } 23 | ; ===================================================== 24 | 25 | 26 | ; ===================================================== 27 | ; ================ EXPLOITS BLOCKED ================= 28 | ; ===================================================== 29 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 30 | add: 31 | ; --- block drop (without incap) from crane roof to pillars in start area 32 | { 33 | ; invisible block above right pillar 34 | "origin" "5680 3808 254" 35 | "mins" "-50 0 0" 36 | "maxs" "0 50 620" 37 | "initialstate" "1" 38 | "BlockType" "1" 39 | "classname" "env_physics_blocker" 40 | } 41 | { 42 | ; invisible block above left pillar 43 | "origin" "5656 3560 1056" 44 | "mins" "-24 -24 -864" 45 | "maxs" "24 24 864" 46 | "initialstate" "1" 47 | "BlockType" "1" 48 | "classname" "env_physics_blocker" 49 | } 50 | ; --- block falling onto fences for incap and full map distance 51 | { 52 | ; invisible block above fence 1 53 | "origin" "8175 3872 212" 54 | "mins" "-9 -32 -5" 55 | "maxs" "9 32 5" 56 | "initialstate" "1" 57 | "BlockType" "1" 58 | "classname" "env_physics_blocker" 59 | } 60 | { 61 | ; invisible block above fence 2 62 | "origin" "7160 4636 214" 63 | "mins" "-45 -12 -6" 64 | "maxs" "45 12 6" 65 | "initialstate" "1" 66 | "BlockType" "1" 67 | "classname" "env_physics_blocker" 68 | } 69 | ; --- block falling onto clip along front of building to skip interiors 70 | { 71 | ; invisible block along front of building 72 | "origin" "7704 4801 346" 73 | "mins" "-488 -1 -170" 74 | "maxs" "488 1 170" 75 | "initialstate" "1" 76 | "BlockType" "1" 77 | "classname" "env_physics_blocker" 78 | } 79 | ; --- block jumping onto pipe then building edge to skip interiors at wooden plank 80 | { 81 | ; invisible block above pipe area 82 | "origin" "9573 3782 958" 83 | "mins" "-101 -6 -450" 84 | "maxs" "101 6 450" 85 | "initialstate" "1" 86 | "BlockType" "1" 87 | "classname" "env_physics_blocker" 88 | } 89 | ; ===================================================== 90 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/plaza_espana.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; =================== Warcelona 2 ================= 3 | ; ===================================================== 4 | 5 | ; Guns in beginning safe room 6 | add: 7 | { 8 | ; smg 9 | "origin" "-8189 -8980 98" 10 | "weapon_selection" "any_rifle" 11 | "spawnflags" "3" 12 | "spawn_without_director" "1" 13 | "solid" "6" 14 | "skin" "0" 15 | "model" "models/w_models/weapons/w_smg_a.mdl" 16 | "disableshadows" "0" 17 | "count" "4" 18 | "body" "0" 19 | "angles" "0 29 90" 20 | "classname" "weapon_spawn" 21 | } 22 | { 23 | ; shotgun 24 | "origin" "-8191 -8992 97" 25 | "weapon_selection" "tier2_shotgun" 26 | "spawnflags" "3" 27 | "spawn_without_director" "1" 28 | "solid" "6" 29 | "skin" "0" 30 | "model" "models/w_models/weapons/w_shotgun.mdl" 31 | "disableshadows" "0" 32 | "count" "4" 33 | "body" "0" 34 | "angles" "0 29 90" 35 | "classname" "weapon_spawn" 36 | } 37 | 38 | ;;;;;; ----- Ammo Spawn after first Barricade ;;;;;;;; 39 | add: 40 | { 41 | "origin" "-5644 -4779 154" 42 | "spawnflags" "0" 43 | "solid" "6" 44 | "model" "models/props/terror/ammo_stack.mdl" 45 | "disableshadows" "1" 46 | "count" "0" 47 | "angles" "0 257 0" 48 | "ammo" "0" 49 | "classname" "weapon_ammo_spawn" 50 | } 51 | 52 | ;;;;;; ----- Make the vehicle dropping through the roof in the subway static ----- ;;;;;; 53 | modify: 54 | { 55 | match: 56 | { 57 | "targetname" "aleatorio" 58 | } 59 | delete: 60 | { 61 | "OnCase01" "suelo1Break0-1" 62 | "OnCase02" "suelo2Break0-1" 63 | "OnCase03" "suelo3Break0-1" 64 | "OnCase03" "sonido_caidaPlaySound1.5-1" 65 | "OnCase01" "sonido_caidaPlaySound1-1" 66 | "OnCase02" "sonido_caidaPlaySound1.2-1" 67 | } 68 | insert: 69 | { 70 | 71 | "OnCase01" "suelo3Break0-1" 72 | "OnCase02" "suelo3Break0-1" 73 | "OnCase03" "suelo3Break0-1" 74 | "OnCase03" "sonido_caidaPlaySound1.5-1" 75 | "OnCase01" "sonido_caidaPlaySound1.5-1" 76 | "OnCase02" "sonido_caidaPlaySound1.5-1" 77 | } 78 | } 79 | { 80 | match: 81 | { 82 | "targetname" "barrier_logic" 83 | } 84 | delete: 85 | { 86 | "OnCase01" "barrier_1Disable0-1" 87 | "OnCase02" "barrier_2Disable0-1" 88 | } 89 | insert: 90 | { 91 | "OnCase01" "barrier_2Disable0-1" 92 | "OnCase02" "barrier_2Disable0-1" 93 | } 94 | } 95 | 96 | ; Make it so the semi that falls as you cross the board falls sooner to reduce the chance of it hitting someone 97 | ; EDIT: You can't do it because the entity names have question marks in them and stripper can't handle it. 98 | ; Probably because he used spanish characters. Might be able to do it with a vscript? 99 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/bossspawningfix.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #include 22 | #include 23 | #include 24 | 25 | public Plugin:myinfo = 26 | { 27 | name = "Versus Boss Spawn Persuasion", 28 | author = "ProdigySim", 29 | description = "Makes Versus Boss Spawns obey cvars", 30 | version = "1.2", 31 | url = "http://compl4d2.com/" 32 | } 33 | 34 | new Handle:hCvarEnabled; 35 | new Handle:hCvarSkipStaticMaps; 36 | 37 | 38 | public OnPluginStart() 39 | { 40 | hCvarEnabled = CreateConVar("l4d_obey_boss_spawn_cvars", "1", "Enable forcing boss spawns to obey boss spawn cvars"); 41 | hCvarSkipStaticMaps = CreateConVar("l4d_obey_boss_spawn_except_static", "1", "Don't override boss spawning rules on Static Tank Spawn maps (c7m1, c13m2)"); 42 | } 43 | 44 | 45 | public Action:L4D_OnGetScriptValueInt(const String:key[], &retVal) 46 | { 47 | if(GetConVarBool(hCvarEnabled)) 48 | { 49 | if(StrEqual(key, "DisallowThreatType")) 50 | { 51 | // Stop allowing threat types! 52 | retVal = 0; 53 | return Plugin_Handled; 54 | } 55 | 56 | if(StrEqual(key, "ProhibitBosses")) 57 | { 58 | // Fuck that! 59 | retVal = 0; 60 | return Plugin_Handled; 61 | } 62 | } 63 | return Plugin_Continue; 64 | 65 | 66 | } 67 | 68 | public Action:L4D_OnGetMissionVSBossSpawning(&Float:spawn_pos_min, &Float:spawn_pos_max, &Float:tank_chance, &Float:witch_chance) 69 | { 70 | if(GetConVarBool(hCvarEnabled)) 71 | { 72 | if(GetConVarBool(hCvarSkipStaticMaps)) 73 | { 74 | decl String:mapbuf[32]; 75 | GetCurrentMap(mapbuf, sizeof(mapbuf)); 76 | if(StrEqual(mapbuf, "c7m1_docks") || StrEqual(mapbuf, "c13m2_southpinestream")) 77 | { 78 | return Plugin_Continue; 79 | } 80 | } 81 | return Plugin_Handled; 82 | } 83 | return Plugin_Continue; 84 | } 85 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/include/readyup.inc: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #if defined _readyup_included_ 22 | #endinput 23 | #endif 24 | #define _readyup_included_ 25 | 26 | /** 27 | * Adds the string to the bottom of the ready-up panel. 28 | * String must be <=65 characters including the null byte. 29 | * String will be entirely added or not added, no truncation. 30 | * 31 | * @param footer String to add to the footer 32 | * @return True if the string was added, false otherwise 33 | */ 34 | native bool:AddStringToReadyFooter(const String:footer[]); 35 | 36 | /** 37 | * Whether or not the game is currently waiting for players to ready up. 38 | * 39 | * @return True if the game is currently in the ready-up phase. 40 | */ 41 | native bool:IsInReady(); 42 | 43 | /** 44 | * If this in-game and fully connected client is a caster or not 45 | * 46 | * @return True if this is a registered caster 47 | */ 48 | native bool:IsClientCaster(client); 49 | 50 | /** 51 | * If this Steam ID is a registered caster or not 52 | * 53 | * @return True if this is a registered caster 54 | */ 55 | native bool:IsIDCaster(const String:AuthID[]); 56 | 57 | /** 58 | * Called when the live countdown ends and the round goes live 59 | */ 60 | forward OnRoundIsLive(); 61 | 62 | public SharedPlugin:__pl_readyup = 63 | { 64 | name = "readyup", 65 | file = "readyup.smx", 66 | #if defined REQUIRE_PLUGIN 67 | required = 1, 68 | #else 69 | required = 0, 70 | #endif 71 | }; 72 | 73 | public __pl_readyup_SetNTVOptional() 74 | { 75 | MarkNativeAsOptional("AddStringToReadyFooter"); 76 | MarkNativeAsOptional("IsInReady"); 77 | MarkNativeAsOptional("IsClientCaster"); 78 | MarkNativeAsOptional("IsIDCaster"); 79 | } 80 | 81 | // vim: ft=sourcepawn et sw=8 82 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/c11m1_greenhouse.cfg: -------------------------------------------------------------------------------- 1 | ; ===================================================== 2 | ; ================ EXPLOITS BLOCKED ================= 3 | ; ===================================================== 4 | ; -- updated (exploits v.29): 2013-02-11 - 17:07 5 | add: 6 | ; --- block access to upper rails and upper roof sections of greenhouse 7 | { 8 | ; invisible block over far left rail 9 | "origin" "5630 -990 1288" 10 | "mins" "-394 -4 -440" 11 | "maxs" "394 4 440" 12 | "initialstate" "1" 13 | "BlockType" "1" 14 | "classname" "env_physics_blocker" 15 | } 16 | { 17 | ; invisible block over middle left rail 18 | "origin" "5630 -752 1288" 19 | "mins" "-394 -4 -440" 20 | "maxs" "394 4 440" 21 | "initialstate" "1" 22 | "BlockType" "1" 23 | "classname" "env_physics_blocker" 24 | } 25 | { 26 | ; invisible block over middle right rail 27 | "origin" "5630 -514 1288" 28 | "mins" "-394 -4 -440" 29 | "maxs" "394 4 440" 30 | "initialstate" "1" 31 | "BlockType" "1" 32 | "classname" "env_physics_blocker" 33 | } 34 | { 35 | ; invisible block over far right rail 36 | "origin" "5630 -276 1288" 37 | "mins" "-394 -4 -440" 38 | "maxs" "394 4 440" 39 | "initialstate" "1" 40 | "BlockType" "1" 41 | "classname" "env_physics_blocker" 42 | } 43 | { 44 | ; invisible block over greenhouse roof 1 45 | "origin" "5178 -632 1288" 46 | "mins" "-58 -440 -440" 47 | "maxs" "58 440 440" 48 | "initialstate" "1" 49 | "BlockType" "1" 50 | "classname" "env_physics_blocker" 51 | } 52 | { 53 | ; invisible block over greenhouse roof 2 54 | "origin" "4906 -794 1288" 55 | "mins" "-214 -174 -440" 56 | "maxs" "214 174 440" 57 | "initialstate" "1" 58 | "BlockType" "1" 59 | "classname" "env_physics_blocker" 60 | } 61 | ; --- block raised roof section with satellite dish 62 | { 63 | ; invisible block above raised roof section 64 | "origin" "4880 552 1200" 65 | "mins" "-112 -152 -528" 66 | "maxs" "112 152 528" 67 | "initialstate" "1" 68 | "BlockType" "1" 69 | "classname" "env_physics_blocker" 70 | } 71 | ; --- block hang-leg-up exploit to get back over point of no return 72 | { 73 | ; invisible block on bottom section 74 | "origin" "3338 1147 466" 75 | "mins" "-8 -376 -466" 76 | "maxs" "0 0 174" 77 | "initialstate" "1" 78 | "BlockType" "1" 79 | "classname" "env_physics_blocker" 80 | } 81 | { 82 | ; invisible block on top section 83 | "origin" "3342 1151 536" 84 | "mins" "-12 -380 -536" 85 | "maxs" "0 6 104" 86 | "initialstate" "1" 87 | "BlockType" "1" 88 | "classname" "env_physics_blocker" 89 | } 90 | ; ===================================================== -------------------------------------------------------------------------------- /scripts/vscripts/cdta_05finalroad_tank_helper_promod.nut: -------------------------------------------------------------------------------- 1 | // Used to fix Detour Ahead's Gauntlet Finale. 2 | // The tank will now spawn in the same place for boths teams. 3 | // Refer to the corresponding stripper file. 4 | 5 | // For Detour Ahead, we consider a Y coord higher than -5031 to be "pushing the tank". 6 | // Its the first cluster of cars past the bridge. 7 | target_y <- -5031 8 | 9 | survivors <-{ 10 | coach = "models/survivors/survivor_coach.mdl", 11 | ellis = "models/survivors/survivor_mechanic.mdl", 12 | nick = "models/survivors/survivor_gambler.mdl", 13 | rochelle = "models/survivors/survivor_producer.mdl" 14 | } 15 | 16 | function FindFurthestSurvivorY() 17 | { 18 | // Initial value is some value lower than target_y 19 | furthest_y <- target_y - 100 20 | 21 | foreach(s, m in survivors) 22 | { 23 | survivor <- Entities.FindByModel(null, m); 24 | if (survivor) 25 | { 26 | pos <- survivor.GetOrigin(); 27 | if (pos.y > furthest_y) 28 | { 29 | furthest_y = pos.y 30 | } 31 | } 32 | } 33 | 34 | return furthest_y; 35 | } 36 | 37 | function StartGauntlet() 38 | { 39 | DirectorOptions <- 40 | { 41 | ProhibitBosses = true 42 | PreferredMobDirection = SPAWN_IN_FRONT_OF_SURVIVORS 43 | MobMaxPending = 20 44 | MobMinSize = 20 45 | MobMaxSize = 20 46 | MobRechargeRate = 0.003 47 | SustainPeakMinTime = 3 48 | SustainPeakMaxTime = 3 49 | 50 | PanicForever = true 51 | PausePanicWhenRelaxing = false 52 | 53 | IntensityRelaxThreshold = 0.90 54 | RelaxMinInterval = 2 55 | RelaxMaxInterval = 2 56 | RelaxMaxFlowTravel = 200 57 | 58 | LockTempo = 0 59 | SpecialRespawnInterval = 20 60 | PreTankMobMax = 20 61 | ZombieSpawnRange = 3000 62 | ZombieSpawnInFog = true 63 | 64 | MobSpawnSize = 20 65 | CommonLimit = 20 66 | 67 | // length of bridge to test progress against. 68 | BridgeSpan = 10000 69 | 70 | MobSpawnMinTime = 2 71 | MobSpawnMaxTime = 2 72 | 73 | MobSpawnSizeMin = 20 74 | MobSpawnSizeMax = 20 75 | } 76 | 77 | Director.ResetMobTimer(); 78 | } 79 | 80 | function StopGauntlet() 81 | { 82 | DirectorOptions <- 83 | { 84 | CommonLimit = 0 85 | } 86 | } 87 | 88 | if (Director.IsTankInPlay()) 89 | { 90 | if (FindFurthestSurvivorY() > target_y) 91 | { 92 | StartGauntlet(); 93 | } 94 | else 95 | { 96 | StopGauntlet(); 97 | } 98 | } 99 | else 100 | { 101 | StartGauntlet(); 102 | 103 | // There is assumed to be a generic_ambient entity named 'tank_music' 104 | // that was started when this script was initially kicked off. 105 | // Kill the music now. 106 | EntFire( "tank_music", "StopSound", 0 ); 107 | 108 | 109 | if (FindFurthestSurvivorY() > target_y) 110 | { 111 | // Kill the timer that keeps firing this script. 112 | EntFire( "tank_spawned_timer", "Disable", 0 ); 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/l4d2_si_ffblock.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #include 22 | #include 23 | 24 | 25 | public Plugin:myinfo = 26 | { 27 | name = "L4D2 Infected Friendly Fire Disable", 28 | author = "ProdigySim, Don", 29 | description = "Disables friendly fire between infected players.", 30 | version = "1.2", 31 | url = "http://bitbucket.org/ProdigySim/misc-sourcemod-plugins/" 32 | } 33 | 34 | new bool:lateLoad 35 | new Handle:cvar_ffblock; 36 | new Handle:cvar_allow_tank_ff; 37 | 38 | public OnPluginStart() 39 | { 40 | cvar_ffblock=CreateConVar("l4d2_block_infected_ff", "1", "Disable SI->SI friendly fire"); 41 | cvar_allow_tank_ff=CreateConVar("l4d2_infected_ff_allow_tank", "0", "Do not disable friendly fire for tanks on other SI"); 42 | if(lateLoad) 43 | { 44 | for(new cl=1; cl <= MaxClients; cl++) 45 | { 46 | if(IsClientInGame(cl)) 47 | { 48 | SDKHook(cl, SDKHook_OnTakeDamage, OnTakeDamage); 49 | } 50 | } 51 | } 52 | } 53 | 54 | public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max) 55 | { 56 | lateLoad=late; 57 | return APLRes_Success; 58 | } 59 | 60 | public OnClientPutInServer(client) 61 | { 62 | SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage); 63 | } 64 | 65 | public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3]) 66 | { 67 | if(GetConVarBool(cvar_ffblock) && IsClientAndInGame(victim) && GetClientTeam(victim) == 3 && IsClientAndInGame(attacker) && GetClientTeam(attacker) == 3) 68 | { 69 | if(!GetConVarBool(cvar_allow_tank_ff) || GetEntProp(attacker, Prop_Send, "m_zombieClass") != 8) // If no tank ff or attacker is not tank 70 | { 71 | return Plugin_Handled; 72 | } 73 | } 74 | return Plugin_Continue; 75 | } 76 | 77 | bool:IsClientAndInGame(index) 78 | { 79 | return (index > 0 && index <= MaxClients && IsClientInGame(index)); 80 | } 81 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/botkick.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #pragma semicolon 1 22 | 23 | #include 24 | #include 25 | 26 | new bool: BK_bAllowBot = false; 27 | new bool: BK_bEnable = true; 28 | new Handle: BK_hEnable; 29 | 30 | public Plugin:myinfo = 31 | { 32 | name = "Bot Kick", 33 | author = "LGOFNOC Team", 34 | description = "Prevents infected bots from joining, minus when tank spawns", 35 | version = "1.0", 36 | url = "http://github.com/stabbath/promod" 37 | } 38 | 39 | public OnPluginStart() 40 | { 41 | HookEvent("tank_spawn", BK_TankSpawn); 42 | 43 | BK_hEnable = CreateConVar("blockinfectedbots","1","Blocks infected bots from joining the game, minus when a tank spawns (allows players to spawn a AI infected first before taking control of the tank)"); 44 | HookConVarChange(BK_hEnable,BK_ConVarChange); 45 | 46 | BK_bEnable = GetConVarBool(BK_hEnable); 47 | } 48 | 49 | public BK_ConVarChange(Handle:convar, const String:oldValue[], const String:newValue[]) 50 | { 51 | BK_bEnable = GetConVarBool(BK_hEnable); 52 | } 53 | 54 | public BK_TankSpawn(Handle:event, const String:name[], bool:dontBroadcast) 55 | { 56 | BK_bAllowBot = true; 57 | } 58 | 59 | public bool:OnClientConnect(client, String:rejectmsg[],maxlen) 60 | { 61 | if(!IsFakeClient(client) || !BK_bEnable) 62 | { 63 | return true; 64 | } 65 | 66 | decl String:name[10]; 67 | GetClientName(client, name, sizeof(name)); 68 | 69 | if(StrContains(name, "smoker", false) == -1 && 70 | StrContains(name, "boomer", false) == -1 && 71 | StrContains(name, "hunter", false) == -1 && 72 | StrContains(name, "spitter", false) == -1 && 73 | StrContains(name, "jockey", false) == -1 && 74 | StrContains(name, "charger", false) == -1) 75 | { 76 | return true; 77 | } 78 | 79 | if(BK_bAllowBot) 80 | { 81 | BK_bAllowBot = false; 82 | return true; 83 | } 84 | 85 | KickClient(client,"Kicking infected bot..."); 86 | 87 | return false; 88 | } 89 | -------------------------------------------------------------------------------- /cfg/lgofnoc/promod/stripper/maps/damitdc3.cfg: -------------------------------------------------------------------------------- 1 | ; ======================================================== 2 | ; =================== Dam It 3 ======================= 3 | ; ======================================================== 4 | 5 | ; Ammo pile in little room in the first event room 6 | add: 7 | { 8 | "solid" "6" 9 | "origin" "-3002 792 -1306" 10 | "spawnflags" "2" 11 | "skin" "0" 12 | "model" "models/props/terror/ammo_stack.mdl" 13 | "count" "5" 14 | "body" "0" 15 | "angles" "0 315 0" 16 | "classname" "weapon_ammo_spawn" 17 | } 18 | 19 | ; Ammo pile in the dryer area of the sewers 20 | add: 21 | { 22 | "solid" "6" 23 | "origin" "-1824 3436 -1272" 24 | "spawnflags" "2" 25 | "skin" "0" 26 | "model" "models/props/terror/ammo_stack.mdl" 27 | "count" "5" 28 | "body" "0" 29 | "angles" "0 315 0" 30 | "classname" "weapon_ammo_spawn" 31 | } 32 | 33 | ; Ammo just before grate staircase 34 | add: 35 | { 36 | "solid" "6" 37 | "origin" "153 2392 -770" 38 | "spawnflags" "2" 39 | "skin" "0" 40 | "model" "models/props/terror/ammo_stack.mdl" 41 | "count" "5" 42 | "body" "0" 43 | "angles" "0 315 0" 44 | "classname" "weapon_ammo_spawn" 45 | } 46 | 47 | ; Weapons in room by elevator 48 | add: 49 | { 50 | ; smg 51 | "origin" "-1893 1969 -334" 52 | "weapon_selection" "any_rifle" 53 | "spawnflags" "3" 54 | "spawn_without_director" "0" 55 | "solid" "6" 56 | "skin" "0" 57 | "model" "models/w_models/weapons/w_smg_a.mdl" 58 | "disableshadows" "0" 59 | "count" "4" 60 | "body" "0" 61 | "angles" "0 29 90" 62 | "classname" "weapon_spawn" 63 | } 64 | { 65 | ; shotgun 66 | "origin" "-1888 2031 -334" 67 | "weapon_selection" "tier2_shotgun" 68 | "spawnflags" "3" 69 | "spawn_without_director" "0" 70 | "solid" "6" 71 | "skin" "0" 72 | "model" "models/w_models/weapons/w_shotgun.mdl" 73 | "disableshadows" "0" 74 | "count" "4" 75 | "body" "0" 76 | "angles" "0 29 90" 77 | "classname" "weapon_spawn" 78 | } 79 | 80 | ; Remove hardcoded tank during elevator at the end 81 | modify: 82 | { 83 | match: 84 | { 85 | "targetname" "tank1" 86 | } 87 | delete: 88 | { 89 | "OnTrigger" "z_spawntankSpawnZombie15-1" 90 | } 91 | } 92 | 93 | ; Remove randomness of elevator event 94 | modify: 95 | { 96 | match: 97 | { 98 | "targetname" "tank_case" 99 | } 100 | delete: 101 | { 102 | ; Remove all except Case 3 103 | "OnCase01" "tank1Trigger0-1" 104 | "OnCase02" "tank1Trigger20-1" 105 | ;"OnCase03" "tank1Trigger10-1" 106 | "OnCase06" "tank1Trigger10-1" 107 | "OnCase05" "tank1Trigger20-1" 108 | "OnCase04" "tank1Trigger0-1" 109 | } 110 | } 111 | 112 | ; Make elevator move faster 113 | modify: 114 | { 115 | match: 116 | { 117 | "targetname" "biglift_relay_lower" 118 | } 119 | delete: 120 | { 121 | ; sidenote: biglifts 'speed' is set to 35. 122 | "OnTrigger" "bigliftSetMaxSpeed115-1" 123 | } 124 | insert: 125 | { 126 | "OnTrigger" "bigliftSetMaxSpeed215-1" 127 | } 128 | } 129 | 130 | 131 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/l4d2_startercommon.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #pragma semicolon 1 22 | 23 | #include 24 | 25 | new iDefaultCommonLimit; 26 | new Handle: hCvarCommonLimit; 27 | new Handle: hCvarStarterCommonLimit; 28 | new bool: bGameStarted; 29 | new bool: bInRound; 30 | 31 | public Plugin:myinfo = { 32 | name = "L4D2 Starter Common", 33 | author = "Stabby, original by Blade", 34 | description = "Decreases amount of common before leaving the saferoom to a cvar'd value, and then increases it to the normal value upon leaving saferoom.", 35 | version = "3", 36 | url = "nope" 37 | } 38 | 39 | public OnPluginStart() { 40 | hCvarCommonLimit = FindConVar("z_common_limit"); 41 | hCvarStarterCommonLimit = CreateConVar("z_starting_common_limit", "0", "Common limit to have in place before survivors leave saferoom.", FCVAR_PLUGIN, true, 0.0, false); 42 | 43 | HookEvent("round_start", Event_RoundStart); 44 | HookEvent("round_end", Event_RoundEnd); 45 | HookEvent("player_left_start_area", Event_PlayerLeftStartArea); 46 | } 47 | 48 | public OnPluginEnd() { 49 | SetConVarInt(hCvarCommonLimit, iDefaultCommonLimit); 50 | } 51 | 52 | public Action:Event_RoundEnd(Handle:event, const String:name[], bool:dontBroadcast) { 53 | bInRound = false; 54 | } 55 | 56 | public Action:Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast) { 57 | if (!bGameStarted) { 58 | bGameStarted = true; 59 | iDefaultCommonLimit = GetConVarInt(hCvarCommonLimit); 60 | } 61 | 62 | if (!bInRound) CreateTimer(1.0, Timed_PostRoundStart, _, TIMER_FLAG_NO_MAPCHANGE); 63 | 64 | bInRound = true; 65 | } 66 | 67 | public Action:Timed_PostRoundStart(Handle:timer) { 68 | SetConVarInt(hCvarCommonLimit, GetConVarInt(hCvarStarterCommonLimit)); 69 | } 70 | 71 | public Action:Event_PlayerLeftStartArea(Handle:event, const String:name[], bool:dontBroadcast) { 72 | if (GetClientTeam(GetClientOfUserId(GetEventInt(event, "userid"))) == 2) 73 | SetConVarInt(hCvarCommonLimit, iDefaultCommonLimit); 74 | } 75 | 76 | // vim: ts=4 sw=4 et 77 | -------------------------------------------------------------------------------- /addons/sourcemod/scripting/l4d_jockey_ledgehang.sp: -------------------------------------------------------------------------------- 1 | /* 2 | SourcePawn is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 3 | SourceMod is Copyright (C) 2006-2008 AlliedModders LLC. All rights reserved. 4 | Pawn and SMALL are Copyright (C) 1997-2008 ITB CompuPhase. 5 | Source is Copyright (C) Valve Corporation. 6 | All trademarks are property of their respective owners. 7 | 8 | This program is free software: you can redistribute it and/or modify it 9 | under the terms of the GNU General Public License as published by the 10 | Free Software Foundation, either version 3 of the License, or (at your 11 | option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, but 14 | WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program. If not, see . 20 | */ 21 | #pragma semicolon 1 22 | 23 | #define L4D2UTIL_STOCKS_ONLY 24 | 25 | #include 26 | #include 27 | #include 28 | 29 | new Float:fLedgeHangInterval; 30 | new Handle:hCvarJockeyLedgeHang; 31 | 32 | public Plugin:myinfo = { 33 | name = "L4D2 Jockey Ledge Hang Recharge", 34 | author = "Jahze", 35 | version = "1.0", 36 | description = "Adds a cvar to adjust the recharge timer of a jockey after he ledge hangs a survivor." 37 | }; 38 | 39 | public OnPluginStart() { 40 | hCvarJockeyLedgeHang = CreateConVar("z_leap_interval_post_ledge_hang", "10", "How long before a jockey can leap again after a ledge hang"); 41 | HookConVarChange(hCvarJockeyLedgeHang, JockeyLedgeHangChange); 42 | 43 | fLedgeHangInterval = GetConVarFloat(hCvarJockeyLedgeHang); 44 | 45 | PluginEnable(); 46 | } 47 | 48 | PluginEnable() { 49 | HookEvent("jockey_ride_end", JockeyRideEnd); 50 | } 51 | 52 | public JockeyLedgeHangChange(Handle:hCvar, const String:oldValue[], const String:newValue[]) { 53 | fLedgeHangInterval = StringToFloat(newValue); 54 | } 55 | 56 | public Action:JockeyRideEnd(Handle:hEvent, const String:name[], bool:bDontBroadcast) { 57 | new jockeyAttacker = GetClientOfUserId(GetEventInt(hEvent, "userid")); 58 | new jockeyVictim = GetClientOfUserId(GetEventInt(hEvent, "victim")); 59 | 60 | if (IsHangingFromLedge(jockeyVictim)) { 61 | FixupJockeyTimer(jockeyAttacker); 62 | } 63 | } 64 | 65 | FixupJockeyTimer(client) { 66 | new iEntity = -1; 67 | 68 | while ((iEntity = FindEntityByClassname(iEntity, "ability_leap")) != -1) { 69 | if (GetEntPropEnt(iEntity, Prop_Send, "m_owner") == client) { 70 | break; 71 | } 72 | } 73 | 74 | if (iEntity == -1) { 75 | return; 76 | } 77 | 78 | SetEntPropFloat(iEntity, Prop_Send, "m_timestamp", GetGameTime() + fLedgeHangInterval); 79 | SetEntPropFloat(iEntity, Prop_Send, "m_duration", fLedgeHangInterval); 80 | } 81 | 82 | --------------------------------------------------------------------------------