stock get_pdata_char(ent, charbased_offset, intbase_linuxdiff = 5)
{
return ( get_pdata_int(ent, charbased_offset / INT_BYTES, intbase_linuxdiff)>>>((charbased_offset % INT_BYTES) * BYTE_BITS) ) & 0xFF
}
stock bool:get_pdata_bool(ent, charbased_offset, intbase_linuxdiff = 5)
{
return !!( get_pdata_int(ent, charbased_offset / INT_BYTES, intbase_linuxdiff) & (0xFF<<((charbased_offset % INT_BYTES) * BYTE_BITS)) )
}
stock set_pdata_char(ent, charbased_offset, value, intbase_linuxdiff = 5)
{
value &= 0xFF
new int_offset_value = get_pdata_int(ent, charbased_offset / INT_BYTES, intbase_linuxdiff)
new bit_decal = (charbased_offset % INT_BYTES) * BYTE_BITS
int_offset_value &= ~(0xFF<<bit_decal) // clear byte
int_offset_value |= value<<bit_decal
set_pdata_int(ent, charbased_offset / INT_BYTES, int_offset_value, intbase_linuxdiff)
return 1
}
stock set_pdata_bool(ent, charbased_offset, bool:value, intbase_linuxdiff = 5)
{
set_pdata_char(ent, charbased_offset, _:value, intbase_linuxdiff)
}
Zoba jeszcze to:
GiveUserShield( id )
{
set_pdata_bool(id, m_bHasShield, true)
set_pdata_int(id, m_fHasPrimary, 1)
new iActiveItem = get_pdata_cbase(id, m_pActiveItem)
if( iActiveItem > 0 )
{
new ammoIndex = get_pdata_int(iActiveItem, m_iPrimaryAmmoType, XO_CBASEPLAYERWEAPON)
if( ammoIndex > 0 && get_pdata_int(id, m_rgAmmo_CBasePlayer[ ammoIndex ] > 0 ) )
{
ExecuteHamB(Ham_Item_Holster, iActiveItem, 0)
}
if( !ExecuteHamB(Ham_Item_Deploy, iActiveItem) )
{
ExecuteHamB(Ham_Weapon_RetireWeapon, iActiveItem)
}
}
set_pev(id, pev_gamestate, 0)
}
RemoveUserShield( id )
{
if ( get_pdata_bool(id, m_bHasShield) )
{
set_pdata_bool(id, m_bHasShield, false)
set_pdata_int(id, m_fHasPrimary, 0)
set_pdata_bool(id, m_bUsesShield, false)
set_pev(id, pev_gamestate, 1)
new iHideHUD = get_pdata_int(id, m_iHideHUD)
if( iHideHUD & HUD_HIDE_CROSS )
{
set_pdata_int(id, m_iHideHUD, iHideHUD & ~HUD_HIDE_CROSS)
}
}
}