/*
   Fordította: BBk - Death of Legend
*/
    #include <amxmodx>
    #include <amxmisc>
    #include <fun>
    #include <fakemeta>
 
    #define PLUGIN 	"Half Life Give Items And Weapons"
    #define VERSION 	"2.0"
    #define AUTHOR 	"tuty"
 
    #define ACCESS_LEVEL ADMIN_LEVEL_A
 
    #define RPG_BPAMMO_OFFSET			315
    #define TRIPMINE_BPAMMO_OFFSET		317
    #define SATCHEL_BPAMMO_OFFSET		318
    #define HORNET_BPAMMO_OFFSET		321
    #define GRENADE_BPAMMO_OFFSET		319
    #define SNARK_BPAMMO_OFFSET			320	
    #define PYTHON_BPAMMO_OFFSET		313
    #define CROSSBOW_BPAMMO_OFFSET		316
    #define GAUSS_EGON_BPAMMO_OFFSET		314	
    #define SHOTGUN_BPAMMO_OFFSET		310 	
    #define GLOCK_MP5_9MM_BPAMMO_OFFSET		311 
    #define CHAINGUN_BPAMMO_OFFSET		312
 
    public plugin_init()
    {
        register_plugin( PLUGIN, VERSION, AUTHOR );
        register_concmd( "hl_weapon", "cmdGiveWeapon", ACCESS_LEVEL, "<nev> <fegyver / @ALL> - jatekosnak fegyver adas | @ALL = minden fegyver" );
        register_concmd( "hl_item", "cmdGiveItem", ACCESS_LEVEL, "<nev> <eszkoz / @ALL> - jatekosnak eszkoz adas | @ALL = minden eszkoz" );
    }
 
 
    public cmdGiveWeapon( id, level, cid )
    {
        if( !cmd_access( id, level, cid, 3 ) )
        {
            return PLUGIN_HANDLED;
        }
 
        new arg[ 32 ], wpnarg[ 20 ];
        read_argv( 1, arg, charsmax( arg ) );
 
        new target = cmd_target( id, arg, charsmax( arg ) );
 
        if( !target )
        {
            return PLUGIN_HANDLED;
        }
 
        read_argv( 2, wpnarg, charsmax( wpnarg ) );
 
        if( equal( wpnarg, "crowbar" ) )
        {
            give_item( target, "weapon_crowbar" );
        }
 
        else if( equal( wpnarg, "hivehand" ) )
        {
            give_item( target, "weapon_hornetgun" );
            set_user_bpammo( target, HLW_HORNETGUN, 8 );
        }
 
        else if( equal( wpnarg, "python" ) )
        {
            give_item( target, "weapon_python" );
            set_user_bpammo( target, HLW_PYTHON, 36 );
        }
 
        else if( equal( wpnarg, "357" ) )
        {
            give_item( target, "weapon_357" );
            set_user_bpammo( target, HLW_PYTHON, 36 );
        }
 
        else if( equal( wpnarg, "crossbow" ) )
        {
            give_item( target, "weapon_crossbow" );
            set_user_bpammo( target, HLW_CROSSBOW, 50 );
        }
 
        else if( equal( wpnarg, "squeak" ) )
        {
            give_item( target, "weapon_snark");
            set_user_bpammo( id, HLW_SNARK, 15 );
        }
 
        else if( equal( wpnarg, "tripmine" ) )
        {
            give_item( target, "weapon_tripmine" );
            set_user_bpammo( target, HLW_TRIPMINE, 5 );
        }
 
        else if( equal( wpnarg, "satchel" ) )
        {
            give_item( target, "weapon_satchel" );
            set_user_bpammo( target, HLW_SATCHEL, 5 );
        }
 
        else if( equal( wpnarg, "handgrenade" ) )
        {
            give_item( target, "weapon_handgrenade" );
            set_user_bpammo( target, HLW_HANDGRENADE, 10 );
        }   
 
        else if( equal( wpnarg, "9mmhandgun" ) )
        {
            give_item( target, "weapon_9mmhandgun" );
            set_user_bpammo( target, HLW_GLOCK, 250 );
        }
 
        else if( equal( wpnarg, "glock" ) )
        {
            give_item( target, "weapon_glock" );
            set_user_bpammo( target, HLW_GLOCK, 250 );
        }
 
        else if( equal( wpnarg, "9mmAR" ) )
        {
            give_item( target, "weapon_9mmAR" );
            set_user_bpammo( target, HLW_MP5, 250 );
            give_item( target, "ammo_ARgrenades" );
            give_item( target, "ammo_ARgrenades" );
            give_item( target, "ammo_ARgrenades" );
            give_item( target, "ammo_ARgrenades" );
            give_item( target, "ammo_ARgrenades" );
        }
 
        else if( equal( wpnarg, "gauss" ) )
        {
            give_item( target, "weapon_gauss" );
            set_user_bpammo( target, HLW_GAUSS, 100 );
        }
 
        else if( equal( wpnarg, "mp5gun" ) )
        {
            give_item( target, "weapon_mp5" );
            set_user_bpammo( target, HLW_MP5, 250 );
            give_item( target, "ammo_mp5grenades" );
            give_item( target, "ammo_mp5grenades" );
            give_item( target, "ammo_mp5grenades" );
            give_item( target, "ammo_mp5grenades" );
            give_item( target, "ammo_mp5grenades" );
        }
 
        else if( equal( wpnarg, "egon" ) )
        {
            give_item( target, "weapon_egon" ); 			   
            set_user_bpammo( target, HLW_EGON, 100 );
        }
 
        else if( equal( wpnarg, "rpgrocket" ) )
        {
            give_item( target, "weapon_rpg" );
            set_user_bpammo( target, HLW_RPG, 5 );
        }
 
        else if( equal( wpnarg, "shotgun" ) )
        {
            give_item( target, "weapon_shotgun" );
            set_user_bpammo( target, HLW_SHOTGUN, 125 );
        }
 
        else if( equal( wpnarg, "@ALL" ) )
        {
            give_item( target, "weapon_crowbar" );
            give_item( target, "weapon_hornetgun" );
            set_user_bpammo( target, HLW_HORNETGUN, 8 );
            give_item( target, "weapon_python" );
            set_user_bpammo( target, HLW_PYTHON, 36 );
            give_item( target, "weapon_357" );
            set_user_bpammo( target, HLW_PYTHON, 36 );
            give_item( target, "weapon_crossbow" );
            set_user_bpammo( target, HLW_CROSSBOW, 50 );
            give_item( target, "weapon_snark");
            set_user_bpammo( id, HLW_SNARK, 15 );
            give_item( target, "weapon_tripmine" );
            set_user_bpammo( target, HLW_TRIPMINE, 5 );
            give_item( target, "weapon_satchel" );
            set_user_bpammo( target, HLW_SATCHEL, 5 );
            give_item( target, "weapon_handgrenade" );
            set_user_bpammo( target, HLW_HANDGRENADE, 10 );
            give_item( target, "weapon_9mmhandgun" );
            set_user_bpammo( target, HLW_GLOCK, 250 );
            give_item( target, "weapon_glock" );
            set_user_bpammo( target, HLW_GLOCK, 250 );
            give_item( target, "weapon_9mmAR" );
            set_user_bpammo( target, HLW_MP5, 250 );
            give_item( target, "ammo_ARgrenades" );
            give_item( target, "ammo_ARgrenades" );
            give_item( target, "ammo_ARgrenades" );
            give_item( target, "ammo_ARgrenades" );
            give_item( target, "ammo_ARgrenades" );
            give_item( target, "weapon_gauss" );
            set_user_bpammo( target, HLW_GAUSS, 100 );
            give_item( target, "weapon_mp5" );
            set_user_bpammo( target, HLW_MP5, 250 );
            give_item( target, "ammo_mp5grenades" );
            give_item( target, "ammo_mp5grenades" );
            give_item( target, "ammo_mp5grenades" );
            give_item( target, "ammo_mp5grenades" );
            give_item( target, "ammo_mp5grenades" );
            give_item( target, "weapon_egon" ); 			   
            set_user_bpammo( target, HLW_EGON, 100 );
            give_item( target, "weapon_rpg" );
            set_user_bpammo( target, HLW_RPG, 5 );
            give_item( target, "weapon_shotgun" );
            set_user_bpammo( target, HLW_SHOTGUN, 125 );
        }
 
        else
        {
            console_print( id, "[HL] Ismeretlen fegyvernev!" );
            return PLUGIN_HANDLED;
        }
 
        return PLUGIN_HANDLED;
    }
 
 
    public cmdGiveItem( id, level, cid )
    {
        if( !cmd_access( id, level, cid, 3 ) )
        {
            return PLUGIN_HANDLED;
        }
 
        new arg[ 32 ], itemarg[ 20 ];
        read_argv( 1, arg, charsmax( arg ) );
 
        new target = cmd_target( id, arg, charsmax( arg ) );
 
        if( !target )
        {
            return PLUGIN_HANDLED;
        }
 
        read_argv( 2, itemarg, charsmax( itemarg ) );
 
        if( equal( itemarg, "battery" ) )
        {
            give_item( target, "item_battery" );
        }
 
        else if( equal( itemarg, "healthkit" ) )
        {
            give_item( target, "item_healthkit" );
        }
 
        else if( equal( itemarg, "longjump" ) )
        {
            give_item( target, "item_longjump" );
        }
 
        else if( equal( itemarg, "security" ) )
        {
            give_item( target, "item_security" );
        }
 
        else if( equal( itemarg, "antidote" ) )
        {
            give_item( target, "item_antidote" );
        }
 
        else if( equal( itemarg, "@ALL" ) )
        {
            give_item( target, "item_battery" );
            give_item( target, "item_healthkit" );
            give_item( target, "item_longjump" );
            give_item( target, "item_security" );
            give_item( target, "item_antidote" );
        }
 
        else
        {
            console_print( id, "[HL] Invalid item name!" );
            return PLUGIN_HANDLED;
        }
 
        return PLUGIN_HANDLED;
    }
 
 
    stock set_user_bpammo( index, weapon, amount )
    {
        new offset;
        switch( weapon )
        {
            case HLW_GLOCK, HLW_MP5: offset = GLOCK_MP5_9MM_BPAMMO_OFFSET; 
            case HLW_PYTHON: offset = PYTHON_BPAMMO_OFFSET;
            case HLW_CHAINGUN: offset = CHAINGUN_BPAMMO_OFFSET;
            case HLW_CROSSBOW: offset = CROSSBOW_BPAMMO_OFFSET;
            case HLW_SHOTGUN: offset = SHOTGUN_BPAMMO_OFFSET;
            case HLW_RPG: offset = RPG_BPAMMO_OFFSET;
            case HLW_GAUSS, HLW_EGON: offset = GAUSS_EGON_BPAMMO_OFFSET;
            case HLW_HORNETGUN: offset = HORNET_BPAMMO_OFFSET;
            case HLW_HANDGRENADE: offset = GRENADE_BPAMMO_OFFSET;
            case HLW_TRIPMINE: offset = TRIPMINE_BPAMMO_OFFSET;
            case HLW_SATCHEL: offset = SATCHEL_BPAMMO_OFFSET;
            case HLW_SNARK: offset = SNARK_BPAMMO_OFFSET;
        }
 
        set_pdata_int( index, offset, amount );
    }