Reklam gösterimini engelleyici yazılım kullandığınızı görüyoruz.
Sitemizin ayakta kalıp sizlere hizmet edebilmek için en büyük gelir kaynağı sayfamızda gösterilen reklamlardır.
Reklam gösterimde bizim sayfamıza ayrıcalık tanıyarak ayakta kalmamıza destek olmak ister misiniz ?

nVault Temel Bilgiler [Orta Seviye ]

Konu

#1
  • nVault
nVault, harici bir dosyaya veri kaydetmenin ve dosyadan veri almanın en kolay yoludur. nVault harici dosyaları map değiştiğinde veya server çöktüğünde herhangi bir veri kaybına uğramazlar. Bu yüzden kişisel verileri depolamanın en iyi yolu nVault modülünü kullanmaktır. Örneğin bu modül ile üyelik, banka vb. sistemler yazabilirsiniz.

nVault modülünün kullandığı harici dosyalar 
.vault uzantılı dosyalardır. Vault dosyalarında her bir satır iki parametreden oluşur. İlk parametre anahtar parametresidir. Anahtar parametrelerini vault dosyalarında satırları bulmak için kullanırız. İkinci parametre ise anahtar parametre için belirlediğimiz verilerdir. Her iki parametrenin de kayıt türü "string" dir. Fakat ikinci parametre çağrılırken "integer", "float" veya "string" şeklinde de çağrılabilir. Verilerin kaydedildiği .vault dosyaları "binary" formatındadır. Yani normal yollarla düzenlenemez/okunamaz. Ancak Vault file editor programlarıyla okuyup düzenleyebilirsiniz.


nVault Fonksiyonları:



nvault_open - Bir vault dosyasını açmakta kullanılır.
nvault_close - Açılan bir vault dosyasını kapatmakta kullanılır.
nvault_lookup - Bir vault dosyasında belirtilen satırı okuyup tam bilgi toplar.
nvault_get - Bir vault dosyasının belirtilen satırdaki ikinci parametreyi okumak için kullanılır.
nvault_set - Bir vault dosyasına satır yazmak için kullanılır. Geçerli zamanı damgalar.
nvault_pset - Bir vault dosyasına satır yazmak için kullanılır. Zaman damgası kullanılmaz.
nvault_touch - Bir vault satırının zaman damgasını yeniler.
nvault_prune - Belirlenen zaman içerisindeki tüm vault satırlarını siler.
nvault_remove - Belirtilen anahtar parametrenin satırını siler.

nvault_open Fonksiyonu:

Herhangi bir işlem yapmadan önce, işlem yapılacak vault dosyası açılmalıdır. Dosya açma işlemi de bu fonksiyon ile kullanılır. Bu fonksiyon yalnızca 1 parametre içerir. Bu parametre de açılacak dosyanın ismidir. Eğer dosya açılması sırasında herhangi bir hata meydana gelirse bu fonksiyon INVALID_HANDLE (-1) 'a dönecektir. Bu yüzden bu fonksiyon ile dosyanın düzgün açılıp açılmadığı kontrolünü yapmamız gerekir. Ayrıca bu fonksiyon plugin_cfg() publicinde kullanılmalıdır.

nvault_open( const szVaultName[] )

szVaultName = Buraya vault dosyanızın adı girilecektir. Örneğin banka.vault adlı bir dosyanız var ise buraya "banka" yazıcaksınız.

Kod:
new iVault = nvault_open( "banka" );

if ( iVault == INVALID_HANDLE )
    set_fail_state( "nVault Dosyasi Acilamadi !" );



nvault_close Fonksiyonu:

Bu fonksiyon açılmış olan vault dosyasını kapatmak için kullanılır. Kapatılan dosya tekrar açılana kadar üzerinde herhangi bir işlem yapılamaz. Bu fonksiyon plugin_end() publicine yazılır. Böylece server çökmeden veya map değişmeden hemen önce vault dosyaları kapatılır ve veri kaybı önlenmiş olur. Eğer bu fonksiyon ile dosyalarınızı kapatmazsanız map değiştiğinde veya server çöktüğünde verileri kaybedersiniz. Bu fonksiyon bir nevi kayıt işlemidir. 

