Quote:
Originally Posted by Jelle
Nope. Look at it again. He never uses gHasSinutte, so making a new boolean for it would be redundant.
He fail at copy pasting, badly. If he would read what is written, he wouldn't be having any problems.
|
True, i suck at it.. But everyone got to start somewhere.
Nothing is learned overnight.. And iv'e showed before i'm a slow learner.. lol
but ill get it working somehow.
As for "ghasSinutte"
It just got me more problems. "Hashero" missing now.
Tried to fix it, but i failed bad. but ill get it to work somehow!
Ok, So here's the new one.. Complied fine and all, but it wont show in herolist.. so i wonder if i missed anything?
PHP Code:
#include <amxmodx>
#include <superheromod>
#include <fakemeta>
new HeroName[] = "Sinutte"
new bool:HasHero[SH_MAXSLOTS+1]
new const deagle_p[] = "models/shmod/Sinutte_p_deagle.mdl";
new const deagle_v[] = "models/shmod/Sinutte_v_deagle.mdl";
new CvardeagleDmgMult
//---------------------------------------------------------------------------------------
public plugin_init()
{
// Plugin Info
register_plugin("SUPERHERO Sinutte", "1.0", "Sinutte")
// DO NOT EDIT THIS FILE TO CHANGE CVARS, USE THE SHCONFIG.CFG
register_cvar("Sinutte_level", "1")
register_cvar("Sinutte_health", "500")
register_cvar("Sinutte_armor", "500")
register_cvar("Sinutte_gravity", "0.8")
register_cvar("Sinutte_speed", "320")
CvardeagleDmgMult = register_cvar("Sinutte_deaglemult", "5.4")
// FIRE THE EVENT TO CREATE THIS SUPERHERO!
shCreateHero(HeroName, "High dmg. Weapon/Hp/Ap/Speed/Gravity", "High dmg. Weapon/Hp/Ap/Speed/Gravity", false, "Sinutte_level")
// REGISTER EVENTS THIS HERO WILL RESPOND TO! (AND SERVER COMMANDS)
// INIT
register_srvcmd("Sinutte_init", "Sinutte_init")
shRegHeroInit(HeroName, "Sinutte_init")
// EVENTS
register_event("CurWeapon", "weapon_change", "be", "1=1")
register_event("Damage", "Sinutte_damage", "b", "2!0")
// Let Server know about the hero's variables
shSetShieldRestrict(HeroName)
shSetMaxHealth(HeroName, "Sinutte_health")
shSetMaxArmor(HeroName, "Sinutte_armor")
shSetMinGravity(HeroName, "Sinutte_gravity")
shSetMaxSpeed(HeroName, "Sinutte_speed", "[0]")
}
//---------------------------------------------------------------------------------------
public plugin_precache()
{
precache_model(deagle_v)
precache_model(deagle_p)
}
//---------------------------------------------------------------------------------------
public Sinutte_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)
// Reset their shield restrict status
// Shield restrict MUST be before weapons are given out
shResetShield(id)
switch(hasPowers)
{
case true:
{
HasHero[id] = true
if ( is_user_alive(id) )
{
Sinutte_weapons(id)
switch_model(id)
}
Sinutte_admincheck(id);
}
case false:
{
// Check is needed since this gets run on clearpowers even if user didn't have this hero
if ( is_user_alive(id) && HasHero[id] )
{
// This gets run if they had the power but don't anymore
engclient_cmd(id, "drop", "weapon_deagle")
shRemHealthPower(id)
shRemArmorPower(id)
shRemGravityPower(id)
shRemSpeedPower(id)
}
HasHero[id] = false
}
}
}
//---------------------------------------------------------------------------------------
public weapon_change(id)
{
if ( !shModActive() || !HasHero[id] )
return
new wpnid = read_data(2)
if ( wpnid != CSW_DEAGLE )
return
switch_model(id)
new clip = read_data(3)
// Never Run Out of Ammo!
if ( clip == 0 )
shReloadAmmo(id)
}
//---------------------------------------------------------------------------------------
public Sinutte_damage(id)
{
if ( !shModActive() || !is_user_alive(id) )
return
new weapon, bodypart, attacker = get_user_attacker(id, weapon, bodypart)
if ( attacker <= 0 || attacker > SH_MAXSLOTS )
return
if ( HasHero[attacker] && weapon == CSW_DEAGLE )
{
new damage = read_data(2)
new headshot = bodypart == 1 ? 1 : 0
// do extra damage
new extraDamage = floatround(damage * get_pcvar_float(CvardeagleDmgMult) - damage)
if ( extraDamage > 0 )
shExtraDamage(id, attacker, extraDamage, "deagle", headshot)
}
}
//---------------------------------------------------------------------------------------
switch_model(id)
{
if ( !shModActive() || !is_user_alive(id) || !HasHero[id] )
return
new clip, ammo, wpnid = get_user_weapon(id, clip, ammo)
if ( wpnid == CSW_DEAGLE )
{
set_pev(id, pev_viewmodel2, deagle_v)
set_pev(id, pev_weaponmodel2, deagle_p)
}
}
//---------------------------------------------------------------------------------------
Sinutte_weapons(id)
{
if ( !shModActive() || !is_user_alive(id) || !HasHero[id] )
return
shGiveWeapon(id, "weapon_deagle")
}
//---------------------------------------------------------------------------------------
Sinutte_admincheck(id) { //admin check function
static const accessLevel[] = "w" //set you admin check level to what you want
/* or make it a cvar:
new accessLevel[10]
get_cvar_string("Sinutte_adminflag", accessLevel, 9)
*/
if ( HasHero[id] && !(get_user_flags(id) & read_flags(accessLevel)) ) {
client_print(id, print_chat, "[SH](%s) **Jeanette ONLY** You are not authorized to use this hero", HeroName)
HasHero[id] = false
client_cmd(id, "say drop %s", HeroName)
}
}