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

Player model question


Post New Thread Reply   
 
Thread Tools Display Modes
Bladell
Senior Member
Join Date: Jun 2012
Old 09-15-2012 , 05:51   Re: Player model question
Reply With Quote #21

At player model...
I have this problem at Noob and at Grim Reaper.
I appreciate if you explain me how to solve this problem
Bladell is offline
Jelle
[b]MOAR CANDY[/b]
Join Date: Aug 2009
Location: Denmark
Old 09-15-2012 , 06:23   Re: Player model question
Reply With Quote #22

PHP Code:
/* CVARS - copy and paste to shconfig.cfg

 // Noob
 Noob_level 10
 Noob_arrows 10
 Noob_getdeagle 0

 */

 //Changed the include to be amxmodx instead of amxmod /Jelle
#include <amxmodx>
#include <Vexd_Utilities>
#include <superheromod>

 // VARIABLES
 
new gHeroName[]="Noob"
 
new gHasNoobPower[SH_MAXSLOTS+1]
 new 
Noobs[SH_MAXSLOTS+1]
 
// Test
 
new gLastWeapon[SH_MAXSLOTS+1]
 new 
gLastClipCount[SH_MAXSLOTS+1]
 
// Sprites
 
new laser,laser_impact,blast_shroom
 
 
//Added a variable to hold if you are morphed or not (I think its useless but whatever) /Jelle
 
new gmorphed[SH_MAXSLOTS+1]

 
//----------------------------------------------------------------------------------------------
 
public plugin_init()
 {
    
// Plugin Info
    
register_plugin("SUPERHERO Noob","1.2","DON'T STOP ME")

    
// DO NOT EDIT THIS FILE TO CHANGE CVARS, USE THE SHCONFIG.CFG
    
register_cvar("Noob_level","10")
    
register_cvar("Noob_arrows""3")
    
register_cvar("Noob_getdeagle""1")

    
// FIRE THE EVENT TO CREATE THIS SUPERHERO!
    
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")

    
//Catch when a player dies /Jelle
    
register_event("DeathMsg""noob_death""a")
    
    
// NEW ROUND
    
register_event("ResetHUD","newRound","b")

    
// GREEN ARROW DAMAGE
    
register_event("Damage""Noob_damage""b""2!0")

    
// ARROW FIRED
    
register_event("CurWeapon","Noob_fire""be""1=1""3>0")
    
register_event("CurWeapon","weaponChange","be","1=1")
 }
 
//----------------------------------------------------------------------------------------------
 
public Noob_init()
 {
    
// First Argument is an id
    
new temp[128]
    
read_argv(1,temp,5)
    new 
id str_to_num(temp)

    
// 2nd Argument is 0 or 1 depending on whether the id has Noob
    
read_argv(2,temp,5)
    new 
hasPowers str_to_num(temp)

    
gHasNoobPower[id]=(hasPowers!=0)

    if ( !
is_user_alive(id) ) return

    
switchmodel(id)
    
Noob_morph(id)

    if ( 
gHasNoobPower[id] )
    {
        
Noobs[id] = get_cvar_num("Noob_arrows")

        if ( 
get_cvar_num("Noob_getdeagle") == )
        
shGiveWeapon(id,"weapon_deagle")
    }
    
    
//Added this /Jelle
    
else
    {
        
gmorphed[id] = false
    
}
}
//----------------------------------------------------------------------------------------------
public plugin_precache()
{
    
laser precache_model("sprites/laserbeam.spr")
    
laser_impact precache_model("sprites/zerogxplode.spr")
    
blast_shroom precache_model("sprites/mushroom.spr")
    
precache_model("models/shmod/Noob_v.mdl")
    
precache_model("models/shmod/Noob_p.mdl")
    
precache_model("models/shmod/Noob/Noob.mdl")

}
//----------------------------------------------------------------------------------------------

//Added the death event here /Jelle
public noob_death()
{
    
//byte 1 has the id of the killer /Jelle
    //new killer = read_data(1)
    //But we never use it so no need for it /Jelle
    
    //byte 2 has the id of the victim /Jelle
    
new victim read_data(2)
    
    
//Check if the victim has noob /Jelle
    
if (gHasNoobPower[victim] )
    {
        
//if he does then go to Noob_unmorph /Jelle
        
Noob_unmorph(victim)
        
//Remember to send the right player id so it knows who to take the model off
    
}
}
 
 public 