nvault_close( vault )

vault = Kapatmak istediğimiz vault dosyasını açarken kullandığımız global değişkendir.

nvault_lookup Fonksiyonu:

Bu fonksiyon ile belirtilen anahtar parametreyi kullanarak, anahtar parametreye ait ikinci parametre olan veriyi ve zaman damgasını öğrenmek için kullanırız. Öğrendiğimiz veri string türü değişkenlerde depolanabilir. Bu fonksiyon true ve false olmak üzere iki farklı şekile dönüşebilir. Eğer anahtar parametre vault dosyasında bulunamazsa false olur. Eğer dosyada aranan parametre bulunursa true olur.

nvault_lookup( vault , const szKey[] , szValue[] , iMaxLength , iTimestamp )

vault = Vault dosyamızı açarken atadığımız değişken. (integer)
szKey = Verisini öğrenmek istediğimiz anahtar parametre. (string)
szValue = Öğrenilen verinin depolanacağı değişken. (string)
iMaxLength = szValue değişkeninin maksimum uzunluğu. (integer)
iTimestamp = Öğrenilen zaman damgasının depolanacağı değişken. (integer)

Kod:
new szName[32];
new szData[32];
new iTimestamp;
new iVault;
new iDataExists;

get_user_name( id , szName , charsmax( szName ) );

iVault = nvault_open( "banka" );
iDataExists = nvault_lookup( iVault , szName , szData , charsmax( szData ) , iTimestamp );

if ( iDataExists )
{
    client_print( id , print_chat , "Ikincil Parametre - Veri =%s Zaman Damgasi = %d" , szData , iTimestamp );
}
else
{
    client_print( id , print_chat , "%s Anahtar Parametresine Ait Veri Bulunamadi." , szName );
}



nvault_get Fonksiyonu:

Bu fonksiyon nvault_lookup fonksiyonuna benzer fakat bu fonksiyon daha esnektir. Bu fonksiyon belirtilen anahtar parametrenin verisini 3 farklı şekilde öğrenebilir. Integer, float ve string. Böylece herhangi bir tür dönüşümü yapmadan kolaylıkla istenen türde veri elde edilebilir. Bu fonksiyon zaman damgasını öğrenmekte kullanılamaz. Eğer zaman damgasını öğrenmek istiyorsanız nvault_lookup fonksiyonunu kullanmak zorundasınız.

nvault_get( vault , const szKey[] , ... )

vault = Vault dosyasını açarken kullandığımız değişken.
szKey = Verisini öğrenmek istediğiniz anahtar parametre.

Farklı türlerde veri alma;
Integer: 
iVeri = nvault_get( vault , szKey[] );

Float:
nvault_get( vault , szKey[] , float );

String:
nvault_get( vault , szKey[] , szValue[] , iMaxLen );

Kod:
new iVault;
new szName[35];
new szData[30];

iVault = nvault_open( "banka" );
get_user_name( id , szName , charsmax( szName ) );

//Integer tipinde veri alma;
new iSayi = nvault_get( iVault , szName );

//Float tipinde veri alma;
new Float: fOndalik;
nvault_get( iVault , szName , fOndalik );

