GTA 5 Online (RageMP/FiveM): Оффсеты, сигнатуры, структуры

Сигнатуры

World - указатель на структуру мира.
Сигнатура: 48 8B 05 ? ? ? ? 48 8B 58 08 48 85 DB 74 32
Метод: pattern + readInt(pattern + 3) + 7


Local Player - указатель на структуру игрока.
Метод: World + 0x8

class LocalPlayer
	{
	public:
		{
			char padding_0x0000[0x28]; //0x0000
			BYTE entity_type; //0x0028 
			char padding_0x0029[0x3]; //0x0029
			BYTE invisible; //0x002C 
			char padding_0x002D[0x1]; //0x002D
			BYTE freeze_momentum; //0x002E 
			char padding_0x002F[0x1]; //0x002F
			uintptr_t navigation_ptr; //0x0030 
			char padding_0x0038[0x10]; //0x0038
			struct c_ped_style* ped_style_ptr; //0x0048
			char padding_0x0038[0x40]; //0x0050
			D3DXVECTOR3 position; //0x0090 
			char padding_0x009C[0xED]; //0x009C
			BYTE god_mode; //0x0189 
			char padding_0x018A[0xF6]; //0x018A
			float health; //0x0280 
			char padding_0x0284[0x1C]; //0x0284
			float max_health; //0x02A0 
			char padding_0x02A4[0x4]; //0x02A4
			struct c_attacker* attacker_ptr; //0x02A8 
			char padding_0x02B0[0x70]; //0x02B0
			D3DXVECTOR3 velocity; //0x0320 
			char padding_0x032C[0x9FC]; //0x032C
			uintptr_t last_vehicle_ptr; //0x0D28 
			char padding_0x0D30[0x378]; //0x0D30
			uint32_t ped_type; //0x10A8 
			char padding_0x10A9[12]; //0x10A9
			uintptr_t player_info_ptr; //0x10B8 
			char padding_0x10C0[0x8]; //0x10C0
			uintptr_t weapon_manager_ptr; //0x10C8 
			char padding_0x10D0[0x31C]; //0x10D0
			BYTE seatbelt; //0x13EC 
			char padding_0x13ED[0xB]; //0x13ED
			BYTE unk094; //0x13F8 
			char padding_0x13F9[0x1]; //0x13F9
			BYTE can_switch_weapons;
			char padding_0x13FB[0x5];
			BYTE forced_aim; //0x1400 
			BYTE N00000936; //0x1401 
			BYTE N00000939; //0x1402 
			BYTE N00000937; //0x1403 
			char padding_0x1404[0x67]; //0x1404
			BYTE is_in_vehicle; //0x146B 
			char padding_0x146C[0x44]; //0x146C
			float unk1; //0x14B0
			float unk2; //0x14B4
			float armor_amount; //0x14B8 
			char padding_0x14B4[0x20]; //0x14B4
			float fatigued_health_threshold; //0x14D4 
			float injured_health_threshold; //0x14D8 
			float dying_health_threshold; //0x14DC 
			float hurt_health_threshold; //0x14E0 
			char padding_0x14E4[0xC]; //0x14E4
			class c_vehicle* last_vehicle2_ptr; //0x14F0 
			char padding_0x14F8[0xDC]; //0x14F8
			__int32 cash; //0x15D4 
		} 
   }

Координаты.
По смещению 0x30 находится указатель на координаты игрока, находящиеся по смещению 0x50, 0x54, 0x58 (float).


AccuracySpread - фактор разброса.
World + 0x08 + 0x10C8 + 0x20 + 0x74


PlayerAngles.
Метод: "GTA5.exe" + 01F51A90
Сигнатура: 48 8B 05 ? ? ? ? 48 8B 98 ? ? ? ? EB 32

class PlayerAngles
{
public:
	char padding_0000[16]; //0x0000
	CPlayerCameraData* m_cam_data; //0x0010
	char padding_0018[40]; //0x0018
	rage::vector3 m_fps_angles; //0x0040
	char padding_004C[20]; //0x004C
	rage::vector3 m_cam_pos; //0x0060
	char padding_006C[212]; //0x006C
	rage::vector3 m_cam_pos2; //0x0140
	char padding_014C[644]; //0x014C
	rage::vector3 m_tps_angles; //0x03D0
	char padding_03DC[20]; //0x03DC
	rage::vector3 m_fps_cam_pos; //0x03F0
	char pad_03FC[88]; //0x03FC
};

