Raised This Month: $51 Target: $400
 12% 

Need help with hero...


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
st0ned
Member
Join Date: Dec 2006
Location: Somewhere
Old 12-29-2006 , 04:38   Need help with hero...
Reply With Quote #1

OK hello people.im totaly noob in coding but i know some stuff still.The problem is-I want to make my hero an admin only hero.I used unclesam as an example but it wont work still.Ok so here is my coding
HTML Code:
// Noob - Exploding Arrows (Bullets from Desert Eagle)
// CVARS
// noob_arrows- How many Arrows does he get each round
// noob_getdeagle - Does he get a free deagle on respawn.
// Edited by ShadowLeader and JTP10181
#include <amxmod>
#include <amxmisc>
#include <superheromod>
// VARIABLES
new gHeroName[]="Noob"
new bool:gHasNoobPower[SH_MAXSLOTS+1]
new bool:gNoobSelected[SH_MAXSLOTS+1]
new gArrowsFired[SH_MAXSLOTS+1]
new gPlayerLevels[SH_MAXSLOTS+1]
new gLastWeapon[SH_MAXSLOTS+1]
new gLastClipCount[SH_MAXSLOTS+1]
new lastammo[SH_MAXSLOTS+1]
new lastweap[SH_MAXSLOTS+1]
// Sprites
new spr_laser
new spr_laser_impact
new spr_blast_shroom
//----------------------------------------------------------------------------------------------
public plugin_init()
{
// Plugin Info
register_plugin("SUPERHERO Noob","1.4","JTP10181/AssKicR")
// FIRE THE EVENT TO CREATE THIS SUPERHERO!
register_cvar("noob_level", "0")
shCreateHero(gHeroName, "exploding deagle shots", "U WILL HAVE A DEAGE WITH 3 EXPLODING SHOTS!!", false, "noob_level" )
// REGISTER EVENTS THIS HERO WILL RESPOND TO! (AND SERVER COMMANDS)
// INIT
register_srvcmd("noob_init", "noob_init")
shRegHeroInit(gHeroName, "noob_init")
register_event("ResetHUD","newRound","b")
// GREEN ARROW DAMAGE
register_event("Damage", "noob_damage", "b", "2!0")
// COUTING ARROWS
register_event("CurWeapon","changeWeapon","be","1=1")
// MAKE A TRAIL OF THE ARROW
register_event("CurWeapon","make_tracer", "be", "1=1", "3>0")
// DEATH
register_event("DeathMsg", "noob_death", "a")
// LEVELS
register_srvcmd("noob_levels", "noob_levels")
shRegLevels(gHeroName,"noob_levels")
// DEFAULT THE CVARS
register_cvar("noob_arrows", "3")
register_cvar("noob_getdeagle", "1")
register_cvar("noob_maxlevel", "7")
}
//----------------------------------------------------------------------------------------------
public noob_init()
{
// First Argument is an id
new temp[5]
read_argv(1,temp,4)
new id=str_to_num(temp)
// 2nd Argument is 0 or 1 depending on whether the id has garrow
read_argv(2,temp,4)
new hasPowers = str_to_num(temp)
gHasNoobPower[id] = (hasPowers!=0)
gNoobSelected[id] = gHasNoobPower[id]
//Setthe hero up for this player
if (gHasNoobPower[id] && is_user_connected(id))
noob_admincheck(id)
}
}
//----------------------------------------------------------------------------------------------
public plugin_precache() {
spr_laser = precache_model("sprites/laserbeam.spr")
spr_laser_impact = precache_model("sprites/zerogxplode.spr")
spr_blast_shroom = precache_model("sprites/mushroom.spr")
}
//----------------------------------------------------------------------------------------------
public newSpawn(id)
{
if ( gNoobSelected[id] && is_user_alive(id) && shModActive() ) {
set_task(0.1, "Noob_admincheck", id)
}
}
//----------------------------------------------------------------------------------------------
public newRound(id)
{
gArrowsFired[id] = 0
gPlayerUltimateUsed[id] = false
gLastWeapon[id] = -1 // I think the change Weapon automatically gets called on spawn death too...
//Check is this player can use the hero
noob_admincheck(id)
if (gHasNoobPower[id] && get_cvar_num("noob_getdeagle")) {
set_task(0.1,"noob_giveweapons",id)
}
}
//----------------------------------------------------------------------------------------------
public noob_death()
{
new id = read_data(2)
//Check is this player can use the hero
noob_admincheck(id)
}
//----------------------------------------------------------------------------------------------
public noob_giveweapons(id)
{
if ( !is_user_alive(id) || !gHasNoobPower[id] ) return
shGiveWeapon(id,"weapon_deagle")
}
//----------------------------------------------------------------------------------------------
public noob_damage(id)
{
new damage = read_data(2)
new weapon, bodypart, attacker_id = get_user_attacker(id,weapon,bodypart)
if ( !shModActive() || !is_user_alive(attacker_id) || !gHasNoobPower[attacker_id]) return PLUGIN_CONTINUE
if (weapon == CSW_DEAGLE && (!gPlayerUltimateUsed[attacker_id]))
{
new health = get_user_health(id)
// mah nigga $id wasn't attacked by another player
if (!is_user_connected(attacker_id)) return PLUGIN_CONTINUE
if (attacker_id == id) return PLUGIN_CONTINUE
// damage is less than 10%
if (((1.0 * damage) / (1.0 * (health + damage))) < 0.01) return PLUGIN_CONTINUE
new origin[3]
new attacker_team[2], victim_team[2]
get_user_origin(id, origin)
// player fades..
set_user_rendering(id, kRenderFxFadeSlow, 255, 255, 255, kRenderTransColor, 4);
// beeeg explody!
message_begin(MSG_ALL, SVC_TEMPENTITY)
write_byte(3) // TE_EXPLOSION
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]-22)
write_short(spr_blast_shroom) // mushroom cloud
write_byte(40) // scale in 0.1u
write_byte(12) // frame rate
write_byte(12) // TE_EXPLFLAG_NOPARTICLES & TE_EXPLFLAG_NOSOUND
message_end()
 