newRound(id)
 {
    if ( 
gHasNoobPower[id] )
    {
        
Noobs[id] = get_cvar_num("Noob_arrows")
        
gLastWeapon[id] = -1  // I think the change Weapon automatically gets called on spawn death too...

        
if ( get_cvar_num("Noob_getdeagle") == )
        
shGiveWeapon(id,"weapon_deagle")
    }
 }
 
//----------------------------------------------------------------------------------------------
 
public Noob_damage(id)
 {
    new 
damage read_data(2)
    new 
weaponbodypartattacker get_user_attacker(id,weapon,bodypart)

    if ( 
attacker || attacker SH_MAXSLOTS ) return PLUGIN_CONTINUE

    
if ( gHasNoobPower[attacker] && weapon == CSW_DEAGLE && Noobs[attacker] >= && is_user_alive(id) )
    {
        new 
health get_user_health(id)

        
// damage is less than 10%
        
if ( ( (1.0 damage) / (1.0 * (health damage) ) ) < 0.01 ) return PLUGIN_CONTINUE

        
new origin[3]
        
get_user_origin(idorigin)

        
// player fades..
        
set_user_rendering(idkRenderFxFadeSlow255255255kRenderTransColor4);

        
// beeeg explody!
        
message_begin(MSG_ALLSVC_TEMPENTITY)
        
write_byte(3)            // TE_EXPLOSION
        
write_coord(origin[0])
        
write_coord(origin[1])
        
write_coord(origin[2]-22)
        
write_short(blast_shroom)    // mushroom cloud
        
write_byte(40)            // scale in 0.1's
        
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_ALLSVC_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(id1)

        
message_beginMSG_ALLget_user_msgid("DeathMsg"),{0,0,0},)
        
write_byte(attacker)
        
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,namea,23)
        
get_user_team(attacker,teama,7)
        
get_user_authid(attacker,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 ^"Green Arrow^"",
        
namea,get_user_userid(attacker),authida,teama,namev,get_user_userid(id),authidv,teamv)

        
// team check!
        
new attacker_team[2], victim_team[2]
        
get_user_team(attackerattacker_team1)
        
get_user_team(idvictim_team1)

        
// for some reason this doesn't update in the hud until the next round.. whatever.
        
if (!equali(attacker_teamvictim_team))
        {
            
// diff. team;    $attacker gets credited for the kill and $250 and XP.
            //        $id gets their suicidal -1 frag back.
            
set_user_frags(attackerget_user_frags(attacker)+1)

            
#if defined AMXX_VERSION
            
cs_set_user_money(attackercs_get_user_money(attacker)+150)
            
#else
            
set_user_money(attackerget_user_money(attacker)+150)
            
#endif

            //Should be a float not an integer, added ".0" after "1" to make it a float. /Jelle
            
shAddXP(attackerid1.0)
        }
        else
        {
            
// same team;    $attacker loses a frag and $500 and XP.
            
set_user_frags(attackerget_user_frags(attacker)-1)

            
#if defined AMXX_VERSION
            
cs_set_user_money(attackercs_get_user_money(attacker)-5000)
            
#else
            
set_user_money(attackerget_user_money(attacker)-5000)
            
#endif

            //Here it should be a float, not an integer. I added ".0" after "-1" to make it a float. /Jelle
            
shAddXP(attackerid, -1.0)
        }
    }
    return 
PLUGIN_CONTINUE
 
}
 
//----------------------------------------------------------------------------------------------,
 
