RSSy MYGO.pl Opublikowano Lipiec 27, 2021 o 16:11 RSSy Udostępnij Opublikowano Lipiec 27, 2021 o 16:11 Hello! Someone can change me that, the limit will work only when it's new map? Now it's work like, when you will reach 300 AP (normal player), 500 AP (VIP), you cannot reach more. Code: #include <amxmodx> #include <zombieplague> #include <fvault> #define PLUGIN "[ZP] Save Ammo New v2" #define VERSION "1.3" #define AUTHOR "Shaxu" #define AUTOSAVE_INTERVAL 30.0 #define ACCESS_FLAG ADMIN_LEVEL_H #define MAX_SAVE_ALL 300 #define MAX_SAVE_VIP 500 #define flag_get(%1,%2) (%1 & (1 << (%2 & 31))) #define flag_get_boolean(%1,%2) (flag_get(%1,%2) ? true : false) #define flag_set(%1,%2) %1 |= (1 << (%2 & 31)) #define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31)) new const g_vault_name[] = "ammobank" new g_LoadSuccess, g_IsConnected, g_MaxPlayers new g_name[33][33] new g_ammo[33] new cvar_block_start_ammo, cvar_load_ammo_packs new SayText #define is_user_valid(%1) (1 <= %1 <= g_MaxPlayers) public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_logevent("logevent_round_end", 2, "1=Round_End") cvar_block_start_ammo = register_cvar("zp_bank_block_start", "1") cvar_load_ammo_packs = register_cvar("zp_bank_auto_save", "1") g_MaxPlayers = get_maxplayers() SayText = get_user_msgid("SayText") } public plugin_cfg() { set_task(AUTOSAVE_INTERVAL, "TaskAutoSave",_,_,_,"b") } public client_putinserver(id) { if( is_user_connected ( id ) ) set_task( 6.0, "ShowMessage", id ) if(is_user_hltv(id) || is_user_bot(id)) return; if(get_pcvar_num(cvar_block_start_ammo)) { zp_set_user_ammo_packs(id, 0) } if(get_pcvar_num(cvar_load_ammo_packs)) { AutoLoad(id) } } public client_disconnect(id) { if(flag_get(g_LoadSuccess,id)) { SaveAmmo(id) flag_unset(g_LoadSuccess,id) } flag_unset(g_IsConnected,id) } public logevent_round_end() TaskAutoSave(); public TaskAutoSave() { for(new id = 1; id <= g_MaxPlayers; id++) { if(is_user_valid(id) && flag_get(g_IsConnected,id) && flag_get(g_LoadSuccess,id)) SaveAmmo(id); } } LoadAmmo(id) { new data[16] if(fvault_get_data(g_vault_name, g_name[id], data, 15)) { g_ammo[id] = str_to_num(data) zp_set_user_ammo_packs(id, g_ammo[id]) } flag_set(g_LoadSuccess,id) } SaveAmmo(id) { if(!flag_get(g_LoadSuccess,id)) { server_print("[AutoSaveAmmoPack] User [%i] failed to save AP because it not loaded yet!", id) return } g_ammo[id] = zp_get_user_ammo_packs(id) if(get_user_flags(id) & ACCESS_FLAG) { if(g_ammo[id] >= MAX_SAVE_VIP) { g_ammo[id] = MAX_SAVE_VIP } } else if(g_ammo[id] >= MAX_SAVE_ALL) { g_ammo[id] = MAX_SAVE_ALL } new data[16] num_to_str(g_ammo[id], data, 15) fvault_set_data(g_vault_name, g_name[id], data) } public AutoLoad(id) { if(is_user_hltv(id) || is_user_bot(id)) return; flag_set(g_IsConnected,id) get_user_name(id, g_name[id], 32) LoadAmmo(id) } public ShowMessage(id) { g_ammo[id] = zp_get_user_ammo_packs(id) ChatColor(id, "!g[ZP]!y Twoje AP - !g%d !y| Limit Zwykly - !g300 AP !y| Limit VIP - !g500 AP", g_ammo[id]) } stock ChatColor(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") // Green Color replace_all(msg, 190, "!y", "^1") // Default Color replace_all(msg, 190, "!t", "^3") // Team Color replace_all(msg, 190, "!t2", "^0") // Team2 Color if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i]) write_byte(players[i]); write_string(msg); message_end(); } } } } Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi