Spoiler
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <codmod>
#define PLUGIN "KameHameHa"
#define VERSION "1.0"
#define AUTHOR "pfk"
new const perk_name[] = "KameHameHa";
new const perk_desc[] = "Posiadasz 3 kule poteznej Energii (E)";
new bool:ma_perk[33];
new ilosc_KameHameHa[33];
new gTrailModel;
new gExplosionModel;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
cod_register_perk(perk_name, perk_desc);
register_touch( "_KameHameHa","*","KameHameHaHIT" )
register_forward(FM_EmitSound, "EmitSound");
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
}
public plugin_precache()
{
precache_sound("KameHameHa/plasma_shoot.wav")
precache_sound("KameHameHa/explosion.wav")
precache_model("sprites/KameHameHa/plasma.spr");
gTrailModel = precache_model("sprites/KameHameHa/laserbeam.spr");
gExplosionModel = precache_model("sprites/KameHameHa/plasma_explode.spr")
}
public cod_perk_enabled(id, wartosc)
{
ma_perk[id] = true;
ilosc_KameHameHa[id] = 3;
}
public cod_perk_disabled(id)
ma_perk[id] = false;
public Odrodzenie(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE;
ilosc_KameHameHa[id] = 3;
return PLUGIN_CONTINUE;
}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
KameHameHa(id);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public KameHameHa(id)
{
if(ilosc_KameHameHa[id] > 0)
{
ilosc_KameHameHa[id] --;
new Origin[3], Float:fOrigin[3]
new Float:Velocity[3]
get_user_origin( id,Origin, 1 )
IVecFVec( Origin, fOrigin )
new Ent = create_entity("info_target")
entity_set_string( Ent, EV_SZ_classname, "_KameHameHa" )
new Float:posAdjust[ 3 ]
velocity_by_aim( id, 70, posAdjust )
fOrigin[ 0 ] += posAdjust[ 0 ]
fOrigin[ 1 ] += posAdjust[ 1 ]
fOrigin[ 2 ] += posAdjust[ 2 ]
entity_set_vector( Ent, EV_VEC_origin,fOrigin )
new Float:iMaxs[3] = { 0.2,0.2,0.5 }
new Float:iMins[3] = { -0.2,-0.2,-0.5 }
entity_set_size( Ent, iMins,iMaxs )
entity_set_int( Ent, EV_INT_solid, SOLID_BBOX )
entity_set_int( Ent, EV_INT_movetype, MOVETYPE_FLYMISSILE )
entity_set_int( Ent, EV_INT_rendermode, 5 )
entity_set_float( Ent, EV_FL_renderamt, 255.0 )
entity_set_float( Ent, EV_FL_scale, 1.20 )
entity_set_float( Ent, EV_FL_framerate,1.0 )
entity_set_model( Ent, "sprites/KameHameHa/plasma.spr" )
emit_sound( Ent, CHAN_AUTO, "KameHameHa/plasma_shoot.wav", 1.0, ATTN_NORM, 0, PITCH_NORM )
VelocityByAim( id,1150, Velocity )
entity_set_vector( Ent,EV_VEC_velocity,Velocity )
entity_set_edict( Ent, EV_ENT_owner, id )
message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
write_byte( 22 )
write_short( Ent )
write_short( gTrailModel )
write_byte( 25 )
write_byte( 7 )
write_byte( 42 )
write_byte( 170 )
write_byte( 255 )
write_byte( 255 )
message_end( )
}
else
client_print(id,print_center,"Wykorzystales juz wszystkie KameHameHa");
return PLUGIN_HANDLED;
}
public KameHameHaHIT( Ent,Other )
{
if( Other == 0 )
{
new Float:fOrigin[3]
new iOrigin[3]
entity_get_vector( Ent, EV_VEC_origin, fOrigin )
FVecIVec( fOrigin, iOrigin )
message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
write_byte( 23 )
write_coord( iOrigin[0] )
write_coord( iOrigin[1] )
write_coord( iOrigin[2] )
write_short( gExplosionModel )
write_byte( 3 )
write_byte( 12 )
write_byte( 210 )
message_end( )
emit_sound( Ent, CHAN_AUTO, "KameHameHa/explosion.wav", 1.0, ATTN_NORM, 0, PITCH_NORM )
remove_entity( Ent )
}
else if( is_user_connected(Other) )
{
new iAttacker = entity_get_edict( Ent,EV_ENT_owner )
if( get_user_team(Other) != get_user_team(iAttacker) )
{
new Bodypart,iWeapon[32];
new Float:Dmg = random_float(30.0, 50.0)
fakedamage( Other, "Terminator", Dmg, 1 )
new szName[33]
get_user_name( Other, szName, 32 )
if( !is_user_alive( Other ) )
{
make_deathmsg( iAttacker, Other, Bodypart,iWeapon )
fm_set_user_frags( iAttacker, get_user_frags(iAttacker) + 1 )
}
new Float:fOrigin[3]
new iOrigin[3]
entity_get_vector( Ent, EV_VEC_origin, fOrigin )
FVecIVec( fOrigin, iOrigin )
message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
write_byte( 23 )
write_coord( iOrigin[0] )
write_coord( iOrigin[1] )
write_coord( iOrigin[2] )
write_short( gExplosionModel )
write_byte( 3 )
write_byte( 12 )
write_byte( 210 )
message_end( )
emit_sound( Ent, CHAN_AUTO, "KameHameHa/explosion.wav", 1.0, ATTN_NORM, 0, PITCH_NORM )
remove_entity( Ent )
}
else
{
new Float:fOrigin[3]
new iOrigin[3]
entity_get_vector( Ent, EV_VEC_origin, fOrigin )
FVecIVec( fOrigin, iOrigin )
message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
write_byte( 23 )
write_coord( iOrigin[0] )
write_coord( iOrigin[1] )
write_coord( iOrigin[2] )
write_short( gExplosionModel )
write_byte( 3 )
write_byte( 12 )
write_byte( 210)
message_end( )
emit_sound( Ent, CHAN_AUTO, "KameHameHa/explosion.wav", 1.0, ATTN_NORM, 0, PITCH_NORM )
remove_entity( Ent )
}
}
else
{
new Float:fOrigin[3]
new iOrigin[3]
entity_get_vector( Ent, EV_VEC_origin, fOrigin )
FVecIVec( fOrigin, iOrigin )
message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
write_byte( 23 )
write_coord( iOrigin[0] )
write_coord( iOrigin[1] )
write_coord( iOrigin[2] )
write_short( gExplosionModel )
write_byte( 3 )
write_byte( 12 )
write_byte( 210 )
message_end( )
emit_sound( Ent, CHAN_AUTO, "KameHameHa/explosion.wav", 1.0, ATTN_NORM, 0, PITCH_NORM )
remove_entity( Ent )
}
}
Witam chcialbym aby ten perk dzialal na zasadzie rakiety z coda starego.. ze zabiera hp nawet jak trafimy obok gracza.. poniewaz tutaj trzeba trafic idealnie w gracza
Użytkownik Yakashi edytował ten post 14.07.2013 10:33


Dodatki SourceMod











