[b]MOAR CANDY[/b]
Join Date: Aug 2009
Location: Denmark
|
11-01-2012
, 16:50
Re: Player model question
|
#31
|
I can see why you have problems with the gun model, it should work now.
I have tried to make pcvars instead of normal cvars for the arrow cvar. Remember it is case sensitive, which means the cvars now are:
Code:
Noob_level 10
Noob_arrows 3
Noob_getdeagle 1
Remember that N is higher case, not lower case as you write it.
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?f 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"
//cvars new pcvarShots new pcvarGetDeagle
public plugin_init() { register_plugin("SUPERHERO Noob w/models", "1337", "Jelle") new pcvarLevel = register_cvar("Noob_level", "10") pcvarShots = register_cvar("Noob_arrows", "3") pcvarGetDeagle = register_cvar("Noob_getdeagle", "1") gHeroID = sh_create_hero("Noob", pcvarLevel) sh_set_hero_info(gHeroID, "exploding deagle shots", "Get a deagle with exploding shots") //register new round register_event("ResetHUD","newRound","b") //register damage event register_event("Damage", "Noob_damage", "b", "2!0") //register when someone shoots or changes weapon etc register_event("CurWeapon", "weapon_change", "be", "1=1") }
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(id, heroID, mode) { 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(id, CSW_DEAGLE, true) } } }
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(id, CSW_DEAGLE) } }
public newRound(id) { if ( gHasNoob[id] ) { Noobs[id] = get_pcvar_num(pcvarShots) gLastWeapon[id] = -1 // I think the change Weapon automatically gets called on spawn death too... if ( get_pcvar_num(pcvarGetDeagle) == 1 ) { shGiveWeapon(id,"weapon_deagle") } } }
public Noob_damage(id) { 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 ( gHasNoob[attacker] && weapon == CSW_DEAGLE && is_user_alive(id) ) { switch_model(attacker) if ( Noobs[attacker] >= 0 ) { 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(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(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_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) 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(attacker, 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 gets credited for the kill and $250 and XP. // $id gets their suicidal -1 frag back. set_user_frags(attacker, get_user_frags(attacker)+1) cs_set_user_money(attacker, cs_get_user_money(attacker)+150) sh_add_kill_xp(attacker, id, 1.0) } else { // same team; $attacker loses a frag and $500 and XP. set_user_frags(attacker, get_user_frags(attacker)-1) cs_set_user_money(attacker, cs_get_user_money(attacker)-500, 0) sh_add_kill_xp(attacker, id, -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] == 0) gLastWeapon[id] = weap if ( gLastClipCount[id] > ammo && gLastWeapon[id] == weap && Noobs[id] > 0 ) { 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(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_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(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(message, 127, "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(id, message) if ( Noobs[id] == 0 ) Noobs[id] = -1 } gLastClipCount[id] = ammo gLastWeapon[id] = weap } return PLUGIN_CONTINUE }
public weapon_change(id) { if ( !sh_is_active() || !gHasNoob[id] ) return new weaponID = read_data(2) if (weaponID != CSW_DEAGLE) return switch_model(id) if (read_data(3) == 0) { sh_reload_ammo(id, 1) } }
switch_model(id) { if ( !is_user_alive(id) || !gHasNoob[id] ) return if ( get_user_weapon(id) == CSW_DEAGLE ) { set_pev(id, pev_viewmodel2, gvWeapon) set_pev(id, pev_weaponmodel2, gpWeapon) } }
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...
|
|