View Single Post
Author Message
Marttt
Veteran Member
Join Date: Jan 2019
Location: Brazil
Old 10-12-2020 , 18:42   [L4D1 & L4D2] Projectile Hittable [v1.0.8 | 05-March-2022]
Reply With Quote #1

Description

This plugin allows the projectiles and throwables below to explode when hit, also outputs to the chat who has exploded it:
  • Molotov
  • Pipe Bomb
  • Vomit Jar
  • Grenade Launcher (only projectile)

Features
  • Allow selecting which projectiles/throwables should explode when hit by chance.
  • Allow selecting which projectiles should output to the chat.
  • Allow selecting which teams should see the message.
  • Output the name of who exploded the projectile to the chat.
  • Allow adding a delay for the molotov ground fire when a molotov projectile is destroyed.
  • Allow controlling the duration of the vomit jar particle/infected chase when a vomit jar is destroyed.
  • Allow controlling the plugin for bots.
  • Allow controlling the plugin for teams.
  • Allow controlling which SI can trigger explosions on unequipped throwables.
  • Allow exploding projectiles on touch by chance.

Chat message examples
  • Mart has exploded a molotov!
  • Mart has exploded a pipe bomb!
  • Mart has exploded a vomit jar!
  • Mart has exploded a grenade!

Cvars

A configuration file named "l4d_projectile_hittable.cfg" will automatically be created for you upon the first run in the "\cfg\sourcemod\" folder.

PHP Code:
// Should the message be transmitted to those who hit it.
// 0 = OFF, 1 = ON.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
l4d_projectile_hittable_announce_self "1"

// Which teams should the message be transmitted to.
// 0 = NONE, 1 = SURVIVOR, 2 = INFECTED, 4 = SPECTATOR, 8 = HOLDOUT.
// Add numbers greater than 0 for multiple options.
// Example: "3", enables for SURVIVOR and INFECTED.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "15.000000"
l4d_projectile_hittable_announce_team "1"

// Plugin behaviour enabled for bots.
// 0 = NONE, 1 = SURVIVOR, 2 = INFECTED, 4 = SPECTATOR, 8 = HOLDOUT.
// Add numbers greater than 0 for multiple options.
// Example: "3", enables for SURVIVOR and INFECTED bots.
// -
// Default: "9"
// Minimum: "0.000000"
// Maximum: "15.000000"
l4d_projectile_hittable_bots "9"

// Enable/Disable the plugin.
// 0 = Disable, 1 = Enable.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
l4d_projectile_hittable_enable "1"

// Allow grenades to explode when hit.
// L4D2 only.
// 0 = OFF, 1 = ON.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
l4d_projectile_hittable_grenade "1"

// Output to the chat every time someone hits a grenade.
// L4D2 only.
// 0 = OFF, 1 = ON.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
l4d_projectile_hittable_grenade_announce "1"

// Chance to grenades explode when hit.
// 0 = OFF.
// -
// Default: "100"
// Minimum: "0.000000"
// Maximum: "100.000000"
l4d_projectile_hittable_grenade_chance "100"

// Allow melee damage to break projectiles.
// 0 = OFF, 1 = ON.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
l4d_projectile_hittable_melee "1"

// Allow molotovs to explode when hit.
// 0 = OFF, 1 = Only thrown molotovs (projectile), 2 = Only ground molotovs (weapon).
// Example: "3", enables explosion for thrown and ground molotovs.
// -
// Default: "3"
// Minimum: "0.000000"
// Maximum: "3.000000"
l4d_projectile_hittable_molotov "3"

// Output to the chat every time someone hits a molotov.
// 0 = OFF, 1 = ON.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
l4d_projectile_hittable_molotov_announce "1"

// Chance to molotovs explode when hit.
// 0 = OFF.
// -
// Default: "100"
// Minimum: "0.000000"
// Maximum: "100.000000"
l4d_projectile_hittable_molotov_chance "100"

// Delay in seconds to molotov create fire spots when hit.
// -
// Default: "1.0"
// Minimum: "0.000000"
l4d_projectile_hittable_molotov_delay "1.0"

// Chance to molotov projectiles to explode on touch.
// 0 = OFF.
// -
// Default: "100"
// Minimum: "0.000000"
// Maximum: "100.000000"
l4d_projectile_hittable_molotov_touch_chance "100"

// Allow pipe bombs to explode when hit.
// 0 = OFF, 1 = Only thrown pipe bombs (projectile), 2 = Only ground pipe bombs (weapon).
// Example: "3", enables explosion for thrown and ground pipe bombs.
// -
// Default: "3"
// Minimum: "0.000000"
// Maximum: "3.000000"
l4d_projectile_hittable_pipebomb "3"

