View Single Post
Author Message
hitD
Junior Member
Join Date: May 2017
Location: Lithuania
Old 05-18-2018 , 08:23   strip weapon without disturb
Reply With Quote #1

Hello,
Im facing one problem,i want to give a player a gun and strip it immediately i have tryed to use ham strip weapon
HTML Code:
stock ham_strip_user_weapon(id, iCswId, iSlot = 0, bool:bSwitchIfActive = true)
{
    new iWeapon;
    if( !iSlot )
    {
        static const iWeaponsSlots[] = {
            -1,
            2, //CSW_P228
            -1,
            1, //CSW_SCOUT
            4, //CSW_HEGRENADE
            1, //CSW_XM1014
            5, //CSW_C4
            1, //CSW_MAC10
            1, //CSW_AUG
            4, //CSW_SMOKEGRENADE
            2, //CSW_ELITE
            2, //CSW_FIVESEVEN
            1, //CSW_UMP45
            1, //CSW_SG550
            1, //CSW_GALIL
            1, //CSW_FAMAS
            2, //CSW_USP
            2, //CSW_GLOCK18
            1, //CSW_AWP
            1, //CSW_MP5NAVY
            1, //CSW_M249
            1, //CSW_M3
            1, //CSW_M4A1
            1, //CSW_TMP
            1, //CSW_G3SG1
            4, //CSW_FLASHBANG
            2, //CSW_DEAGLE
            1, //CSW_SG552
            1, //CSW_AK47
            3, //CSW_KNIFE
            1 //CSW_P90
        }
        iSlot = iWeaponsSlots[iCswId];
        //user_has_weapon(id, iCswId, 0);
    }

    iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_CBasePlayer[iSlot]);

    while( iWeapon > 0 )
    {
        if( get_pdata_int(iWeapon, m_iId, XO_CBASEPLAYERITEM) == iCswId )
        {
            break;
        }
        iWeapon = get_pdata_cbase(iWeapon, m_pNext, XO_CBASEPLAYERITEM);
        user_has_weapon(id, iCswId, 0);
    }
    
    if( iWeapon > 0 )
    {
    	
        if( bSwitchIfActive && get_pdata_cbase(id, m_pActiveItem) == iWeapon )
       {
       
            ExecuteHamB(Ham_Weapon_RetireWeapon, iWeapon);
        }
        
        if( ExecuteHamB(Ham_RemovePlayerItem, id, iWeapon) )
        {
            user_has_weapon(id, iCswId, 0);
            ExecuteHamB(Ham_Item_Kill, iWeapon);
            return 1;
        }
    }
 }
But the problem if a player holds a gun and shooting or doing something and when it would use retireweapon then it would switch to a better gun for example im shooting with pistol and it switch to m4a1 if without retire then it's empty and i thought about something with invlast with engclient. But maybe there is some more efficient way? Thanks.
hitD is offline