- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 537
- Реакции
- 14
Здарова, реверсеры. После последних крупных обнов в Combat Arms Classic старые наработки ожидаемо отлетели. Чтобы не сидеть на бобах, держите актуальный GameClass и пачку оффсетов.
Сразу оговорюсь: готовые структуры (struct) скидывать не буду — слишком много возни. Берите ReClass в зубы и восстанавливайте по адресам ниже. Это база, остальное докрутите сами, благо зацепок хватает.
За метод спасибо qqshutup — юзал его наработки по бразильской версии (там под тысячу оффсетов было слито), часть из них идеально ложится на текущий билд Classic.
Если где-то проглядел обновленный адрес или какой-то параметр криво читается — маякуйте в теме, будем допиливать коллективно.
Сразу оговорюсь: готовые структуры (struct) скидывать не буду — слишком много возни. Берите ReClass в зубы и восстанавливайте по адресам ниже. Это база, остальное докрутите сами, благо зацепок хватает.
Код:
// ENGINE / ENGINE2 SIDE:
namespace cILTDrawPrim
{
inline constexpr auto ViewPort = 0x3F38; // D3DVIEWPORT9
inline constexpr auto World = 0x3F50; // D3DXMATRIX
inline constexpr auto View = 0x3F90; // D3DXMATRIX
inline constexpr auto Projection = 0x3FD0; // D3DXMATRIX
}
// CSHELL SIDE:
namespace CInterfaceMgr
{
inline constexpr auto m_eGameState = 0xEC; // __int32
}
namespace cSFXList
{
inline constexpr auto m_pArray = 0x0; // DWORD
inline constexpr auto m_pAgeArray = 0x4; // DWORD*
inline constexpr auto m_nArraySize = 0x8; // DWORD
inline constexpr auto m_nElements = 0xC; // DWORD
};
namespace cSFXMgr
{
inline constexpr auto m_dynSFXLists = 0x0; // cSFXList m_dynSFXLists[SFX_List::sfx_max];
};
namespace WEAPON
{
inline constexpr auto m_nAmmoInClip = 0x13C; // __int32
inline constexpr auto m_nNewAmmoInClip = 0x0140; // __int32
inline constexpr auto m_nReloadAni = 0x0150; // __int32
inline constexpr auto fDynamicPerturbFactor = 0x02A4; // float
inline constexpr auto fDynamicPerturbFactorRun = 0x02A8; // float
inline constexpr auto fDynamicPerturbFactorWalk = 0x02AC; // float
inline constexpr auto fDynamicPerturbFactorJump = 0x02B0; // float
inline constexpr auto fZoomTime = 0x02B4; // float
inline constexpr auto nMinPerturb = 0x02B8; // __int32
inline constexpr auto nMaxPerturb = 0x02BC; // __int32
inline constexpr auto nDuckPerturb = 0x02C0; // __int32
inline constexpr auto nDuckMovePerturb = 0x02C4; // __int32
inline constexpr auto nZoomedMinPerturb = 0x02C8; // __int32
inline constexpr auto nZoomedMaxPerturb = 0x02CC; // __int32
inline constexpr auto m_fFireAniRate = 0x02F8; // float
inline constexpr auto fMovePenalty = 0x02FC; // float
inline constexpr auto fPerturbIncSpeed = 0x0300; // float
inline constexpr auto fPerturbDecSpeed = 0x0304; // float
inline constexpr auto fZoomedMovePenalty = 0x0308; // float
inline constexpr auto fZoomedPerturbIncSpeed = 0x030C; // float
inline constexpr auto fZoomedPerturbDecSpeed = 0x0310; // float
inline constexpr auto fMaxCamRecoilPitch = 0x0314; // float
inline constexpr auto fBaseCamRecoilPitch = 0x0318; // float
inline constexpr auto fBaseCamRecoilAccelPitch = 0x031C; // float
inline constexpr auto fTripleShotMaxCamRecoilPitch = 0x0344; // float
inline constexpr auto fTripleShotBaseCamRecoilPitch = 0x0348; // float
inline constexpr auto fBaseCamBackJitter = 0x034C; // float
inline constexpr auto fBackJitterRecover = 0x0350; // float
inline constexpr auto nTripleShotMinPerturb = 0x0354; // __int32
inline constexpr auto nTripleShotMaxPerturb = 0x0358; // __int32
inline constexpr auto fTripleShotPerturbIncSpeed = 0x035C; // float
inline constexpr auto fTripleShotPerturbDecSpeed = 0x0360; // float
}
namespace cWeaponMgr
{
inline constexpr auto m_pWeaponList = 0x15AC; // WEAPON** m_pWeaponList;
inline constexpr auto m_nNumWeapons = 0x15B0; // __int32
}
namespace cModelButeReader
{
int m_eModelId;
int m_eModelFigureType;
int m_eHeadPieceId;
int m_eFacePieceId;
int m_nLevel;
int m_nClanMarkId;
int m_nTeamMarkId;
int m_nBackPack;
int m_nGoggle;
bool m_bGoggleDefault;
char m_nCamoIndex;
char m_szClanEmblem[128];
char m_szClanBackGround[128];
int m_nClanEmblemID;
int m_nClanBackGroundID;
int m_nOveridableModel;
int m_nCosmeticCharacter;
int m_nCosmeticHelmet;
int m_nCosmeticGoggle;
int m_nCosmeticVest;
int m_nCosmeticBackPack;
char m_nModelColor;
char m_nHelmetColor;
char m_nGoggleColor;
char m_nBackpackColor;
};
За метод спасибо qqshutup — юзал его наработки по бразильской версии (там под тысячу оффсетов было слито), часть из них идеально ложится на текущий билд Classic.
Если где-то проглядел обновленный адрес или какой-то параметр криво читается — маякуйте в теме, будем допиливать коллективно.