#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#include <cstrike>
#define PLUGIN "Plugin"
#define VERSION "0.1"
#define AUTHOR "G[o]Q"
new fragi[33] // fragi
new deads[33] // deady
new g_name[33][48]
new plik_vault
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /pokaz", "pokaz")
plik_vault = nvault_open("fragi") //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)
fragi[id]=0 // zeby ktos kto wejdzie po nas nie mial naszych fragow zapisanych w tablicy
deads[id]=0
// 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 pokaz(id) // funkcje nie ustawiaja liczby frags/deads a plugin mial tylko pokazywac dzialanie stad komenda
client_print(id, print_chat, "fragi: %d deady: %d nick: %s", fragi[id], deads[id], g_name[id]);
public load_frags(id)
{
new name[48]
get_user_name(id,name,47)
new vaultkey[64],vaultdata[128]
formatex(vaultkey,63,"%s-fragi",name)
nvault_get(plik_vault,vaultkey,vaultdata,127) // pobieramy dane
new fragitemp[16], deadstemp[16], nametemp[48];
parse(vaultdata, fragitemp, 15, deadstemp, 15, nametemp, 47) // wydobywamy z ciagu vaultdata nasze dane
fragi[id]=str_to_num(fragitemp) // przypisujemy danym ich wartosci wczytane
deads[id]=str_to_num(deadstemp)
set_user_frags(id,fragi[id])
cs_set_user_deaths ( id, deads[id] )
copy(g_name[id], 47, nametemp);
return PLUGIN_CONTINUE
}
public save_frags(id) {
fragi[id]+=get_user_frags(id) // zwiekszamy liczbe fragow i deadow o stan bierzacy
deads[id]+=get_user_deaths(id)
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-fragi",name) //formatujemy klucz czyli nasz identyfikator dostepu najlepiej zeby roznil sie on 1 czlonem od pozostalych
formatex(vaultdata,127,"%d %d ^"%s^"", fragi[id], deads[id], name) // formatujemy dane
nvault_set(plik_vault,vaultkey,vaultdata) // zapisujemy dane "pod" danym kluczem w pliku
return PLUGIN_CONTINUE
}