ReplayInterface.
Сигнатура: 48 8D 0D ? ? ? ? 48 8B D7 E8 ? ? ? ? 48 8D 0D ? ? ? ? 8A D8 E8 ? ? ? ? 84 DB 75 13 48 8D 0D ? ? ? ?

class CReplayInterface
{
    public:
    void* N000006F5; //0x0000
    CCameraInterface* pCCameraInterface; //0x0008
    CVehicleInterface* pCVehicleInterface; //0x0010
    CPedInterface* pCPedInterface; //0x0018
    CPickupInterface* pCPickupInterface; //0x0020
    CObjectInterface* pCObjectInterface; //0x0028
}; 
//Object Interface 
class CObjectInterface
{
public:
    char pad_0x0000[0x158]; //0x0000
    CObjectList* pCObjectList; //0x0158 
    __int32 iMaxObjects; //0x0160 
    char pad_0x0164[0x4]; //0x0164
    __int32 iCurObjects; //0x0168 
    char pad_0x016C[0x5C]; //0x016C

    CObject* get_object(const int& index)
    {
        if (index < iMaxObjects)
            return pCObjectList->ObjectList[index].pCObject;
        return nullptr;
    }
}; //Size=0x01C8

//Vehicle Interface 
class CVehicleInterface
{
public:
    char pad_0x0000[0x180]; //0x0000
    CVehList* VehList; //0x0180 
    __int32 iMaxVehicles; //0x0188 
    char pad_0x018C[0x4]; //0x018C
    __int32 iCurVehicles; //0x0190 
    char pad_0x0194[0x74]; //0x0194

    CVehicle* get_vehicle(const int& index)
    {
        if (index < iMaxVehicles)
            return VehList->vehs[index].pCVehicle;
        return nullptr;
    }
}; //Size=0x0208

//Ped Interface
class CPedInterface
{
public:
    char pad_0x0000[0x100]; //0x0000
    CPedList* PedLIst; //0x0100 
    __int32 iMaxPeds; //0x0108 
    char pad_0x010C[0x4]; //0x010C
    __int32 iCurPeds; //0x0110 
    char pad_0x0114[0x34]; //0x0114
 
    CPed* get_ped(const int& index)
    {
        if (index < iMaxPeds)
            return PedLIst->peds[index].pCPed;
        return nullptr;
    }
}; //Size=0x0148

//Pickup Interface 
class CPickupInterface
{
public:
    char pad_0x0000[0x100]; //0x0000
    CPickupList* pCPickupList; //0x0100 
    __int32 iMaxPickups; //0x0108 
    char pad_0x010C[0x4]; //0x010C
    __int32 iCurPickups; //0x0110 

    CPickup* get_pickup(const int& index)
    {
        if (index < iMaxPickups)
            return pCPickupList->pickups[index].pCPickup;
        return nullptr;
    }

}; //Size=0x0114


//Camera Interface 
class CCameraInterface
{
public:
    char pad_0x0000[0x248]; //0x0000
}; //Size=0x0248

Blip - указатель на структуру вейпоинта на карте.
Сигнатура: 4C 8D 05 ? ? ? ? 0F B7 C1
Метод: pattern + readInt(pattern + 3) + 7


Исходный код EZRAGEMP телепортера для RageMP - https://github.com/0niel/EZRAGEMP


Готовый сканер (возможно неактуален)

Сканер сигнатур от aurilisdev. Возможно определяет некорректно, по крайней мере WorldPTR в RageMP точно неправильно определяет.

5 лайков

Is this the new version of teleport Ragemp
please guide me more specifically
From VietNam

You can get the teleport source here - https://github.com/0niel/EZRAGEMP

1 лайк

How to use it, I have downloaded it

Compile with Visual Studio and use.

2 лайка

Как лучше организовать сохранение точек для телепорта, так сказать закладки, по которым можно будет телепортироваться с помощью хоткеев?

Привет. Организуй хранение любым удобным для тебя способом. Например, ты можешь использовать это https://docs.microsoft.com/ru-ru/dotnet/api/system.configuration.configurationmanager?view=netframework-4.8 , или просто записывай координаты в текстовый файл.

1 лайк

У ReplayInterface и PlayerAngles почему-то одинаковые сигнатуры в посте.

1 лайк

Привет, ещё актуально? И где можно самому достать офсеты, в случае если они обновляться?