 |
Структура / Список лута - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
10.04.2011, 16:07
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 07.10.2010
 Сообщений: 21
 Популярность: 90
 Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
|
Структура / Список лута
# Структура / Список лута:
GA +8 +28 +18 +[I*4] + (+0)^J +4: (I in [0..300])
* GA +8 +28 +14: - Items count
* +3C ItemLocX (float)
* +40 ItemLocZ (float)
* +44 ItemLocY (float)
* +10C ItemWID (Sn - Serial Number)
* +110 ItemID
* +14C ItemType (1 - Money; 2 - Mine; Other - Item)
* +164 +0 ItemName (UText / Unicode String)
Код:
ReadProcessMemory(hProcess, ptr(BA), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$1C), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$8), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$28), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$14), @Itemcount, sizeof(buf), BytesCount);
//если на земле что то лежит то Itemcount= кол-ву предметов на земле
ReadProcessMemory(hProcess, ptr(ipbuf+$18), @ipbuf, sizeof(ipbuf), BytesCount);
zI:=ipbuf*4;//может я тут что то не так считаю ???
ReadProcessMemory(hProcess, ptr(ipbuf+zI), @ipbuf, sizeof(ipbuf), BytesCount);
if Itemcount<>0 then
begin
repeat
ReadProcessMemory(hProcess, ptr(ipbuf+$0), @ipbuf, sizeof(ipbuf), BytesCount);
//после этой строчки получается что ipbuf=0
Itemcount:=Itemcount-1;
until Itemcount<=0;
end;
ReadProcessMemory(hProcess, ptr(ipbuf+$4), @ipbuf, sizeof(ipbuf), BytesCount);
//дальше считает от 0 так что получаются неверные значения
ReadProcessMemory(hProcess, ptr(ipbuf+$10C), @IWIDbuf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$110), @IIDbuf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$14C), @ITypebuf, sizeof(buf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$164), @ipbuf,4, BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf+$0), @Buft,32, BytesCount);
Edit2.Text:=WideCharToString(Buft);

________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters
|
|
|
10.04.2011, 16:26
|
#2
|
|
|
|
Фельдмаршал
|
 Регистрация: 13.08.2009
 Сообщений: 1,004
 Популярность: 25098
 Золото Zhyk.Ru: 350
 Сказал(а) спасибо: 111
Поблагодарили 830 раз(а) в 395 сообщениях
|
Re: Структура / Список лута
Конечно ты там не так считаешь, в структуре ведь написано [i*4], а не [ipbuf*4].
Так чего же спрашивается так писать?
Что такое i - есть ответ в теме со структурами.
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
JD: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
Статьи: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
18.04.2011, 10:50
|
#3
|
|
|
|
Разведчик
|
 Регистрация: 07.10.2010
 Сообщений: 21
 Популярность: 90
 Сказал(а) спасибо: 14
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: Структура / Список лута
Код:
if hProcess <> 0 then
begin
Memo1.Lines.clear;
ReadProcessMemory(hProcess, ptr(BA), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $8), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $28), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $14), @Itemc, sizeof(buf), BytesCount);
if Itemc <> 0 then
begin
Memo1.Lines.Add('предметов: ' + IntToStr(Itemc));
for I := 0 to 300 do//добавил I
begin
ReadProcessMemory(hProcess, ptr(BA), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $8), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $28), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $18), @ipbuf, sizeof(ipbuf), BytesCount);
zI := I * 4;
ReadProcessMemory(hProcess, ptr(ipbuf + zI), @ipbuf, sizeof(ipbuf), BytesCount);
if Itemc <> 0 then
begin
repeat
ReadProcessMemory(hProcess, ptr(ipbuf + $0), @ipbuf, sizeof(ipbuf), BytesCount);
Itemc := Itemc - 1;
until Itemc <= 0;
end;
ReadProcessMemory(hProcess, ptr(ipbuf + $4), @ipbuf, sizeof(ipbuf), BytesCount);
//=0
ReadProcessMemory(hProcess, ptr(ipbuf + $10C), @IWIDbuf, sizeof(buf), BytesCount);
//=0
ReadProcessMemory(hProcess, ptr(ipbuf + $110), @IIDbuf, sizeof(buf), BytesCount);
//=0
ReadProcessMemory(hProcess, ptr(ipbuf + $14C), @ITypebuf, sizeof(buf), BytesCount);
//=0 соответственно дальше тоже
Memo1.Lines.Add('IWID: ' + inttostr(IWIDbuf));
Memo1.Lines.Add('IID: ' + IntToStr(IIDbuf));
Memo1.Lines.Add('IType: ' + IntToStr(ITypebuf));
ReadProcessMemory(hProcess, ptr(ipbuf + $164), @ipbuf, 4, BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $0), @Buft, 32, BytesCount);
Memo1.Lines.Add('Name: ' + WideCharToString(Buft));
end;
end;
end;

Добавлено через 1 час 10 минут
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
for I := $0 to $300 do
begin
ReadProcessMemory(hProcess, ptr(BA), @ipbuf, sizeof(ipbuf), BytesCount); ReadProcessMemory(hProcess, ptr(ipbuf + $8), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $28), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf + $18), @ipbuf, sizeof(ipbuf), BytesCount);
ReadProcessMemory(hProcess, ptr(ipbuf +(I*$4)), @ipbuf, sizeof(ipbuf), BytesCount);
|
|
 |
|
 |
|
Кажется разобрался
________________
если я не ошибаюсь, а могу и ошибаться ...
too many actual parameters
Последний раз редактировалось zaparca; 18.04.2011 в 12:00.
Причина: Добавлено сообщение
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 05:49.
|
 |