Öncelikle nVault hakkında pek bir şey söylemeyeceğim zaten aşağıdaki kodları geçirmeyi bilenler nVault'un ne işe yaradığını az çok bilir.
- Adım 1 / Kaydedilecek verimiz ve kasamız:
ve kaydedilecek yeri belirlemek için bir dosya yolu oluşturmak.
Kod:
new g_OyuncuKillSayisi[33];
new g_Vault;
g_Vault - kaydedilecek dosya
- Adım 2 / Kaydetme ve Yükleme - (Oyuncu bağlandığında killerini ona yüklemek ve Bağlantısını kopardıktan sonra verileri korumak)
Kod:
public client_connect(id)
{
VeriyiYukle(id)
}
public client_disconnected(id)
{
VeriyiKaydet(id)
}
VeriyiKaydet(id) - her kill aldığında mantıken bu arkadaşın kill sayısı artacak, oyundan çıktığı zaman bunu bir publice yönlendirip verisini kaydedeceğiz.
- Adım 3 / Sunucu kapanınca veya çökünce kasayı kapatmak.
Kod:
public plugin_end()
{
nvault_close(g_Vault)
}
- Adım 4 / Map değşince veya server başlayınca kasayı açmak
Kod:
public plugin_cfg()
{
g_Vault = nvault_open("oyuncunun_killeri")
if ( g_Vault == INVALID_HANDLE )
set_fail_state( "Dosya Bulunmamakta!" )
}
- Adım 5 / Kill Sayılarını Kaydetme
Kod:
VeriyiKaydet(id)
{
new szAuth[33];
new szKey[64];
new szData[256];
get_user_authid(id , szAuth , charsmax(szAuth))
formatex(szKey , 63 , "%s-ID" , szAuth)
formatex(szData , 255 , "%i#" , g_OyuncuKillSayisi[id])
nvault_pset(g_Vault , szKey , szData)
}
- Adım 6 / Verileri oyuncya yükleme
Kod:
VeriyiYukle(id)
{
new szAuth[33];
new szKey[40];
get_user_authid(id , szAuth , charsmax(szAuth))
formatex(szKey , 63 , "%s-ID" , szAuth)
new szData[256];
formatex(szData , 255, "%i#", g_OyuncuKillSayisi[id])
nvault_get(g_Vault, szKey, szData, 255)
replace_all(szData , 255, "#", " ")
new veri[32]
parse(szData, veri, 31)
g_OyuncuKillSayisi[id] = str_to_num(veri)
}
- Anlatımdaki eklenti:
Kod:
#include <amxmodx>
#include <nvault>
new g_OyuncuKillSayisi[33]
new g_Vault
public plugin_cfg()
{
g_Vault = nvault_open("oyuncunun_killeri")
if ( g_Vault == INVALID_HANDLE )
set_fail_state( "Dosya Bulunmamakta!" )
}
public plugin_end()
{
nvault_close(g_Vault)
}
public client_connect(id)
{
VeriyiYukle(id)
}
public client_disconnected(id)
{
VeriyiKaydet(id)
}
VeriyiKaydet(id)
{
new szAuth[33];
new szKey[64];
get_user_authid(id , szAuth , charsmax(szAuth))
formatex(szKey , 63 , "%s-ID" , szAuth)
new szData[256]
formatex(szData , 255 , "%i#" , g_OyuncuKillSayisi[id])
nvault_pset(g_Vault , szKey , szData)
}
VeriyiYukle(id)
{
new szAuth[33];
new szKey[40];
get_user_authid(id , szAuth , charsmax(szAuth))
formatex(szKey , 63 , "%s-ID" , szAuth)
new szData[256];
formatex(szData , 255, "%i#", g_OyuncuKillSayisi[id])
nvault_get(g_Vault, szKey, szData, 255)
replace_all(szData , 255, "#", " ")
new veri[32]
parse(szData, veri, 31)
g_OyuncuKillSayisi[id] = str_to_num(veri)
}