CSPLague
steamid kontrolunu komuta bağlama - Printable Version

+- CSPLague (https://www.csplague.com)
+-- Forum: CS 1.6 Plugin (Eklenti) Bölümü (https://www.csplague.com/forumdisplay.php?fid=6)
+--- Forum: [İSTEK] Cs 1.6 Plugin İstek Bölümü (https://www.csplague.com/forumdisplay.php?fid=80)
+---- Forum: Çözülmüş İstekler (https://www.csplague.com/forumdisplay.php?fid=87)
+---- Thread: steamid kontrolunu komuta bağlama (/showthread.php?tid=7224)



steamid kontrolunu komuta bağlama - shakespeare - 27-03-13

canberk merhaba bişey sormak istiyorum. plugin gayet güzel oldu steamid kontrolü ile oyuna giremiyolar. Fakat şöyle birşey denedim. Ben o eklentiye cvar koydum. cvar acık olunca tarama ypaıyo kapalı olunca taramayı yapmıyor. Fakat birşey daha yapmak istedim. Mesela eklenti cvarı kapalı. Sunucu steamid leri kontrol etmiyor. Diyelimki sw da admin bi anda steamid leri kontrol etmek istedi. O anda cvarı açınca sw daki adamların steamid leri eşleşmese bile sunucudan atılmıyo yani adam sunucudan çıkıp tekrar girmeye calıştıgında giremiyor. Mesela /tarama gibi bi komut yapmayı denedim. /tarama yazınca hemen sunucudakilere bakıyo ve steamid leri eşleşmeyince sunucudan anında atsın istedim fakat anında atma olayını yapamadım. Birşey eklemem gerekli mi ?


Cevap: steamid kontrolunu komuta bağlama - akcaliberkk - 27-03-13

for döngüsünü kullanarak oyundaki tüm oyuncuların steamid lerini dosya ile karşılaştırabilirsin. Yapamazsan sma yı at eklerim.


Cevap: steamid kontrolunu komuta bağlama - shakespeare - 28-03-13

PHP Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "SteamID WhiteList"
#define VERSION "1.0"
#define AUTHOR "akcaliberkk"

new const file[] = "addons/amxmodx/configs/STEAMID.ini"

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    if(!
file_exists(file)) {
        new 
fopen(file,"wt")
        
fclose(f);
    }
    
}
public 
client_authorized(id) {
    new 
steamid[32];
    
get_user_authid(id,steamid,31)
    new 
LineTime[32],LineID[32];
    
    new 
szLineText[64],txtlen;
    new 
maxlines file_size(file,1)
    for(new 
line;line<maxlines;line++) {
        
read_file(file,line,szLineText,63,txtlen)
        
parse(szLineText,LineTime,31,LineID,31)
        if(
correct_time(LineTime) && equali(LineID,steamid)) {
            return 
PLUGIN_CONTINUE
        
}
        
    }
    
server_cmd("kick #%d ^"SteamID'niz Listede Bulunmamaktadir.^"",get_user_userid(id))
    return PLUGIN_HANDLED
}  
stock correct_time(const szTime[]) {
    new now[32];
    new mintime[32],maxtime[32];
    new iMinTime,iMaxTime,iTime;
    get_time("%H%M",now,31);
    copy(mintime,4,szTime)
    copy(maxtime,4,szTime[5])
    iMinTime = str_to_num(mintime)
    iMaxTime = str_to_num(maxtime)
    iTime = str_to_num(now)
    if(iMinTime <= iTime <= iMaxTime) return true;
    return false;
    

canberkcim bu sma nın içerisine /tarama diye bi komut eklemek istiyorum. /tarama komutu uygulandığı zaman serverda, o an sunucudaki steamidleri kontrol edecek. Ve listemizdeki steamid ler ile eşleşmez ise oyundan atacak eşleşmeyenleri anında. Yani sunucudayken atacak eşleşme olmazsa. Ben denedim for ile. Fakat for ile oyunculara yaptırabiliyorum ama ini dosyasını okutamıyorum bu seferde. yardımcı olursan sevinirim. Teşekkürler.


Cevap: steamid kontrolunu komuta bağlama - akcaliberkk - 28-03-13

PHP Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "SteamID WhiteList"
#define VERSION "1.0"
#define AUTHOR "akcaliberkk"

new const file[] = "addons/amxmodx/configs/STEAMID.ini"

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /tarama","cmdTara")
    
    if(!
file_exists(file)) {
        new 
fopen(file,"wt")
        
fclose(f);
    }
    
}
public 
cmdTara(id) {
    if(!
access(id,ADMIN_BAN)) return PLUGIN_CONTINUE
    
    
new players[32],inum;
    
get_players(players,inum)
    new 
steamid[32];
    
    new 
LineTime[32],LineID[32];
    new 
szLineText[64],txtlen;
    new 
maxlines file_size(file,1)
    new 
tempid;
    
    for(new 
i;i<inum;i++) {
        
tempid players[i];
        
get_user_authid(tempid,steamid,31)
        for(new 
line;line<maxlines;line++) {
            
read_file(file,line,szLineText,63,txtlen)
            
parse(szLineText,LineTime,31,LineID,31)
            if(!(
correct_time(LineTime) && equali(LineID,steamid))) {
                
server_cmd("kick #%d ^"SteamID'niz Listede Bulunmamaktadir.^"",get_user_userid(tempid))
            }
            
        }
    }
    return PLUGIN_HANDLED
}
public client_authorized(id) {
    new steamid[32];
    get_user_authid(id,steamid,31)
    new LineTime[32],LineID[32];
    
    new szLineText[64],txtlen;
    new maxlines = file_size(file,1)
    for(new line;line<maxlines;line++) {
        read_file(file,line,szLineText,63,txtlen)
        parse(szLineText,LineTime,31,LineID,31)
        if(correct_time(LineTime) && equali(LineID,steamid)) {
            return PLUGIN_CONTINUE
        }
        
    }
    server_cmd("kick #%d ^"SteamID'
niz Listede Bulunmamaktadir.^"",get_user_userid(id))
    return 
PLUGIN_HANDLED
}  
stock correct_time(const szTime[]) {
    new 
now[32];
    new 
mintime[32],maxtime[32];
    new 
iMinTime,iMaxTime,iTime;
    
get_time("%H%M",now,31);
    
copy(mintime,4,szTime)
    
copy(maxtime,4,szTime[5])
    
iMinTime str_to_num(mintime)
    
iMaxTime str_to_num(maxtime)
    
iTime str_to_num(now)
    if(
iMinTime <= iTime <= iMaxTime) return true;
    return 
false;
    




Cevap: steamid kontrolunu komuta bağlama - akcaliberkk - 14-04-13

Çözülmüş İsteklere taşındı.