Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Инвентарь...

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 16.02.2012, 23:21   #1
 Разведчик
Аватар для samosi
 
samosi на правильном путиsamosi на правильном пути
Регистрация: 23.12.2011
Сообщений: 42
Популярность: 192
Сказал(а) спасибо: 26
Поблагодарили 11 раз(а) в 9 сообщениях
 
По умолчанию Инвентарь...

Хотелось бы узнать как вывести ячейку предмета, по его ID на Delphi
Вот моя функция но она не работает...
Код:
var
Wnd:THandle;
Hndl:array[0..255] of Char;
buf,BC:DWord;
bufs,BCS:DWord;
hProcess,PID,PID1:DWord;
ibuf,d,d2,max_z,id,ibufs:Integer;
begin
Wnd:=FindWindow('ElementClient Window',nil);
GetWindowThreadProcessId(Wnd,@PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,PID);
d:=0;
while (hProcess<>0) and (PID<>PID1) do
  begin
  GetWindowText(Wnd,Hndl,SizeOf(Hndl));
  ReadProcessMemory(hProcess,ptr(PW_BASE_ADDRESS),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$1C),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$34),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$CAC),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$10),@buf,sizeof(buf),BC);
  max_z:=buf;

  for d2:=0 to max_z do
  begin
  ReadProcessMemory(hProcess,ptr(PW_BASE_ADDRESS),@ibufs,sizeof(ibufs),BCS);
  ReadProcessMemory(hProcess,ptr(ibufs+$1C),@ibufs,sizeof(ibufs),BCS);
  ReadProcessMemory(hProcess,ptr(ibufs+$34),@ibufs,sizeof(ibufs),BCS);
  ReadProcessMemory(hProcess,ptr(ibufs+$CAC),@ibufs,sizeof(ibufs),BCS);
  ReadProcessMemory(hProcess,ptr(ibufs+$C),@ibufs,sizeof(ibufs),BCS);
  ReadProcessMemory(hProcess,ptr(ibufs+d2),@ibufs,sizeof(ibufs),BCS);
  ReadProcessMemory(hProcess,ptr(ibufs*$4),@ibufs,sizeof(ibufs),BCS);
  ReadProcessMemory(hProcess,ptr(ibufs+$08),@bufs,sizeof(bufs),BCS);
  id:=bufs;
  if id=21383 then
  begin
  number:=d2;
  end;
  end;
  FID[d]:=Wnd;
  PID:=PID1;
  inc(d)
  end;
  CloseHandle(hProcess);
end;
  Ответить с цитированием
Старый 17.02.2012, 07:31   #2
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: Инвентарь...

Цитата:
Сообщение от samosiПосмотреть сообщение
Хотелось бы узнать как вывести ячейку предмета, по его ID на Delphi

Формируешь хеш-таблицу: (Номер ячейки := ИД предмета). А дальше ищешь в ней ИД предмета, а возвращаешь Ключ - Номер ячейки. А можно просто читать ИД предмета в каждой ячейке и сравнивать с искомым ИД. Как нашли - сообщать порядковый номер ячейки.
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
Старый 17.02.2012, 12:46   #3
 Разведчик
Аватар для samosi
 
samosi на правильном путиsamosi на правильном пути
Регистрация: 23.12.2011
Сообщений: 42
Популярность: 192
Сказал(а) спасибо: 26
Поблагодарили 11 раз(а) в 9 сообщениях
 
По умолчанию Re: Инвентарь...

Цитата:
Сообщение от krukovisПосмотреть сообщение
Формируешь хеш-таблицу: (Номер ячейки := ИД предмета). А дальше ищешь в ней ИД предмета, а возвращаешь Ключ - Номер ячейки. А можно просто читать ИД предмета в каждой ячейке и сравнивать с искомым ИД. Как нашли - сообщать порядковый номер ячейки.

В том то и дело, что на делфи перешел недавно и незнаю как это осуществить, можешь помочь с кодом?
  Ответить с цитированием
Старый 17.02.2012, 12:57   #4
-= Мастер Света =-
 Рыцарь-капитан
Аватар для krukovis
 
krukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нацииkrukovis гордость нации
Регистрация: 07.10.2009
Сообщений: 496
Популярность: 2687
Сказал(а) спасибо: 64
Поблагодарили 324 раз(а) в 104 сообщениях
 
По умолчанию Re: Инвентарь...

Цитата:
Сообщение от samosiПосмотреть сообщение
В том то и дело, что на делфи перешел недавно и незнаю как это осуществить, можешь помочь с кодом?

На делфи не пишу. Но не понимаю в чем проблема. Алгоритм есть - воплощай и научишься заодно. На форуме программистов помогут организовать перебор.
________________
--------------------------------------------
PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
[for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
  Ответить с цитированием
Старый 17.02.2012, 19:46   #5
Читер-спонсор
 Сержант
Аватар для lcd1232
 
lcd1232 скоро будет известенlcd1232 скоро будет известенlcd1232 скоро будет известенlcd1232 скоро будет известен
Регистрация: 12.09.2010
Сообщений: 165
Популярность: 375
Сказал(а) спасибо: 70
Поблагодарили 39 раз(а) в 25 сообщениях
Отправить сообщение для lcd1232 с помощью ICQ Отправить сообщение для lcd1232 с помощью Skype™
 
По умолчанию Re: Инвентарь...

samosi, не охото смотреть в чем ошибка. Скину уже рабочий код(спасибо SEModer'у)
Код:
Tinv = record
  Name:string;
  ID,Count,InvCell:integer;
  end;

invent:array [0..63] of TInv;
...
...
...
...
procedure ScanInventory;
var
i:integer;
data,BytesCount,count,ID,invmax,invstruct,itemstruct,toch:dword;
begin
  ReadProcessMemory(hProcess,ptr(GA),@data,sizeof(data),BytesCount);
  ReadProcessMemory(hProcess,ptr(data+$34),@data,sizeof(data),BytesCount);
  ReadProcessMemory(hProcess,ptr(data+$CAC),@data,sizeof(data),BytesCount);
  ReadProcessMemory(hProcess,ptr(data+$10),@invmax,sizeof(invmax),BytesCount);
  ReadProcessMemory(hProcess,ptr(data+$C),@invstruct,sizeof(invstruct),BytesCount);
  for i:=0 to invmax-1 do
  begin
  ReadProcessMemory(hProcess,ptr(invstruct+4*i),@itemstruct,sizeof(itemstruct),rw);
  ReadProcessMemory(hProcess,ptr(itemstruct+$8),@ID,sizeof(ID),rw);
  ReadProcessMemory(hProcess,ptr(itemstruct+$10),@count,sizeof(count),rw);
  ReadProcessMemory(hProcess,ptr(itemstruct+$C),@toch,sizeof(toch),rw);
    Invent[i].ID:=ID;
    Invent[i].Count:=Count;
    Invent[i].InvCell:=I;
  end;
end;
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось lcd1232; 17.02.2012 в 21:10.
  Ответить с цитированием
Старый 17.02.2012, 20:41   #6
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: Инвентарь...

Мой код:
Код:
var
hProcess,PID,buf,ibuf,BC:DWord;
i:Integer;
j:array [0..31] of Integer;
begin
PID:=GetWindowThreadProcessId(FindWindow('ElementClient Window','Perfect World'),@PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS,False,PID);
 for i:=0 to 31 do
  begin
  ReadProcessMemory(hProcess,ptr(BA),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$1C),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$34),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$CAC),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$C),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$4*i),@ibuf,sizeof(ibuf),BC);
  ReadProcessMemory(hProcess,ptr(ibuf+$8),@buf,sizeof(buf),BC);
  j[i]:=buf;
  end;
CloseHandle(hProcess);
end;
Можешь приделать читку количества ячеек с клиента...
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] пропал инвентарь danrai Общение и обсуждение, архив Point Blank 6 22.11.2011 08:56
инвентарь komesar Вопросы и ответы: RF Online 2 26.06.2010 22:23
[Информация] Получаем доп. инвентарь! Hummel Rising Force Online 4 18.08.2009 13:08

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 20:45.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net