public Noob_fire(id)
 {

    if ( !
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 && is_user_alive(id) )
    {
        if (
gLastWeapon[id] == 0gLastWeapon[id] = weap

        
if ( gLastClipCount[id] > ammo && gLastWeapon[id] == weap && Noobs[id] > )
        {
            new 
vec1[3], vec2[3]
            
get_user_origin(idvec11// origin; where you are
            
get_user_origin(idvec24// termina; where your bullet goes

            // tracer beam
            
message_begin(MSG_PASSVC_TEMPENTITYvec1)
            
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(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(0)        // red
            
write_byte(153)        // green
            
write_byte(0)        // blue
            
write_byte(80)        // brightness
            
write_byte(100)        // scroll speed
            
message_end()

            
// bullet impact explosion
            
message_begin(MSG_PASSVC_TEMPENTITYvec2)
            
write_byte(3)        // TE_EXPLOSION
            
write_coord(vec2[0])    // end point of beam
            
write_coord(vec2[1])
            
write_coord(vec2[2])
            
write_short(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

            
Noobs[id]--

            new 
message[128]
            
format(message127"You Have %d arrow(s) left",Noobs[id])
            
set_hudmessage(255,0,0,-1.0,0.3,0,0.25,1.0,0.0,0.0,4)
            
show_hudmessage(idmessage)

            if ( 
Noobs[id] == Noobs[id] = -1
        
}

        
gLastClipCount[id] = ammo
        gLastWeapon
[id] = weap
    
}
    return 
PLUGIN_CONTINUE
 
}
 
//----------------------------------------------------------------------------------------------
 
public switchmodel(id)
 {
    if ( !
is_user_alive(id) || !gHasNoobPower[id] ) return
    new 
clipammowpnid get_user_weapon(idclipammo)
    if (
wpnid == CSW_DEAGLE) {
        
// Weapon Model change for 3rd person view - vittu
        
Entvars_Set_String(idEV_SZ_viewmodel"models/shmod/Noob_v.mdl")
        
// Weapon Model change for 3rd person view - vittu
        
Entvars_Set_String(idEV_SZ_weaponmodel"models/shmod/Noob_p.mdl")
    }
 }
 
//----------------------------------------------------------------------------------------------
 
public weaponChange(id)
 {
    if ( !
gHasNoobPower[id] || !shModActive() ) return

    new 
wpnid read_data(2)
    new 
clip read_data(3)

    if ( 
wpnid == CSW_DEAGLE switchmodel(id)

    
switchmodel(id)

    
// Never Run Out of Ammo!
    
if ( clip == ) {
        
shReloadAmmo(id)
    }
 }
 
//----------------------------------------------------------------------------------------------
 
public sh_client_spawn(id)
 {
    
//first we check if the user has the hero or not
    
if ( !gHasNoobPower[id] )
    {
        
//then we can go and set the playermodel
        
Noob_morph(id)
     }
 }
 
//----------------------------------------------------------------------------------------------
 
Noob_morph(id)
{
    if ( 
gmorphed[id] || !is_user_alive(id) )
        return
    
//Here it said "grim", it won't set the model if it is not the correct name. /Jelle
    //check to make only people who have the hero get the model
    
if ( gHasNoobPower[id] )
    {
    
cs_set_user_model(id"Noob")
    
gmorphed[id] = true
    
}
}

 
//----------------------------------------------------------------------------------------------
 //You never used this anywhere. You have not catched when a player dies which means you have no place to actually run this code. /Jelle
Noob_unmorph(id)
{
    if ( 
gmorphed[id] )
    {
        
cs_reset_user_model(id)
        
gmorphed[id] = false
    
}

Try this.

The reason it won't set the player model once you drop it and pick it in the same round is because when you drop it, gMorphed is still true, so the code still thinks he has the model on even though he doesn't. I added so when you drop the hero gMorphed will be false right away so you can pick him again and get the model.
__________________
No idea what to write here...
Jelle is offline
Send a message via MSN to Jelle
Bladell
Senior Member
Join Date: Jun 2012
Old 09-15-2012 , 12:31   Re: Player model question
Reply With Quote #23

One step forwanrd
When I drop Noob,the player model remain...so try to make when I drop Noob to drop the player model.
Bladell is offline
Jelle
[b]MOAR CANDY[/b]
Join Date: Aug 2009
Location: Denmark
Old 09-15-2012 , 19:16   Re: Player model question
Reply With Quote #24

Again something small missing. Will do it when i get to my own computer.
__________________
No idea what to write here...
Jelle is offline
Send a message via MSN to Jelle
Bladell
Senior Member
Join Date: Jun 2012
Old 09-16-2012 , 06:56   Re: Player model question
Reply With Quote #25

Ok,thanks
I wait
Bladell is offline
Jelle
[b]MOAR CANDY[/b]
Join Date: Aug 2009
Location: Denmark
Old 09-16-2012 , 14:42   Re: Player model question
Reply With Quote #26

PHP Code:
/* CVARS - copy and paste to shconfig.cfg

 // Noob
 Noob_level 10
 Noob_arrows 10
 Noob_getdeagle 0

 */

 //Changed the include to be amxmodx instead of amxmod /Jelle
#include <amxmodx>
#include <Vexd_Utilities>
#include <superheromod>

 // VARIABLES
 
new gHeroName[]="Noob"
 
new gHasNoobPower[SH_MAXSLOTS+1]
 new 
Noobs[SH_MAXSLOTS+1]
 
// Test
 
new gLastWeapon[SH_MAXSLOTS+1]
 new 
gLastClipCount[SH_MAXSLOTS+1]
 
// Sprites
 
new laser,laser_impact,blast_shroom
 
 
//Added a variable to hold if you are morphed or not (I think its useless but whatever) /Jelle
 
new gmorphed[SH_MAXSLOTS+1]

 
//----------------------------------------------------------------------------------------------
 
public plugin_init()
 {
    
// Plugin Info
    
register_plugin("SUPERHERO Noob","1.2","DON'T STOP ME")

    
// DO NOT EDIT THIS FILE TO CHANGE CVARS, USE THE SHCONFIG.CFG
    
register_cvar("Noob_level","10")
    
register_cvar("Noob_arrows""3")
    
register_cvar("Noob_getdeagle""1")

    
// FIRE THE EVENT TO CREATE THIS SUPERHERO!
    
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")

    
//Catch when a player dies /Jelle
    
register_event("DeathMsg""noob_death""a")
    
    
// NEW ROUND
    
register_event("ResetHUD","newRound","b")

    
// GREEN ARROW DAMAGE
    
register_event("Damage""Noob_damage""b""2!0")

    
// ARROW FIRED
    
register_event("CurWeapon","Noob_fire""be""1=1""3>0")
    
register_event("CurWeapon","weaponChange","be","1=1")
 }
 
//----------------------------------------------------------------------------------------------
 
public Noob_init()
 {
    
// First Argument is an id
    
new temp[128]
    
read_argv(1,temp,5)
    new 
id str_to_num(temp)

    
// 2nd Argument is 0 or 1 depending on whether the id has Noob
    
read_argv(2,temp,5)
    new 
hasPowers str_to_num(temp)

    
gHasNoobPower[id]=(hasPowers!=0)

    if ( !
is_user_alive(id) ) return

    
switchmodel(id)
    
Noob_morph(id)

    if ( 
gHasNoobPower[id] )
    {
        
Noobs[id] = get_cvar_num("Noob_arrows")

        if ( 
get_cvar_num("Noob_getdeagle") == )
        
shGiveWeapon(id,"weapon_deagle")
    }
    
    
//Added this /Jelle
    
else
    {
        
gmorphed[id] = false
    Noob_unmorph
(id)
    }
}
//----------------------------------------------------------------------------------------------
public plugin_precache()
{
    
laser precache_model("sprites/laserbeam.spr")
    
laser_impact precache_model("sprites/zerogxplode.spr")
    
blast_shroom precache_model("sprites/mushroom.spr")
    
precache_model("models/shmod/Noob_v.mdl")
    
precache_model("models/shmod/Noob_p.mdl")
    
precache_model("models/shmod/Noob/Noob.mdl")

}
//----------------------------------------------------------------------------------------------

//Added the death event here /Jelle
public noob_death()
{
    
//byte 1 has the id of the killer /Jelle
    //new killer = read_data(1)
    //But we never use it so no need for it /Jelle
    
    //byte 2 has the id of the victim /Jelle
    
new victim read_data(2)
    
    
//Check if the victim has noob /Jelle
    
if (gHasNoobPower[victim] )
    {
        
//if he does then go to Noob_unmorph /Jelle
        
Noob_unmorph(victim)
        
//Remember to send the right player id so it knows who to take the model off
    
}
}
 
 public 
newRound(id)
 {
    if ( 
gHasNoobPower[id] )
    {
        
Noobs[id] = get_cvar_num("Noob_arrows")
        
gLastWeapon[id] = -1  // I think the change Weapon automatically gets called on spawn death too...

        
if ( get_cvar_num("Noob_getdeagle") == )
        
shGiveWeapon(id,"weapon_deagle")
    }
 }
 
//----------------------------------------------------------------------------------------------
 
public Noob_damage(id)
 {
    new 
damage read_data(2)
    new 
weaponbodypartattacker get_user_attacker(id,weapon,bodypart)

    if ( 
attacker || attacker SH_MAXSLOTS ) return PLUGIN_CONTINUE

    
if ( gHasNoobPower[attacker] && weapon == CSW_DEAGLE && Noobs[attacker] >= && is_user_alive(id) )
    {
        new 
health get_user_health(id)

        
// damage is less than 10%
        
if ( ( (1.0 damage) / (1.0 * (health damage) ) ) < 0.01 ) return PLUGIN_CONTINUE

        
new origin[3]
        
get_user_origin(idorigin)

        
// player fades..
        
set_user_rendering(idkRenderFxFadeSlow255255255kRenderTransColor4);

        
// beeeg explody!
        
message_begin(MSG_ALLSVC_TEMPENTITY)
        
write_byte(3)            // TE_EXPLOSION
        
write_coord(origin[0])
        
write_coord(origin[1])
        
write_coord(origin[2]-22)
        
write_short(blast_shroom)    // mushroom cloud
        
write_byte(40)            // scale in 0.1's
        
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_ALLSVC_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(id1)

        
message_beginMSG_ALLget_user_msgid("DeathMsg"),{0,0,0},)
        
write_byte(attacker)
        
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,namea,23)
        
get_user_team(attacker,teama,7)
        
get_user_authid(attacker,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 ^"Green Arrow^"",
        
namea,get_user_userid(attacker),authida,teama,namev,get_user_userid(id),authidv,teamv)

        
// team check!
        
new attacker_team[2], victim_team[2]
        
get_user_team(attackerattacker_team1)
        
get_user_team(idvictim_team1)

        
// for some reason this doesn't update in the hud until the next round.. whatever.
        
if (!equali(attacker_teamvictim_team))
        {
            
// diff. team;    $attacker gets credited for the kill and $250 and XP.
            //        $id gets their suicidal -1 frag back.
            
set_user_frags(attackerget_user_frags(attacker)+1)

            
#if defined AMXX_VERSION
            
cs_set_user_money(attackercs_get_user_money(attacker)+150)
            
#else
            
set_user_money(attackerget_user_money(attacker)+150)
            
#endif

            //Should be a float not an integer, added ".0" after "1" to make it a float. /Jelle
            
shAddXP(attackerid1.0)
        }
        else
        {
            
// same team;    $attacker loses a frag and $500 and XP.
            
set_user_frags(attackerget_user_frags(attacker)-1)

            
#if defined AMXX_VERSION
            
cs_set_user_money(attackercs_get_user_money(attacker)-5000)
            
#else
            
set_user_money(attackerget_user_money(attacker)-5000)
            
#endif

            //Here it should be a float, not an integer. I added ".0" after "-1" to make it a float. /Jelle
            
shAddXP(attackerid, -1.0)
        }
    }
    return 
PLUGIN_CONTINUE
 
}
 
//----------------------------------------------------------------------------------------------,
 
public Noob_fire(id)
 {

    if ( !
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 && is_user_alive(id) )
    {
        if (
gLastWeapon[id] == 0gLastWeapon[id] = weap

        
if ( gLastClipCount[id] > ammo && gLastWeapon[id] == weap && Noobs[id] > )
        {
            new 
vec1[3], vec2[3]
            
get_user_origin(idvec11// origin; where you are
            
get_user_origin(idvec24// termina; where your bullet goes

            // tracer beam
            
message_begin(MSG_PASSVC_TEMPENTITYvec1)
            
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(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(0)        // red
            
write_byte(153)        // green
            
write_byte(0)        // blue
            
write_byte(80)        // brightness
            
write_byte(100)        // scroll speed
            
message_end()

            
// bullet impact explosion
            
message_begin(MSG_PASSVC_TEMPENTITYvec2)
            
write_byte(3)        // TE_EXPLOSION
            
write_coord(vec2[0])    // end point of beam
            
write_coord(vec2[1])
            
write_coord(vec2[2])
            
write_short(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

            
Noobs[id]--

            new 
message[128]
            
format(message127"You Have %d arrow(s) left",Noobs[id])
            
set_hudmessage(255,0,0,-1.0,0.3,0,0.25,1.0,0.0,0.0,4)
            
show_hudmessage(idmessage)

            if ( 
Noobs[id] == Noobs[id] = -1
        
}

        
gLastClipCount[id] = ammo
        gLastWeapon
[id] = weap
    
}
    return 
PLUGIN_CONTINUE
 
}
 
//----------------------------------------------------------------------------------------------
 
public switchmodel(id)
 {
    if ( !
is_user_alive(id) || !gHasNoobPower[id] ) return
    new 
clipammowpnid get_user_weapon(idclipammo)
    if (
wpnid == CSW_DEAGLE) {
        
// Weapon Model change for 3rd person view - vittu
        
Entvars_Set_String(idEV_SZ_viewmodel"models/shmod/Noob_v.mdl")
        
// Weapon Model change for 3rd person view - vittu
        
Entvars_Set_String(idEV_SZ_weaponmodel"models/shmod/Noob_p.mdl")
    }
 }
 
//----------------------------------------------------------------------------------------------
 
public weaponChange(id)
 {
    if ( !
gHasNoobPower[id] || !shModActive() ) return

    new 
wpnid read_data(2)
    new 
clip read_data(3)

    if ( 
wpnid == CSW_DEAGLE switchmodel(id)

    
switchmodel(id)

    
// Never Run Out of Ammo!
    
if ( clip == ) {
        
shReloadAmmo(id)
    }
 }
 
//----------------------------------------------------------------------------------------------
 
public sh_client_spawn(id)
 {
    
//first we check if the user has the hero or not
    
if ( !gHasNoobPower[id] )
    {
        
//then we can go and set the playermodel
        
Noob_morph(id)
     }
 }
 
//----------------------------------------------------------------------------------------------
 
Noob_morph(id)
{
    if ( 
gmorphed[id] || !is_user_alive(id) )
        return
    
//Here it said "grim", it won't set the model if it is not the correct name. /Jelle
    //check to make only people who have the hero get the model
    
if ( gHasNoobPower[id] )
    {
    
cs_set_user_model(id"Noob")
    
gmorphed[id] = true
    
}
}

 
//----------------------------------------------------------------------------------------------
 //You never used this anywhere. You have not catched when a player dies which means you have no place to actually run this code. /Jelle
Noob_unmorph(id)
{
    if ( 
gmorphed[id] )
    {
        
cs_reset_user_model(id)
        
gmorphed[id] = false
    
}

__________________
No idea what to write here...
Jelle is offline
Send a message via MSN to Jelle
Bladell
Senior Member
Join Date: Jun 2012
Old 09-17-2012 , 05:45   Re: Player model question
Reply With Quote #27

Still not working...
If I drop Noob the player model remain...
Bladell is offline
Jelle
[b]MOAR CANDY[/b]
Join Date: Aug 2009
Location: Denmark
Old 09-17-2012 , 15:22   Re: Player model question
Reply With Quote #28

Completely rewrote it using the new ways. It only works with SH mod 1.2 and up now. The code we have used before was very inefficient and just looked bad.

Try this instead:

PHP Code:
#include <superheromod>

//basic hero stuff
new gHeroID
new gHasNoob[SH_MAXSLOTS+1]

//sprites
new laser
new laser_impact
new blast_shroom

//shots
new Noobs[SH_MAXSLOTS+1]

//test?
new gLastWeapon[SH_MAXSLOTS+1]
new 
gLastClipCount[SH_MAXSLOTS+1]

//playermodel
new const gPlayerModel[] = "models/player/Noob/Noob.mdl"

//gun models
new const gvWeapon[] = "models/shmod/Noob_v.mdl"
new const gpWeapon[] = "models/shmod/Noob_p.mdl"

public plugin_init()
{
    
register_plugin("SUPERHERO Noob w/models""1337""Jelle")
    
    new 
pcvarLevel register_cvar("Noob_level""10")
    
register_cvar("Noob_arrows""3")
    
    
gHeroID sh_create_hero("Noob"pcvarLevel)
    
sh_set_hero_info(gHeroID"exploding deagle shots""U WILL HAVE A DEAGE WITH 3 EXPLODING SHOTS!!")
    
    
//register new round
    
register_event("ResetHUD","newRound","b")
    
    
//register damage event
    
register_event("Damage""Noob_damage""b""2!0")
}

public 
plugin_precache()
{
    
laser precache_model("sprites/laserbeam.spr")
    
laser_impact precache_model("sprites/zerogxplode.spr")
    
blast_shroom precache_model("sprites/mushroom.spr")
    
precache_model(gvWeapon)
    
precache_model(gpWeapon)
    
precache_model(gPlayerModel)
}

public 
sh_hero_init(idheroIDmode)
{
    if ( 
gHeroID != heroID ) return
    
    if ( 
mode == SH_HERO_ADD )
    {
        
gHasNoob[id] = true
        set_playermodel
(id)
        
switch_model(id)
        
give_gun(id)
    }
    
    else if ( 
mode == SH_HERO_DROP )
    {
        
gHasNoob[id] = false
        unset_playermodel
(id)
        
        if ( 
is_user_alive(id) )
        {
            
sh_drop_weapon(idCSW_DEAGLEtrue)
        }
    }
}

public 
sh_client_death(victim)
{
    if ( 
gHasNoob[victim] )
    {
        
unset_playermodel(victim)
    }
}

public 
sh_client_spawn(id)
{
    if ( 
gHasNoob[id] )
    {
        
set_playermodel(id)
        
give_gun(id)
    }
}

give_gun(id)
{
    if ( 
gHasNoob[id] && is_user_alive(id) )
    {
        
sh_give_weapon(idCSW_DEAGLE)
    }
}

public 
newRound(id)
{
    if ( 
gHasNoob[id] )
    {
        
Noobs[id] = get_cvar_num("Noob_arrows")
        
gLastWeapon[id] = -1  // I think the change Weapon automatically gets called on spawn death too...

        
if ( get_cvar_num("Noob_getdeagle") == )
        {
            
shGiveWeapon(id,"weapon_deagle")
        }
    }
}

public 
Noob_damage(id)
{
    new 
damage read_data(2)
    new 
weaponbodypartattacker get_user_attacker(id,weapon,bodypart)

    if ( 
attacker || attacker SH_MAXSLOTS ) return PLUGIN_CONTINUE

    
if ( gHasNoob[attacker] && weapon == CSW_DEAGLE && is_user_alive(id) )
    {
        
switch_model(attacker)
        
        if ( 
Noobs[attacker] >= )
        {
            new 
health get_user_health(id)

            
// damage is less than 10%
            
if ( ( (1.0 damage) / (1.0 * (health damage) ) ) < 0.01 ) return PLUGIN_CONTINUE

            
new origin[3]
            
get_user_origin(idorigin)

            
// player fades..
            
set_user_rendering(idkRenderFxFadeSlow255255255kRenderTransColor4);

            
// beeeg explody!
            
message_begin(MSG_ALLSVC_TEMPENTITY)
            
write_byte(3)            // TE_EXPLOSION
            
write_coord(origin[0])
            
write_coord(origin[1])
            
write_coord(origin[2]-22)
            
write_short(blast_shroom)    // mushroom cloud
            
write_byte(40)            // scale in 0.1's
            
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_ALLSVC_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(id1)

            
message_beginMSG_ALLget_user_msgid("DeathMsg"),{0,0,0},)
            
write_byte(attacker)
            
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,namea,23)
            
get_user_team(attacker,teama,7)
            
get_user_authid(attacker,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 ^"Green Arrow^"",
            
namea,get_user_userid(attacker),authida,teama,namev,get_user_userid(id),authidv,teamv)

            
// team check!
            
new attacker_team[2], victim_team[2]
            
get_user_team(attackerattacker_team1)
            
get_user_team(idvictim_team1)

            
// for some reason this doesn't update in the hud until the next round.. whatever.
            
if (!equali(attacker_teamvictim_team))
            {
                
// diff. team;    $attacker gets credited for the kill and $250 and XP.
                //        $id gets their suicidal -1 frag back.
                
set_user_frags(attackerget_user_frags(attacker)+1)

                
cs_set_user_money(attackercs_get_user_money(attacker)+150)
                
                
sh_add_kill_xp(attackerid1.0)
            }

            else
            {
                
// same team;    $attacker loses a frag and $500 and XP.
                
set_user_frags(attackerget_user_frags(attacker)-1)

                
cs_set_user_money(attackercs_get_user_money(attacker)-5000)

                
sh_add_kill_xp(attackerid, -1.0)
            }
        }
    }
    return 
PLUGIN_CONTINUE
}

public 
Noob_fire(id)
{

    if ( !
gHasNoob[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 && is_user_alive(id) )
    {
        
switch_model(id)
        
        if (
gLastWeapon[id] == 0gLastWeapon[id] = weap

        
if ( gLastClipCount[id] > ammo && gLastWeapon[id] == weap && Noobs[id] > )
        {
            new 
vec1[3], vec2[3]
            
get_user_origin(idvec11// origin; where you are
            
get_user_origin(idvec24// termina; where your bullet goes

            // tracer beam
            
message_begin(MSG_PASSVC_TEMPENTITYvec1)
            
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(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(0)        // red
            
write_byte(153)        // green
            
write_byte(0)        // blue
            
write_byte(80)        // brightness
            
write_byte(100)        // scroll speed
            
message_end()

            
// bullet impact explosion
            
message_begin(MSG_PASSVC_TEMPENTITYvec2)
            
write_byte(3)        // TE_EXPLOSION
            
write_coord(vec2[0])    // end point of beam
            
write_coord(vec2[1])
            
write_coord(vec2[2])
            
write_short(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

            
Noobs[id]--

            new 
message[128]
            
format(message127"You Have %d arrow(s) left",Noobs[id])
            
set_hudmessage(255,0,0,-1.0,0.3,0,0.25,1.0,0.0,0.0,4)
            
show_hudmessage(idmessage)

            if ( 
Noobs[id] == Noobs[id] = -1
        
}

        
gLastClipCount[id] = ammo
        gLastWeapon
[id] = weap
    
}
    return 
PLUGIN_CONTINUE
}

switch_model(id)
{
    if ( !
is_user_alive(id) || !gHasNoob[id] ) return
    
    if ( 
get_user_weapon(id) == CSW_DEAGLE )
    {
        
set_pev(idpev_viewmodel2gvWeapon)
        
set_pev(idpev_weaponmodel2gpWeapon)
    }
}    

set_playermodel(id)
{
    if ( 
is_user_alive(id) && gHasNoob[id] )
    {
        
cs_set_user_model(id"Noob")
    }
}

unset_playermodel(id)
{
    
cs_reset_user_model(id)

__________________
No idea what to write here...

Last edited by Jelle; 09-17-2012 at 15:23.
Jelle is offline
Send a message via MSN to Jelle
Bladell
Senior Member
Join Date: Jun 2012
Old 09-19-2012 , 07:14   Re: Player model question
Reply With Quote #29

Now work
Thank you so much Jelle !
Bladell is offline
Bladell
Senior Member
Join Date: Jun 2012
Old 11-01-2012 , 10:19   Re: Player model question
Reply With Quote #30

Sorry for 2x post.
I have problem's again.
First problem is...the gun model work just when i shot and i kill an enemy.If I don't kill someone the gun model doesn't work.
Second problem...noob_arrow cvar don't work.I can't set a limit for arrow.
Thank's !
Bladell is offline
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 04:42.


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