Could anyone make it work for zp 4.3 ? That would be great.... + inc when any changes there...
Code:
#include < amxmodx >
#include < hamsandwich >
#include < fakemeta_util >
#include < zombieplague >
#include < zp50_colorchat.inc >
native zp_get_user_points( id );
native zp_set_user_points( id, amount );
native zp_add_user_points( id, amount );
native zp_del_user_points( id, amount );
new bool:g_GodMode[ 33 ], bool:g_Damage[ 33 ], bool:g_Damage2[ 33 ];
new cvar_godmode_cost, cvar_damage_cost, cvar_ammo_cost, cvar_ammo2_cost, cvar_ammo3_cost;
public plugin_init( )
{
register_plugin( "ZP Buy", "1.0", "Cristi. C" );
register_clcmd( "say /shop", "command_Buy" );
register_clcmd( "say shop", "command_Buy" );
register_menucmd( register_menuid( "Menu1" ), 1023, "BuyMenu" );
RegisterHam( Ham_Spawn, "player", "ham_PlayerSpawned_Post", 1 );
RegisterHam( Ham_Killed, "player", "ham_PlayerKilled" );
RegisterHam( Ham_TakeDamage, "player", "ham_TakeDamage" );
cvar_damage_cost = register_cvar( "zp_damage_cost", "120" );
cvar_ammo_cost = register_cvar( "zp_ammo_cost", "160" );
cvar_ammo2_cost = register_cvar( "zp_ammo_cost", "200" );
cvar_ammo3_cost = register_cvar( "zp_ammo_cost", "280" );
cvar_godmode_cost = register_cvar( "zp_godmode_cost", "150" );
}
public command_Buy( id )
{
new szMenu[ 2025 ];
add( szMenu, 2024, "\yZP Buy\r[1/2]^n^n" );
add( szMenu, 2024, "\r1.\wDouble Damage \r[120 points]^n" );
//add( szMenu, 2024, "\r2.\wBuy Server Slot \r[700 points]^n" );
//add( szMenu, 2024, "\r3.\wBuy Admin Model \r[2250 points]^n" );
add( szMenu, 2024, "\r2.\w100 Ammo Packs \r[160 points]^n" );
add( szMenu, 2024, "\r3.\w200 Ammo Packs \r[200 points]^n" );
add( szMenu, 2024, "\r4.\w300 Ammo Packs \r50^n" );
add( szMenu, 2024, "\r5.\wGod Mode \r[150 points]^n^n" );
add( szMenu, 2024, "\r9.\wNext^n" );
add( szMenu, 2024, "\r0.\wExit^n" );
show_menu( id, ( 1 << 0 | 1 << 1 | 1 << 2 | 1 << 3 | 1 << 4 | 1 << 5 | 1 << 6 | 1 << 7 | 1 << 8 | 1 << 9 ), szMenu, -1, "Menu1" );
}
public ham_TakeDamage( victim, inflictor, attacker, Float:damage )
{
if ( victim == attacker || !is_user_connected( attacker ) )
return HAM_IGNORED;
if ( g_Damage2[ attacker ] )
{
damage *= 2.0;
SetHamParamFloat( 4, damage );
}
return HAM_IGNORED;
}
public ham_PlayerKilled( id )
{
if ( is_user_connected( id ) && g_Damage2[ id ] )
g_Damage2[ id ] = false;
}
public Ham_PlayerSpawnPost( id )
{
if ( is_user_connected( id ) && g_Damage2[ id ] )
g_Damage2[ id ] = false;
if ( is_user_connected( id ) && g_GodMode[ id ] )
{
g_GodMode[ id ] = false;
fm_set_user_godmode( id, 1 );
}
if ( is_user_connected( id ) && g_Damage[ id ] )
{
g_Damage[ id ] = false;
g_Damage2[ id ] = true;
}
}
public client_disconnect( id )
{
if ( g_GodMode[ id ] )
g_GodMode[ id ] = false;
if ( g_Damage[ id ] )
g_Damage[ id ] = false;
if ( g_Damage2[ id ] )
g_Damage2[ id ] = false;
}
public BuyMenu( id, key )
{
static szName[ 32 ];
get_user_name( id, szName, sizeof ( szName ) -1 );
switch( key )
{
case 0:
{
if ( zp_get_user_points( id ) >= get_pcvar_num( cvar_damage_cost ) )
{
g_Damage[ id ] = true;
zp_colored_print( 0, "^3%s ^4has bought ^3Dual Damage", szName );
zp_del_user_points( id, get_pcvar_num( cvar_damage_cost ) );
}
else zp_colored_print( id, "You don't have enough points! Needed are ^3%d ^4points", get_pcvar_num( cvar_damage_cost ) );
}
case 1:
{
if (zp_get_user_points( id ) >= get_pcvar_num( cvar_ammo_cost ) )
{
zp_set_user_ammo_packs( id, zp_get_user_ammo_packs( id ) + 100 );
zp_colored_print( 0, "^3%s ^4has bought^3 100 Ammo Packs", szName );
zp_del_user_points( id, get_pcvar_num( cvar_ammo_cost ) );
}
else zp_colored_print( id, "You don't have enough points! Needed are ^3%d ^4points", get_pcvar_num(cvar_ammo_cost));
}
case 2:
{
if (zp_get_user_points( id ) >= get_pcvar_num( cvar_ammo2_cost ) )
{
zp_set_user_ammo_packs( id, zp_get_user_ammo_packs( id ) + 200 );
zp_colored_print( 0, "^3%s ^4has bought^3 200 Ammo Packs", szName );
zp_del_user_points( id, get_pcvar_num( cvar_ammo2_cost ) );
}
else zp_colored_print( id, "You don't have enough points! Needed are ^3%d ^4points", get_pcvar_num(cvar_ammo2_cost));
}
case 3:
{
if (zp_get_user_points( id ) >= get_pcvar_num( cvar_ammo3_cost ) )
{
zp_set_user_ammo_packs( id, zp_get_user_ammo_packs( id ) + 300 );
zp_colored_print( 0, "^3%s ^4has bought^3 300 Ammo Packs", szName );
zp_del_user_points( id, get_pcvar_num( cvar_ammo3_cost ) );
}
else zp_colored_print( id, "You don't have enough points! Needed are ^3%d ^4points", get_pcvar_num( cvar_ammo3_cost ) );
}
case 4:
{
if ( zp_get_user_points( id ) >= get_pcvar_num( cvar_godmode_cost ) )
{
g_GodMode[ id ] = true;
zp_colored_print( 0, "^3%s ^4a cumparat ^3God Mode", szName );
zp_del_user_points( id, get_pcvar_num( cvar_godmode_cost ) );
}
else zp_colored_print( id, "You don't have enough points! Needed are ^3%d ^4points", get_pcvar_num( cvar_godmode_cost ) );
}
default:
{
return 0;
}
}
return 0;
}