give_user_weapon()

Started by Astarasefk,

Previous topic - Next topic

Astarasefk

Folosire: give_user_weapon( id, CSW_DEAGLE, 1, 0 );

ii da unui user un deagle cu 1 glont, inainte cand faceam plugin-uri si setam gloante exact intodeauna primeam bug-uri cu give_Item() si cs bppamoo functions, functia asta rezolva aceasta problema:

/* 
    give_user_weapon( index, CSW_weapon, Clip, BPAmmo, szWeapon, maxchars )

        @param index: The Player Index to give an weapon.
        @param iWeaponTypeID: Weapon ID ( CSW_* )
        @param iClip: Clip of ammo (bullets).
        @param iBPAmmo: Back Pack ammo of the weapon.
        @param szWeapon[]:(Optionaly) The weapon name pointer to receive the weapon name.
                                              The Weapon name is without 'weapon_' prefix. Example: m4a1

        @param maxchars: (Optionaly if you use szWeapon param ) szWeapon[] size. The value 20 is recommended for most weapons.

                @return: Weapon Entity ID
*/

 give_user_weapon( index , iWeaponTypeID , iClip=0 , iBPAmmo=0 , szWeapon[]="" , maxchars=0)


give_user_weapon( index , iWeaponTypeID , iClip=0 , iBPAmmo=0 , szWeapon[]="" , maxchars=0 )
{
    if ( !( CSW_P228 <= iWeaponTypeID <= CSW_P90 ) || ( iClip < 0 ) || ( iBPAmmo < 0 ) || !is_user_alive( index ) )
        return -1;
   
    new szWeaponName[ 20 ] , iWeaponEntity , bool:bIsGrenade;
   
    const GrenadeBits = ( ( 1 << CSW_HEGRENADE ) | ( 1 << CSW_FLASHBANG ) | ( 1 << CSW_SMOKEGRENADE ) | ( 1 << CSW_C4 ) );
   
    if ( ( bIsGrenade = bool:!!( GrenadeBits & ( 1 << iWeaponTypeID ) ) ) )
        iClip = clamp( iClip ? iClip : iBPAmmo , 1 );
   
    get_weaponname( iWeaponTypeID , szWeaponName , charsmax( szWeaponName ) );
   
    if ( ( iWeaponEntity = user_has_weapon( index , iWeaponTypeID ) ? find_ent_by_owner( -1 , szWeaponName , index ) : give_item( index , szWeaponName ) ) > 0 )
    {
        if ( iWeaponTypeID != CSW_KNIFE )
        {
            if ( iClip && !bIsGrenade )
                cs_set_weapon_ammo( iWeaponEntity , iClip );
       
            if ( iWeaponTypeID == CSW_C4 )
                cs_set_user_plant( index , 1 , 1 );
            else
                cs_set_user_bpammo( index , iWeaponTypeID , bIsGrenade ? iClip : iBPAmmo );
        }
       
        if ( maxchars )
            copy( szWeapon , maxchars , szWeaponName[7] );
    }
   
    return iWeaponEntity;
}


module necesare: cstrike, engine, fun.
terra fanclub.