// do turn down that awful racket
// ..to be replaced by a blood spurt!
message_begin(MSG_ALL, SVC_TEMPENTITY)
write_byte(10) // TE_LAVASPLASH
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]-26)
message_end()
// kill victim
user_kill(id, 1)
message_begin( MSG_ALL, get_user_msgid("DeathMsg"),{0,0,0},0)
write_byte(attacker_id)
write_byte(id)
write_byte(0)
write_string("deagle")
message_end()
//Save Hummiliation
new namea[24],namev[24],authida[20],authidv[20],teama[8],teamv[8]
//Info On Attacker
get_user_name(attacker_id,namea,23)
get_user_team(attacker_id,teama,7)
get_user_authid(attacker_id,authida,19)
//Info On Victim
get_user_name(id,namev,23)
get_user_team(id,teamv,7)
get_user_authid(id,authidv,19)
//Log This Kill
log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"Noob^"",
namea,get_user_userid(attacker_id),authida,teama,namev,get_user_userid(id),authidv,teamv)
/* set_user_health(id, 0) */
// team check!
get_user_team(attacker_id, attacker_team, 1)
get_user_team(id, victim_team, 1)
// for some reason this doesn't update in the hud until the next round.. whatever.
if (!equali(attacker_team, victim_team)) {
// diff. team; $attacker_id gets credited for the kill and $250 and XP.
// $id gets their suicidal -1 frag back.
set_user_frags(attacker_id, get_user_frags(attacker_id)+1)
set_user_money(attacker_id, get_user_money(attacker_id)+150)
shAddXP(attacker_id, id, 1)
}
else {
// same team; $attacker loses a frag and $500 and XP.
set_user_frags(attacker_id, get_user_frags(attacker_id)-1)
set_user_money(attacker_id, get_user_money(attacker_id)-500, 0)
shAddXP(attacker_id, id, -1)
}
}
return PLUGIN_CONTINUE
}
//----------------------------------------------------------------------------------------------
public make_tracer(id)
{
if ( !shModActive() || !is_user_alive(id) || !gHasNoobPower[id]) return PLUGIN_CONTINUE
new weap = read_data(2) // id of the weapon
new ammo = read_data(3) // ammo left in clip
if ( weap == CSW_DEAGLE && (!gPlayerUltimateUsed[id]) ) {
if (lastweap[id] == 0) lastweap[id] = weap
if ((lastammo[id] > ammo) && (lastweap[id] == weap)) {
new vec1[3], vec2[3]
get_user_origin(id, vec1, 1) // origin; where you are
get_user_origin(id, vec2, 4) // termina; where your bullet goes
// tracer beam
message_begin(MSG_PAS, SVC_TEMPENTITY, vec1)
write_byte(0) // TE_BEAMPOINTS
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_coord(vec2[0])
write_coord(vec2[1])
write_coord(vec2[2])
write_short(spr_laser) // laserbeam sprite
write_byte(0) // starting frame
write_byte(10) // frame rate
write_byte(2) // life in 0.1s
write_byte(4) // line width in 0.1u
write_byte(1) // noise in 0.1u
write_byte(153) // red
write_byte(0) // green
write_byte(0) // blue
write_byte(80) // brightness
write_byte(100) // scroll speed
message_end()
// bullet impact explosion
message_begin(MSG_PAS, SVC_TEMPENTITY, vec2)
write_byte(3) // TE_EXPLOSION
write_coord(vec2[0]) // end point of beam
write_coord(vec2[1])
write_coord(vec2[2])
write_short(spr_laser_impact) // blast sprite
write_byte(10) // scale in 0.1u
write_byte(30) // frame rate
write_byte(8) // TE_EXPLFLAG_NOPARTICLES
message_end() // ..unless i'm mistaken, noparticles helps avoid a crash
}
lastammo[id] = ammo
lastweap[id] = weap
}
return PLUGIN_CONTINUE
}
//----------------------------------------------------------------------------------------------
public changeWeapon(id)
{
if ( !shModActive() || !is_user_alive(id) || !gHasNoobPower[id]) return PLUGIN_CONTINUE
new clip, ammo
new wpn_id=get_user_weapon(id, clip, ammo);
if ( wpn_id!=CSW_DEAGLE ) return PLUGIN_CONTINUE
// This event gets trigger on a switch to a weapon too...
// Easy work around
if ( wpn_id != gLastWeapon[id] )
{
gLastWeapon[id]=wpn_id
return PLUGIN_CONTINUE // user just switched weapons
}
if ( clip >= gLastClipCount[id] )
{
gLastClipCount[id]=clip
return PLUGIN_CONTINUE
}
gLastClipCount[id]=clip
// Ok - if it fell through here - you got a user firing the scout
// Bullet Count
gArrowsFired[id]=(gArrowsFired[id] + 1)
new arrows = (get_cvar_num("noob_arrows")-gArrowsFired[id])
if (arrows == 0) {
gPlayerUltimateUsed[id]=true
}
if (arrows <= 0) {
gPlayerUltimateUsed[id]=true
}
if ((arrows != 0) && arrows >= 0 ) {
new message[128]
format(message, 127, "You Have %d arrows left",arrows)
set_hudmessage(255,0,0,-1.0,0.3,0,0.25,1.0,0.0,0.0,4)
show_hudmessage(id, message)
}
return PLUGIN_CONTINUE
}
//----------------------------------------------------------------------------------------------
public noob_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)
noob_admincheck(str_to_num(id))
}
//----------------------------------------------------------------------------------------------
public noob_checklevel(id)
{
new noob_maxlvl = get_cvar_num("noob_maxlevel")
if (gHasNoobSelected[id] && gPlayerLevels[id] > noob_maxlvl) {
client_print(id,print_chat, "[SH](%s) You must be level %d or lower to use this hero",gHeroName,noob_maxlvl)
gHasNoobPower[id] = false
client_cmd(id,"say drop %s",gHeroName)
}
}
//----------------------------------------------------------------------------------------------
public hero_admincheck(id)
{
new accessLevel[10]
get_cvar_string("noob_adminflag", accessLevel, 9)
if (gNoobSelected[id] && !(get_user_flags(id)&read_flags(accessLevel))) {
client_print(id, print_chat, "[SH](%s) **Admin Only** You are not authorized to use this hero", gHeroName)
gHeroSelected[id] = false
client_cmd(id, "say drop %s", gHeroName)
return
}
}
//----------------------------------------------------------------------------------------------
Tell me whats wrong.When i try to compile i get 8 errors.Ty in advance
st0ned is offline
Send a message via Skype™ to st0ned
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 10:15.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode