Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include < amxmodx >
- #include < engine >
- #include < fakemeta >
- #define write_coord_f(%1) engfunc(EngFunc_WriteCoord, %1)
- #define get_ent_origin(%1,%2) entity_get_vector(%1,EV_VEC_origin,%2)
- #define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
- new const Float:g_vecDookieMins[] = {-1.0, -1.0, -1.0 }
- new const Float:g_vecDookieMaxs[] = { 1.0, 1.0, 1.0 }
- new Models[ 5 ][ ] =
- {
- "models/dookie2.mdl",
- "models/dookie3.mdl",
- "dookie/dookie1.wav",
- "dookie/dookie3.wav",
- "sprites/steam1.spr"
- };
- new Steam, gMsgScreenShake, bool:Dookied[ 33 ];
- public plugin_precache()
- {
- precache_sound( Models[ 2 ] );
- precache_sound( Models[ 3 ] );
- precache_model( Models[ 0 ] );
- precache_model( Models[ 1 ] );
- Steam = precache_model( Models[ 4 ] );
- }
- public plugin_init()
- {
- register_plugin( "Shit (Short Version)", "1.0", "Rejack" );
- register_clcmd("dookie", "CmdDookie")
- register_clcmd("shit", "CmdDookie")
- register_think( "amx_dookie", "ThinkDookie")
- register_event("HLTV", "evNewRound", "a", "1=0", "2=0")
- gMsgScreenShake = get_user_msgid( "ScreenShake" );
- }
- public evNewRound()
- {
- for ( new i = 1; i < get_maxplayers(); i++ )
- {
- if ( !is_user_connected( i ) )
- continue;
- Dookied[ i ] = false;
- }
- new iDookie = find_ent_by_class( -1, "amx_dookie" );
- while( iDookie > 0)
- {
- remove_entity( iDookie );
- iDookie = find_ent_by_class( iDookie, "amx_dookie" );
- }
- }
- public CmdDookie( client )
- {
- if ( !is_user_alive( client ) )
- return ColorPrint( client, "You need to be^4 Alive^1." );
- if ( Dookied[ client ] )
- return ColorPrint( client, "You can only^3 Shit^1 once per round!" );
- new Float:vecOrigin[ 3 ];
- get_ent_origin( client, vecOrigin );
- static szName[ 32 ];get_user_name( client, szName, charsmax( szName ) );
- Dookied[ client ] = true;
- emit_sound( client, CHAN_VOICE, Models[ 3 ], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
- CreateDookie( client, vecOrigin, true)
- ColorPrint( 0, "^4%s^1 just took a^3 Shit^1!", szName );
- return 1;
- }
- stock CreateDookie( client, Float:vecOrigin[ 3 ], bool:bSuper = false )
- {
- new iEnt = create_entity("info_target")
- if( iEnt > 0 )
- {
- entity_set_string( iEnt, EV_SZ_classname, "amx_dookie" );
- entity_set_model( iEnt, bSuper ? Models[ 0 ] : Models[ 1 ] );
- entity_set_size( iEnt, g_vecDookieMins, g_vecDookieMaxs );
- entity_set_origin( iEnt, vecOrigin );
- entity_set_int( iEnt, EV_INT_solid, SOLID_SLIDEBOX );
- entity_set_int( iEnt, EV_INT_movetype, MOVETYPE_TOSS );
- entity_set_edict( iEnt, EV_ENT_owner, client );
- entity_set_float( iEnt, EV_FL_nextthink, get_gametime() + 1.0);
- if( bSuper )
- {
- message_begin( MSG_BROADCAST, gMsgScreenShake );
- write_short(8<<12);
- write_short(8<<8);
- write_short(8<<12);
- message_end();
- for (new j = 0; j < 10; j++)
- {
- message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
- write_byte( TE_BLOODSTREAM );
- write_coord_f( vecOrigin[ 0 ] );
- write_coord_f( vecOrigin[ 1 ] );
- write_coord_f( vecOrigin[ 2 ] - 20 );
- write_coord( random_num( -100,100 ) );
- write_coord( random_num( -100,100 ) );
- write_coord( random_num( 20,300 ) );
- write_byte( 100 );
- write_byte( random_num( 100,200 ) );
- message_end();
- }
- }
- }
- }
- public ThinkDookie( ent )
- {
- new Float:vecOrigin[ 3 ];
- entity_get_vector( ent, EV_VEC_origin, vecOrigin );
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
- write_byte( TE_SPRITE );
- write_coord_f( vecOrigin[ 0 ] );
- write_coord_f( vecOrigin[ 1 ] );
- write_coord_f( vecOrigin[ 2 ] + 10 );
- write_short( Steam );
- write_byte( 8 );
- write_byte( 10 );
- message_end();
- entity_set_float(ent, EV_FL_nextthink, get_gametime() + 1.0 );
- }
- stock ColorPrint( const client, const szString[], any:... )
- {
- new szMsg[ 191 ], Players[ 32 ], PNum = 1;
- static Len; Len = formatex( szMsg, charsmax( szMsg ), "^4[AMXX]^1 " );
- vformat( szMsg[ Len ], charsmax ( szMsg ) - Len, szString, 3 );
- if ( client ) Players[ 0 ] = client;
- else get_players( Players, PNum, "ch" );
- for ( new i; i < PNum; i++ )
- {
- if ( is_user_connected( Players[ i ] ) )
- {
- message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ) ,_, Players[ i ] );
- write_byte( Players[ i ] );
- write_string( szMsg );
- message_end( );
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment