Konu

#1
Merhaba, bir whitelist eklentisi kullanıyorum. whitelist.txt dosyasına eklediğim steam id'leri sunucuya giriş yapabiliyor. 

Ancak ben ayrıca listeye eklenen uid'ye sahip (4 haneli sayı) oyuncularında sunucuya girebilmesini istiyorum.

Nasıl yapılabilir?

Uid native: native nGetUidByID(id);

Kod:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "check whitelist"
#define VERSION "1.0"
#define AUTHOR "bugsy"

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)

}

public client_authorized(id)
{
    if( !IsWhiteListed(id) )
        server_cmd("kick #%d ^"%s^"", get_user_userid(id), "Sunucumuz bakimdadir.")
}
       
public IsWhiteListed(id)
{
    new szAdminFile[64]
    new szItem[35]
    new szAuthID[35]
    new iItems
    new iLen
   
    get_user_authid( id , szAuthID , 34)
   
    get_configsdir(szAdminFile, 63)
    format( szAdminFile , 63 , "%s/whitelist.txt" , szAdminFile )
   
    iItems = file_size( szAdminFile , 1 )
   
    if( iItems == -1 )
    {
        return 0
    }
    else
    {   
        if( file_size( szAdminFile , 2 ) == 1)
            iItems--
           
        for( new i = 0; i < iItems ; i++)
        {
            read_file( szAdminFile , i , szItem , 34 , iLen );
           
            if ( equal( szAuthID, szItem , strlen(szAuthID) ) )
                return 1
        }   
    }
   
    return 0
}

#2
Kod:
if( nGetUidByID(id) == str_to_num(szItem) )
    return 1

Sorgusu ekleyebilirsin fakat oyuncu oyuna girdiğinde bu kodu çalıştırırsan hesaba giriş yapmadığı için boşa olur o yüzden sunucuya girdikten 5-10 saniye sonra yapabilirsin.
Steam: Tıkla
#3
(16-09-2024, 18:10)Lynchk Adlı Kullanıcıdan Alıntı: Sorgusu ekleyebilirsin fakat oyuncu oyuna girdiğinde bu kodu çalıştırırsan hesaba giriş yapmadığı için boşa olur o yüzden sunucuya girdikten 5-10 saniye sonra yapabilirsin.

Teşekkürler. Şu şekilde ekledim fakat herkes bloklandı. Amacım hem steam id hem uid erişimi
Kod:
if ( equal( szAuthID, szItem , strlen(szAuthID) ) || nGetUidByID(id) == str_to_num(szItem) )
    return 1

whitelist.txt dosyam şöyle

Kod:
VALVE_2:1:1624433358
1511
STEAM_0:1:645642351
1277

Son Düzenleme: 16-09-2024, 19:59, Düzenleyen: darth vader.
#4
Kod:
if ( equal( szAuthID, szItem , strlen(szAuthID) ) )
    return 1
if (nGetUidByID(id) == str_to_num(szItem))
    return 1

Bu şekilde ayrı ayrı deneyin, olmazsa değerleri loglayıp sorunu bulabiliriz.
Steam: Tıkla
#5
@darth vader konunuz cozulduyse bildirmeyi unutmayiniz.
MODEL TASARIMI SİLAH TASARIMI SPREY TASARIMI EKLENTİ İŞLERİ MOD KURULUMU İÇİN DİSCORD:okan5705 veya Ts3:flexekip
#6
(19-09-2024, 00:39)Lynchk Adlı Kullanıcıdan Alıntı:
Kod:
if ( equal( szAuthID, szItem , strlen(szAuthID) ) )
    return 1
if (nGetUidByID(id) == str_to_num(szItem))
    return 1

Bu şekilde ayrı ayrı deneyin, olmazsa değerleri loglayıp sorunu bulabiliriz.

Oldu hocam teşekkür ederim Gülümse
#7
İstek konusu, @Lynchk adlı kullanıcı tarafından 5 gün içinde çözülmüştür.
İsteği çözdüğü için Lynchk Adlı kullanıcıya 1 rep puanı ve 1 yardım etme puanı otomatik olarak verilmiştir.
Lynchk Adlı kullanıcı sizin dışınızda toplam 939 kişiye yardım etmiştir.

Herhangi bir konuda hata olduğunu düşünüyorsanız destek sistemi üzerinden iletişim kurabilirsiniz.

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Kayıt Ol