You are not logged in.
Допустим, есть адресс
0x11DC83C - [dword] __pLastPlayerVehicle // 1.0.7
Как его найти в ArtMoney или CheatEngine? Нужно ли ещё что-то добавлять?
Ещё пытался свериться так: перешёл в ArtMoney по адрессу 0x401000, включил тип данных "ASM instruction"
Но получаю совсем другие команды, нежели те, что вижу в IDA.
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline

Не знаю, как в ArtM, но в CE надо вводить адрес, и там вообще можно вводить типа такого eax.dll+смещение.
А про разность кода - в art money, наверное, стоит какой-нибудь бесплатный дизасм движок, различия не большие, но могут быть, а если уж код совсем другой, то x3
Last edited by Jack Daniel's (17-12-2011 14:08)
Offline
Я только сегодня разобрался. Надо к адресу добавлять +0x9C0000.
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
Ещё пара вопросов.
1) Куда (в какую процедуру) лучше делать инжект в IV? (чтобы код работал постоянно)
2) Как настроить проект в MSVC++, чтобы после компиляции dll была готова к использованию в игре?
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
Offline
Хм, как тогда делают плагины для 4? (тот же ин-гейм редактор weapon.dat)?
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
Как-то так:
dwLoadOffset = (DWORD)GetModuleHandle (NULL)-0x400000;
С глобальной точки зрения, это не совсем корректный пример, потому что он позволяет получить адрес загрузки только основного модуля, но, в практических целях его хватит.
Offline
Т.е., к статичному адресу в IDA надо будет добавить dwLoadOffset?
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
В общем, всё заработало, спасибо, listener.
Тут приметил, что очень часто используется регистр xmm0 и команда movss, что они делают?
IDA сразу кидает этот код в __asm{ } 
Ну и ещё, я так и не понял, есть ли в структуре авто незавсимые crBone (или это характеристика исключительно для моделей?, - ведь в SA указатели на rwFrame хранились в структуре автомобиля...)
Или ещё одно предположение - в структуре автомобиля находятся "упрощенные" структуры crBone (которые содержат только информацию о положении компонента).
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline

Это так скажем "отдельные" регистры (в x86 каждый имеет размер 64 бита, в x64 - 128) для других целей, однако можно использовать их как обычные регистры. Советую почитать об этом где-нибудь отдельно.
Попутный вопрос, если кто знает:
Как переслать из fpu регистра (ну, или памяти) в старший разряд mmx регистра данные (я знаю только как в младший)?
Last edited by Jack Daniel's (11-03-2012 14:47)
Offline
что касается xmmN - они всегда по 128 бит. В x86 их 8, в x64 - 16. 
Они могут использоваться для разных целей. Самая распространенная - использование для floating point, чтобы не возиться со стековой сопроцессорной арифметикой.  
Альтернативное (вообще-то, оно задумывалось как основное) использование - параллельное выполнение действий над несколькими операндами.
   // прибавление числа ко всем элементам вектора двумя командами
    __inline Vector4& operator += (const float f) { v = _mm_add_ps (v, _mm_set_ps1 (f)); return *this; }С пересылкой: нужно именно MMX или SSE ? MMX не работает с плавающей точкой.
@DK22Pac - 
Вместо указателя на rwFrame, есть указатели на несколько структур.
Кусочек ivModels.h
class ivBaseModelInfo {  // size = 0x60
public:
// ... здесь были методы...
    phArchetypeGta *        m_pArchetype;   // +04 - физика
    gtaFragType *           m_pFragType;    // +08 - frag. используется только в ivPedModelInfo и ivVehicleModelInfo
    ivDrawableReference *   m_pDrawableRef; // +0C - модель. Используется для всех остальных классов
    Vector4             m_vCenter;      // +10
//#define m_fRadius (m_vCenter.w) // +1C
    Vector4             m_vAabbMin;     // +20
//#define m_fDrawDistance (m_vAabbMin.w) // +2C
    Vector3             m_vAabbMax;     // +30
//#define m_dwModelId (_f30.pad)  // +3C 
    DWORD               m_dwFlags;      // +40  -- 0x800000: auto allocated
    DWORD               m_dwRefCount;   // +44
    WORD                m_wTxdId;       // +48
    WORD                m_wFirst2dfxRef;// +4A  - index of the first 2dfx reference in ivModelInfoStore::ms_2dfxRefs1
    WORD                m_wAmatCount;   // +4C  - number of the first audio material
    WORD                m_wFirstAmatID; // +4E  - count of the audio materials used
    WORD                _f50;           // +50 - index of _F27FC4 
    WORD                m_wBoundId;     // +52
    WORD                m_wLodId;       // +54
    WORD                m_wAnimationId; // +56
    WORD                m_wBlendshapeId;// +58
    BYTE                m_nb2dEffectCount; // +5A
    BYTE                _f5B;   // 2dfx flags: 0x40 - have light shaft
    DWORD               _f5C;   // +5C TODO: m_dwFragTypeAssignTime ? 
};
struct ivDrawableReference {
    rage::rmcDrawable *         pDrawable;      // +0
    ivCustomShaderEffectBase *  pShaderEffect;  // +4
    DWORD                       _f8;
    ivDrawableReference *       pPrev;          // +C
    ivDrawableReference *       pNext;          // +10
// и здесь были методы
};
					Offline

А, да, невнимательно прочел его пост, попутал xmm и mmx)
 А насчет пересылки: было бы хорошо по mmx, да,  т.к по нему не нашел полной информации (кроме сайтиков с десятком опкодов для работы с ним)
Last edited by Jack Daniel's (12-03-2012 12:24)
Offline