I love the chaos, for me one of the funniest things of this game is to join a server full of shots, zombies, explosions and screams, the more confusing and chaotic the game, the better. I wanted to create a server of this caracteristics, so a lot of my plugins are focused on this, more zombies, more weapons, harder game... This was the first plugin that I started to make, even before publishing anything on this forum. However it was buggy and crashed sometimes the server, so I wrote the code again from scratch preventing any code error and server crash and I added a lot of optimizations.
Description:
Special infected can drop a Loot Box when killed.
Tanks and Witches can spawn multiple Loot Boxes.
When a Loot Box is opened it can trigger a good or a bad event.
Up to 34 different events.
Boosts and nerfs for survivors who open the box.
Global events that affect the whole game.
Good events (L4D2 only):
Tier 1: Spawn any smg/pumpshotgun.
Tier 2: Spawn rifles, snipers or autoshotguns.
Tier 3: Spawn a grenade launcher or M60.
Drugs: Spawn pain pills or adrenaline.
Medical items: Spawn first aid kit or defibrillators.
Secondary weapon: Spawn pistols, magnums or melee.
Speed boost: Survivor will get movement speed and attack speed bost.
Invulnerability: Survivor won't receive damage from zombies or survivors.
Health regeneration: Survivor will recover health over time and reset incapacitation count.
Fire power: Survivor will burn any attacker or victim if its a zombie.
Infinite ammo: Survivor will have unlimited bullets in its weapon clip.
Explosive shots: When bullets hits obstacles or zombies will cause a big explosion that stuns zombies.
Infinity Gauntlet: Kills the 50 % of all alive zombies, special infected and witches, tanks will have this current health halved.
Survivor resurrection: A random dead survivor will be bring back to life.
Bad events (L4D2 only):
Some zombies: A group of infected will be spawned and attack survivors.
Panic event: More zombies and also a panic event.
Vomit trap: The box will explode, covering near survivors in vomit.
Spit trap: Multiple acid spit will be shot covering the area in acid.
Witch: A witch will spawn where the box has been opened.
Tank: A tank will spawn somewhere, if plugin fails to spawn it randomly, the tank will spawn at the box position.
Toxic Cloud: The box contains a toxic gas that will hurt any survivor around, there is a small chance to get intoxicated.
Jockey: A jockey will spawn at the survivor head and will attempt to ride him instantly.
Explosive Barrel: An explosive barrel will spawn and explode.
Black and white: Survivor will get black and white effect (getting incapacitation will kill the survivor).
Freeze trap: The box will explode and nearby survivors will be frozen.
Reverse controls: Basic controls (forward-back-left-right) will be reversed.
Fragility: Survivor will get extra damage from all sources.
Bear trap: A trap will hurt the survivor and cause a bleeding effect.
Random angles: Survivor view angles will be completely randomized over time.
Firework party: Multiple fireworks will spawn and explode.
Titan zombies: Common infected will increase their size and health.
Admin Commands:
Spoiler
PHP Code:
sm_lootbox_spawn <amount>
// Spawn lootboxes at your crosshair position (requires to look at the floor).
ConVars:
ConVar settings for L4D2 (some default parameters changes in L4D):
Spoiler
PHP Code:
// Amount of bleed hits that survivors will get after opening a bear trap.
// -
// Default: "30"
// Minimum: "1.000000"
l4d_lootbox_bleedhits "30"
// Duration of good Box boosts in seconds.
// 6 values, separated by commas, no spaces.
// <Speed,Invulnerability,Regeneration,FireDamage,InfiniteAmmo,ExplosiveShots>.
// -
// Default: "30.0,25.0,20.0,30.0,25.0,15.0"
l4d_lootbox_boost_durations "30.0,25.0,20.0,30.0,25.0,15.0"
// Multiply the damage received by survivor under fragility by this amount.
// -
// Default: "5.0"
// Minimum: "1.000000"
l4d_lootbox_fragility_multiplier "5.0"
// Amount of time in seconds that survivors will be frozen with the freeze trap.
// -
// Default: "10.0"
// Minimum: "1.000000"
l4d_lootbox_freezetime "10.0"
// Enable plugin in these gamemodes, separated by commas, no spaces.
// Empty to allow all.
// -
// Default: ""
l4d_lootbox_gamemodes ""
// Chance for a survivor to get intoxicated when receiving toxic cloud damage.
// -
// Default: "15.0"
// Minimum: "0.000000"
// Maximum: "100.000000"
l4d_lootbox_intoxication_chance "15.0"
// Lifetime of the Loot Boxes in seconds.
// -
// Default: "30.0"
// Minimum: "10.000000"
// Maximum: "60.000000"
l4d_lootbox_lifetime "30.0"
// Size of megamob obtained from LootBox
// -
// Default: "140"
// Minimum: "30.000000"
l4d_lootbox_megamob_size "140"
// Size of mob obtained from LootBox.
// -
// Default: "80"
// Minimum: "20.000000"
l4d_lootbox_mob_size "80"
// Duration of bad Box nerfs in seconds.
// 13| values, separated by commmas, no spaces.
// <ReverseControls,Fragility,RandomAngles>
// If one value is placed, it will be set for all the durations.
// -
// Default: "60.0,25.0,50.0"
l4d_lootbox_nerf_durations "60.0,25.0,50.0"
// Chance in % to have a good Loot Box opening.
// -
// Default: "50.0"
// Minimum: "0.000000"
// Maximum: "100.000000"
l4d_lootbox_positive_chance "50.0"
// Chance to drop a LootBox when a Special infected dies.
// 1|6 values, separated by commas, no spaces, values from 0.0 to 100.0
// Order:<smoker,boomer,hunter,spitter,jockey,charger>
// If one value is placed, it will be set for all SI.
// -
// Default: "8.0,8.0,8.0,8.0,8.0,8.0"
l4d_lootbox_special_drop_chance "8.0,8.0,8.0,8.0,8.0,8.0"
// Min and max amount of lootboxes dropped when a tank dies.
// 1|2 values, separated by commas, no spaces.
// If 1 value is placed, max and min values will be the same.
// -
// Default: "1,3"
l4d_lootbox_tank_drops "1,3"
// Amount of toxic hits that an intoxicated survivor will receive after intoxication.
// -
// Default: "50"
// Minimum: "1.000000"
l4d_lootbox_toxichits "50"
// Lifetime of the toxic cloud in seconds.
// -
// Default: "40"
// Minimum: "10.000000"
// Maximum: "240.000000"
l4d_lootbox_toxicloud_lifetime "40"
// Lifetime of the weapons/items in boxes, in seconds.
// -
// Default: "20.0"
// Minimum: "15.000000"
// Maximum: "60.000000"
l4d_lootbox_weapon_lifetime "20.0"
// Prevent bots to steal weapons/items this amount of time (0.0 to disable).
// -
// Default: "5.0"
// Minimum: "0.000000"
// Maximum: "15.000000"
l4d_lootbox_weapon_lock "5.0"
// Min and max amount of lootboxes dropped when a witch dies.
// 1|2 values, separated by commas, no spaces.
// If 1 value is placed, max and min values will be the same.
// -
// Default: "1,2"
l4d_lootbox_witch_drops "1,2"
Improve current FX to make the plugin look better.
Changelog:
Spoiler
1.2 (03-Apr-2023)
- Fixed code for SM 1.11.
- Lootbox event weights moved to a config file instead of storing in ConVars.
- Added new events: "Titan zombies" and "Survivor resurrection".
- Fixed bug on "Fragility" event where effect never ended.
- Fixed bugs in plugin messages.
- Fixed plugin errors on tank death.
- Fixed errors with timer handles when player disconnects.
- Fixed black and white code errors on Left 4 Dead.
1.1.1 (17-Jun-2022)
- Fixed errors in message prints.
- Fixed a bug in reverse controls where player couldn't use other buttons apart of movement buttons.
- Fixed array index out of bounds for player death event.
- Modified default special drop chances.
1.1 (16-Jun-2022)
- Merged Left 4 Dead and Left 4 Dead 2 plugin files.
- Fixed error with Toxic Cloud that limited the amount of clouds per round to 8.
- Fixed error where infinite ammo boost was not working properly.
- Optimized client weapon check for infinte ammo boost.
- Fixed warning messages for SM 1.11
- Added new ConVar (l4d2_lootbox_fragility_multiplier).
- Removed public function declarations where they were not required.
- Weapon removal and validation is made through entity index instead of reference.
-
By default killing an special infected has an 8% of chance to drop a Loot Box, common infected doesn't drop any. You can increase the chance of dropping a box by setting "20.0,20.0,20.0,20.0,20.0,20.0", one value for each SI that the game supports, or only one value: "20.0". Plugin will detect this value and asing to all special infected to drop the lootbox with a chance of 20%.
From what I can read the plugin is very good, but it doesn't work in L4D2, the smx file doesn't generate a .cfg file automatically either. Maybe you made a mistake loading the plugin. I configure the .cfg that comes along with the .zip and nothing appears either, I put 100% probability to check and absolutely nothing happens.
From what I can read the plugin is very good, but it doesn't work in L4D2, the smx file doesn't generate a .cfg file automatically either. Maybe you made a mistake loading the plugin. I configure the .cfg that comes along with the .zip and nothing appears either, I put 100% probability to check and absolutely nothing happens.
When you put the .smx in your plugins folder, what error does it print into the console?
From what I can read the plugin is very good, but it doesn't work in L4D2, the smx file doesn't generate a .cfg file automatically either. Maybe you made a mistake loading the plugin. I configure the .cfg that comes along with the .zip and nothing appears either, I put 100% probability to check and absolutely nothing happens.
check well the plugin works correctly, check its dependencies.
In 1.0 I made 2 different files, but I decided to merge both into 1 to prevent adding changes twice in different files increasing the chance to make a mistake in one of both files and to decrease the work required to update the plugin. Also I have optimized the plugin, fixed errors and added a new ConVar.
Code:
1.1 (16-Jun-2022)
- Merged Left 4 Dead and Left 4 Dead 2 plugin files.
- Fixed error with Toxic Cloud that limited the amount of clouds per round to 8.
- Fixed error where infinite ammo boost was not working properly.
- Optimized client weapon check for infinte ammo boost.
- Fixed warning messages for SM 1.11
- Added new ConVar (l4d2_lootbox_fragility_multiplier).
- Removed public function declarations where they were not required.
- Weapon removal and validation is made through entity index instead of reference.