nVault Dersi [Tam Detaylı]

Konu

#1
nVault 
Nedir: nVault server çökse yada kapansa bile içinde veri depolamanızı sağlayan bir veri kaydetme yoludur, nVault tahmin edilenden çok daha basit bir kullanıma sahip olmakla beraber bir anahtar üzerine veri kaydeder bu konuyu yazma sebebim ise bir çok arkadaşın özel mesaj üzerinden bu konu hakkındaki soruları.

İçerik: 
Kod:
nvault_open - Belirtilen nVault dosyasını açar ve döndürür.
nvault_close - nVault open tarafından döndürülen veri ile o dosya kapatılır.
nvault_set - Yeni bir veri oluşturur yada olan veriyi düzenler ve zaman damgasını oluşturma zamanı olarak ayarlar.
nvault_pset - Yeni bir veri oluşturur yada olan veriyi düzenler fakat zaman damgasına sahip değildir o yüzden nvault_prune tarafından etkilenmez
nvault_get - Belirlenen anahtardaki verileri döndürür (3 parametre girildi ise tam sayı,4 parametre girildi ise veri uzunluğu)
nvault_lookup - Belirtilen anahtardaki verileri detaylıca döndürür (nvault_get ile çok benzerdir fakat ek olarak zaman damgasını da verir)
nvault_touch - Belirtilen anahtarın zaman damgası ile oynar
nvault_prune - Belirlenen bir zaman damgası içinde kalan tüm anahtarları kaldırır
nvault_remove - Belirtilen anahtarı kaldırır 

Bilinmesi Gerekenler(Bu konu için):
Kod:
get_systime()
charsmax()
formatex()
get_user_name() 

