Hello everybody, I originally made this for my community (GFL), but I've finally decided to release it on GitHub and here. I didn't want to release this plugin publicly because I felt it was poorly coded, but I've realized that I should to improve in SourcePawn (by taking suggestions) and giving developers a chance to make the plugin better
Name
Decoy DodgeBall
Description
A Decoy DodgeBall plugin for CS:GO. Basically spawns clients with unlimited Decoys and HP depending on ConVar settings.
ConVars
sm_db_give_time (Default 1.0) - Delay on giving a decoy after another has been thrown.
sm_db_equip_notify (Default 0) - If 1, the user will get a message when a decoy is equipped at spawn.
sm_db_remove_timer (Default 30.0) - Removes all decoys on the ground every X seconds (does this on Player Death, but this is for safety).
sm_db_bounces (Default 1) - Amount of bounces the decoy can have (off a surface), before destroying. This is ineffective if random mode is on.
sm_db_random (Default 0) - If enabled, a random number depending on "sm_db_random_max" and "sm_db_random_min" will be used for the amount of bounces a decoy (dodgeball) can have. (1 = Mode 1, 2 = Mode 2, 3 = Mode 3 0 = Off).
sm_db_random_max (Default 3) - The maximum amount of bounces the decoy (dodgeball) can have using random mode.
sm_db_random_min (Default 1) - The minimum amount of bounces the decoy (dodgeball) can have using random mode.
sm_db_rs_advert (Default 1) - Enables the Round Start advertisement.
sm_db_client_health (Default 1) - Set the health to this number on client spawn.
sm_db_client_armor (Default 0) - Set the armor to this number on client spawn.
sm_db_damage (Default 200.0) - The amount of damage the decoys (dodgeballs) do.
sm_db_debug (Default 0) - Enables debugging for dodgeball (will spam the SourceMod logs if enabled).
sm_db_minigames (Default 0) - Enables the Minigames mode.
sm_db_automode (Default 1) - If 1, if the HP/Armor ConVar is changed, all current alive players will be set to the new values.
sm_db_logfile (Default "logs/dodgeball.log") - The logging file starting from the SourceMod directory.
Random Modes Explained
0
Random mode is disabled and the game-mode is normal along with the amount of decoy (dodgeball) bounces depending on the "
sm_db_bounces" ConVar.
1
Random mode is set to one (1). On every round start, there is a random number generated between "sm_db_random_min" and "sm_db_random_max" that represents the amount of bounces a decoy (dodgeball) can have for that round.
2
Random mode is set to two (2). On every player spawn, there is a random number generated between "sm_db_random_min" and "sm_db_random_max" that represents the amount of bounces a decoy (dodgeball) can have for that round and client only. Therefore, client X could have 2 bounces for every decoy (dodgeball) they throw while client Y can have 3 bounces for every decoy (dodgeball) they throw.
3
Random mode is set to three (3). On every thrown decoy (dodgeball), there is a random number generated between "sm_db_random_min" and "sm_db_random_max" that represents the amount of bounces that decoy (dodgeball) can have for that client. Therefore, client X could throw two decoys (dodgeballs), with the first decoy (dodgeball) having 1 bounce and the second decoy (dodgeball) having 3 bounces while client Y could throw two decoys (dodgeballs), with the first decoy (dodgeball) having 2 bounces and the second decoy (dodgeball) having 1 bounce.
Other (3+ or below 0):
Random mode isn't recognized (likely a number higher than 3). Therefore, the random mode isn't enabled.
MiniGames Explained
If "
sm_db_minigames" is enabled, there will be a random MiniGame selected every round. You can easily configure these MiniGames in "addons/sourcemod/dodgeball_minigames.cfg".
Here is the default "dodgeball_minigames.cfg":
Code:
"Minigames"
{
// Options
// -----------------------------------------------------
// Name - The name of the minigame that will print to chat if selected depending on "announce".
// RSCC (Round Start Custom Config) - A custom config to execute on round start for this minigame (default "") *Starts in gameroot/cfg folder*
// RECC (Round End Custom Config) - A custom config to execute on round end for this minigame (default "") *Starts in gameroot/cfg folder*
// Announce - Whether to announce this minigame on round start if selected (default 0) *Custom minigames will have this enabled but default but normal gameplay will not.
// -----------------------------------------------------
"Default"
{
"name" "Normal"
"rscc" "dodgeball/mg_start_default"
"recc" ""
"announce" "0"
}
"LowGrav"
{
"name" "Low Gravity"
"rscc" "dodgeball/mg_start_lowgrav"
"recc" "dodgeball/mg_end_lowgrav"
"announce" "1"
}
"SuperLowGrav"
{
"name" "Super Low Gravity"
"rscc" "dodgeball/mg_start_superlowgrav"
"recc" "dodgeball/mg_end_superlowgrav"
"announce" "1"
}
"Slide"
{
"name" "Slide"
"rscc" "dodgeball/mg_start_slide"
"recc" "dodgeball/mg_end_slide"
"announce" "1"
}
"SlowRunSpeed"
{
"name" "Slow Run Speed"
"rscc" "dodgeball/mg_start_slowspeed"
"recc" "dodgeball/mg_end_slowspeed"
"announce" "1"
}
}
Installation
* Required *
.smx = addons/sourcemod/plugins
dodgeball_minigames.cfg = addons/sourcemod/configs
* Optional *
.sp = addons/sourcemod/scripting
Download
GitHub Download
GitHub Repository
Overall
I hope you enjoy the plugin. I plan on improving it in the future. Please give me any suggestions/feedback. If required, I will also include the .sp in an attachment, but I would prefer the download to be over GitHub since it's easy to manage from there. I plan on releasing other SourcePawn plugins I've made on AlliedModders in the future (already on my GitHub page).
To-Do List
https://trello.com/b/Z2EMUwXr/cs-go-decoy-dodgeball
Thanks.
__________________