AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Plugins (https://forums.alliedmods.net/forumdisplay.php?f=108)
-   -   [CS:GO] Decoy DodgeBall (https://forums.alliedmods.net/showthread.php?t=260416)

gamemann 03-24-2015 21:34

[CS:GO] Decoy DodgeBall
 
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.

virusking 04-07-2015 14:11

Re: [CS:GO] Decoy DodgeBall
 
This is bootiful.

Dr. Greg House 04-09-2015 11:19

Re: [CS:GO] Decoy DodgeBall
 
You are passing clientIDs to timers instead of userIDs or serials.


All times are GMT -4. The time now is 13:03.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.