Он и не менялся. Менялась его структура, и слетели оффсеты выходящих из него классов. Если не умеете реверсить то вот вам решение без оффсетов, которое уже выкладывали здесь давно:
class CWeaponGeneral {
public:
virtual CWeaponView* GetView(); //
virtual CWeaponSettings* GetSettings(); //
virtual CWeaponParameters* GetParameters(); //
virtual CWeaponAttachment* GetAttachment(); //
virtual class CItemBox* GetItemBox(); //
virtual EWeaponStates GetCurrState(); //
virtual char* GetDisplayName(); //
virtual char* GetStatisticsName(); //
virtual CGameObject* GetGameObject(); //
virtual void SetUnderBarrelWeapon(); //
virtual unsigned __int64 GetFirstOwner(); //
virtual void SetFirstOwner(unsigned __int64 profileId); //
};
я вот тупой как пробка... как можно это воткнуть сюда в мой кал ?
Он и не менялся. Менялась его структура, и слетели оффсеты выходящих из него классов. Если не умеете реверсить то вот вам решение без оффсетов, которое уже выкладывали здесь давно:
class CWeaponGeneral {
public:
virtual CWeaponView* GetView(); //
virtual CWeaponSettings* GetSettings(); //
virtual CWeaponParameters* GetParameters(); //
virtual CWeaponAttachment* GetAttachment(); //
virtual class CItemBox* GetItemBox(); //
virtual EWeaponStates GetCurrState(); //
virtual char* GetDisplayName(); //
virtual char* GetStatisticsName(); //
virtual CGameObject* GetGameObject(); //
virtual void SetUnderBarrelWeapon(); //
virtual unsigned __int64 GetFirstOwner(); //
virtual void SetFirstOwner(unsigned __int64 profileId); //
};
struct CWeaponGeneral
{
enum EWeaponStates
{
eWS_Disabled,
eWS_Idle,
eWS_IdleZoomed,
eWS_Fire,
eWS_IdleUnderBarrel,
eWS_HoldFireUnderBarrel,
eWS_FireUnderBarrel,
eWS_ReloadUnderBarrel,
eWS_HolsterInDisabled,
eWS_HolsterInUnderBarrel,
eWS_HolsteredUnderBarrel,
eWS_MeleeUnderBarrel,
eWS_ThrowingFire,
eWS_ThrowingFireActivate,
eWS_ZoomedFire,
eWS_ZoomInFire,
eWS_ZoomOutFire,
eWS_Reload,
eWS_ReloadBarrel,
eWS_BoltAction,
eWS_ZoomedBoltAction,
eWS_ZoomIn,
eWS_ZoomOut,
eWS_ZoomOutReloadAuto,
eWS_ZoomOutReloadManual,
eWS_ZoomOutQSA,
eWS_ZoomOutMelee,
eWS_ZoomOutBoltAction,
eWS_ZoomOutCustomize,
eWS_Throwing,
eWS_Toss,
eWS_Melee,
eWS_Select,
eWS_Deselect,
eWS_Holding,
eWS_Activate,
eWS_Customize,
eWS_CustomizeIn,
eWS_CustomizeOut,
eWS_HolsterIn,
eWS_Holstered,
eWS_StartRestoreSelf,
eWS_StartRestoreTeamMate,
eWS_CancelRestore,
eWS_RestoreSelf,
eWS_RestoreTeamMate,
eWS_TryingRestoreSelf,
eWS_TryingRestoreTeamMate,
eWS_DropAmmoPack,
eWS_Resurrect,
eWS_ResetClipAmmo,
eWS_Last,
eWS_Num = eWS_Last
};
public:
void SetShootAmmo(int Value)
{
*(int*)((DWORD64) * (DWORD64*)((DWORD64)this + 0x48) + 0x10) = Value;
}
CWeaponParameters* GetParameters() { return *(CWeaponParameters**)((uintptr_t)this + 0x60); }
IClipMode* GetClipMode() { return *(IClipMode**)((uintptr_t)this + 0x0C0); }
bool IsFiring() {
uintptr_t state = *(uintptr_t*)((uintptr_t)this + 0xB8);
return state == eWS_Fire || state == eWS_FireUnderBarrel || state == eWS_ThrowingFire
|| state == eWS_ThrowingFireActivate || state == eWS_ZoomedFire
|| state == eWS_ZoomInFire || state == eWS_ZoomOutFire
|| state == eWS_DropAmmoPack || state == eWS_Resurrect;
}
};
struct IWeapon
{
public:
void SFiringPos(Vec3 Pos)
{
if (auto v0 = *(DWORD*)((DWORD)this + 0x18)) *(Vec3*)(v0 + 0x1C) = Pos;
}
void ResetFiring()
{
if (auto v0 = *(DWORD*)((DWORD)this + 0x18)) *(Vec3*)(v0 + 0x1C) = Vec3(0, 0, 0);
}
void StartFire() { pVirtual<void(__thiscall*)(PVOID)>(this, 0x58)(this); }
void StopFire() { pVirtual<void(__thiscall*)(PVOID)>(this, 0x60)(this); }
CWeaponGeneral* GetWeaponGeneral() { return *(CWeaponGeneral**)((uintptr_t)this + 0x8); }
};
Попробуй брать в следующий раз отсюда)
(noad)
чел это тема по варфейс...