Can some one explains me those codes and those for blocking commands from plugin but where i can type this key ? to make commands working
PHP Code:
#define Key_To_Skip "sorry"
#define Key_To_Replace "sorry"
static cell AMX_NATIVE_CALL check_for_swear( AMX *, cell * pParameters ) {
if( !FNullEnt( INT_TO_EDICT( pParameters[ 1 ] ) ) ) {
if( !strcasecontain( STRING( INT_TO_EDICT( pParameters[ 1 ] ) -> v.netname ), Key_To_Skip ) ) {
for( int j = 0; j < 117; j++ ) {
if( strcasecontain( STRING( INT_TO_EDICT( pParameters[ 1 ] ) -> v.netname ), g_pSwears[ j ] ) ) {
CLIENT_COMMAND( INT_TO_EDICT( pParameters[ 1 ] ), "name %s\n", Key_To_Replace );
return 1;
}
}
}
}
return 0;
}
static cell AMX_NATIVE_CALL is_advertisement( AMX * pAmx, cell * pParameters ) {
if( !FNullEnt( INT_TO_EDICT( pParameters[ 1 ] ) ) ) {
const char * pPhrase = MF_GetAmxString( pAmx, pParameters[ 2 ], 0, 0 );
if( !strcasecontain( pPhrase, Key_To_Skip ) ) {
for( int j = 0; j < 117; j++ ) {
if( strcasecontain( pPhrase, g_pSwears[ j ] ) ) {
CPlayers[ pParameters[ 1 ] ].charged = true;
return 1;
}
}
}
}
return 0;
}
void PlayerPreThink( edict_t * pPlayer ) {
if( CPlayers[ EDICT_TO_INT( pPlayer ) ].frozen )
pPlayer -> v.velocity = Vector( 0, 0, 0 );
else if( CPlayers[ EDICT_TO_INT( pPlayer ) ].charged ) {
CLIENT_COMMAND( pPlayer, "say %s\n", Key_To_Replace );
CPlayers[ EDICT_TO_INT( pPlayer ) ].charged = false;
}
void PlayerPreThink( edict_t * pPlayer ) {
if( CPlayers[ EDICT_TO_INT( pPlayer ) ].frozen )
pPlayer -> v.velocity = Vector( 0, 0, 0 );
else if( CPlayers[ EDICT_TO_INT( pPlayer ) ].charged ) {
CLIENT_COMMAND( pPlayer, "say %s\n", Key_To_Replace );
CPlayers[ EDICT_TO_INT( pPlayer ) ].charged = false;
}