new vault_keynum[512]; new num_keynum = fvault_get_keynum(g_vault, vault_keynum);
nie zrozumiałeś dokumentacji,
/** * Retrieves a key number specified by its name * * @param vaultname Vault name to look in * @param key Key name to search for * @return Returns key number on success, -1 on failure */ fvault_get_keynum(const vaultname[], const key[])
gdzie key[] to w naszym przypadku sid gracza i zwraca pozycje tego wpisu w pliku, do pobierania całkowitej ilości wpisów używasz
fvault_size(const vaultname[])
patrząc na kod nie rozumiem po co chcesz zapisywać wszystkich do pamięci podręcznej, skoro sprawdzanie gracza w zapisie w trakcie wchodzenia nie wpływa zupełnie na wydajność
g_bStayBlocked[player] = true; formatex(g_blocked_sids[player], charsmax(g_blocked_sids[]), "%s", sid); formatex(g_blocked_names[player], charsmax(g_blocked_names[]), "%s", nick);
zresetować te wartości przy wychodzeniu i sprawdzać, ustawiać na wchodzeniu client_putinserver albo client_authorized
w twoim kodzie: na rozpoczęciu mapy (nawet przy zmianie mapy może nikogo wtedy nie być na serwerze, bo się z nim łączą dopiero), chcesz odczytać wszystkie wpisy z zapisu, sprawdzasz czy są gracze którzy tam widnieją, zupełnie bez sensu, masz odpowiednie eventy do takiego sprawdzania, przykłady tego co chciałeś zrobić jak byk widnieją na stronie biblioteki fvault, wystarczy poczytać
// How to find all keys within a vault: new const vaultname[] = "myvault"; new total = fvault_size(vaultname); new key[32], data[64]; for( new i = 0; i < total; i++ ) { fvault_get_keyname(vaultname, i, key, sizeof(key) - 1); fvault_get_data(vaultname, key, data, sizeof(data) - 1); server_print("Key: %s | Data: %s", key, data); } // More efficient method to find all keys within a vault: new const vaultname[] = "myvault"; new Array:keys = ArrayCreate(64); new Array:datas = ArrayCreate(512); new total = fvault_load(vaultname, keys, datas); new key[64], data[512]; for( new i = 0; i < total; i++ ) { ArrayGetString(keys, i, key, 31); ArrayGetString(datas, i, data, 511); server_print("Key: %s | Data: %s", key, data); }
mam nadzieje że wytłumaczyłem