Spoiler
public Night_Shade(id, skill, prop) { if( BindTime(id) ){ fm_set_rendering(id) screenflash(id) } else{ new max = clamp(NIGHTSHADE_MAX_INVIS-SkillLevel(id, skill), 1, 255) new min = clamp(NIGHTSHADE_MIN_INVIS, 0, max) new fade, mult = (max - min)/9 switch(gtime){ case 0: fade = max case 1,19: fade = mult*8 + min case 2,18: fade = mult*7 + min case 3,17: fade = mult*6 + min case 4,16: fade = mult*5 + min case 5,15: fade = mult*4 + min case 6,14: fade = mult*3 + min case 7,13: fade = mult*2 + min case 8,9,11,12: fade = mult + min case 10: fade = min } fade = clamp(fade, min, max) //don't want to set it to something too high or low fm_set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, fade); if( fade < 33 ) fade = 33; screenflash(id, 0, 0, 0, 255-fade, 2.0) return SKILL_USED; } return SKILL_READY;
Spoiler
</p>public Thundershock(id, skill, prop) { new Float:f_aimvec[3]; poke_sound(id, CHAN_VOICE, SND_BIGGUN); get_user_origin(id, origin[id]); get_user_origin(id, aim[id], 3); if(-50>aim[id][0]-origin[id][0]>50) //only change it if they are at least that far away aim[id][0] += ( ( aim[id][0] - origin[id][0] > 0 ) ? -50 : 50 ); if(-50>aim[id][1]-origin[id][1]>50) //only change it if they are at least that far away aim[id][1] += ( ( aim[id][1] - origin[id][1] > 0 ) ? -50 : 50 ); if(-50>aim[id][2]-origin[id][2]>50) //only change it if they are at least that far away aim[id][2] += ( ( aim[id][2] - origin[id][2] > 0 ) ? -50 : 50 ); else aim[id][2] += 40; IVecFVec(aim[id], f_aimvec); new level = SkillLevel(id, skill) + 20; new ent = fm_create_entity("info_target"); set_pev( ent, pev_classname, "pokemod_ent"); fm_entity_set_model(ent, MODELS[MDL_ROCK]); fm_entity_set_origin(ent, f_aimvec); set_pev( ent, pev_rendermode, 5); set_pev( ent, pev_renderamt, 0.0); set_pev( ent, pev_owner, id); MakeLine_Ent(0,id,ent,SPRITE_INDEX[SPR_LGTNING],1,1,5,level*2,10,250,250,10,100,0) new parm[4]; parm[0] = ent; parm[1] = skill; parm[2] = level; parm[3] = 1+(level/THUNDERSHOCKS); set_task(0.5,"check_thundershock", _, parm, 4 ) return SKILL_USED } public check_thundershock(parm[]) { new ent = parm[0]; new skill = parm[1]; new level = parm[2]; parm[3]--; if( !parm[3] && pev_valid(ent) ) fm_remove_entity(ent); if( !pev_valid(ent) ) return; new id = pev(ent, pev_owner); new temporigin[3], shockorigin[3], Float:f_shockorigin[3]; pev(ent, pev_origin, f_shockorigin); FVecIVec( f_shockorigin, shockorigin ); for( new i=0 ; i