/* Credits:
- Thanks to Spartan-117 and vittu for their Master Chief Code.
*/
/* CVARS - copy and paste to shconfig.cfg
// Deadpool
deadpool_level 1 //Which level you get the hero
deadpool_knifemult 1.5 //Damage Multiplyer for the Knife (Default 1.5)
deadpool_pistolmult 1.5 //Damage Multiplyer for all Pistols (Default 1.5)
deadpool_shottymult 1.5 //Damage Multiplyer for both Shotgun-Types (Default 1.5)
deadpool_smgmult 1.75 //Damage Multiplyer for all SMGs (Default 1.75)
deadpool_riflemult 1.25 //Damage Multiplyer for all Rifles (Default 1.25)
deadpool_snipermult 1.05 //Damage Multiplyer for all Snipers (Default 1.05)
deadpool_paramult 1.25 //Damage Multiplyer for the M249 alias Para (Default 1.25)
deadpool_givepistols 1 //If you get all pistols or not (0=no | 1=yes - Default 1)
deadpool_giveshotties 0 //If you get both Shotgun-Types or not (0=no | 1=yes - Default 0)
deadpool_givesmgs 0 //If you get all SMGs or not (0=no | 1=yes - Default 0)
deadpool_giverifles 0 //If you get all Rifles or not (0=no | 1=yes - Default 0)
deadpool_givesnipers 0 //If you get all Snipers or not (0=no | 1=yes - Default 0)
deadpool_givepara 0 //If you get the M249 (Para) gun or not (0=no | 1=yes - Default 0)
deadpool_givenades 1 //If you get all Grenades or not (0=no | 1=yes - Default 1)
deadpool_health 105 //How much health the hero has (no extra hp = 100 - Default 105)
deadpool_armor 105 //How much armor the hero has (no extra ap = 100 - Default 105)
*/
#include <amxmodx>
#include <Vexd_Utilities>
#include <superheromod>
/* Changes:
- Version 2.0
Renamed the hero, because the powers changed a bit.
Changed a bit of the code.
*/
// GLOBAL VARIABLES
new gHeroName[]="Deadpool"
new bool:gHasDeadpoolPower[SH_MAXSLOTS+1]
//----------------------------------------------------------------------------------------------
public plugin_init()
{
// Plugin Info
register_plugin("SUPERHERO Deadpool", "2.0", "-]Tical2k[-")
// DO NOT EDIT THIS FILE TO CHANGE CVARS, USE THE SHCONFIG.CFG
register_cvar("deadpool_level", "1")
register_cvar("deadpool_knifemult", "1.5")
register_cvar("deadpool_pistolmult", "1.5")
register_cvar("deadpool_shottymult", "1.5")
register_cvar("deadpool_smgmult", "1.75")
register_cvar("deadpool_riflemult", "1.25")
register_cvar("deadpool_snipermult", "1.05")
register_cvar("deadpool_paramult", "1.25")
register_cvar("deadpool_givepistols", "1")
register_cvar("deadpool_giveshotties", "0")
register_cvar("deadpool_givesmgs", "0")
register_cvar("deadpool_givesnipers", "0")
register_cvar("deadpool_giverifles", "0")
register_cvar("deadpool_givepara", "0")
register_cvar("deadpool_givenades", "1")
register_cvar("deadpool_health", "105")
register_cvar("deadpool_armor", "105")
// FIRE THE EVENT TO CREATE THIS SUPERHERO!
shCreateHero(gHeroName, "More DAMAGE!!!", "Do more damage with every gun + unlimited ammo.", false, "deadpool_level")
// REGISTER EVENTS THIS HERO WILL RESPOND TO! (AND SERVER COMMANDS)
// INIT
register_srvcmd("deadpool_init", "deadpool_init")
shRegHeroInit(gHeroName, "deadpool_init")
// EVENTS
register_event("ResetHUD", "newSpawn", "b")
register_event("CurWeapon", "weaponChange", "be", "1=1")
register_event("Damage", "deadpool_damage", "b", "2!0")
register_event("DeathMsg", "deadpool_death", "a")
// Let Server know about deadpool's Variables
shSetShieldRestrict(gHeroName)
shSetMaxHealth(gHeroName, "deadpool_health")
shSetMaxArmor(gHeroName, "deadpool_armor")
}
//----------------------------------------------------------------------------------------------
public deadpool_init()
{
// First Argument is an id
new temp[6]
read_argv(1, temp, 5)
new id = str_to_num(temp)
// 2nd Argument is 0 or 1 depending on whether the id has the hero
read_argv(2, temp, 5)
new hasPowers = str_to_num(temp)
if (!is_user_connected(id)) return
//Reset thier shield restrict status
//Shield restrict MUST be before weapons are given out
shResetShield(id)
if ( is_user_alive(id) ) {
if ( hasPowers ) {
deadpool_weapons(id)
}
//This gets run if they had the power but don't anymore
else if ( !hasPowers && gHasDeadpoolPower[id] ) {
shRemHealthPower(id)
shRemArmorPower(id)
}
else if ( !hasPowers && gHasDeadpoolPower[id] && get_cvar_num("deadpool_givepistols")) {
engclient_cmd(id, "drop", "weapon_usp")
engclient_cmd(id, "drop", "weapon_glock18")
engclient_cmd(id, "drop", "weapon_p228")
engclient_cmd(id, "drop", "weapon_deagle")
engclient_cmd(id, "drop", "weapon_elite")
engclient_cmd(id, "drop", "weapon_fiveseven")
}
else if ( !hasPowers && gHasDeadpoolPower[id] && get_cvar_num("deadpool_giveshotties")) {
engclient_cmd(id, "drop", "weapon_m3")
engclient_cmd(id, "drop", "weapon_xm1014")
}
else if ( !hasPowers && gHasDeadpoolPower[id] && get_cvar_num("deadpool_givesmgs")) {
engclient_cmd(id, "drop", "weapon_mac10")
engclient_cmd(id, "drop", "weapon_tmp")
engclient_cmd(id, "drop", "weapon_mp5navy")
engclient_cmd(id, "drop", "weapon_ump45")
engclient_cmd(id, "drop", "weapon_p90")
}
else if ( !hasPowers && gHasDeadpoolPower[id] && get_cvar_num("deadpool_giverifles")) {
engclient_cmd(id, "drop", "weapon_galil")
engclient_cmd(id, "drop", "weapon_famas")
engclient_cmd(id, "drop", "weapon_ak47")
engclient_cmd(id, "drop", "weapon_aug")
engclient_cmd(id, "drop", "weapon_sg552")
engclient_cmd(id, "drop", "weapon_m4a1")
}
else if ( !hasPowers && gHasDeadpoolPower[id] && get_cvar_num("deadpool_givesnipers")) {
engclient_cmd(id, "drop", "weapon_scout")
engclient_cmd(id, "drop", "weapon_sg550")
engclient_cmd(id, "drop", "weapon_awp")
engclient_cmd(id, "drop", "weapon_g3sg1")
}
else if ( !hasPowers && gHasDeadpoolPower[id] && get_cvar_num("deadpool_givepara")) {
engclient_cmd(id, "drop", "weapon_m249")
}
}
//Sets this variable to the current status
gHasDeadpoolPower[id] = (hasPowers != 0)
}
//----------------------------------------------------------------------------------------------
public newSpawn(id)
{
if ( gHasDeadpoolPower[id] && is_user_alive(id) && shModActive() ) {
set_task(0.1, "deadpool_weapons", id)
}
}
//----------------------------------------------------------------------------------------------
public deadpool_weapons(id)
{
if ( get_cvar_num("deadpool_givepistols") == 1 ) {
shGiveWeapon(id, "weapon_fiveseven")
shGiveWeapon(id, "weapon_elite")
shGiveWeapon(id, "weapon_usp")
shGiveWeapon(id, "weapon_glock18")
shGiveWeapon(id, "weapon_p228")
shGiveWeapon(id, "weapon_deagle")
}
if ( get_cvar_num("deadpool_giveshotties") == 1 ) {
shGiveWeapon(id, "weapon_xm1014")
shGiveWeapon(id, "weapon_m3")
}
if ( get_cvar_num("deadpool_givesmgs") == 1 ) {
shGiveWeapon(id, "weapon_mac10")
shGiveWeapon(id, "weapon_tmp")
shGiveWeapon(id, "weapon_ump45")
shGiveWeapon(id, "weapon_mp5navy")
shGiveWeapon(id, "weapon_p90")
}
if ( get_cvar_num("deadpool_giverifles") == 1 ) {
shGiveWeapon(id, "weapon_galil")
shGiveWeapon(id, "weapon_famas")
shGiveWeapon(id, "weapon_ak47")
shGiveWeapon(id, "weapon_aug")
shGiveWeapon(id, "weapon_sg552")
shGiveWeapon(id, "weapon_m4a1")
}
if ( get_cvar_num("deadpool_givesnipers") == 1 ) {
shGiveWeapon(id, "weapon_scout")
shGiveWeapon(id, "weapon_g3sg1")
shGiveWeapon(id, "weapon_awp")
shGiveWeapon(id, "weapon_sg550")
}
if ( get_cvar_num("deadpool_givepara") == 1 ) {
shGiveWeapon(id, "weapon_m249")
}
if ( get_cvar_num("deadpool_givenades") == 1 ) {
shGiveWeapon(id, "weapon_hegrenade")
shGiveWeapon(id, "weapon_flashbang")
shGiveWeapon(id, "weapon_smokegrenade")
}
}
//----------------------------------------------------------------------------------------------
public weaponChange(id)
{
if ( !gHasDeadpoolPower[id] || !shModActive() ) return
new clip = read_data(3)
// Never Run Out of Ammo!
if ( clip == 0 ) {
shReloadAmmo(id)
}
}
//----------------------------------------------------------------------------------------------
public deadpool_damage(id)
{
if ( !shModActive() || !is_user_alive(id) ) return
new damage = read_data(2)
new body, weapon, attacker = get_user_attacker(id, weapon, body)
new headshot = body == 1 ? 1 : 0
if ( attacker <= 0 || attacker > SH_MAXSLOTS ) return
if ( gHasDeadpoolPower[attacker] && weapon == CSW_USP && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_pistolmult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "usp", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_GLOCK18 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_pistolmult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "glock18", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_P228 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_pistolmult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "p228", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_DEAGLE && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_pistolmult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "deagle", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_ELITE && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_pistolmult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "elite", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_FIVESEVEN && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_pistolmult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "fiveseven", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_XM1014 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_shottymult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "xm1014", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_M3 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_shottymult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "m3", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_MAC10 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_smgmult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "mac10", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_TMP && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_smgmult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "tmp", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_UMP45 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_smgmult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "ump45", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_MP5NAVY && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_smgmult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "mp5navy", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_P90 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_smgmult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "p90", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_GALIL && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_riflemult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "galil", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_FAMAS && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_riflemult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "famas", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_AK47 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_riflemult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "ak47", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_SCOUT && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_snipermult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "scout", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_AUG && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_riflemult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "aug", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_SG552 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_riflemult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "sg552", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_M4A1 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_riflemult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "m4a1", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_SG550 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_snipermult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "sg550", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_AWP && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_snipermult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "awp", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_G3SG1 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_snipermult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "g3sg1", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_M249 && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_paramult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "m249", headshot)
}
if ( gHasDeadpoolPower[attacker] && weapon == CSW_KNIFE && is_user_alive(id) ) {
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("deadpool_knifemult") - damage)
if (extraDamage > 0) shExtraDamage(id, attacker, extraDamage, "knife", headshot)
}
}
//----------------------------------------------------------------------------------------------
public deadpool_death()
{
new id = read_data(2)
if ( !gHasDeadpoolPower[id] ) return
}
//----------------------------------------------------------------------------------------------