nvault_open(const bmIsim[]): Verilerin ve anahtarların saklanacağı bir nVault dosyasını açar yoksa oluşturur İçerik bölümündeki komutları kullanmadan önce nVault dosyasının açılması yada oluşturulması gerekmektedir eğer açılma yada oluşturma esnasında bir sorun çıkarsa dönen veri - 1 olarak döndürür buda INVALID_HANDLE ye tekabül etmektedir.Parametre olarak içine sadece string değer alır ve "addons/amxmodx/data/vault/" içinde belirlediğiniz string.vault diye dosya oluşturur yada açar.
Örnek: 
Kod:
public plugin_cfg(){
            bmVault = nvault_open("bmTest");
            if(bmVault == INVALID_HANDLE){
                    log_amx("Acilmayan yada Olusturulamayan nVault Dosyasi Bulundu");
            }

nvault_close(bmVault): Açılan ve bir tam sayı(int) değeri döndüren vault dosyasını kapatmak için kullanılır eğer kapatılmazsa dosyada bozukluklara yol açabilmektedir.
Örnek:
Kod:
public plugin_end(){
         nvault_close(bmVault);

nvault_set(bmVault, const bmAnahtar[], const bmVeri[])Berlirtilen vault dosyasına(ilk parametre) bir anahtar üzerinden(2. parametre) bir veri(3. parametre) yazar ve zaman damgası olarak yazıldığı anı baz alır ayrıca işlem olduğunda bir dönüş değerine sahip değildir.
Örnek:
Kod:
public beYaz(bmID){
          new bmIsim[64],bmAnahtar[126];
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-Meyve",bmIsim);
          nvault_set(bmVault,bmAnahtar,"Armut");

nvault_pset(bmVault, const bmAnahtar[], const bmVeri[])Berlirtilen vault dosyasına(ilk parametre) bir anahtar üzerinden(2. parametre) bir veri(3. parametre) yazar ve zaman damgası kullanmaz böylece nvault_prune'den etkilenmez ayrıca işlem olduğunda bir dönüş değerine sahip değildir.
Örnek:
Kod:
public beYaz(bmID){
          new bmIsim[64],bmAnahtar[126];
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-Meyve",bmIsim);
          nvault_pset(bmVault,bmAnahtar,"Armut");

nvault_get(bmVault, const bmAnahtar[], any:...): Berlirtilen vault dosyasına(ilk parametre) bir anahtar üzerinden(2. parametre) bir veri döndürür fakat girilicek parametre sayisi veri türüne göre değişir ayrıca işlem olduğunda veri parametre sayısına göre değişir.
Not: Örnek bölümündeki yazma bölümlerini farklı bölümlerde düşünün ben aynı yere anlaşılması amacıyla yazdım yoksa zaten bu değişkenler tanımlı diye hata verir.
Dönüşler:
Kod:
Eğer any kismina hiçbir veri yazılmamış ise tam sayi değeri döndürür.
Eğer any kismina tek bir veri yazılmış ise(float olarak alınıcak veri) anahtar bulunursa 1 bulunamaz ise 0 döndürür.
Eğer any kisminde çift bir veri yazılmış ise(string olarak alınıcak veri) anahtar bulunursa verinin uzunluğu bulunamaz ise 0 döndürür. 

Örnek:
Kod:
public bmIntVeri(bmID){
          // Yazma : 
          new bmIsim[64],bmAnahtar[126],bmVeri[256];
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-Int",bmIsim);
          formatex(bmVeri,charsmax(bmVeri),"%i",56);
          nvault_set(bmVault,bmAnahtar,bmVeri);
          // Okuma : 
          new bmIsim[64],bmAnahtar[126],bmVeri;
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-Int",bmIsim);
          bmVeri = nvault_get(bmVault,bmAnahtar);
          // Suan bmVeri Değişkeni = 56
}
public bmFloatVeri(bmID){
          // Yazma : 
          new bmIsim[64],bmAnahtar[126],bmVeri[256];
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-Float",bmIsim);
          formatex(bmVeri,charsmax(bmVeri),"%f",56.0);
          nvault_set(bmVault,bmAnahtar,bmVeri);
          // Okuma : 
          new bmIsim[64],bmAnahtar[126],Float:bmVeri;
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-Float",bmIsim);
          nvault_get(bmVault,bmAnahtar,bmVeri);
          // Suan bmVeri Değişkeni = 56.0
}
public bmStringVeri(bmID){
          // Yazma : 
          new bmIsim[64],bmAnahtar[126],bmVeri[256];
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          formatex(bmVeri,charsmax(bmVeri),"naber selam bebegim");
          nvault_set(bmVault,bmAnahtar,bmVeri);
          // Okuma : 
          new bmIsim[64],bmAnahtar[126],bmVeri[256];
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          nvault_get(bmVault,bmAnahtar,bmVeri,charsmax(bmVeri));
          // Suan bmVeri Değişkeni = "naber selam bebegim"

nvault_lookup(bmVault,const bmAnahtar[],bmVeri[],bmVeriUzunluk,bmZamanDamgasi): Berlirtilen vault dosyasına(ilk parametre) bir anahtar üzerinden(2. parametre) bir veri(3. parametre) ve veriuzunluğu(4. parametre) ve zaman damgas(5. parametre) olarak değişkenlere bilgileri yükler nvault_get ile temel birkaç farkı ise verileri ne olursa olsun string olarak döndürür ve ek olarak zaman damgasınada ulaşır ayrıca işlem olduğunda anahtar bulunursa 1 bulunamaz ise 0 döndürür.
Not: Örnek bölümündeki yazma bölümünü farklı bölümlerde düşünün ben aynı yere anlaşılması amacıyla yazdım yoksa zaten bu değişkenler tanımlı diye hata verir.
Örnek:
Kod:
public bmLookTest(bmID){
          // Yazma : 
          new bmIsim[64],bmAnahtar[126],bmVeri[256];
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          formatex(bmVeri,charsmax(bmVeri),"naber selam bebegim");
          nvault_set(bmVault,bmAnahtar,bmVeri);
          // Okuma : 
          new bmIsim[64],bmAnahtar[126],bmVeri[256],bmZamanDamgasi;
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          nvault_lookup(bmVault,bmAnahtar,bmVeri,charsmax(bmVeri),bmZamanDamgasi);
          // Suan bmVeri Değişkeni = "naber selam bebegim" ve bmZamanDamgasi Değişkeni = Burada Oluşturuma Anındaki Saniyeyi Görüceksiniz(INT).

nvault_touch(bmVault,const bmAnahtar[],bmZamanDamgasi=-1):Berlirtilen vault dosyasına(ilk parametre) bir anahtar üzerinden(2. parametre) o anahtarın zaman damgasını güncellemenize yarar ayrıca işlem olduğunda anahtar bulunursa 1 bulunamaz ise 0 döndürür.
Not: Örnek bölümündeki yazma bölümünü farklı bölümlerde düşünün ben aynı yere anlaşılması amacıyla yazdım yoksa zaten bu değişkenler tanımlı diye hata verir.
Örnek:
Kod:
public bmTouchTest(bmID){
          // Yazma : 
          new bmIsim[64],bmAnahtar[126],bmVeri[256];
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          formatex(bmVeri,charsmax(bmVeri),"naber selam bebegim");
          nvault_set(bmVault,bmAnahtar,bmVeri);
          // Zaman Damgasini Güncelleme: 
          new bmIsim[64],bmAnahtar[126];
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          nvault_touch(bmVault,bmAnahtar,-1); // Suanki Zamana Güncelledik
          // Yada
          nvault_touch(bmVault,bmAnahtar,get_systime()-86400); // 1 Gün Önceki Zamana Güncelledik

nvault_prune(bmVault,bmBaslama,bmBitis): Berlirtilen vault dosyası(ilk parametre) üzerinden belirtilen zaman aralıklarındaki tüm değerleri siler ayrıca işlem olduğunda silinen anahtar sayısı işlem olmaz ise 0 döndürür.
Örnek:
Kod:
public bmPruneTest(bmID){
          nvault_prune(bmVault,0,get_systime()); // Tüm verileri sildik
          // Yada
          nvault_prune(bmVault,0,get_systime()-86400); // Bir gün eski tüm verileri sildik
          // Yada
          nvault_prune(bmVault,get_systime()-3600,get_systime()); // Son 1 saat arasındaki tüm verileri sildik

nvault_remove(bmVault,const bmAnahtar[]): Berlirtilen vault dosyasına(ilk parametre) bir anahtar üzerinden(2. parametre) o anahtarı siler ayrıca işlem olduğunda bir dönüş değerine sahip değildir.
Not: Örnek bölümündeki yazma bölümünü farklı bölümlerde düşünün ben aynı yere anlaşılması amacıyla yazdım yoksa zaten bu değişkenler tanımlı diye hata verir.
Örnek:
Kod:
public bmStringTest(bmID){
          // Yazma : 
          new bmIsim[64],bmAnahtar[126],bmVeri[256];
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          formatex(bmVeri,charsmax(bmVeri),"naber selam bebegim");
          nvault_set(bmVault,bmAnahtar,bmVeri);
          // Silme : 
          new bmIsim[64],bmAnahtar[126];
          get_user_name(bmID,bmIsim,charsmax(bmIsim));
          formatex(bmAnahtar,charsmax(bmAnahtar),"%s-String",bmIsim);
          nvault_remove(bmVault,bmAnahtar);

Discord: PawNod#6281 - Instagram - My Plugins - ReBaseBuilder Mod (%10)
Cevapla
#2
Teşekkürler
Cevapla
#3
Teşekkürler
Cevapla
#4
Keşke konuya yazan kişi olarak adımı yazsaydın Gülümse
Cevapla
Cevapla
#6
@PawNod' şu sql eklentisini düzeltmem lazımmm

nvault ta dönüştürmem lazım sanırsam dimi @ITenGriTR

Ama iştr sorun şu sql kodlarının ne anlama geldiğini bilmiyorum
Onlar yerine nvault kodları yazardım

Ve nvault öğreniyorum ama yardımcı olun hangi kodu eklentide nereye yazıcam benim en büyük sıkıntı bu @By.KinG @MawiLarq
Discord : Tıkla Gel
Cevapla
Cevapla
#8
(30-04-2020, 14:51)PawNod\ Adlı Kullanıcıdan Alıntı: @ITenGriTR aklıma gelmedi Çok güldüm yapabilir misin sen
yardımcı ol Çok güldüm
Discord : Tıkla Gel
Cevapla
#9
Teşekkürler, bir video olsa fena olmaz mı ?
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task
Kayıt Ol