// Output to the chat every time someone hits a pipe bomb.
// 0 = OFF, 1 = ON.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
l4d_projectile_hittable_pipebomb_announce "1"

// Chance to pipe bombs explode when hit.
// 0 = OFF.
// -
// Default: "100"
// Minimum: "0.000000"
// Maximum: "100.000000"
l4d_projectile_hittable_pipebomb_chance "100"

// Chance to pipe bomb projectiles to explode on touch.
// 0 = OFF.
// -
// Default: "100"
// Minimum: "0.000000"
// Maximum: "100.000000"
l4d_projectile_hittable_pipebomb_touch_chance "100"

// Allow shove damage to break projectiles.
// 0 = OFF, 1 = ON.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
l4d_projectile_hittable_shove "1"

// Which special infected can trigger unequipped throwables explosions.
// 1 = SMOKER, 2 = BOOMER, 4 = HUNTER, 8 = SPITTER, 16 = JOCKEY, 32 = CHARGER, 64 = TANK.
// Add numbers greater than 0 for multiple options.
// Example: "127", enables explosion for all SI.
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "127.000000"
l4d_projectile_hittable_si "0"

// Plugin behaviour enabled for these teams.
// 0 = NONE, 1 = SURVIVOR, 2 = INFECTED, 4 = SPECTATOR, 8 = HOLDOUT.
// Add numbers greater than 0 for multiple options.
// Example: "3", enables for SURVIVOR and INFECTED.
// -
// Default: "11"
// Minimum: "0.000000"
// Maximum: "15.000000"
l4d_projectile_hittable_team "11"

// Allow vomit jars to explode when hit.
// 0 = OFF, 1 = Only thrown vomitjars (projectile), 2 = Only ground vomitjars (weapon).
// Example: "3", enables explosion for thrown and ground vomit jars.
// -
// Default: "3"
// Minimum: "0.000000"
// Maximum: "3.000000"
l4d_projectile_hittable_vomitjar "3"

// Output to the chat every time someone hits a vomit jar.
// L4D2 only.
// 0 = OFF, 1 = ON.
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
l4d_projectile_hittable_vomitjar_announce "1"

// Chance to vomit jars explode when hit.
// 0 = OFF.
// -
// Default: "100"
// Minimum: "0.000000"
// Maximum: "100.000000"
l4d_projectile_hittable_vomitjar_chance "100"

// How long (in seconds) the vomit particle and the infected chase should last.
// -
// Default: "20.0"
// Minimum: "0.000000"
l4d_projectile_hittable_vomitjar_duration "20.0"

// Chance to vomit jar projectiles to explode on touch.
// 0 = OFF.
// -
// Default: "100"
// Minimum: "0.000000"
// Maximum: "100.000000"
l4d_projectile_hittable_vomitjar_touch_chance "100" 
Admin Commands
  • sm_print_cvars_l4d_projectile_hittable => Print the plugin related cvars and their respective values to the console. (z flag required)

Change Log

Spoiler


Current Translations
  • en - English
  • es - Spanish
  • hu - Hungarian
  • pt - Brazilian Portuguese
  • pt_p - Portuguese

Notes
  • This plugin precache some models.
  • Vomit jars exploded by the plugin don't spawn extra zombies.
  • When vomit jars or molotovs are exploded in the air, by default it doesn't show particles, so this plugin simulates it.
  • The pipe bomb is the only projectile that doesn't trigger as soon as it touches the ground, so is possible to explode it while in the ground.
  • The vomit jar only applies to the L4D2 game, since L4D1 don't have vomit jars.
  • The grenade only applies to the L4D2 game, since L4D1 don't have grenade launchers.
  • In L4D2 I use the "weapon_drop" event to detect when a weapon is dropped, but in L4D1, since this event doesn't exist, I set the "m_takedamage" netprop to "2" on every ThinkPost (when unequipped/owner = -1).

To Do
  • Add vomit effect (IT) to nearby zombies when a vomit jar is destroyed.

Thank you!

Related Plugins

Post Reply
  • Any feedback, bug reports, fixes, improvements, translations or suggestions for the plugin are welcome.

Installation
  • Put the "l4d_projectile_hittable.phrases.txt" file in your "\addons\sourcemod\translations\" folder.
  • Put the "l4d_projectile_hittable.smx" file (click Get Plugin) in your "\addons\sourcemod\plugins\" folder.
Attached Files
File Type: txt l4d_projectile_hittable.phrases.txt (2.4 KB, 239 views)
File Type: sp Get Plugin or Get Source (l4d_projectile_hittable.sp - 268 views - 54.7 KB)
__________________

Last edited by Marttt; 01-15-2023 at 12:18.
Marttt is online now