Внимание: аналогичная тема, открытая мной в свое время на официальном форуме, получила большое внимание и развитие, и усилиями сообщества был создан целый структурированный раздел, посвященный данной теме, поэтому для получения более полной систематизированной информации по предмету следуйте по ссылке: http://wiki.alliedmods.net/Category:CS_Offset_List ------------
Подробней о том, что такое pvPrivateData, можно узнать в следующей теме.
Впринципе, очень многие оффсеты cstrike мода уже найдены, воплощены в AMX Mod X cstrike модуле и используются соответствующими native функциями. Информацию по вышеупомянутым оффсетам можно найти, прочитав исходники модуля, в частности - cstrike.h и cstrike.cpp, а также комментарии в cstrike.inc.
Ниже приведен список оффсетов для конкретных entity классов.
По мере открытия новых оффсетов информация будет дополняться.
Оффсеты - для win32. linux смещения, как правило, для player - 5, для weapon_* - 4.
amd64 не поддерживается компанией Valve и командой AMX Mod X разработчиков.
player
Code
75 - m_LastHitGroup
76 - m_bitsDamageType
83 - m_flNextAttack
89 - m_bloodColor
96 - random_seed
122 - last switched trigger_camera (cbase)
123 - fGametime of next trigger_camera view
205 - iMenuCode
209 - IsTerroristEscaped / IsVIPRescued (1<<0), IsPlayerVIP (1<<8)
211 - fOriginX
212 - fOriginY
213 - fOriginZ
219 - bIsPrimaryFireAllowed (note: disallow in prePlayerPostThink)
232 - IsDefusing (1<<8)
243 - m_flFlashLightTime
244 - m_iFlashBattery
245 - m_afButtonLast ?
246 - m_afButtonPressed ?
247 - m_afButtonReleased ?
251 - m_flFallVelocity
334 - m_lastDamageAmount
338 - iGeiger
345 - m_idrowndmg ?
346 - m_idrownrestored ?
347 - m_bitsHUDDamage ?
356 - m_fLongJump
359 - m_iClientHealth
360 - m_iClientBattery
363 - m_iFOV
364 - m_iClientFOV
368 - last gained primary (cbase)
369 - last gained secondary (cbase)
370 - last gained knife (cbase)
371 - last gained grenade (cbase)
372 - last gained c4 (cbase)
373 - m_pActiveItem (cbase)
374 - m_pClientActiveItem (cbase)
375 - m_pLastItem (cbase)
446 - iStatusValue1
447 - iStatusValue2
448 - iStatusValue3
486 - m_flNextDecalTime
500 - activity-related (kill 0, default 1, walk/duck 3, run 4, longjump 5, jump 6)
509 - bAutoWepSwitch
510 - setinfo _vgui_menus (1<<0), _ah (1<<8), uses_shield (1<<16), has_shield (1<<24)
514 - fGametime flashed until ?
515 - fGametime flashed at ?
516 - fHoldTimeInSeconds of ScreenFade
517 - fDurationInSeconds of ScreenFade
518 - iAlpha of ScreenFade
605 - fGametime of StatusBar 0%
606 - fGametime of StatusBar 100%
weaponbox
weapon_*
Code
41 - m_pPlayer (cbase)
49 - m_iPrimaryAmmoType
54 - m_fInReload
armoury_entity
Ниже я привожу уникальную информацию по открытым и изученным мной оффсетам, которая поясняет некоторые пункты из списка выше.
Прототип: cs_[g|s]et_user_attackdelay()
Оффсет: 83 (win32)
Тип: float
Стандарт: -0.001
Описание: Это не gametime-время следующей возможной атаки игрока, а время задержки атаки (в секундах).
Назначение: Игровой мод использует данный оффсет для задержки атаки при смене/перезарядки оружия игрока.
Технически: По сути, по всей видимости, ClientData flNextAttack значение отсылается именно из этого оффсета.
Практически: Если установить в положительное значение, то первичная и вторичная атаки полностью запрещены.
Автоизменение: Значение оффсета сбрасывается на значение по умолчанию при спавнинге игрока и смене его оружия.
Прототип: cs_[g|s]et_user_primaryfire()
Оффсет: 219 (win32)
Тип: int (bool)
Описание: Данный оффсет содержит булевое значение, отвечающее за разрешение/запрещение (1/0) первичной атаки игрока.
Назначение: Игровой мод использует данный оффсет для запрещения первичной атаки игрока во время freezetime.
Практически1: Форсирование значения 0 в pre хуке PlayerPostThink полностью запретит первичную атаку игрока.
Практически2: Форсирование значения 0 в post хуке PlayerPostThink запретит звук/анимацию/декали первичной атаки.
Прототип: cs_[g|s]et_user_lasthitgroup()
Оффсет: 75 (win32)
Тип: int
Описание: Данный оффсет содержит значение индекса (HIT_*) последней поврежденной части тела игрока.
Назначение: Игровой мод использует данный оффсет при выборе типа анимации во время смерти игрока.
Технически: Данное значение приравнивается к iHitgroup члену TraceResult структуры при повреждении игрока.
Практически: Является альтернативой кеширования iHitgroup члена TraceResult структуры в TraceLine хуке.
Прототип: cs_[g|s]et_user_bloodcolor()
Оффсет: 89 (win32)
Тип: int (byte)
Стандарт: 247
Описание: Данный оффсет содержит значение цветности крови игрока (просмотреть таблицу сопоставления значений оттенкам).
Назначение: Игровой мод использует значение данного оффсета при создании эффектов крови при повреждении игрока.
Технически: По сути значение используется в 7ом аргументе TE_BLOODSPRITE клиентского tempentity сообщения.
Практически: Изменив значение оффсета, можно сменить цветность крови игрока (на практике только части крови!).
Автоизменение: Значение оффсета сбрасывается на значение по умолчанию при спавнинге игрока.
Прототип: cs_[g|s]et_weapon_ammoid()
Оффсет: 49 (win32)
Тип: int
Описание: Данный оффсет содержит значение индекса типа аммуниции, используемой данным оружием.
Назначение: Используется при перезарядке оружия при пополнении его аммуниции из соответствующего типа боеприпасов игрока.
Технически: По сути значение указывает из какого боеприпас-тип-оффсета игрока перемещать значение в обойм-офссет оружия.
Практически: Изменив значение данного оффсета для конкретного оружия, можно запретить его перезарядку.
Автоизменение: Значение оффсета возвращается на "родное" при дропе/подборе конкретного оружия игроком.