The offsets you've provided aren't absolute;
CBaseCombatCharacter is a subclass of other classes with properties.
There is a datamap dump for L4D2
here.
m_bPreventWeaponPickup is a named property (at offset 6105); just use
GetEntProp(client, Prop_Data, "m_bPreventWeaponPickup") to access it.
For properties that aren't defined as a netprop / dataprop, you'd probably opt for offsets relative to a named property (e.g., to access
m_weaponIDToIndex you'd call
FindDataMapInfo to get the offset for the named property
m_impactEnergyScale, add 0x04, then use
GetEntData to read it -- well, you'll probably need to read out the bytes as a string since it's a 38-byte char array).
It sounds like you're using
this as reference, which has a comment right above your struct stating the offset is 6092 bytes relative to the CTerrorPlayer entity address.
__________________