//String tipinde veri alma;
new szData[10];
nvault_get( iVault , szName , szData , charsmax( szData ) );   
[color=#000000][color=#000000][color=#000000]

Kod:
//Anahtar parametre olan kullanıcı ismine özel rutbe koyalım.
new iVault;
new szName[35];
new szData[30];

iVault = nvault_open( "ozelrutbe" );
get_user_name( id , szName , charsmax( szName ) );

nvault_set( iVault , szName , "Profesyonel Oyuncu" );   
[color=#000000][color=#000000][color=#000000]

Kod:
new iVault;
new szName[35];

iVault = nvault_open( "banka" );

get_user_name( id , szName , charsmax( szName ) );

//Şimdiki zamanla veriye dokun;
nvault_touch( iVault , szName );

//1 saat önceki zamanla veriye dokun. (60 * 60) = 3600
nvault_touch( iVault , szName , get_systime() - 3600 );   
[color=#000000][color=#000000][color=#000000]

Kod:
new iVault;

iVault = nvault_open( "banka" );

//En erken olası zaman = 0 dan, şu ana kadar olan tüm verileri sil : 
nvault_prune( iVault , 0 , get_systime() );

//15 gün veya daha eski verileri sil : 
//get_systime() = şuanki zaman.
//1 gün = 86400 saniye = 60 sn * 60 dk * 24 saat
nvault_prune( iVault , 0 , get_systime() - ( 15 * 86400 ) );   
[color=#000000][color=#000000][color=#000000]

Kod:
#include <amxmodx>
#include <nvault>
#include <cstrike>
#include <fun>

new gVault;              
new gszName[33][35];   
new gExpiration;        

public plugin_init()
{
    register_plugin( "CS Money Bankasi" , "1.0" , "akcaliberkk" );
    
    register_clcmd( "say /savemoney" , "cmdSaveMoney" );
    register_clcmd( "say /getmoney" , "cmdGetMoney" );
    
    
    gExpiration = register_cvar( "zaman_asimi" , "10" );
}

public plugin_cfg()
{
    // Vault plugin_cfg() publicinde açılır. 
    
    gVault = nvault_open( "banka" );
    
    if ( gVault == INVALID_HANDLE )
        set_fail_state( "Vault Dosyasi Acilamadi !" );
    
    //Cvarda belirtilen günü aşmış verileri sil. 
    nvault_prune( gVault , 0 , get_systime() - ( 86400 * get_pcvar_num( gExpiration ) ) );
}

public plugin_end()
{
    //Server Çöktünde veya map değiştiğinde dosyayı kapat.
    nvault_close( gVault );
}

public client_authorized(id)
{
    
    get_user_name( id , gszName[id] , charsmax( gszName[] ) );
}

public cmdSaveMoney(id)
{
    
    new szMoney[7];
    
    formatex( szMoney , charsmax( szMoney ) , "%d" , cs_get_user_money(id) );
    
    cs_set_user_money(id,0)
    
    nvault_set( gVault , gszName[id] , szMoney );
    
    client_print( id , print_chat , "Tum Paran Nickine Kaydedildi !" );
}

public cmdGetMoney(id)
{
    
    
    new iMoney = nvault_get( gVault , gszName[id] );
    
    //Parayi cektikten sonra bankayi sifirlamak için veriyi silmelisiniz.
    if ( iMoney )
    {
        cs_set_user_money( id , iMoney , 1 );
        nvault_remove( gVault , gszName[id] );
        
        client_print( id , print_chat , "Paran Nickinin Hesabindan Yuklendi: $%d" , iMoney );
    }
    else
    {
        client_print( id , print_chat , "Bu Nicke Ait Hic Para Verisi Bulunamadi !" );
    }
}



Bu konu Soldier den alıntıdır +Rep vermeyi unutmayın





[Resim: https://i.hizliresim.com/dP6RGD.jpg]



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

Yorum yapmak için üye olmanız gerekiyor

ya da

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Silinmiş Konu   | Csgo modda sağ bilgiler hatası h.k EnesReiS` 2 307 05-09-2019, Saat: 18:59
Son Yorum: Smash
Silinmiş Konu   | nVault Yerine Batmankara 7 414 29-07-2019, Saat: 15:41
Son Yorum: ITenGriTR
Silinmiş Konu   | HTML-5 Temel Örnekler Kirito 1 255 17-03-2019, Saat: 12:47
Son Yorum: ` bRae
Silinmiş Konu   | Bize Oz Bize Ozel Banner Yapabılıcek ucretsız bilgiler assada Legaluga 2 538 08-06-2018, Saat: 15:33
Son Yorum: .CrosS*
Silinmiş Konu   | en aktifleri orta yazı binkankito26111 18 1,620 14-03-2018, Saat: 17:36
Son Yorum: ITenGriTR

Task