#include <amxmodx>
#include <amxmisc>
#include <nvault>
#define PLUGIN "nVault"
#define VERSION "1.0"
#define AUTHOR "Maciejek."
new punkty[33];
new g_name[33][48]
new plik_vault
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
plik_vault = nvault_open("punkty_gracza") //tutaj podajemy "nazwe" pliku z danymi
if(plik_vault == INVALID_HANDLE)
set_fail_state("Nie moge otworzyc pliku :/");
}
public client_authorized(id)
load_frags(id);
public client_disconnect(id)
{
save_frags(id)
punkty[id]=0 // zeby ktos kto wejdzie po nas nie mial naszych fragow zapisanych w tablicy
copy(g_name[id], 47, "");
// mozna by wyswietlic komunikat ale tylko gdy uzywamy komendy bo inaczej nie dosc ze nic sie nie wyswietli
// to w logach zobaczymy "index out of bound"
}
public plugin_end()
nvault_close(plik_vault)
public load_frags(id)
{
new name[48]
get_user_name(id,name,47)
new vaultkey[64],vaultdata[128]
formatex(vaultkey,63,"%s-punkty",name)
if(nvault_get(plik_vault,vaultkey,vaultdata,127)) { // pobieramy dane
new punktytemp[16], nametemp[48];
parse(vaultdata, punktytemp, 15, nametemp, 47) // wydobywamy z ciagu vaultdata nasze dane
punkty[id]=str_to_num(punktytemp) // przypisujemy danym ich wartosci wczytane
copy(g_name[id], 47, nametemp);
}
return PLUGIN_CONTINUE
}
public save_frags(id)
{
punkty[id]+=get_user_frags(id) // zwiekszamy liczbe fragow i deadow o stan bierzacy
new name[48]
get_user_name(id,name,47)
new vaultkey[64],vaultdata[128] // 2 zmienne na klucz i dane ktore bedziemy zapisywac
formatex(vaultkey,63,"%s-punkty",name) //formatujemy klucz czyli nasz identyfikator dostepu najlepiej zeby roznil sie on 1 czlonem od pozostalych
formatex(vaultdata,127,"%d ^"%s^"", punkty[id], name) // formatujemy dane
nvault_set(plik_vault,vaultkey,vaultdata) // zapisujemy dane "pod" danym kluczem w pliku
return PLUGIN_CONTINUE
}