Try this:
PHP Code:
#include <amxmodx>
#include <engine>
#include <zombieplague>
new havetk[33]
new g_lightning, g_smoke
new g_tknife
public plugin_init()
{
register_plugin( "[ZP] Thunder Knife", "0.1", "fiendshard" );
register_event("Damage" , "event_Damage" , "b" , "2>0");
g_tknife = zp_register_extra_item("Thunder Knife (Once)", 15, ZP_TEAM_HUMAN)
}
public plugin_precache()
{
g_lightning = precache_model( "sprites/lgtning.spr" );
g_smoke = precache_model( "sprites/steam1.spr" );
}
public zp_extra_item_selected(id, itemid)
{
if (itemid == g_tknife)
{
havetk[id] = true
client_print(id, print_chat, "[ZP] You got Thunder Knife! Slash a Zombie to kill him with thunder")
}
}
public client_putinserver(id)
havetk[id] = false
public event_Damage(id)
{
new weapon ,attacker = get_user_attacker(id , weapon);
if ( !is_user_alive(attacker) ||zp_get_user_zombie(attacker) || zp_get_user_nemesis(attacker) || zp_get_user_survivor(attacker)) return;
if(weapon == CSW_KNIFE)
{
new vorigin[ 3 ], pos[ 3 ];
get_user_origin( id, vorigin );
vorigin[ 2 ] -= 26;
pos[ 0 ] = vorigin[ 0 ] + 150;
pos[ 1 ] = vorigin[ 1 ] + 150;
pos[ 2 ] = vorigin[ 2 ] + 800;
user_kill(id);
Thunder( pos, vorigin );
Smoke( vorigin, 10, 10 );
havetk[id] = false
}
}
Thunder( start[ 3 ], end[ 3 ] )
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_BEAMPOINTS );
write_coord( start[ 0 ] );
write_coord( start[ 1 ] );
write_coord( start[ 2 ] );
write_coord( end[ 0 ] );
write_coord( end[ 1 ] );
write_coord( end[ 2 ] );
write_short( g_lightning );
write_byte( 1 );
write_byte( 5 );
write_byte( 7 );
write_byte( 20 );
write_byte( 30 );
write_byte( 200 );
write_byte( 200 );
write_byte( 200 );
write_byte( 200 );
write_byte( 200 );
message_end();
message_begin( MSG_PVS, SVC_TEMPENTITY, end );
write_byte( TE_SPARKS );
write_coord( end[ 0 ] );
write_coord( end[ 1 ]);
write_coord( end[ 2 ] );
message_end();
}
Smoke( iorigin[ 3 ], scale, framerate )
{
message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_SMOKE );
write_coord( iorigin[ 0 ] );
write_coord( iorigin[ 1 ] );
write_coord( iorigin[ 2 ] );
write_short( g_smoke );
write_byte( scale );
write_byte( framerate );
message_end();
}
public event_round_start()
{
for(new i = 0; i < 32; i++)
havetk[i] = false
}