Veteran Member
Join Date: Apr 2005
Location: Katy, TX
|
09-23-2004
, 13:05
|
#6
|
Okay... Now my hero works. Or worked
Until I would get it to autoheal like wolverine...
I would like if someone could take a look at the code and tell me what is wrong...
Code:
#include <amxmod.inc>
#include <xtrafun>
#include <superheromod.inc>
#include <Vexd_Utilities>
// SHADOWLEADER!
// CREDITS
// {HOJ} Batman
// Asskickr
// Freecode
// CVARS
// VARIABLES
new gHeroName[]="ShadowLeader"
new gHasshadowPower[SH_MAXSLOTS+1]
new gHealPoints
//-------------------------------------------------------------------------------------------
public plugin_init()
{
register_plugin("SUPERHERO ShadowLeader","1.0","ShadowLeader")
if ( isDebugOn() ) server_print("Attempting to create shadow Hero")
register_cvar("shadow_level", "3" )
shCreateHero(gHeroName, "Mp5 - Hp/Ap/Gravity", "New Mp5 does more dmg - Hp/Ap/Gravity", false, "shadow_level" )
register_srvcmd("shadow_init", "shadow_init")
shRegHeroInit(gHeroName, "shadow_init")
register_event("ResetHUD","newRound","b")
register_event("WeapPickup","model","b","1=19")
register_event("CurWeapon","check_mp5","be","1=1")
register_event("Damage", "shadow_damage", "b", "2!0")
// HEAL LOOP
register_srvcmd("shadow_loop", "shadow_loop")
//shRegLoop1P0(gHeroName, "shadow_loop", "ac") // Alive shadowHeros="ac"
set_task(1.0,"shadow_loop",0,"",0,"b" )
//Cvars
register_cvar("shadow_gravity", "0.35" )
register_cvar("shadow_armor", "250")
register_cvar("shadow_health", "250")
register_cvar("shadow_speed", "300")
register_cvar("shadow_mp5mult", "2.5")
register_cvar("shadow_healpoints", "3" )
gHealPoints=get_cvar_num("shadow_healpoints")
shSetMaxHealth(gHeroName, "shadow_health" )
shSetMinGravity(gHeroName, "shadow_gravity" )
shSetMaxArmor(gHeroName, "shadow_armor" )
shSetMaxSpeed(gHeroName, "shadow_speed", "[0]" )
}
//-------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------
public plugin_precache()
{
precache_model("models/shadow/v_mp5.mdl")
return PLUGIN_CONTINUE
}
//-------------------------------------------------------------------------------------------
public shadow_init()
{
new temp[6]
read_argv(1,temp,5)
new id=str_to_num(temp)
read_argv(2,temp,5)
new hasPowers=str_to_num(temp)
gHasshadowPower[id]=(hasPowers!=0)
if ( hasPowers )
{
gHasshadowPower[id]=true
}
if ( !hasPowers && is_user_connected(id) )
{
gHasshadowPower[id]=false
shRemHealthPower(id)
shRemGravityPower(id)
shRemArmorPower(id)
shRemSpeedPower(id)
}
}
//-------------------------------------------------------------------------------------------
public newRound(id) {
if ( gHasshadowPower[id] && is_user_alive(id) && shModActive() ) {
shadow_weapons(id)
}
return PLUGIN_CONTINUE
}
//-------------------------------------------------------------------------------------------
public shadow_weapons(id) {
if ( !is_user_alive(id) ) return PLUGIN_CONTINUE
shGiveWeapon(id,"weapon_mp5navy")
shGiveWeapon(id,"ammo_9mm")
model(id)
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------
public model(id) {
if ( !is_user_alive(id) ) return PLUGIN_CONTINUE
Entvars_Set_String(id, EV_SZ_viewmodel, "models/shadow/v_mp5.mdl")
new iCurrent
iCurrent = FindEntity(-1,"weapon_mp5navy")
while(iCurrent != -1) {
iCurrent = FindEntity(iCurrent,"weapon_mp5navy")
}
return PLUGIN_HANDLED
}
//--------------------------------------------------------------------------------------------
public check_mp5(id)
{
if ( !gHasshadowPower[id] || !shModActive() ) return PLUGIN_CONTINUE
new clip, ammo
new wpn_id=get_user_weapon(id, clip, ammo)
if ( wpn_id == CSW_MP5NAVY ) model(id)
if ( !gHasshadowPower[id] || !shModActive() ) return PLUGIN_CONTINUE
new wpn[32]
if ( wpn_id!=CSW_MP5NAVY ) return PLUGIN_CONTINUE
// Never Run Out of Ammo!
if ( clip == 0 )
{
get_weaponname(wpn_id,wpn,31)
give_item(id,wpn)
engclient_cmd(id, wpn )
engclient_cmd(id, wpn )
engclient_cmd(id, wpn )
}
return PLUGIN_CONTINUE
}
//--------------------------------------------------------------------------------------------
public shadow_damage(id)
{
if (!shModActive()) return PLUGIN_CONTINUE
new damage = read_data(2)
new weapon, bodypart, attacker = get_user_attacker(id,weapon,bodypart)
if ( attacker <=0 || attacker>SH_MAXSLOTS ) return PLUGIN_CONTINUE
if ( gHasshadowPower[attacker] && weapon == CSW_MP5NAVY && is_user_alive(id) )
{
// do extra damage
new extraDamage = floatround(damage * get_cvar_float("shadow_mp5mult") - damage)
shExtraDamage( id, attacker, extraDamage, "mp5navy" )
}
return PLUGIN_CONTINUE
}
//--------------------------------------------------------------------------------------------
public shadow_loop()
{
for ( new id=1; id<=SH_MAXSLOTS; id++ )
{
if ( g_hasshadowPowers[id] && is_user_alive(id) )
{
// Let the server add the hps back since the # of max hps is controlled by it
// I.E. Superman has more than 100 hps etc.
// So we don't have to pass server messages - I'm going to set a cvar here...
//shAddHPs(id, get_cvar_num("shadow_healpoints") )
shAddHPs(id, gHealPoints, 100 )
}
}
}
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------
__________________
//ShadowLeader - 123
|
|