#include #include //Uncomment 'IM_USING_ZP50' if your server is running ZP50 and above. //#define IM_USING_ZP50 #if defined IM_USING_ZP50 native zp_ammopacks_get(id) native zp_ammopacks_set(id, amount) #else native zp_get_user_ammo_packs(id) native zp_set_user_ammo_packs(id, amount) #endif //Your vault name #define VAULT_NAME "apstore" //Max player's ammopack that can be save in vault. #define MAX_AMMOPACK 9999 //Max day player's ammopack can be stay in vault, set 0 = permanent. #define DAY_PRUNE 15 new hVaultHandle, bool:bIsLoaded[33], szSteamid[33][35] public plugin_init() { register_plugin("ZP AP Store", "0.0.1", "wbyokomo") } public plugin_cfg() { hVaultHandle = nvault_open(VAULT_NAME) if(hVaultHandle == INVALID_HANDLE) { new szText[128] formatex(szText, 127, "Error opening '%s' nVault.", VAULT_NAME) set_fail_state(szText) } new day = DAY_PRUNE if(day > 0) nvault_prune(hVaultHandle, 0, get_systime() - (DAY_PRUNE * 86400)); } public plugin_end() { nvault_close(hVaultHandle) } public client_putinserver(id) { if(is_user_hltv(id)) return; if(is_user_bot(id)) return; get_user_authid(id, szSteamid[id], 34) LoadData(id) } public client_disconnect(id) { SaveData(id) bIsLoaded[id] = false } LoadData(id) { new szKey[40] formatex(szKey, 39, "%sZPAP", szSteamid[id]) new iAmmo = nvault_get(hVaultHandle, szKey) #if defined IM_USING_ZP50 zp_ammopacks_set(id, iAmmo) #else zp_set_user_ammo_packs(id, iAmmo) #endif bIsLoaded[id] = true } SaveData(id) { if(!bIsLoaded[id]) return; #if defined IM_USING_ZP50 new ap = zp_ammopacks_get(id) #else new ap = zp_get_user_ammo_packs(id) #endif if(ap > MAX_AMMOPACK) ap = MAX_AMMOPACK; new szAmmo[12], szKey[40] formatex(szKey, 39, "%sZPAP", szSteamid[id]) formatex(szAmmo, 11, "%d", ap) nvault_set(hVaultHandle, szKey, szAmmo) }