Oto Steam id kick
Gönderilme zamanı: Pzt Mar 29, 2021 9:28 pm
cs 1.6 serverim için steam id ban yerine oto bir şekilde log dosyası üzerinden çalışacak bir steam id kick plugini arıyorum
bir serverda görmüştüm steam id ban atmak yerine bir log dosyasi üzerinden kayıtlı olan steam id leri servera sokmuyordu böyle bir plugin di.
Kod: Tümünü seç
#pragma semicolon 1
#include <amxmodx>
#include <amxmisc>
new const g_szFileName[] = "addons/amxmodx/logs/authidbans.ini";
public plugin_init() {
register_plugin("AuthID-IP Permanent Ban", "0.0.1", "PurposeLess");
register_concmd("amx_apban", "@concmd_authidban", ADMIN_BAN|ADMIN_BAN_TEMP, "<name or #userid>");
}
public client_authorized(pPlayer, const szAuthid[]) {
new szIP[MAX_IP_LENGTH];
get_user_ip(pPlayer, szIP, charsmax(szIP), 1);
if(ReadFile(szAuthid, szIP)) {
server_cmd("kick #%d ^"Sunucudan kalici olarak yasaklandin!", get_user_userid(pPlayer));
}
}
@concmd_authidban(pPlayer, iLevel, iCid) {
if(!cmd_access(pPlayer, iLevel, iCid, 2)) {
return PLUGIN_HANDLED;
}
new szTarget[32];
read_argv(1, szTarget, charsmax(szTarget));
new pTarget = cmd_target(pPlayer, szTarget, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF);
if(!pTarget) {
return PLUGIN_HANDLED;
}
Write_File(pPlayer, pTarget);
server_cmd("kick #%d ^"Sunucudan kalici olarak yasaklandin!", get_user_userid(pTarget));
client_print_color(0, print_team_red, "^3Admin ^4%n^1, ^3%n ^1adli oyuncuyu ^4kalici yasakladi!", pPlayer, pTarget);
return PLUGIN_HANDLED;
}
Write_File(const pPlayer, const pTarget) {
new iFile = fopen(g_szFileName, "a+");
if(iFile) {
new szAuthid[MAX_AUTHID_LENGTH], szIP[MAX_IP_LENGTH], szDate[20];
get_user_authid(pTarget, szAuthid, charsmax(szAuthid));
get_user_ip(pTarget, szIP, charsmax(szIP), 1);
get_time("%m/%d/%Y - %H:%M", szDate, charsmax(szDate));
fprintf(iFile, "[%n][%s][%s][%s] -> Banlayan admin %n", pTarget, szAuthid, szIP, szDate, pPlayer);
fclose(iFile);
}
}
bool:ReadFile(const szgAuthid[], const szgIP[]) {
new iFile = fopen(g_szFileName, "r");
if(iFile) {
new szBuffer[MAX_FMT_LENGTH], szName[MAX_NAME_LENGTH], szAuthid[MAX_AUTHID_LENGTH], szIP[MAX_IP_LENGTH];
while(fgets(iFile, szBuffer, charsmax(szBuffer))) {
trim(szBuffer);
if(szBuffer[0] == EOS || szBuffer[0] == ';') {
continue;
}
parse(szBuffer, szName, charsmax(szName), szAuthid, charsmax(szAuthid), szIP, charsmax(szIP));
if(equali(szgAuthid, szAuthid) || equali(szgIP, szIP)) {
fclose(iFile);
return true;
}
}
fclose(iFile);
}
return false;
}
Test Ettim fakat plugini çalıştıramadım kod icindeki amx_apban komutunu kullandım olmadı bunun saydan calısması icin ne yapabilirim ?Colditz yazdı: Sal Mar 30, 2021 5:31 am Denemedim, test etmeden kullanmayın.
Kod: Tümünü seç
#pragma semicolon 1 #include <amxmodx> #include <amxmisc> new const g_szFileName[] = "addons/amxmodx/logs/authidbans.ini"; public plugin_init() { register_plugin("AuthID-IP Permanent Ban", "0.0.1", "PurposeLess"); register_concmd("amx_apban", "@concmd_authidban", ADMIN_BAN|ADMIN_BAN_TEMP, "<name or #userid>"); } public client_authorized(pPlayer, const szAuthid[]) { new szIP[MAX_IP_LENGTH]; get_user_ip(pPlayer, szIP, charsmax(szIP), 1); if(ReadFile(szAuthid, szIP)) { server_cmd("kick #%d ^"Sunucudan kalici olarak yasaklandin!", get_user_userid(pPlayer)); } } @concmd_authidban(pPlayer, iLevel, iCid) { if(!cmd_access(pPlayer, iLevel, iCid, 2)) { return PLUGIN_HANDLED; } new szTarget[32]; read_argv(1, szTarget, charsmax(szTarget)); new pTarget = cmd_target(pPlayer, szTarget, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF); if(!pTarget) { return PLUGIN_HANDLED; } Write_File(pPlayer, pTarget); server_cmd("kick #%d ^"Sunucudan kalici olarak yasaklandin!", get_user_userid(pTarget)); client_print_color(0, print_team_red, "^3Admin ^4%n^1, ^3%n ^1adli oyuncuyu ^4kalici yasakladi!", pPlayer, pTarget); return PLUGIN_HANDLED; } Write_File(const pPlayer, const pTarget) { new iFile = fopen(g_szFileName, "a+"); if(iFile) { new szAuthid[MAX_AUTHID_LENGTH], szIP[MAX_IP_LENGTH], szDate[20]; get_user_authid(pTarget, szAuthid, charsmax(szAuthid)); get_user_ip(pTarget, szIP, charsmax(szIP), 1); get_time("%m/%d/%Y - %H:%M", szDate, charsmax(szDate)); fprintf(iFile, "[%n][%s][%s][%s] -> Banlayan admin %n", pTarget, szAuthid, szIP, szDate, pPlayer); fclose(iFile); } } bool:ReadFile(const szgAuthid[], const szgIP[]) { new iFile = fopen(g_szFileName, "r"); if(iFile) { new szBuffer[MAX_FMT_LENGTH], szName[MAX_NAME_LENGTH], szAuthid[MAX_AUTHID_LENGTH], szIP[MAX_IP_LENGTH]; while(fgets(iFile, szBuffer, charsmax(szBuffer))) { trim(szBuffer); if(szBuffer[0] == EOS || szBuffer[0] == ';') { continue; } parse(szBuffer, szName, charsmax(szName), szAuthid, charsmax(szAuthid), szIP, charsmax(szIP)); if(equali(szgAuthid, szAuthid) || equali(szgIP, szIP)) { fclose(iFile); return true; } } fclose(iFile); } return false; }
Yukarıda eklentide nasıl bir sorun var ? Eklentiyi aktif ettiniz mi ? Konsola "amx_apban oyuncu" şeklinde girdiğinizde bir hata veriyor mu ? ( Hatadan kastım Unknown Command gibi.) ? Eğer böyle bir hata alıyorsanız konsola "amx_plugins" yazıp çıktıyı buraya "code" şeklinde atar mısınız ?
Kod: Tümünü seç
Selected Gaming sunucularından hile, küfür, saygısızlık veya taşkınlık sebeplerinden birinin dolayısıyla yasaklısınız!
Evet oyuncunun steamid'si doğrulanması gerekiyor, kiclediğindeki uyarıyı "Satır 19"'dan düzenleyebilirsiniz, ek olarak "addons/amxmodx/logs/authidbans.ini" burada banlayan adminlerin kayıtları zaten tutuluyor.tekbirlik yazdı: Çrş Nis 28, 2021 7:08 pm Sadece o nicke sahip olan kişileri kicklemiyor değil mi ? Yani steam id'nin de eşleşmesi gerek. Ve kicklediğinde ki uyarıyı aşağıdaki şekilde yapabilir
miyiz?"amx_apban oyuncu" yazan adminin kayıdı tutulabilir mi .ini dosyası şeklinde?Kod: Tümünü seç
Selected Gaming sunucularından hile, küfür, saygısızlık veya taşkınlık sebeplerinden birinin dolayısıyla yasaklısınız!