# Include <amxmodx>
# Include <fakemeta>
# Include <zombieplague>
# Include <nvault>
# Define PLUGIN "[ZP] Ammo Bank"
# Define VERSION "1.0"
# Define AUTHOR "Author"
New g_save, g_ammo [ 33 ] , g_ammo_can_save [ 33 ]
New cvar_save_in
# Define MAX_SAVE 3000 / / Max ammo mentes
public plugin_init ( )
{
register_plugin ( PLUGIN, VERSION, AUTHOR )
register_event ( "DeathMsg" , "event_deathmsg ' , 'a' )
register_forward ( FM_PlayerPreThink , "fw_PlayerPreThink" )
cvar_save_in = register_cvar ( "zp_ammo_save_in" , "0" ) / / 0 = name / ip = 1/2 = steam id
g_save = nvault_open ( "g_ammo_save" )
}
/ / Free LCS
Public zp_user_infected_post ( id, infector )
{
if ( g_ammo_can_save [ infector ] )
Save_Ammo_date ( infector )
if ( g_ammo_can_save [ id ] )
Save_Ammo_date ( id )
}
Public zp_extra_item_selected ( id, itemid )
{
if ( g_ammo_can_save [ id ] )
Save_Ammo_date ( id )
}
Public event_deathmsg ( )
{
New killer = read_data ( 1 )
New Victim = read_data ( 2 )
if ( ! killer && ! ??Victim )
return PLUGIN_CONTINUE ;
if ( g_ammo_can_save [ killer ] )
Save_Ammo_date ( killer )
if ( g_ammo_can_save [ Victim ] )
Save_Ammo_date ( Victim )
return PLUGIN_CONTINUE ;
}
Public fw_PlayerPreThink ( id )
{
if ( g_ammo_can_save [ id ] )
{
New ammo_packs = zp_get_user_ammo_packs ( id )
g_ammo [ id ] = ammo_packs
}
return FMRES_IGNORED ;
}
Public client_disconnect ( id )
{
if ( g_ammo_can_save [ id ] )
Save_Ammo_date ( id )
}
Public client_putinserver ( id )
set_task ( 2.0 , "now_can_save" , id )
Public now_can_save ( id )
{
Load_Ammo_date ( id )
set_task ( 0.5 , "can_save_true" , id )
}
Public can_save_true ( id )
g_ammo_can_save [ id ] = true
Public Save_Ammo_date ( id )
{
New vaultkey [ 64 ] , vaultdata [ 256 ]
switch ( get_pcvar_num ( cvar_save_in ) )
{
case 0 :
{
new name [ 33 ] ;
get_user_name ( id, name, 32 )
format ( vaultkey, 63 , "% s-/" , name )
}
case 1 :
{
New player_ip [ 33 ]
get_user_ip ( id, player_ip, 32 ) ;
format ( vaultkey, 63 , "% s /" , player_ip )
}
case 2 :
{
new auth [ 33 ] ;
get_user_authid ( id, auth, 32 ) ;
formatex ( vaultkey, 64 , "% s /" , auth ) ;
}
}
format ( vaultdata, 255 , "% i #" , g_ammo [ id ] )
nvault_set ( g_save, vaultkey, vaultdata )
return PLUGIN_CONTINUE ;
}
Public Load_Ammo_date ( id )
{
New vaultkey [ 64 ] , vaultdata [ 256 ]
switch ( get_pcvar_num ( cvar_save_in ) )
{
case 0 :
{
new name [ 33 ] ;
get_user_name ( id, name, 32 )
format ( vaultkey, 63 , "% s-/" , name )
}
case 1 :
{
New player_ip [ 33 ]
get_user_ip ( id, player_ip, 32 ) ;
format ( vaultkey, 63 , "% s /" , player_ip )
}
case 2 :
{
new auth [ 33 ] ;
get_user_authid ( id, auth, 32 ) ;
formatex ( vaultkey, 64 , "% s /" , auth ) ;
}
}
format ( vaultdata, 255 , "% i #" , g_ammo [ id ] )
nvault_get ( g_save, vaultkey, vaultdata, 255 )
replace_all ( vaultdata, 255 , "#" , "" )
New playammo [ 32 ]
parse ( vaultdata, playammo, 31 )
g_ammo [ id ] = str_to_num ( playammo )
set_ammo ( id )
return PLUGIN_CONTINUE ;
}
Public set_ammo ( id )
{
if ( g_ammo [ id ] > MAX_SAVE )
{
zp_set_user_ammo_packs ( id, MAX_SAVE )
g_ammo [ id ] = MAX_SAVE
}
else
zp_set_user_ammo_packs ( id, g_ammo [ id ] )
client_print ( id, print_chat , "Vissza kaptad az eddig gyujtot ammod!!" , g_ammo [ id ] )
}