Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include < amxmodx >
- new pCount[ 33 ], Counter[ 33 ], bool:Aim[ 33 ], bool:PukeFlag[ 33 ];
- new Info[ 4 ][ ] =
- {
- "Amxx Puke (Short Version)",
- "1.0",
- "Rejack",
- "AMXX" // Prefix
- };
- public plugin_init()
- {
- register_plugin( Info[ 0 ], Info[ 1 ], Info[ 2 ] );
- register_clcmd( "puke", "CmdPuke" );
- register_clcmd( "vomit", "CmdPuke" );
- register_event( "DeathMsg", "evDeathMsg", "a" );
- register_event( "ResetHUD", "evResetHud", "be" );
- }
- public plugin_precache()
- {
- precache_sound( "puke/puke.wav" );
- precache_sound( "puke/puke2.wav" );
- }
- public CmdPuke( client )
- {
- if ( !is_user_alive( client ) )
- return ColorPrint( client, "You need to be^4 Alive^1." );
- if ( PukeFlag[ client ] || pCount[ client ] > 1 )
- return ColorPrint( client, "You can^3 Puke^1 only^4 Once^1 per round!" );
- ColorPrint( 0, "^4%s^1 is^3 Puking^1!!", szName( client ) );
- pCount[ client ]++;
- new Clients[ 1 ];
- Clients[ 0 ] = client;
- PukeFlag[ client ] = true;
- Aim[ client ] = false;
- Counter[ client ] = 0;
- switch ( random_num( 0,1 ) )
- {
- case 0: emit_sound( client, CHAN_VOICE, "puke/puke.wav", 1.0, ATTN_NORM, 0, PITCH_NORM );
- case 1: emit_sound( client, CHAN_VOICE, "puke/puke2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM );
- }
- set_task( 0.3, "CmdCreatePuke", 2412+client, Clients, 1, "a", 9 );
- return 1;
- }
- public Sqrt( Num )
- {
- new Div = Num;
- new Result = 1;
- while ( Div > Result )
- {
- Div = ( Div + Result ) / 2
- Result = Num / Div;
- }
- return Div;
- }
- public CmdCreatePuke( const Clients[ ] )
- {
- new client = Clients[ 0 ], Vec[ 3 ], AimVec[ 3 ], VelocityVec[ 3 ], Length;
- get_user_origin( client, Vec, 1 );
- get_user_origin( client, AimVec, 3 );
- new Distance = get_distance( Vec, AimVec );
- new Speed = floatround( Distance * 1.9 );
- VelocityVec[ 0 ] = AimVec[ 0 ] - Vec[ 0 ];
- VelocityVec[ 1 ] = AimVec[ 1 ] - Vec[ 1 ];
- VelocityVec[ 2 ] = AimVec[ 2 ] - Vec[ 2 ];
- Length = Sqrt( VelocityVec[ 0 ] * VelocityVec[ 0 ] + VelocityVec[ 1 ] * VelocityVec[ 1 ] + VelocityVec[ 2 ] * VelocityVec[ 2 ] );
- VelocityVec[ 0 ] = VelocityVec[ 0 ] * Speed / Length;
- VelocityVec[ 1 ] = VelocityVec[ 1 ] * Speed / Length;
- VelocityVec[ 2 ] = VelocityVec[ 2 ] * Speed / Length;
- message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
- write_byte( 101 );
- write_coord( Vec[ 0 ] );
- write_coord( Vec[ 1 ] );
- write_coord( Vec[ 2 ] - 2 );
- write_coord( VelocityVec[ 0 ] );
- write_coord( VelocityVec[ 1 ] );
- write_coord( VelocityVec[ 2 ] );
- write_byte( 82 );
- write_byte( 160 );
- message_end( )
- Counter[ client ]++;
- if ( Counter[ client ] == 9 )
- PukeFlag[ client ] = false;
- }
- public evDeathMsg( )
- {
- new iVictim = read_data(2)
- if ( PukeFlag[ iVictim ] )
- evResetPuke( iVictim );
- }
- public evResetPuke( client )
- {
- if ( task_exists( 2412+client ) )
- remove_task( 2412+client );
- emit_sound( client, CHAN_VOICE,"puke/puke.wav", 0.0, ATTN_NORM, 0, PITCH_NORM );
- PukeFlag[ client ] = false;
- }
- public evResetHud( client )
- {
- if ( task_exists( 2412+client ) )
- remove_task( 2412+client );
- emit_sound( client, CHAN_VOICE,"puke/puke.wav", 0.0, ATTN_NORM, 0, PITCH_NORM );
- PukeFlag[ client ] = false;
- pCount[ client ] = 1;
- }
- public client_putinserver( client )
- {
- PukeFlag[ client ] = false;
- pCount[ client ] = 1;
- }
- public client_disconnect( client )
- evResetHud( client );
- stock ColorPrint( const client, const string[], any:... )
- {
- new msg[ 191 ], players[ 32 ], count = 1;
- static len; len = formatex( msg, charsmax( msg ), "^4[%s]^1 ", Info[ 3 ] );
- vformat( msg[ len ], charsmax( msg ) - len, string, 3 );
- if( client ) players[ 0 ] = client;
- else get_players( players,count,"ch" );
- for ( new i = 0; i < count; i++ )
- {
- if( is_user_connected( players[ i ] ) )
- {
- message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, players[ i ] );
- write_byte( players[ i ] );
- write_string( msg );
- message_end( );
- }
- }
- return PLUGIN_HANDLED;
- }
- stock szName( const index )
- {
- static Name[ 128 ];
- get_user_name( index, Name, charsmax( Name ) );
- return Name;
- }
Advertisement
Add Comment
Please, Sign In to add comment