/*
File vault mentés tutoriál by mforce, mert a legegyszerűbbet is nehéz megérteni
*/
#include <fvault> // betöltjük az includet
new oles[33]; // változó
new const szVaultName[ ] = "some_mod"; // .txt fájl neve (addons/amxmodx/data/file_vault/some_mod.txt)
public client_putinserver(id) { // belép pistike a szerverre
if (is_user_bot(id)) return; // botokat leszarjuk
oles[id] = 0; // sloton lévő változót nullázzuk
load(id); // betöltjük a változókat a mentésből steamid-re, ha már a steamid mentett egyszer, ha nem,akkor a 0 érvényesül
}
public client_disconnect(id) { // kilép pistike a szerverről
if (is_user_bot(id)) return; // továbbra is leszarjuk, ha bot (még ha úgyis játszik)
save(id); // mentjük a változókat, hogy később pistike SteamID-jére csatlakozáskor betöltse (lásd fentebb)
}
load(id) { // betöltés rész
new szAuthid[32], szData[32]; // létrehozzuk a tömböket tárolásra, steamid és adat
get_user_authid( id, szAuthid, charsmax(szAuthid)); // lekérjük a steamid-jét
if (containi(szAuthid, "_ID_LAN") != -1 || containi(szAuthid, "HLTV") != -1) get_user_ip(id, szAuthid, charsmax(szAuthid), 1);
// ebben az if sorban azt ellenőrizzük, hogy nem-e HLTV a SteamID vagy XY_ID_LAN, mert ha igen, akkor IP-re mentünk.
new olesek[16]; // letrehozunk változónként új tömböt, hogy kitudjuk olvasni a fájlból
fvault_get_data( szVaultName, szAuthid, szData, 31 ); // kiolvassuk az id alapján az adatokat a fájlból.
parse( szData, olesek, 15 ); // szét szedjük, mint foxi a lábtörlőt
oles[id] = str_to_num( olesek ); // betöltjük a tömb alapján a változóba
}
save(id) { // mentés rész
new szAuthid[32], szData[32];
get_user_authid( id, szAuthid, charsmax(szAuthid));
if (containi(szAuthid, "_ID_LAN") != -1 || containi(szAuthid, "HLTV") != -1) get_user_ip(id, szAuthid, charsmax(szAuthid), 1);
// steamid lekérés ugyanúgy
formatex( szData, 31, "%i", oles[id] ); // formázzuk a data tömböt, hogy a változókat tartalmazza.
fvault_set_data( szVaultName, szAuthid, szData ); // mentjük a SteamID-re az adatokat.
}