It's actually very easy. I wanted to do some tutorial (my sig lol), but it requires you explain the context before and such, and it's a pain.
Fast explanation :
Let's take CBasePlayer class as example. You know that inside members are declared like m_iYokomo. When we're talking about 'offset', it means 'position' from the base. If you see CBasePlayer::Killed() (windows), when you decompile, the first line:
*(this + 300)
this = it's the CBasePlayer object passed.
300 is thefull offset. It's actually what you're looking for. It's the position from the base which points out to something, here member.
'Full' because it includes the size of each members. Most of time it's 4 ( int, float, pointer, etc.), but not always, something you will see in IDA. Here a int.
To get the offset, to be used with [get|set]_pdata_[int|float] natives, you just divide the full offset by it's size : 300 / 4 = 75 = m_LastHitGroup
Just a simple example, it doesn't cover all situations (char/bool/short, etc.), just to show you fastly how you can retrieve them from IDA.