can any one help me fix my first hero.
Code:
//destroyer
/* CVARS - copy and paste cvars to schonfig.cfg
//destroyer
dest_level 11 //level of destroyer
dest_health 3000 //health of destroyer
dest_armor 1000 //armor of destroyer
dest_knifespeed 290 //how fast he can hit with his cyber knife
dest_healpoints 30.0 //how much health destroyer regain
dest_gravity 0.40 //the gravity of destroyer
dest_speed 900 //how fast destroyer is
dest_knifemulti 99.9 //damage multiplier for his cyber knife
dest_hppercent 25.0 //how much his electro tentacles sucks of health out of the victim
*/
#include <amxmod>
#include <vexd_utilities>
#include <superheromod>
//global variables
new gHeroName[]="Destroyer"
new bool:gHasDestroyerPowers[SH_MAXSLOTS+1]
new gPlayerLevels[SH_MAXSLOTS+1]
new gPlayerMaxHealth[SH_MAXSLOTS+1]
new Float:gMultiplier
new gHealPoints
//------------------------------------------------------------------------------
public_init()
{
//plugin info
register_plugin("SUPERHERO Destroyer","1.0","spyhunter")
//DO NOT EDIT THESE CVARS. USE shconfig.cfg
register_cvar("dest_level", "11")
register_cvar("dest_health", "3000")
register_cvar("dest_armor", "1000")
register_cvar("dest_knifespeed", "290")
register_cvar("dest_healpoints", "30.0")
register_cvar("dest_gravity", "0.40")
register_cvar("dest_speed", "900")
register_cvar("dest_knifemulti", "99.9")
register_cvar("dest_hppercent", "25.0")
//FIRE THIS EVENT TO CREATE THIS HERO
shCreateHero(gHeroName, "Destroyer Powers", "Werewolf and wampire fuzed together", false, "dest_level")
//REGISTER EVENTS THIS HERO WILL RESPOND TO! (AND SERVER COMMANDS
register_srvcmd("dest_init", "dest_init")
shRegHeroInit(gHeroName, "dest_init")
shSetMaxHealth(gHeroName, "dest_health" )
shSetMinGravity(gHeroName, "dest_gravity" )
shSetMaxArmor(gHeroName, "dest_armor" )
shSetMaxSpeed(gHeroName, "dest_speed", "[0]" )
//INIT
register_srvcmd("dest_init", "dest_init")
shRegHeroInit(gHeroName,"dest_init")
//LEVELS
register_srvcmd("dest_levels", "dest_levels")
shRegLevels(gHeroName,"dest_levels")
//ENERGY
register_event("damage", "dest_damage", "b", "2!0")
// HEAL LOOP
set_task(30.0,"dest_loop",0,"",0,"b" )
// EXTRA KNIFE DAMAGE
register_event("damage", "dest_damage", "b", "2!0")
// Let server know about Destroyer's max knife speed
shSetMaxSpeed(gHeroName, "dest_knifespeed", "[29]" )
gMultiplier = get_cvar_float("dest_hppercent")
//SUPERHERO tells max health
register_srvcmd("dest_maxhealth", "dest_maxhealth")
shRegMaxHealth(gHeroName, "dest_maxhealth" )
}
//----------------------------------------------------------------------------------------------
public dest_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 destroyer skills
read_argv(2,temp,5)
new hasPowers = str_to_num(temp)
gPlayerMaxHealth[id] = 100
gHasDestroyerPowers[id] = (hasPowers!=0)
// Got to take away powers from a user that dropped Destroyer
if ( !hasPowers && is_user_connected(id) ) {
shRemHealthPower(id)
shRemGravityPower(id)
shRemArmorPower(id)
shRemSpeedPower(id)
}
}
//----------------------------------------------------------------------------------------------
public dest_loop()
{
if (!shModActive()) return
for ( new id = 1; id <= SH_MAXSLOTS; id++ ) {
if ( gHasDestroyerPowers[id] && is_user_alive(id) ) {
// Let the server add the hps back since the # of max hps is controlled by it
shAddHPs(id, gHealPoints, gPlayerMaxHealth[id] )
}
}
}
//----------------------------------------------------------------------------------------------
public dest_levels()
{
new id[5]
new lev[5]
read_argv(1,id,4)
read_argv(2,lev,4)
gPlayerLevels[str_to_num(id)] = str_to_num(lev)
}
//----------------------------------------------------------------------------------------------
public dest_damage(id)
{
if (!shModActive() || !is_user_connected(id)) return
new damage = read_data(2)
new attacker = get_user_attacker(id)
if ( attacker <= 0 || attacker > SH_MAXSLOTS ) return
if ( gHasDestroyerPowers[attacker] && is_user_alive(attacker) && attacker != id ) {
//Add som HP back!
gMultiplier = get_cvar_float("dest_hppercent")
new giveHPs = floatround( damage * gMultiplier * gPlayerLevels[attacker] )
if (get_user_health(attacker) < gPlayerMaxHealth[attacker] && giveHPs > 0 ) {
new alphanum = damage * 2
if (alphanum > 200) alphanum = 200
else if (alphanum < 40) alphanum = 40
setScreenFlash(attacker, 255, 10, 10, 10, alphanum )
shAddHPs(attacker, giveHPs, gPlayerMaxHealth[attacker] )
}
}
}
//----------------------------------------------------------------------------------------------
public dest_maxhealth()
{
new id[6]
new health[9]
read_argv(1,id,5)
read_argv(2,health,8)
gPlayerMaxHealth[str_to_num(id)] = str_to_num(health)
}
//----------------------------------------------------------------------------------------------
public client_connect(id)
{
gHasDestroyerPowers[id] = false
}
//----------------------------------------------------------------------------------------------