Code:
//Created using micke1101's hero generator for 1.2
#include <superheromod>
new gHeroID
new bool:gHasElement[SH_MAXSLOTS+1]
new gPcvarHealPoints
new gPcvarawpMult
//----------------------------------------------------------------------------------------------
public plugin_init()
{
register_plugin("SUPERHERO Element", SH_VERSION_STR, "Micke1101's Hero generator")
new pcvarLevel = register_cvar("Element_level", "21")
new pcvarHealth = register_cvar("Element_health", "200")
new pcvarArmor = register_cvar("Element_armor", "200")
new pcvarGravity = register_cvar("Element_gravity", "0.15")
gPcvarawpMult = register_cvar("Element_awpmult", "2.0")
gPcvarHealPoints = register_cvar("Element_healpoints", "5")
new heroID = sh_create_hero("Element", pcvarLevel)
sh_set_hero_info(heroID, "Sick awp", "Has an nice awp skin")
sh_set_hero_hpap(heroID, pcvarHealth,pcvarArmor)
sh_set_hero_grav(heroID, pcvarGravity)
set_task(1.0, "Element_loop", _, _, _, "b")
register_event("CurWeapon", "weapon_change", "be", "1=1")
}
public plugin_precache()
{
precache_model("models/shmod/Element_v_awp.mdl")
precache_model("models/shmod/Element_p_awp.mdl")
}
public sh_hero_init(id, heroID, mode)
{
if ( gHeroID != heroID ) return
switch(mode) {
case SH_HERO_ADD: {
gHasElement[id] = true
switch_model(id)
}
case SH_HERO_DROP: {
gHasElement[id] = false
if ( is_user_alive(id) ) {
}
}
}
}
//----------------------------------------------------------------------------------------------
public Element_loop()
{
if ( !sh_is_active() ) return
static players[SH_MAXSLOTS], playerCount, player, i
get_players(players, playerCount, "ah")
for ( i = 0; i < playerCount; i++ ) {
player = players[i]
if ( gHasElement[player] ) {
sh_add_hp(player, get_pcvar_num(gPcvarHealPoints))
}
}
}
//----------------------------------------------------------------------------------------------
public client_damage(attacker, victim, damage, wpnindex, hitplace)
{
if ( !sh_is_active() ) return
if ( !is_user_alive(victim) || !is_user_connected(attacker) ) return
if ( gHasElement[attacker] && wpnindex == CSW_AWP ) {
new headshot = hitplace == 1 ? 1 : 0
new extraDamage = floatround(damage * get_pcvar_float(gPcvarawpMult) - damage)
if ( extraDamage > 0 ) sh_extra_damage(victim, attacker, extraDamage, "awp", headshot)
}
}
public weapon_change(id)
{
if ( !sh_is_active() || !gHasElement[id] ) return
if ( read_data(2) == CSW_AWP ) switch_model(id)
if ( read_data(2) != CSW_AWP ) return
{
if ( read_data(3) == 0 ) {
sh_reload_ammo(id, 1)
}
}
}
public switch_model(id)
{
if ( !sh_is_active() || !is_user_alive(id) || !gHasElement[id] ) return
if ( cs_get_user_shield(id) ) return
if ( get_user_weapon(id) == CSW_AWP ) {
set_pev(id, pev_viewmodel2, "models/shmod/Element_v_awp.mdl")
set_pev(id, pev_weaponmodel2, "models/shmod/Element_p_awp.mdl")
}
}