Witam bardzo serdecznie.
Pisze do was z prośbą dodania dodatkowego zapisu na flagę. Chodzi mi tutaj o dodatkowy zapis na flagę nie licząc już dopisanego zapisu na flage VIPA (t). Oprócz flagi (t) chcę aby pojawil sie zapis na flage:
- s - specjalny poziom G
Flaga niech ta posiada zapis do 1000AP ![]()
Z góry dziękuje i Pozdrawiam
#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();
}
}
}
}


Dodatki SourceMod



Temat jest zamknięty


ap.amxx









