Member
Join Date: Aug 2010
Location: Denmark
|
06-06-2011
, 16:17
Re: Goten in shmod 1.2.0.14
|
#9
|
Thank you G-Dog ;)
--------------------------------------------------------------------------------------
So i added Goten (with other sprites), in a massive hero ;)
but the keydown is not working like my last hero.
it dosen't show the keydown, like it does here:
Sma code here:
PHP Code:
#include <superheromod>
new gHeroID new gHasAwpLover[SH_MAXSLOTS+1] new bool:gBlockKeyup[SH_MAXSLOTS+1]; new gLastWeapon[SH_MAXSLOTS+1]; new const gAwpLoverAwp[] = "models/shmod/AwpLover_awp.mdl" new const gAwpLoverDeagle[] = "models/shmod/AwpLover_deagle.mdl" new const gAwpLoverPlayer[] = "models/player/AwpLover/AwpLover.mdl" new const gAwpLoverNade[] = "models/shmod/AwpLover_hegrenade.mdl"
static const burn_decal[3] = {28, 29, 30} static const burn_decal_big[3] = {46, 47, 48}
new Beam, Explosion, Smoke; new g_cvar_tr, g_cvar_he, g_trail new gSpriteWhite new pcvarRadius, pcvarRadius2, pcvarBright, pcvarCoolDown, pcvarMaxDmg, pcvarBurnDecals;
public plugin_init() { register_plugin("SUPERHERO AwpLover", "1.1", "MuzzMikkel") new pcvarLevel = register_cvar("AwpLover_level", "4") new pcvarHealth = register_cvar("AwpLover_health", "350") new pcvarArmor = register_cvar("AwpLover_armor", "800") new pcvarSpeed = register_cvar("AwpLover_speed", "320") new pcvarGrav = register_cvar("AwpLover_grav", "0.7") new pcvarAwpMult = register_cvar("AwpLover_awpmult", "40.0") new pcvarDeagleMult = register_cvar("AwpLover_deaglemult", "10.0") new pcvarNadeMult = register_cvar("AwpLover_hegrenademult", "50.0") pcvarCoolDown = register_cvar("AwpLover_cooldown", "0.5"); pcvarMaxDmg = register_cvar("AwpLover_maxdamage", "250"); pcvarRadius = register_cvar("AwpLover_radius", "300"); pcvarBurnDecals = register_cvar("AwpLover_blast_decals", "1"); pcvarRadius2 = register_cvar("AwpLover_radius2", "500") pcvarBright = register_cvar("AwpLover_bright", "192") g_cvar_tr = register_cvar("AwpLover_grenade_tr", "2") g_cvar_he = register_cvar("AwpLover_grenade_he", "3413934") gHeroID = sh_create_hero("AwpLover", pcvarLevel) sh_set_hero_info(gHeroID, "Awp Lover!", "Get's a powerfull Awp & deagle & Grenade & Super attack on +power key") sh_set_hero_dmgmult(gHeroID, pcvarAwpMult, CSW_AWP) sh_set_hero_dmgmult(gHeroID, pcvarDeagleMult, CSW_DEAGLE) sh_set_hero_dmgmult(gHeroID, pcvarNadeMult, CSW_HEGRENADE) sh_set_hero_hpap(gHeroID, pcvarHealth, pcvarArmor) sh_set_hero_speed(gHeroID, pcvarSpeed) sh_set_hero_grav(gHeroID, pcvarGrav) register_event("CurWeapon", "weapon_change", "be", "1=1") // ESP Rings Task set_task(2.0, "awplover_esploop", _, _, _, "b") }
public sh_hero_init(id, heroID, mode) { if ( gHeroID != heroID ) return switch(mode) { case SH_HERO_ADD: { gHasAwpLover[id] = true AwpLover_weapons(id) switch_model(id) AwpLover_morph(id) } case SH_HERO_DROP: { gHasAwpLover[id] = false AwpLover_unmorph(id) if (is_user_alive(id)) { sh_drop_weapon(id, CSW_AWP, true) sh_drop_weapon(id, CSW_DEAGLE, true) } } } }
public sh_hero_key(id, heroID, key) { if ( gHeroID != heroID ) return;
if ( sh_is_freezetime() || !is_user_alive(id) ) return; switch(key) { case SH_KEYDOWN: { if ( gPlayerInCooldown[id] ) { sh_sound_deny(id); gBlockKeyup[id] = true; return; } gBlockKeyup[id] = false; gLastWeapon[id] = get_user_weapon(id); engclient_cmd(id, "weapon_knife"); fire_wave(id); new Float:cooldown = get_pcvar_float(pcvarCoolDown); if (cooldown > 0.0) sh_set_cooldown(id, cooldown); } case SH_KEYUP: { if ( !gBlockKeyup[id] ) { if (gLastWeapon[id] != CSW_KNIFE) sh_switch_weapon(id, gLastWeapon[id]) } } } }
public sh_client_spawn(id) { if (gHasAwpLover[id]) { AwpLover_weapons(id) AwpLover_morph(id) sh_end_cooldown(id); } }
public weapon_change(id) { if ( !sh_is_active() || !gHasAwpLover[id] ) return if(read_data(2) == CSW_AWP || read_data(2) == CSW_DEAGLE || read_data(2) == CSW_HEGRENADE) { switch_model(id) if (read_data(3) == 0) { sh_reload_ammo(id, 1) } } } public plugin_precache() { precache_model(gAwpLoverAwp) precache_model(gAwpLoverDeagle) precache_model(gAwpLoverNade) precache_model(gAwpLoverPlayer) g_trail = precache_model("sprites/laserbeam.spr") gSpriteWhite = precache_model("sprites/white.spr") Beam = precache_model("sprites/shmod/AwpLover_trail.spr"); Explosion = precache_model("sprites/shmod/AwpLover_exp.spr"); Smoke = precache_model("sprites/wall_puff4.spr"); }
AwpLover_weapons(id) { if (sh_is_active() && is_user_alive(id) && gHasAwpLover[id] ) { sh_give_weapon(id, CSW_AWP) sh_give_weapon(id, CSW_DEAGLE) sh_give_weapon(id, CSW_HEGRENADE) } }
switch_model(id) { if (!sh_is_active() || !is_user_alive(id) || !gHasAwpLover[id] ) return
if ( get_user_weapon(id) == CSW_AWP) { set_pev(id, pev_viewmodel2, gAwpLoverAwp) }
else if ( get_user_weapon(id) == CSW_DEAGLE) { set_pev(id, pev_viewmodel2, gAwpLoverDeagle) }
else if ( get_user_weapon(id) == CSW_HEGRENADE) { set_pev(id, pev_viewmodel2, gAwpLoverNade) } }
AwpLover_morph(id) { cs_set_user_model(id, "AwpLover!") }
AwpLover_unmorph(id) { cs_reset_user_model(id) }
public grenade_throw(id, gid, wid) { if ( !gHasAwpLover[id] ) return new gtm = get_pcvar_num(g_cvar_tr) if(!gtm) return new r, g, b switch(gtm) { case 1: { r = random(34) g = random(139) b = random(34) } case 2: { new nade, color[10] switch(wid) { case CSW_HEGRENADE: nade = g_cvar_he } get_pcvar_string(nade, color, 9) new c = str_to_num(color) r = c / 1000000 c %= 1000000 g = c / 1000 b = c % 1000 } case 3: { switch(get_user_team(id)) { case 1: r = 255 case 2: b = 255 } } } message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_BEAMFOLLOW) write_short(gid) write_short(g_trail) write_byte(10) write_byte(5) write_byte(r) write_byte(g) write_byte(b) write_byte(192) message_end() }
public awplover_esploop() { if ( !sh_is_active() ) return
static players[SH_MAXSLOTS], playerCount, player static idRing, ringOrigin[3], i, j
static radius, brightness radius = get_pcvar_num(pcvarRadius) brightness = get_pcvar_num(pcvarBright)
get_players(players, playerCount, "ah")
for ( i = 0; i < playerCount; i++ ) { player = players[i]
if ( !gHasAwpLover[player] ) continue
for ( j = 0; j < playerCount; j++ ) { idRing = players[j]
if ( idRing == player ) continue
if ( !get_user_origin(idRing, ringOrigin) ) continue
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, ringOrigin, player) write_byte(TE_BEAMCYLINDER) // 21 write_coord(ringOrigin[0]) write_coord(ringOrigin[1]) write_coord(ringOrigin[2] + 16) write_coord(ringOrigin[0]) write_coord(ringOrigin[1]) write_coord(ringOrigin[2] + radius) write_short(gSpriteWhite) write_byte(0) // startframe write_byte(1) // framerate write_byte(6) // life write_byte(8) // width write_byte(1) // noise write_byte(25) // r write_byte(25) // g write_byte(112) // b write_byte(brightness) // brightness write_byte(0) // speed message_end() } } }
fire_wave(id) { new aimvec[3]; new Float:dRatio, damage, distanceBetween; new damradius = get_pcvar_num(pcvarRadius2); new maxdamage = get_pcvar_num(pcvarMaxDmg);
if( !is_user_alive(id) ) return;
get_user_origin(id, aimvec, 3); beam_effects(id, aimvec, damradius); new players[32], pnum, vic, origin[3]; get_players(players, pnum, "a"); new userteam = get_user_team(id); new FFon = sh_friendlyfire_on(); for (new i; i < pnum; i++) { vic = players[i]; if ( FFon || userteam != get_user_team(vic) || vic == id ) { get_user_origin(vic, origin); distanceBetween = get_distance(aimvec, origin);
if ( distanceBetween < damradius ) { dRatio = float(distanceBetween) / float(damradius); damage = maxdamage - floatround(maxdamage * dRatio);
if (vic == id) damage /= 2; sh_extra_damage(vic, id, damage, "Kamehameha"); } } } }
beam_effects(id, aimvec[3], damradius) { new decal_id, beamWidth;
new blastSize = floatround(damradius / 12.0);
decal_id = (blastSize <= 18) ? burn_decal[random_num(0, 2)] : burn_decal_big[random_num(0, 2)]; beamWidth = (blastSize <= 18) ? 50 : 75;
//Beam message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(1); //TE_BEAMENTPOINTS write_short(id); //ent write_coord(aimvec[0]); //position write_coord(aimvec[1]); write_coord(aimvec[2]); write_short(Beam); // sprite index write_byte(0); // start frame write_byte(35); // framerate write_byte(4); // life write_byte(beamWidth); // width write_byte(0); // noise write_byte(255); // red (rgb color) write_byte(255); // green (rgb color) write_byte(255); // blue (rgb color) write_byte(255); // brightness write_byte(20); // speed message_end();
//Glow Sprite (explosion) message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(23); //TE_GLOWSPRITE write_coord(aimvec[0]); //position write_coord(aimvec[1]); write_coord(aimvec[2]); write_short(Explosion); // model write_byte(001); // life 0.x sec (01 min limit?) write_byte(blastSize); // size write_byte(255); // brightness message_end()
//Explosion (smoke, sound/effects) message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(3); //TE_EXPLOSION write_coord(aimvec[0]); //pos write_coord(aimvec[1]); write_coord(aimvec[2]); write_short(Smoke); // model write_byte(blastSize+5); // scale in 0.1's write_byte(20); // framerate write_byte(10); // flags message_end();
//Burn Decals if( get_pcvar_num(pcvarBurnDecals) ) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(109); //TE_GUNSHOTDECAL write_coord(aimvec[0]); //pos write_coord(aimvec[1]); write_coord(aimvec[2]); write_short(0); //? write_byte(decal_id); //decal message_end(); } }
Last edited by MuzzMikkel; 06-06-2011 at 17:03.
|
|