diff --git a/README.md b/README.md index 28a8011..a2bad1e 100644 --- a/README.md +++ b/README.md @@ -5,4 +5,4 @@ UnknownCheats thread: https://www.unknowncheats.me/forum/apex-legends/406426-kvm Bone IDs reference: https://www.unknowncheats.me/wiki/Apex_Legends_Bones_and_Hitboxes -Game version (Steam & Origin): v3.0.14.34 +Game version (Steam & Origin): v3.0.17.26 diff --git a/apex_dma/Game.cpp b/apex_dma/Game.cpp index 67a6e6b..4ba9e68 100644 --- a/apex_dma/Game.cpp +++ b/apex_dma/Game.cpp @@ -127,6 +127,7 @@ Vector Entity::getBonePosition(int id) //https://www.unknowncheats.me/forum/apex-legends/496984-getting-hitbox-positions-cstudiohdr-externally.html //https://www.unknowncheats.me/forum/3499185-post1334.html +//https://www.unknowncheats.me/forum/3562047-post11000.html Vector Entity::getBonePositionByHitbox(int id) { Vector origin = getPosition(); @@ -139,15 +140,16 @@ Vector Entity::getBonePositionByHitbox(int id) apex_mem.Read(Model + 0x8, StudioHdr); //get hitbox array - int HitBoxsArray_set; - apex_mem.Read(StudioHdr + 0xB4,HitBoxsArray_set); - uint64_t HitBoxsArray = StudioHdr + HitBoxsArray_set; + uint16_t HitboxCache; + apex_mem.Read(StudioHdr + 0x34, HitboxCache); + uint64_t HitBoxsArray = StudioHdr + ((uint16_t)(HitboxCache & 0xFFFE) << (4 * (HitboxCache & 1))); - int HitboxIndex; - apex_mem.Read(HitBoxsArray + 0x8, HitboxIndex); + uint16_t IndexCache; + apex_mem.Read(HitBoxsArray + 0x4, IndexCache); + int HitboxIndex = ((uint16_t)(IndexCache & 0xFFFE) << (4 * (IndexCache & 1))); - int Bone; - apex_mem.Read(HitBoxsArray + HitboxIndex + (id * 0x2C), Bone); + uint16_t Bone; + apex_mem.Read(HitBoxsArray + HitboxIndex + (id * 0x20), Bone); if(Bone < 0 || Bone > 255) return Vector(); diff --git a/apex_dma/offsets.h b/apex_dma/offsets.h index 1eb479a..74bc5e5 100644 --- a/apex_dma/offsets.h +++ b/apex_dma/offsets.h @@ -5,11 +5,11 @@ #if VERSION == STEAM - #define OFFSET_ENTITYLIST 0x1a9e778 - #define OFFSET_LOCAL_ENT 0x1e4f288 //LocalPlayer - #define OFFSET_NAME_LIST 0xbacf590 - #define OFFSET_THIRDPERSON 0x01a83a50 + 0x6c //thirdperson_override + 0x6c - #define OFFSET_TIMESCALE 0x0143e590 //host_timescale + #define OFFSET_ENTITYLIST 0x1b0d678 + #define OFFSET_LOCAL_ENT 0x1ebe3e8 //LocalPlayer + #define OFFSET_NAME_LIST 0xbbd07c0 + #define OFFSET_THIRDPERSON 0x01af2520 + 0x6c //thirdperson_override + 0x6c + #define OFFSET_TIMESCALE 0x014ac600 //host_timescale #define OFFSET_TEAM 0x044c //m_iTeamNum #define OFFSET_HEALTH 0x043c //m_iHealth @@ -17,32 +17,32 @@ #define OFFSET_NAME 0x589 //m_iName #define OFFSET_SIGN_NAME 0x580 //m_iSignifierName #define OFFSET_ABS_VELOCITY 0x140 //m_vecAbsVelocity - #define OFFSET_VISIBLE_TIME 0x1a48 //CPlayer!lastVisibleTime - #define OFFSET_ZOOMING 0x1c01 //m_bZooming - #define OFFSET_THIRDPERSON_SV 0x3650 //m_thirdPersonShoulderView - #define OFFSET_YAW 0x2244 - 0x8 //m_currentFramePlayer.m_ammoPoolCount - 0x8 + #define OFFSET_VISIBLE_TIME 0x1a70 //CPlayer!lastVisibleTime + #define OFFSET_ZOOMING 0x1c31 //m_bZooming + #define OFFSET_THIRDPERSON_SV 0x36a0 //m_thirdPersonShoulderView + #define OFFSET_YAW 0x228c - 0x8 //m_currentFramePlayer.m_ammoPoolCount - 0x8 #define OFFSET_LIFE_STATE 0x798 //m_lifeState, >0 = dead - #define OFFSET_BLEED_OUT_STATE 0x26d0 //m_bleedoutState, >0 = knocked + #define OFFSET_BLEED_OUT_STATE 0x2718 //m_bleedoutState, >0 = knocked #define OFFSET_ORIGIN 0x014c //m_vecAbsOrigin - #define OFFSET_BONES 0x0e88 + 0x48 //m_nForceBone + 0x48 - #define OFFSET_STUDIOHDR 0x10d8 //CBaseAnimating!m_pStudioHdr - #define OFFSET_AIMPUNCH 0x2440 //m_currentFrameLocalPlayer.m_vecPunchWeapon_Angle - #define OFFSET_CAMERAPOS 0x1ee0 //CPlayer!camera_origin - #define OFFSET_VIEWANGLES 0x253c - 0x14 //m_ammoPoolCapacity - 0x14 + #define OFFSET_BONES 0x0e98 + 0x48 //m_nForceBone + 0x48 + #define OFFSET_STUDIOHDR 0x10f0 //CBaseAnimating!m_pStudioHdr + #define OFFSET_AIMPUNCH 0x2488 //m_currentFrameLocalPlayer.m_vecPunchWeapon_Angle + #define OFFSET_CAMERAPOS 0x1f28 //CPlayer!camera_origin + #define OFFSET_VIEWANGLES 0x2584 - 0x14 //m_ammoPoolCapacity - 0x14 #define OFFSET_BREATH_ANGLES OFFSET_VIEWANGLES - 0x10 - #define OFFSET_OBSERVER_MODE 0x3464 //m_iObserverMode - #define OFFSET_OBSERVING_TARGET 0x3470 //m_hObserverTarget + #define OFFSET_OBSERVER_MODE 0x34ac //m_iObserverMode + #define OFFSET_OBSERVING_TARGET 0x34b8 //m_hObserverTarget #define OFFSET_MATRIX 0x11a210 - #define OFFSET_RENDER 0x75cc210 + #define OFFSET_RENDER 0x763e7b0 - #define OFFSET_WEAPON 0x19ec //m_latestPrimaryWeapons - #define OFFSET_BULLET_SPEED 0x1ed0 //CWeaponX!m_flProjectileSpeed - #define OFFSET_BULLET_SCALE 0x1ed8 //CWeaponX!m_flProjectileScale - #define OFFSET_ZOOM_FOV 0x1698 + 0xb8 //m_playerData + m_curZoomFOV - #define OFFSET_AMMO 0x1650 //m_ammoInClip + #define OFFSET_WEAPON 0x1a14 //m_latestPrimaryWeapons + #define OFFSET_BULLET_SPEED 0x1ef0 //CWeaponX!m_flProjectileSpeed + #define OFFSET_BULLET_SCALE 0x1ef8 //CWeaponX!m_flProjectileScale + #define OFFSET_ZOOM_FOV 0x16b8 + 0xb8 //m_playerData + m_curZoomFOV + #define OFFSET_AMMO 0x1644 //m_ammoInClip #define OFFSET_ITEM_GLOW 0x2c0 //m_highlightFunctionBits @@ -53,11 +53,11 @@ #elif VERSION == ORIGIN - #define OFFSET_ENTITYLIST 0x1a9e778 - #define OFFSET_LOCAL_ENT 0x1e4f288 //LocalPlayer - #define OFFSET_NAME_LIST 0xbacf590 - #define OFFSET_THIRDPERSON 0x01a83a50 + 0x6c //thirdperson_override + 0x6c - #define OFFSET_TIMESCALE 0x0143e590 //host_timescale + #define OFFSET_ENTITYLIST 0x1b0d678 + #define OFFSET_LOCAL_ENT 0x1ebe3e8 //LocalPlayer + #define OFFSET_NAME_LIST 0xbbd07c0 + #define OFFSET_THIRDPERSON 0x01af2520 + 0x6c //thirdperson_override + 0x6c + #define OFFSET_TIMESCALE 0x014ac600 //host_timescale #define OFFSET_TEAM 0x044c //m_iTeamNum #define OFFSET_HEALTH 0x043c //m_iHealth @@ -65,32 +65,32 @@ #define OFFSET_NAME 0x589 //m_iName #define OFFSET_SIGN_NAME 0x580 //m_iSignifierName #define OFFSET_ABS_VELOCITY 0x140 //m_vecAbsVelocity - #define OFFSET_VISIBLE_TIME 0x1a48 //CPlayer!lastVisibleTime - #define OFFSET_ZOOMING 0x1c01 //m_bZooming - #define OFFSET_THIRDPERSON_SV 0x3650 //m_thirdPersonShoulderView - #define OFFSET_YAW 0x2244 - 0x8 //m_currentFramePlayer.m_ammoPoolCount - 0x8 + #define OFFSET_VISIBLE_TIME 0x1a70 //CPlayer!lastVisibleTime + #define OFFSET_ZOOMING 0x1c31 //m_bZooming + #define OFFSET_THIRDPERSON_SV 0x36a0 //m_thirdPersonShoulderView + #define OFFSET_YAW 0x228c - 0x8 //m_currentFramePlayer.m_ammoPoolCount - 0x8 #define OFFSET_LIFE_STATE 0x798 //m_lifeState, >0 = dead - #define OFFSET_BLEED_OUT_STATE 0x26d0 //m_bleedoutState, >0 = knocked + #define OFFSET_BLEED_OUT_STATE 0x2718 //m_bleedoutState, >0 = knocked #define OFFSET_ORIGIN 0x014c //m_vecAbsOrigin - #define OFFSET_BONES 0x0e88 + 0x48 //m_nForceBone + 0x48 - #define OFFSET_STUDIOHDR 0x10d8 //CBaseAnimating!m_pStudioHdr - #define OFFSET_AIMPUNCH 0x2440 //m_currentFrameLocalPlayer.m_vecPunchWeapon_Angle - #define OFFSET_CAMERAPOS 0x1ee0 //CPlayer!camera_origin - #define OFFSET_VIEWANGLES 0x253c - 0x14 //m_ammoPoolCapacity - 0x14 + #define OFFSET_BONES 0x0e98 + 0x48 //m_nForceBone + 0x48 + #define OFFSET_STUDIOHDR 0x10f0 //CBaseAnimating!m_pStudioHdr + #define OFFSET_AIMPUNCH 0x2488 //m_currentFrameLocalPlayer.m_vecPunchWeapon_Angle + #define OFFSET_CAMERAPOS 0x1f28 //CPlayer!camera_origin + #define OFFSET_VIEWANGLES 0x2584 - 0x14 //m_ammoPoolCapacity - 0x14 #define OFFSET_BREATH_ANGLES OFFSET_VIEWANGLES - 0x10 - #define OFFSET_OBSERVER_MODE 0x3464 //m_iObserverMode - #define OFFSET_OBSERVING_TARGET 0x3470 //m_hObserverTarget + #define OFFSET_OBSERVER_MODE 0x34ac //m_iObserverMode + #define OFFSET_OBSERVING_TARGET 0x34b8 //m_hObserverTarget #define OFFSET_MATRIX 0x11a210 - #define OFFSET_RENDER 0x75cc210 + #define OFFSET_RENDER 0x763e7b0 - #define OFFSET_WEAPON 0x19ec //m_latestPrimaryWeapons - #define OFFSET_BULLET_SPEED 0x1ed0 //CWeaponX!m_flProjectileSpeed - #define OFFSET_BULLET_SCALE 0x1ed8 //CWeaponX!m_flProjectileScale - #define OFFSET_ZOOM_FOV 0x1698 + 0xb8 //m_playerData + m_curZoomFOV - #define OFFSET_AMMO 0x1650 //m_ammoInClip + #define OFFSET_WEAPON 0x1a14 //m_latestPrimaryWeapons + #define OFFSET_BULLET_SPEED 0x1ef0 //CWeaponX!m_flProjectileSpeed + #define OFFSET_BULLET_SCALE 0x1ef8 //CWeaponX!m_flProjectileScale + #define OFFSET_ZOOM_FOV 0x16b8 + 0xb8 //m_playerData + m_curZoomFOV + #define OFFSET_AMMO 0x1644 //m_ammoInClip #define OFFSET_ITEM_GLOW 0x2c0 //m_highlightFunctionBits