Показать сообщение отдельно

  #10  
Старый 27.01.2025, 15:55
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

Цитата:
Сообщение от thelupa1488  

Здарова, хочу сделать рендер руды (external) на амайзинге samp R3, но не могу правильно получить адрес объекта

Структуры:





Код:
enum Limits
{
    SAMP_MAX_ACTORS = 1000,
    SAMP_MAX_PLAYERS = 1004,
    SAMP_MAX_VEHICLES = 2000,
    SAMP_MAX_PICKUPS = 4096,
    SAMP_MAX_OBJECTS = 1000,
    SAMP_MAX_GANGZONES = 1024,
    SAMP_MAX_3DTEXTS = 2048,
    SAMP_MAX_TEXTDRAWS = 2048,
    SAMP_MAX_PLAYERTEXTDRAWS = 256,
    SAMP_MAX_CLIENTCMDS = 144,
    SAMP_MAX_MENUS = 128,
    SAMP_MAX_PLAYER_NAME = 24,
    SAMP_ALLOWED_PLAYER_NAME_LENGTH = 20,
    SAMP_MAX_MAPICONS = 100,
};

struct stObject {
    char pad_0[6];
    int                        m_nModel;
    char pad_1;
    bool                        m_bDontCollideWithCamera;
    float                        m_fDrawDistance;
    float field_0;
    float                    m_position[3];
    float                        m_fDistanceToCamera;
    bool                        m_bDrawLast;
    char pad_2[64];
    float                    m_rotation[3];
    char pad_3[5];
    unsigned short            m_nAttachedToVehicle;
    unsigned short            m_nAttachedToObject;
    float                    m_attachOffset[3];
    float                    m_attachRotation[3];
    char field_1;
    float                    m_targetMatrix[4][4];
    char pad_4[148];
    char                        m_bMoving;
    float                        m_fSpeed;
    char pad_5[99];
};

struct stObjectPool
{
    int            m_nLargestId;
    BOOL        m_bNotEmpty[SAMP_MAX_OBJECTS];
    stObject* m_pObject[SAMP_MAX_OBJECTS];
};


Получение объекта:





Код:
uint32_t dwSAMPModule = pGTA->get_module_address("azmp.dll");
    uint32_t dwSampInfo = pGTA->read(dwSAMPModule + 0x26E8DC);

    uint32_t dwPools = pGTA->read(dwSampInfo + 0x3DE);
    uint32_t dwObjects = pGTA->read(dwPools + 0x14);
    stObjectPool m_Object = pGTA->read(dwObjects);

    for (int i = 0; i read(dwObj);
        int iModel = obj.m_nModel;
    }

используй sampapi
 
Ответить с цитированием