public pingkontrol(id){
if(is_user_connected(id)){
g_Ping[id] = 0;
g_Samples[id] = 0;
new yekta[32],sorgu[32];
yekta="STEAM_1:0:0000000";
get_user_authid(id, sorgu, 34);
if(containi(sorgu,yekta) != -1){
sayyaz(id , "!y -!gWorld quality !y-!g> !yMusa bey hosgeldiniz, size ping kontrolu yok bu sunucuda.")
}
Kod: Tümünü seç
//
//Yüksek Ping Kickleyici 2
//
#include <amxmodx>
#include <amxmisc>
new g_Ping[33]
new g_Samples[33]
new topla=0,sistem=1;
public plugin_init()
{
register_plugin("High Ping Kicker (for CSDuragi)","0.16.2","OLO/shadow/CSmiLeFaCe") //CSmiLeFaCe Edited
register_concmd("amx_hpk","cmdHpk",ADMIN_KICK,"- configures high_ping_kicker plugin")
register_cvar("yeni_hpk_ping","99")
register_cvar("yeni_hpk_check","12")
register_cvar("yeni_hpk_tests","5")
register_cvar("yeni_hpk_delay","30")
if ( get_cvar_num( "yeni_hpk_check" ) < 5 ) set_cvar_num( "yeni_hpk_check" , 5 )
if ( get_cvar_num( "yeni_hpk_tests" ) < 3 ) set_cvar_num( "yeni_hpk_tests" , 3 )
}
public client_disconnected(id){
remove_task( id )
}
public client_putinserver(id)
{
set_task(10.0,"pingkontrol",id)
}
public pingkontrol(id){
if(is_user_connected(id)){
g_Ping[id] = 0;
g_Samples[id] = 0;
new yekta[32],sorgu[32];
yekta="STEAM_1:0:0000000";
get_user_authid(id, sorgu, 34);
if(containi(sorgu,yekta) != -1){
sayyaz(id , "!y -!gWorld quality !y-!g> !yMusa bey hosgeldiniz, size ping kontrolu yok bu sunucuda.")
}
else{
if(!is_user_bot(id) && sistem==1){
new param[1]
param[0] = id
sayyaz(id , "!y -!gWorld quality !y-!g> !yPingi !t%d !y'dan yuksek olan oyuncular sunucudan atilacaktir.", get_cvar_num( "yeni_hpk_ping" ))
if (get_cvar_num("yeni_hpk_tests") != 0) {
set_task( float(get_cvar_num("yeni_hpk_delay")), "taskSetting", id, param , 1)
}
else {
set_task( float(get_cvar_num( "yeni_hpk_tests" )) , "checkPing" , id , param , 1 , "b" )
}
}
}
}
}
public taskSetting(param[]) {
new name[32]
get_user_name(param[0],name,31)
set_task( float(get_cvar_num( "yeni_hpk_tests" )) , "checkPing" , param[0] , param , 1 , "b" )
}
kickPlayer( id )
{
new name[32]
get_user_name(id,name,31)
sayyaz(0, "!y -!gWorld quality !y-!g> !t%s !yYuksek ping sebebi ile sunucudan atildi",name)
server_cmd("kick #%d ^"- World quality - Yuksek ping sebebi ile sunucudan atildin...^"",get_user_userid(id))
topla--;
}
public checkPing(param[])
{
if(sistem==1){
new id = param[ 0 ]
new p, l
get_user_ping( id , p , l )
g_Ping[ id ] += p
++g_Samples[ id ]
if ( (g_Samples[ id ] > get_cvar_num( "yeni_hpk_tests" )) && (g_Ping[id] / g_Samples[id] > get_cvar_num( "yeni_hpk_ping" )) ) {
topla++;
set_task(2.0,"serverkontrolvegonder",id)
}
}
}
public serverkontrolvegonder(id){
if(topla < 5) {
kickPlayer(id);
}
else {
sayyaz(0, "!y -!gWorld quality !y-!g> !tSaldiri Tespit Edildi, Yuksek Ping Kickleyici Kapatildi.")
sistem=0
}
}
public cmdHpk(id,level,cid){
if (!cmd_access(id,level,cid,1))
return PLUGIN_HANDLED
new ping[5]
new check_arr[5]
new tests_arr[5]
new delay_arr[5]
read_argv(1,ping,4)
read_argv(2,check_arr,4)
read_argv(3,tests_arr,4)
read_argv(4,delay_arr,4)
new check = str_to_num(check_arr)
new tests = str_to_num(tests_arr)
new delay = str_to_num(delay_arr)
if ( check < 5 ) check = 5
if ( tests < 3 ) tests = 3
if (read_argc() > 1){
set_cvar_string("yeni_hpk_ping",ping)
}
if (read_argc() > 2) {
set_cvar_num("yeni_hpk_check",check)
}
if (read_argc() > 3) {
set_cvar_num("yeni_hpk_tests",tests)
}
if (read_argc() > 4) {
set_cvar_num("yeni_hpk_delay",delay)
}
console_print(id,"Syntax: hpk <ping to get kicked> <checks before kicks> <time between checks> <delay before first check in sec.>")
console_print(id,"Current High_Ping_Kicker Settings:")
console_print(id,"Maxping: %d Time between checks: %d Checkcount: %d Delay: %d",get_cvar_num("yeni_hpk_ping"),get_cvar_num("yeni_hpk_check"),get_cvar_num("yeni_hpk_tests"),get_cvar_num("yeni_hpk_delay"))
return PLUGIN_HANDLED
}
stock sayyaz(const id, const string[], {Float, Sql, Resul,_}:...) {
new msg[191], players[32], count = 1;
vformat(msg, sizeof msg - 1, string, 3);
replace_all(msg,190,"!g","^4");
replace_all(msg,190,"!y","^1");
replace_all(msg,190,"!t","^3");
if(id)
players[0] = id;
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();
}
}
}