1 (изменено: Diman_Express, 2014-11-08 08:59:35)

Тема: Нужна помощь по чтению памяти GTA (компоненты есть)

Здравствуйте. Столкнулся с проблемой при написании Autohotkey:

  • Мой скрипт был основан на чтении чата (chatlog.txt) и вывода его в edit + SampUDF. Тут мне предложили основать его на чтении памяти процесса. Мне дали все компоненты, но чтобы всё выводилось в edit - никак не соображу. Кто может - пожалуйста помогите.

Половина тут написана на C++, половина на Autohotkey

dwSAMP := getModuleBaseAddress("samp.dll", hGTA)
dwChatInfo := readDWORD(hGTA, dwSAMP + 0x212A6C)
stChatEntry := dwChatInfo + 306
// firstChatString := stChatEntry + (99 * 252)
// firstChatStringText := firstChatString + 32 


0x212A6C - CHAT INFO
+306 - оффсет на первую строку в чате
252 - размер структуры входящей строки(цвет, текст и т.п.)
0-99 - номер строки из чата



struct stChatEntry
{
#pragma pack( 1 )
uint32_t SystemTime; // +0
char szPrefix[28]; // +4
char szText[144]; // +32
uint8_t unknown[64]; // +176
int iType;// 2 - text + prefix, 4 - text (server msg), 8 - text (debug) // +240
D3DCOLOR clTextColor; // +244
D3DCOLOR clPrefixColor;// or textOnly colour // +248
}; // 252

firstChatString - структура первой строки из чата
firstChatStringText - текст первой строки из чата

2

Re: Нужна помощь по чтению памяти GTA (компоненты есть)

http://forum.script-coding.com/viewtopic.php?id=11322
И тут до меня дошло что число из арта 25286 это 306+(99*252)+32, тоесть вам нужно 25286 перевестм в Hex, чего я и добился в свой теме, ваша структура еще не устарела, устарел оффсет чата. Спасибо!