View Single Post
Author Message
gamemann
Veteran Member
Join Date: Sep 2009
Location: Mullica Hill, New Jersey
Old 03-24-2015 , 21:34   [CS:GO] Decoy DodgeBall
Reply With Quote #1

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.
__________________
Software/network engineer. I often work on a neat project called The Modding Community.

Check out my GitHub here!

Last edited by gamemann; 09-23-2015 at 20:08.
gamemann is offline
Send a message via Skype™ to gamemann