İp ye göre ban yerine Nick ban ? - hurracuran - 02-02-13
amx_bannick gibi bir konsol komutuyla belirli nicki banlamak için bir plugin yazılabilirmi ? amx_unbannick amx_bannick kodları olacak mümkünse teşekkür ederim şimdiden -Not : isimler editlenebilir bir belgeye kaydolursa güzel olur
Cevap: İp ye göre ban yerine Nick ban ? - akcaliberkk - 02-02-13
PHP Code: /* Plugin generated by AMXX-Studio */
#include <amxmodx> #include <amxmisc>
#define PLUGIN "Nick Ban" #define VERSION "1.0" #define AUTHOR "akcaliberkk"
new const ban_file[] = "addons/amxmodx/configs/nickbanlist.ini";
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_concmd("amx_bannick","cmdNickBan",ADMIN_BAN,"<nick> <sure>") register_concmd("amx_unbannick","cmdNickUnban",ADMIN_BAN,"<nick>") if(!file_exists(ban_file)) { new f = fopen(ban_file,"wt"); fclose(f) } set_task(60.0,"CheckBans",_,_,_,"b") } public client_infochanged(id) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new UserName[32]; new maxlines = file_size(ban_file,1); get_user_name(id,UserName,31) for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(UserName,LineName)) { server_cmd("kick #%d ^"Bu Servera Girisiniz Yasaklanmistir^"",get_user_userid(id)) return PLUGIN_HANDLED } } return PLUGIN_CONTINUE
} public client_connect(id) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new UserName[32]; new maxlines = file_size(ban_file,1); get_user_name(id,UserName,31) for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(UserName,LineName)) { server_cmd("kick #%d ^"Bu Servera Girisiniz Yasaklanmistir^"",get_user_userid(id)) return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } public cmdNickBan(id,level,cid) { if(!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED new AdminName[32],AdminIP[32]; new UserName[32],UserIP[32]; get_user_name(id,AdminName,31) get_user_ip(id,AdminIP,31,0) new arg1[32],arg2[32]; read_argv(1,arg1,31) read_argv(2,arg2,31) new sure = str_to_num(arg2); new Uid = cmd_target(id,arg1,7); if(!Uid) return PLUGIN_HANDLED get_user_name(Uid,UserName,31) get_user_ip(Uid,UserIP,31,0) if(!sure) { server_cmd("kick #%d ^"Bu Serverdan Suresiz Olarak Banlandiniz^"") client_print(0,print_chat,"Admin %s: %s Adli Oyuncunun Nickini Suresiz Banladi !",AdminName,UserName) log_amx("Admin %s<%s> Nick Ban Player %s<%s> - Sure: Sinirsiz",AdminName,AdminIP,UserName,UserIP) } else { server_cmd("kick #%d ^"Bu Serverdan %d Dakika Banlandiniz^"",sure) client_print(0,print_chat,"Admin %s: %s Adli Oyuncunun Nickini %d Dakika Banladi !",AdminName,UserName,sure) log_amx("Admin %s<%s> Nick Ban Player %s<%s> - Sure: %d",AdminName,AdminIP,UserName,UserIP,sure) } console_print(id,"Oyuncu Banlandi") nickban_user(UserName,sure) return PLUGIN_HANDLED } public cmdNickUnban(id,level,cid) { if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED new TargetName[32],AdminName[32],AdminIP[32]; read_argv(1,TargetName,31) if(!user_exist(TargetName)) { console_print(id,"Bu Isimde Banli Oyuncu Bulunamadi !") return PLUGIN_HANDLED } delete_user(TargetName); get_user_name(id,AdminName,31) get_user_ip(id,AdminIP,31,0) client_print(0,print_chat,"Admin %s: %s Adli Oyuncunun NickBan'ını Kaldirdi.",AdminName,TargetName) log_amx("Admin %s<%s> Nick Unban Player %s",AdminName,AdminIP,TargetName) console_print(id,"Oyuncunun Bani Kalkti") return PLUGIN_HANDLED } public CheckBans() { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new maxlines = file_size(ban_file,1); new usertime; new maxtime = get_systime(); for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(LineExpiration,"Suresiz")) { continue } usertime = str_to_num(LineExpiration); if(usertime < maxtime) { write_file(ban_file,"",line) continue } } delete_empty_lines(ban_file) } nickban_user(const name[],sure) { new szBitis[32]; if(!sure) { copy(szBitis,31,"Suresiz") } else { sure *= 60; num_to_str(sure+get_systime(),szBitis,31); } new szLineText[148]; formatex(szLineText,147,"^"%s^" ^"%s^"",name,szBitis) write_file(ban_file,szLineText) delete_empty_lines(ban_file) return PLUGIN_HANDLED } delete_user(const name[]) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new maxlines = file_size(ban_file,1); for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(name,LineName)) { write_file(ban_file,"",line) break; } } delete_empty_lines(ban_file) return PLUGIN_HANDLED } stock user_exist(const name[]) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new maxlines = file_size(ban_file,1); new checknum; for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(name,LineName)) { checknum++; } } if(checknum) return true; return false; } delete_empty_lines(const filename[]) { static const temp_filename[] = "deleting_lines.txt"; new f = fopen(filename, "rt"); if( !f ) return -1; new lines = 0; new t = fopen(temp_filename, "wt"); static data[512]; while( !feof(f) ) { fgets(f, data, sizeof(data) - 1); if( data[0] && data[0] != '^n' ) { fputs(t, data); } else { lines++; } } fclose(f); fclose(t); delete_file(filename); rename_file(temp_filename, filename, 1); return lines; }
amx_bannick <nick> <sure> // Suresiz banlamak için sure kısmına 0 yazınız.
amx_unbannick <tam nick>
Cevap: İp ye göre ban yerine Nick ban ? - hurracuran - 02-02-13
amx_bannick nick 0 veya herhangi bir sayı şeklinde uyguluyorum hiç birşey olmuyor ? :S
Edit : düzeltiyorum amx_bannick yazınca nick süre filan çıkıyor fakat nick yerine nicki ve süre yerinede süreyi yazınca unknown command diyor .
Cevap: İp ye göre ban yerine Nick ban ? - akcaliberkk - 02-02-13
Bende sorunsuz çalışıyor ? Hata falan varmı kontrol edin ?
Cevap: İp ye göre ban yerine Nick ban ? - hurracuran - 02-02-13
amx mod un compile programıyla çevirdim direk kopyalayıp amx_bannick yazınca kullanım şekli çıkıyor ama nick ve süre yerine gerekeni yazınca unknown command :S Birdaha çevireyim bi sn
EDIT : webcompilerdanda cevirdim programdanda çevirdim aynı sorun
Cevap: İp ye göre ban yerine Nick ban ? - akcaliberkk - 02-02-13
Son anda yaptığım bir değişikliği buraya eklediğim pluginde değiştirmeyi unutmuşum.
PHP Code: #include <amxmodx> #include <amxmisc>
#define PLUGIN "Nick Ban" #define VERSION "1.0" #define AUTHOR "akcaliberkk"
new const ban_file[] = "addons/amxmodx/configs/nickbanlist.ini";
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_concmd("amx_bannick","cmdNickBan",ADMIN_BAN,"<nick> <sure>") register_concmd("amx_unbannick","cmdNickUnban",ADMIN_BAN,"<nick>") if(!file_exists(ban_file)) { new f = fopen(ban_file,"wt"); fclose(f) } set_task(60.0,"CheckBans",_,_,_,"b") }
public client_connect(id) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new UserName[32]; new maxlines = file_size(ban_file,1); get_user_name(id,UserName,31) for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(UserName,LineName)) { server_cmd("kick #%d ^"Bu Servera Girisiniz Yasaklanmistir^"",get_user_userid(id)) return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } public cmdNickBan(id,level,cid) { if(!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED new AdminName[32],AdminIP[32]; new UserName[32],UserIP[32]; get_user_name(id,AdminName,31) get_user_ip(id,AdminIP,31,0) new arg1[32],arg2[32]; read_argv(1,arg1,31) read_argv(2,arg2,31) new sure = str_to_num(arg2); new Uid = cmd_target(id,arg1,7); if(!Uid) return PLUGIN_HANDLED get_user_name(Uid,UserName,31) get_user_ip(Uid,UserIP,31,0) if(!sure) { server_cmd("kick #%d ^"Bu Serverdan Suresiz Olarak Banlandiniz^"",get_user_userid(Uid)) client_print(0,print_chat,"Admin %s: %s Adli Oyuncunun Nickini Suresiz Banladi !",AdminName,UserName) log_amx("Admin %s<%s> Nick Ban Player %s<%s> - Sure: Sinirsiz",AdminName,AdminIP,UserName,UserIP) } else { server_cmd("kick #%d ^"Bu Serverdan %d Dakika Banlandiniz^"",get_user_userid(Uid),sure) client_print(0,print_chat,"Admin %s: %s Adli Oyuncunun Nickini %d Dakika Banladi !",AdminName,UserName,sure) log_amx("Admin %s<%s> Nick Ban Player %s<%s> - Sure: %d",AdminName,AdminIP,UserName,UserIP,sure) } console_print(id,"Oyuncu Banlandi") nickban_user(UserName,sure) return PLUGIN_HANDLED } public cmdNickUnban(id,level,cid) { if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED new TargetName[32],AdminName[32],AdminIP[32]; read_argv(1,TargetName,31) if(!user_exist(TargetName)) { console_print(id,"Bu Isimde Banli Oyuncu Bulunamadi !") return PLUGIN_HANDLED } delete_user(TargetName); get_user_name(id,AdminName,31) get_user_ip(id,AdminIP,31,0) client_print(0,print_chat,"Admin %s: %s Adli Oyuncunun NickBan'ını Kaldirdi.",AdminName,TargetName) log_amx("Admin %s<%s> Nick Unban Player %s",AdminName,AdminIP,TargetName) console_print(id,"Oyuncunun Bani Kalkti") return PLUGIN_HANDLED } public CheckBans() { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new maxlines = file_size(ban_file,1); new usertime; new maxtime = get_systime(); for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(LineExpiration,"Suresiz")) { continue } usertime = str_to_num(LineExpiration); if(usertime < maxtime) { write_file(ban_file,"",line) continue } } delete_empty_lines(ban_file) } nickban_user(const name[],sure) { new szBitis[32]; if(!sure) { copy(szBitis,31,"Suresiz") } else { sure *= 60; num_to_str(sure+get_systime(),szBitis,31); } new szLineText[148]; formatex(szLineText,147,"^"%s^" ^"%s^"",name,szBitis) write_file(ban_file,szLineText) delete_empty_lines(ban_file) return PLUGIN_HANDLED } delete_user(const name[]) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new maxlines = file_size(ban_file,1); for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(name,LineName)) { write_file(ban_file,"",line) break; } } delete_empty_lines(ban_file) return PLUGIN_HANDLED } stock user_exist(const name[]) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new maxlines = file_size(ban_file,1); new checknum; for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(name,LineName)) { checknum++; } } if(checknum) return true; return false; } delete_empty_lines(const filename[]) { static const temp_filename[] = "deleting_lines.txt"; new f = fopen(filename, "rt"); if( !f ) return -1; new lines = 0; new t = fopen(temp_filename, "wt"); static data[512]; while( !feof(f) ) { fgets(f, data, sizeof(data) - 1); if( data[0] && data[0] != '^n' ) { fputs(t, data); } else { lines++; } } fclose(f); fclose(t); delete_file(filename); rename_file(temp_filename, filename, 1); return lines; }
---------- Alttaki Mesaj Zamani 18:20 ---------- Önceki Mesaj Zamani 18:10 ----------
İsim değiştiğinde yeni isim yasaklıysa yine oyundan atma özelliğini şimdi ekledim. Son hali bu, bunu kullan
PHP Code: #include <amxmodx> #include <amxmisc>
#define PLUGIN "Nick Ban" #define VERSION "1.0" #define AUTHOR "akcaliberkk"
new const ban_file[] = "addons/amxmodx/configs/nickbanlist.ini";
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_concmd("amx_bannick","cmdNickBan",ADMIN_BAN,"<nick> <sure>") register_concmd("amx_unbannick","cmdNickUnban",ADMIN_BAN,"<nick>") if(!file_exists(ban_file)) { new f = fopen(ban_file,"wt"); fclose(f) } set_task(60.0,"CheckBans",_,_,_,"b") } public client_infochanged(id) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new UserName[32]; new maxlines = file_size(ban_file,1); get_user_info(id,"name",UserName,31) for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(UserName,LineName)) { server_cmd("kick #%d ^"Bu Servera Girisiniz Yasaklanmistir^"",get_user_userid(id)) return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } public client_connect(id) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new UserName[32]; new maxlines = file_size(ban_file,1); get_user_name(id,UserName,31) for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(UserName,LineName)) { server_cmd("kick #%d ^"Bu Servera Girisiniz Yasaklanmistir^"",get_user_userid(id)) return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } public cmdNickBan(id,level,cid) { if(!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED new AdminName[32],AdminIP[32]; new UserName[32],UserIP[32]; get_user_name(id,AdminName,31) get_user_ip(id,AdminIP,31,0) new arg1[32],arg2[32]; read_argv(1,arg1,31) read_argv(2,arg2,31) new sure = str_to_num(arg2); new Uid = cmd_target(id,arg1,7); if(!Uid) return PLUGIN_HANDLED get_user_name(Uid,UserName,31) get_user_ip(Uid,UserIP,31,0) if(!sure) { server_cmd("kick #%d ^"Bu Serverdan Suresiz Olarak Banlandiniz^"",get_user_userid(Uid)) client_print(0,print_chat,"Admin %s: %s Adli Oyuncunun Nickini Suresiz Banladi !",AdminName,UserName) log_amx("Admin %s<%s> Nick Ban Player %s<%s> - Sure: Sinirsiz",AdminName,AdminIP,UserName,UserIP) } else { server_cmd("kick #%d ^"Bu Serverdan %d Dakika Banlandiniz^"",get_user_userid(Uid),sure) client_print(0,print_chat,"Admin %s: %s Adli Oyuncunun Nickini %d Dakika Banladi !",AdminName,UserName,sure) log_amx("Admin %s<%s> Nick Ban Player %s<%s> - Sure: %d",AdminName,AdminIP,UserName,UserIP,sure) } console_print(id,"Oyuncu Banlandi") nickban_user(UserName,sure) return PLUGIN_HANDLED } public cmdNickUnban(id,level,cid) { if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED new TargetName[32],AdminName[32],AdminIP[32]; read_argv(1,TargetName,31) if(!user_exist(TargetName)) { console_print(id,"Bu Isimde Banli Oyuncu Bulunamadi !") return PLUGIN_HANDLED } delete_user(TargetName); get_user_name(id,AdminName,31) get_user_ip(id,AdminIP,31,0) client_print(0,print_chat,"Admin %s: %s Adli Oyuncunun NickBan'ını Kaldirdi.",AdminName,TargetName) log_amx("Admin %s<%s> Nick Unban Player %s",AdminName,AdminIP,TargetName) console_print(id,"Oyuncunun Bani Kalkti") return PLUGIN_HANDLED } public CheckBans() { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new maxlines = file_size(ban_file,1); new usertime; new maxtime = get_systime(); for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(LineExpiration,"Suresiz")) { continue } usertime = str_to_num(LineExpiration); if(usertime < maxtime) { write_file(ban_file,"",line) continue } } delete_empty_lines(ban_file) } nickban_user(const name[],sure) { new szBitis[32]; if(!sure) { copy(szBitis,31,"Suresiz") } else { sure *= 60; num_to_str(sure+get_systime(),szBitis,31); } new szLineText[148]; formatex(szLineText,147,"^"%s^" ^"%s^"",name,szBitis) write_file(ban_file,szLineText) delete_empty_lines(ban_file) return PLUGIN_HANDLED } delete_user(const name[]) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new maxlines = file_size(ban_file,1); for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(name,LineName)) { write_file(ban_file,"",line) break; } } delete_empty_lines(ban_file) return PLUGIN_HANDLED } stock user_exist(const name[]) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new maxlines = file_size(ban_file,1); new checknum; for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(name,LineName)) { checknum++; } } if(checknum) return true; return false; } delete_empty_lines(const filename[]) { static const temp_filename[] = "deleting_lines.txt"; new f = fopen(filename, "rt"); if( !f ) return -1; new lines = 0; new t = fopen(temp_filename, "wt"); static data[512]; while( !feof(f) ) { fgets(f, data, sizeof(data) - 1); if( data[0] && data[0] != '^n' ) { fputs(t, data); } else { lines++; } } fclose(f); fclose(t); delete_file(filename); rename_file(temp_filename, filename, 1); return lines; }
Cevap: İp ye göre ban yerine Nick ban ? - hurracuran - 02-02-13
Ölüleri banlayamıyorum onu düzeltmek mümkün mü ?
Cevap: İp ye göre ban yerine Nick ban ? - scarty - 02-02-13
akcaliberkk ; Plugin bana lazım değil de counterstrike benim bildiğim konsolda boşluk bıraktığında boşluktan sonrasını algılamıyor mesela "name scarty ;music" yazdım sadece "scarty" algılar adamın isminden sonra boşluk varsa sorun olmazmı veya ona karşı önlem aldın mı bu dediğim örnek amx_nick içinde geçerli adamın ismini değiştirdiğinde boşluktan sonrası algılanmıyor menüyle düzgün olabilir heralde.
Cevap: İp ye göre ban yerine Nick ban ? - hurracuran - 02-02-13
Boşluklarda sorun yok sadece adamın nickinde boşluk yerine % koyarsın olur biter
Cevap: İp ye göre ban yerine Nick ban ? - akcaliberkk - 02-02-13
Ölüleri banlamaya çalıştığında ne diyor ?
---------- Alttaki Mesaj Zamani 21:43 ---------- Önceki Mesaj Zamani 21:36 ----------
PHP Code: /* Plugin generated by AMXX-Studio */
#include <amxmodx> #include <amxmisc>
#define PLUGIN "Nick Ban" #define VERSION "1.0" #define AUTHOR "akcaliberkk"
new const ban_file[] = "addons/amxmodx/configs/nickbanlist.ini";
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_concmd("amx_bannick","cmdNickBan",ADMIN_BAN,"<nick> <sure>") register_concmd("amx_unbannick","cmdNickUnban",ADMIN_BAN,"<nick>") if(!file_exists(ban_file)) { new f = fopen(ban_file,"wt"); fclose(f) } set_task(60.0,"CheckBans",_,_,_,"b") } public client_infochanged(id) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new UserName[32]; new maxlines = file_size(ban_file,1); get_user_info(id,"name",UserName,31) for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(UserName,LineName)) { server_cmd("kick #%d ^"Bu Servera Girisiniz Yasaklanmistir^"",get_user_userid(id)) return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } public client_connect(id) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new UserName[32]; new maxlines = file_size(ban_file,1); get_user_name(id,UserName,31) for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(UserName,LineName)) { server_cmd("kick #%d ^"Bu Servera Girisiniz Yasaklanmistir^"",get_user_userid(id)) return PLUGIN_HANDLED } } return PLUGIN_CONTINUE } public cmdNickBan(id,level,cid) { if(!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED new AdminName[32],AdminIP[32]; new UserName[32],UserIP[32]; get_user_name(id,AdminName,31) get_user_ip(id,AdminIP,31,0) new arg1[32],arg2[32]; read_argv(1,arg1,31) read_argv(2,arg2,31) new sure = str_to_num(arg2); new Uid = cmd_target(id,arg1,CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF); if(!Uid) return PLUGIN_HANDLED get_user_name(Uid,UserName,31) get_user_ip(Uid,UserIP,31,0) if(!sure) { server_cmd("kick #%d ^"Bu Serverdan Suresiz Olarak Banlandiniz^"",get_user_userid(Uid)) client_print(0,print_chat,"Admin %s: %s Adli Oyuncunun Nickini Suresiz Banladi !",AdminName,UserName) log_amx("Admin %s<%s> Nick Ban Player %s<%s> - Sure: Sinirsiz",AdminName,AdminIP,UserName,UserIP) } else { server_cmd("kick #%d ^"Bu Serverdan %d Dakika Banlandiniz^"",get_user_userid(Uid),sure) client_print(0,print_chat,"Admin %s: %s Adli Oyuncunun Nickini %d Dakika Banladi !",AdminName,UserName,sure) log_amx("Admin %s<%s> Nick Ban Player %s<%s> - Sure: %d",AdminName,AdminIP,UserName,UserIP,sure) } console_print(id,"Oyuncu Banlandi") nickban_user(UserName,sure) return PLUGIN_HANDLED } public cmdNickUnban(id,level,cid) { if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED new TargetName[32],AdminName[32],AdminIP[32]; read_argv(1,TargetName,31) if(!user_exist(TargetName)) { console_print(id,"Bu Isimde Banli Oyuncu Bulunamadi !") return PLUGIN_HANDLED } delete_user(TargetName); get_user_name(id,AdminName,31) get_user_ip(id,AdminIP,31,0) client_print(0,print_chat,"Admin %s: %s Adli Oyuncunun NickBan'ını Kaldirdi.",AdminName,TargetName) log_amx("Admin %s<%s> Nick Unban Player %s",AdminName,AdminIP,TargetName) console_print(id,"Oyuncunun Bani Kalkti") return PLUGIN_HANDLED } public CheckBans() { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new maxlines = file_size(ban_file,1); new usertime; new maxtime = get_systime(); for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(LineExpiration,"Suresiz")) { continue } usertime = str_to_num(LineExpiration); if(usertime < maxtime) { write_file(ban_file,"",line) continue } } delete_empty_lines(ban_file) } nickban_user(const name[],sure) { new szBitis[32]; if(!sure) { copy(szBitis,31,"Suresiz") } else { sure *= 60; num_to_str(sure+get_systime(),szBitis,31); } new szLineText[148]; formatex(szLineText,147,"^"%s^" ^"%s^"",name,szBitis) write_file(ban_file,szLineText) delete_empty_lines(ban_file) return PLUGIN_HANDLED } delete_user(const name[]) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new maxlines = file_size(ban_file,1); for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(name,LineName)) { write_file(ban_file,"",line) break; } } delete_empty_lines(ban_file) return PLUGIN_HANDLED } stock user_exist(const name[]) { new szLineText[148],LineName[34],LineExpiration[34],txtlen; new maxlines = file_size(ban_file,1); new checknum; for(new line; line < maxlines; line++) { read_file(ban_file,line,szLineText,147,txtlen) parse(szLineText,LineName,33,LineExpiration,33) if(equali(name,LineName)) { checknum++; } } if(checknum) return true; return false; } delete_empty_lines(const filename[]) { static const temp_filename[] = "deleting_lines.txt"; new f = fopen(filename, "rt"); if( !f ) return -1; new lines = 0; new t = fopen(temp_filename, "wt"); static data[512]; while( !feof(f) ) { fgets(f, data, sizeof(data) - 1); if( data[0] && data[0] != '^n' ) { fputs(t, data); } else { lines++; } } fclose(f); fclose(t); delete_file(filename); rename_file(temp_filename, filename, 1); return lines; }
Düzeldi sanırım.
|