Merhabalar bugün nVault ile steamid üzerine sayısal değerleri kaydedeceğiz.
Ö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.
ve kaydedilecek yeri belirlemek için bir dosya yolu oluşturmak.
g_OyuncuKillSayisi[33] - oyuncunun kill miktarı
g_Vault - kaydedilecek dosya
VeriyiYukle(id) - oyunucu sunucuya girince önceki zamandan kalma kill sayısı ona geri yüklenecek.
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.
Burada kaydedilecek dosyamızın ismini veriyoruz ve herhangi bir okumama durumunda hata kaydı oluşturuyoruz.
client_disconnected ile algıladığımız ve yönlendirdiğimiz publice steamid ve verimizi beraber kaydediyoruz.
Burada ise bağlanan oyuncunun steamidsini kasadan çekip kill sayısınını ona geri yüklüyoruz.
Hatalar olabilir, farkederseniz belirtin.
Ö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)
}Dm atmayın bakmıyorum. Mod satmıyorum paylaşılan modlara da destek vermiyorum.
)


