Может ли кто изменить этот плагинчег на то чтобы вместо кика за мат, давался gag на минут 10-20.
CODE
#include <amxmodx>
#include <amxmisc>
// max number of words in swear list and max number of lines in replace list
#define MAX_WORDS 150
#define MAX_REPLACE 50
// global variables for storing the swear list and replace list and their respective number of lines
new g_swearWords[MAX_WORDS][20]
new g_replaceLines[MAX_REPLACE][192]
new g_swearNum
new g_replaceNum
public plugin_init()
{
register_plugin ( "Swear Replacement", "1.5", "kaboomkazoom")
register_clcmd ( "say", "swearcheck" )
register_clcmd ( "say_team", "swearcheck" )
register_concmd ( "amx_addswear", "add_swear", ADMIN_LEVEL_A , "< swear word to add >" )
register_concmd ( "amx_addreplacement", "add_replacement", ADMIN_LEVEL_A , "< replacement line to add >" )
readList()
}
readList()
{
new Configsdir[64]
new swear_file[64], replace_file[64]
get_configsdir( Configsdir, 63 )
format(swear_file, 63, "%s/swearwords.ini", Configsdir )
format(replace_file, 63, "%s/replacements.ini", Configsdir )
if ( !file_exists(swear_file) )
{
server_print ( "==========================================================" )
server_print ( "[Swear Replacement] %s file not found", swear_file )
server_print ( "==========================================================" )
return
}
if ( !file_exists(replace_file) )
{
server_print ( "==========================================================" )
server_print ( "[Swear Replacement] %s file not found", replace_file )
server_print ( "==========================================================" )
return
}
new len, i=0
while( i < MAX_WORDS && read_file( swear_file, i , g_swearWords[g_swearNum], 19, len ) )
{
i++
if( g_swearWords[g_swearNum][0] == ';' || len == 0 )
continue
g_swearNum++
}
i=0
while( i < MAX_REPLACE && read_file( replace_file, i , g_replaceLines[g_replaceNum], 191, len ) )
{
i++
if( g_replaceLines[g_replaceNum][0] == ';' || len == 0 )
continue
g_replaceNum++
}
server_print ( "======================================================" )
server_print ( "[Swear Replacement] loaded %d Swear words", g_swearNum )
server_print ( "[Swear Replacement] loaded %d Replacement Lines", g_replaceNum )
server_print ( "======================================================" )
}
public client_connect(id)
{
new new_name[32]
get_user_name ( id, new_name, 31 )
string_cleaner ( new_name )
new i = 0
while ( i < g_swearNum )
{
if ( containi ( new_name, g_swearWords[i++] ) != -1 )
{
client_cmd ( id, "name ^"HET MATY^"" )
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}
public swearcheck(id)
{
if ( (get_user_flags(id)&ADMIN_LEVEL_A) || !id )
return PLUGIN_CONTINUE
new said[192]
read_args ( said, 191 )
string_cleaner ( said )
new i = 0
while ( i < g_swearNum )
{
if ( containi ( said, g_swearWords[i++] ) != -1 )
{
new j, playercount, players[32], user_name[32]
get_user_name ( id, user_name, 31 )
server_cmd("amx_gag ^"%s^" ^"%s^"", user_name,"HET MATY!")
for ( j = 0; j < playercount; j++)
{
if ( get_user_flags(players[j])&ADMIN_LEVEL_A )
client_print( players[j], print_chat, "[Swear Replacement] Player %s kicknut 3a %s",user_name, said )
}
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
public add_swear(id)
{
if ( ( !(get_user_flags(id)&ADMIN_LEVEL_A) && id ) )
{
client_print ( id, print_console, "[Swear Replacement] Access Denied" )
return PLUGIN_HANDLED
}
if ( read_argc() == 1 )
{
client_print ( id, print_console, "[Swear Replacement] Arguments not provided" )
return PLUGIN_HANDLED
}
new Configsdir[64]
new swear_file[64]
get_configsdir( Configsdir, 63 )
format ( swear_file, 63, "%s/swearwords.ini", Configsdir )
read_args ( g_swearWords[g_swearNum], 19 )
write_file( swear_file, "" )
write_file( swear_file, g_swearWords[g_swearNum] )
g_swearNum++
id ? client_print ( id, print_console, "[Swear Replacement] Swear word added to List" ) : server_print ( "[Swear Replacement] Swear word added to file" )
return PLUGIN_HANDLED
}
public add_replacement(id)
{
if ( ( !(get_user_flags(id)&ADMIN_LEVEL_A) && id ) )
{
client_print ( id, print_console, "[Swear Replacement] Access Denied" )
return PLUGIN_HANDLED
}
if ( read_argc() == 1 )
{
client_print ( id, print_console, "[Swear Replacement] Arguments not provided" )
return PLUGIN_HANDLED
}
new Configsdir[64]
new replace_file[64]
get_configsdir( Configsdir, 63 )
format ( replace_file, 63, "%s/replacements.ini", Configsdir )
read_args ( g_replaceLines[g_replaceNum], 191 )
write_file( replace_file, "" )
write_file( replace_file, g_replaceLines[g_replaceNum] )
g_replaceNum++
id ? client_print ( id, print_console, "[Swear Replacement] Replacement Line added to List" ) : server_print ( "[Swear Replacement] Replacement Line added to file" )
return PLUGIN_HANDLED
}
public string_cleaner( str[] )
{
new i, len = strlen ( str )
while ( contain ( str, " " ) != -1 )
replace ( str, len, " ", "" )
len = strlen ( str )
while ( contain ( str, "|<" ) != -1 )
replace ( str, len, "|<", "k" )
len = strlen ( str )
while ( contain ( str, "|>" ) != -1 )
replace ( str, len, "|>", "p" )
len = strlen ( str )
while ( contain ( str, "()" ) != -1 )
replace ( str, len, "()", "o" )
len = strlen ( str )
while ( contain ( str, "[]" ) != -1 )
replace ( str, len, "[]", "o" )
len = strlen ( str )
while ( contain ( str, "{}" ) != -1 )
replace ( str, len, "{}", "o" )
len = strlen ( str )
for ( i = 0; i < len; i++ )
{
if ( str[i] == '@' )
str[i] = 'a'
if ( str[i] == '$' )
str[i] = 's'
if ( str[i] == '0' )
str[i] = 'o'
if ( str[i] == '7' )
str[i] = 't'
if ( str[i] == '3' )
str[i] = 'e'
if ( str[i] == '5' )
str[i] = 's'
if ( str[i] == '<' )
str[i] = 'c'
if ( str[i] == '3' )
str[i] = 'e'
}
}
Отредактировал: Jordan2390, - 24.5.2009, 22:42