ktulx
14.05.2012, 00:41
И снова всех категорически приветствую!
//читаем кол-во ячеек
ReadProcessMemory (hProcess, Pointer($A57ACC), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+$34), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+$D18), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+$8), @A, sizeof(A), NoB);
count:=A;
//читаем ID итема в ячейке
for x:= 0 to count-1 do begin
ReadProcessMemory (hProcess, Pointer($A57ACC), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+$34), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+$D18), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+$C), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+(x*4)), @B, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(B+$58), @A, sizeof(A), NoB);
ShowMessage(IntToString(A));
if A <> 0 then begin //если ячейка не пустая - читаем тип итема
ReadProcessMemory (hProcess, Pointer(B+$4), @A, sizeof(A), NoB);
case A of //и дальше в зависимости от типа, читаем название
Первая пустая ячейка выдаёт странное длинное число по красной строке, а в качестве названия записывается "?". Далее всё нормально, и последние пустые ячейки выдают то же самое число и записываются с именем последнего прочитанного предмета. Например имеем такой инвентарь:
пусто
предмет
предмет1
предмет2
предмет3
пусто
пусто
пусто
код записывает в массив/комбобокс так:
?
предмет
предмет1
предмет2
предмет3
предмет3
предмет3
предмет3
Где ошибка?
Спасибо.
//читаем кол-во ячеек
ReadProcessMemory (hProcess, Pointer($A57ACC), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+$34), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+$D18), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+$8), @A, sizeof(A), NoB);
count:=A;
//читаем ID итема в ячейке
for x:= 0 to count-1 do begin
ReadProcessMemory (hProcess, Pointer($A57ACC), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+$34), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+$D18), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+$C), @A, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(A+(x*4)), @B, sizeof(A), NoB);
ReadProcessMemory (hProcess, Pointer(B+$58), @A, sizeof(A), NoB);
ShowMessage(IntToString(A));
if A <> 0 then begin //если ячейка не пустая - читаем тип итема
ReadProcessMemory (hProcess, Pointer(B+$4), @A, sizeof(A), NoB);
case A of //и дальше в зависимости от типа, читаем название
Первая пустая ячейка выдаёт странное длинное число по красной строке, а в качестве названия записывается "?". Далее всё нормально, и последние пустые ячейки выдают то же самое число и записываются с именем последнего прочитанного предмета. Например имеем такой инвентарь:
пусто
предмет
предмет1
предмет2
предмет3
пусто
пусто
пусто
код записывает в массив/комбобокс так:
?
предмет
предмет1
предмет2
предмет3
предмет3
предмет3
предмет3
Где ошибка?
Спасибо.