Mam problem z przesunięciem HUD'a na środek ekranu... Powinno działać ale d*pa...
#include <amxmodx>
#include <amxmisc>
// max number of words in swear list
#define MAX_WORDS 150
new g_swearWords[MAX_WORDS][20], g_swearNum, blackid[32], sek[32], blackip[64][32]
public plugin_init()
{
register_plugin ( "powiedz przepraszam", "1.5", "wizu")
register_clcmd ( "say", "swearcheck" )
register_clcmd ( "say_team", "swearcheck" )
register_clcmd ( "say przepraszam", "sorry" )
register_cvar ("sorry_punish", "0")
register_cvar ("sorry_bantime", "30")
new Configsdir[64]
new swear_file[64]
get_configsdir( Configsdir, 63 )
format(swear_file, 63, "%s/bluzgi.ini", Configsdir )
if ( !file_exists(swear_file) )
{
log_amx ( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" )
log_amx ( "[Przepros] %s plik nie odnaleziony", swear_file )
log_amx ( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" )
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++
}
}
public client_connect(id)
{
blackid[id] = 0
name_check(id)
}
public client_infochanged(id)
{
new newname[32],oldname[32]
get_user_info(id, "name", newname,31)
get_user_name(id,oldname,31)
if(!equali(newname, oldname))
name_check(id)
}
public name_check(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 ^"Bluzgajacy bot^"" )
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}
public swearcheck(id)
{
if ( (get_user_flags(id)&ADMIN_IMMUNITY) || !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 )
{
if (!blackid[id])
blackid[id] = 1
if(task_exists(id))
remove_task (id)
switch (blackid[id])
{
case 1:{
sek[id] = 30
swear (id)
}
case 2:{
sek[id] = 20
swear (id)
}
case 3:{
sek[id] = 15
swear (id)
}
case 4:
{
kick_or_ban (id)
return PLUGIN_CONTINUE
}
}
blackid[id]++
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}
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, ".", "" )
len = strlen ( str )
while ( contain ( str, "," ) != -1 )
replace ( str, len, ",", "" )
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'
}
}
public client_disconnect (id)
{
if(task_exists(id))
remove_task (id)
blackid[id] = 0
}
public swear (id)
{
if (sek[id] > 0)
{
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(id, "Dlaczego tak klniesz?^nMasz %i sekund na powiedzenie", sek[id])
set_hudmessage(255, 0, 0, -1.0, -1.0)
show_hudmessage(id, "przepraszam")
set_task(1.0, "swear", id)
sek[id]--
} else
{
new user_name[32]
get_user_name ( id, user_name, 31 )
server_cmd("kick #%d ^"Zostales wyrzucony za klniecie. Dowiedz sie co to jest kultura osobista.^"", get_user_userid(id))
client_print( 0, print_chat, "[Przepros]Gracz %s zostal wyrzucony za bluzgi", user_name)
}
}
public sorry (id)
{
if(task_exists(id))
remove_task (id)
if(blackid[id] > 0)
client_print( id, print_chat, "Postaraj sie nie bluzgac nastepnym razem")
}
public kick_or_ban (id)
{
new punish = get_cvar_num("sorry_punish")
new userip[21+1], username[32]
get_user_ip(id, userip, 21, 1)
get_user_name(id, username, 31)
new userid = get_user_userid(id)
switch (punish)
{
case 0:
{
log_amx ("[Przepros]Gracz %s zostal wyrzucony za klniecie (%s)", username, userip)
server_cmd("kick #%d ^"Zostales wyrzucony za klniecie. Dowiedz sie co to jest kultura osobista.^"", userid)
client_print( 0, print_chat, "[Przepros]Gracz %s zostal wyrzucony za zbyt duza ilosc bluzg", username)
}
case 1:
{
new i = 0
while(blackip[i][0] != 0)
i++
if (i <= 64)
{
copy(blackip[i], 21, userip)
} else
{
log_amx("[Przepros]Gracz %s zostal zbanowany do konca mapy (%s), ale nie bylo juz miejsca na czarnej liscie ip, wiec zostal tylko kickniety", username, userip)
server_cmd("kick #%d ^"Zostales wyrzucony za klniecie. Dowiedz sie co to jest kultura osobista.^"", userid)
client_print( 0, print_chat, "[Przepros]Gracz %s zostal wyrzucony za zbyt duza ilosc bluzg", username)
}
log_amx ("[Przepros]Gracz %s zostal zbanowany do konca mapy (%s)", username, userip)
server_cmd("kick #%d ^"Zostales zbanowany do konca mapy. Dowiedz sie co to jest kultura osobista.^"", userid)
client_print( 0, print_chat, "[Przepros]Gracz %s zbanowany do konca mapy za zbyt duza ilosc bluzg", username)
}
case 2:
{
new bantime = get_cvar_num ("sorry_bantime")
log_amx ("[Przepros]Gracz %s zostal zbanowany na %d minut (%s)", username, bantime, userip)
client_print( 0, print_chat, "[Przepros]Gracz %s zbanowany na %d minut za zbyt duza ilosc bluzg", username, bantime)
server_cmd("kick #%d ^"Zostales zbanowany za klniecie na %d minut^"", userid, bantime)
server_cmd("addip ^"%d^" ^"%s^"", bantime, userip)
server_cmd("writeip")
}
}
}
public client_authorized (id)
{
if (get_user_flags(id) & ADMIN_IMMUNITY)
return
if (!is_user_bot(id))
{
new userip[21+1]
get_user_ip(id, userip, 21, 1)
new i = 0
while(blackip[i++][0] != 0)
{
if (equal(userip, blackip[i], 21))
{
server_cmd("kick #%d ^"Masz bana za klniecie do konca mapy. Dowiedz sie co to jest kultura osobista.^"", get_user_userid(id))
return
}
}
}
}
Chodzi mi o to, żeby hudmessage pokazywało na środku ekranu.
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(id, "Dlaczego tak klniesz?^nMasz %i sekund na powiedzenie", sek[id])
set_hudmessage(255, 0, 0, -1.0, -1.0)
show_hudmessage(id, "przepraszam")
Pls. o help.