Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Скан Инвенторя и выбрасывание предмета

-

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

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

Ответ
 
Опции темы
Старый 29.06.2012, 19:23   #1
 Разведчик
Аватар для Bосh
 
Bосh никому не известный тип
Регистрация: 22.04.2012
Сообщений: 14
Популярность: 18
Сказал(а) спасибо: 6
Поблагодарили 4 раз(а) в 3 сообщениях
 
По умолчанию Скан Инвенторя и выбрасывание предмета

Имеется код проверки инвентаря на ID предметов.
Код:
var
KlientWindow:HWND;
hProcess,PID,buf,ibuf,BC:DWord;
i:Integer;
j:array [0..31] of Integer;
begin
GetWindowThreadProcessId(KlientWindow,@PID);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,PID);
 for i:=0 to 31 do
  begin
  ReadProcessMemory(hProcess,ptr($00B27A04),@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;
  Edit1.Text:=inttostr(j[SpinEdit1.Value-1]);
  end;
CloseHandle(hProcess);
end;
end.
Теперь, как реализовать выброс предмета. А то есть, если в инвентаре имеется такой - то ID предмета(Edit1.Text) и лежит он в какой то ячейке(?), то он выбросится.
Надо узнать в какой именно ячейке лежит нужный предмет и послать пакет на выброс,
(0E 00 + Ячейка + 01 00)

P.S В названии темы ошибка - Инвентаря

Последний раз редактировалось Bосh; 29.06.2012 в 19:32.
  Ответить с цитированием
Старый 29.06.2012, 20:08   #2
Бандеровец
 Лейтенант-командор
Аватар для 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
KlientWindow:HWND;
hProcess,PID,buf,ibuf,BC:DWord;
i,c:Integer;
j:array [0..31] of Integer;
begin
GetWindowThreadProcessId(KlientWindow,@PID);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,PID);
 for i:=0 to 31 do
  begin
  ReadProcessMemory(hProcess,ptr($00B27A04),@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);
   if buf={тут нужный ID предмета} then
    begin
    c:=i+1;
    end;
  j[i]:=buf;
  Edit1.Text:=inttostr(j[SpinEdit1.Value-1]);
  end;
CloseHandle(hProcess);
end;
end.
В "c" буде нужный тебе ID, дальше его и юзай
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: 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.


  Ответить с цитированием
Пользователь сказал cпасибо:
Bосh (29.06.2012)
Старый 29.06.2012, 20:43   #3
 Разведчик
Аватар для Bосh
 
Bосh никому не известный тип
Регистрация: 22.04.2012
Сообщений: 14
Популярность: 18
Сказал(а) спасибо: 6
Поблагодарили 4 раз(а) в 3 сообщениях
 
По умолчанию Re: Скан Инвенторя и выбрасывание предмета

Ввожу нужный мне ID проверяет нормально, но если в 1 ячейке лежат 2 предмета, он показывает что такого ID в инвентаре нету.
[Ссылки могут видеть только зарегистрированные пользователи. ] = Предмета нету.
[Ссылки могут видеть только зарегистрированные пользователи. ] = Предмет есть.
P.S А нет, все показывает. Но если предмет лежит не на первой и второй ячейке.
И еще, как узнать в какой ячейке инвентаря лежит нужный предмет?

Последний раз редактировалось Bосh; 29.06.2012 в 20:58.
  Ответить с цитированием
Старый 29.06.2012, 21:05   #4
 Разведчик
Аватар для chetoss
 
chetoss на правильном путиchetoss на правильном пути
Регистрация: 30.10.2009
Сообщений: 7
Популярность: 107
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Скан Инвенторя и выбрасывание предмета

0E 00 + Ячейка + Кол-во + 00
Кол-во можно по адресу +10 узнать(кажется)
  Ответить с цитированием
Старый 29.06.2012, 21:41   #5
 Разведчик
Аватар для Bосh
 
Bосh никому не известный тип
Регистрация: 22.04.2012
Сообщений: 14
Популярность: 18
Сказал(а) спасибо: 6
Поблагодарили 4 раз(а) в 3 сообщениях
 
По умолчанию Re: Скан Инвенторя и выбрасывание предмета

Цитата:
Сообщение от chetossПосмотреть сообщение
0E 00 + Ячейка + Кол-во + 00
Кол-во можно по адресу +10 узнать(кажется)

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

Код:
function GetCall(id: Integer): Integer;
var
KlientWindow:HWND;
hProcess,PID,buf,ibuf,BC:DWord;
i:Integer;
begin
GetWindowThreadProcessId(KlientWindow,@PID);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,PID);
 for i:=0 to 31 do
  begin
  ReadProcessMemory(hProcess,ptr($00B27A04),@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);
   if buf=id then
    begin
    Result:=i;
    break;
    end;
  end;
CloseHandle(hProcess);
end;

function GetCount(call: Integer): Integer;
var
KlientWindow:HWND;
hProcess,PID,buf,ibuf,BC:DWord;
i,r:Integer;
begin
GetWindowThreadProcessId(KlientWindow,@PID);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,PID);

ReadProcessMemory(hProcess,ptr($00B27A04),@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*call),@ibuf,sizeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$10),@r,sizeof(r),BC);

Result:=r;

CloseHandle(hProcess);
end;

function Drop(id : Integer): Integer;
begin
Packet('0E00' + GetCall(id) + GetCount(GetCall(id)) + '00');
end;
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
alonwoolf (28.08.2012), Bосh (29.06.2012)
Старый 29.06.2012, 22:00   #7
 Разведчик
Аватар для Bосh
 
Bосh никому не известный тип
Регистрация: 22.04.2012
Сообщений: 14
Популярность: 18
Сказал(а) спасибо: 6
Поблагодарили 4 раз(а) в 3 сообщениях
 
По умолчанию Re: Скан Инвенторя и выбрасывание предмета

Цитата:
Сообщение от samosiПосмотреть сообщение
Код:
function GetCall(id: Integer): Integer;
var
KlientWindow:HWND;
hProcess,PID,buf,ibuf,BC:DWord;
i:Integer;
begin
GetWindowThreadProcessId(KlientWindow,@PID);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,PID);
 for i:=0 to 31 do
  begin
  ReadProcessMemory(hProcess,ptr($00B27A04),@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);
   if buf=id then
    begin
    Result:=i;
    break;
    end;
  end;
CloseHandle(hProcess);
end;

function GetCount(call: Integer): Integer;
var
KlientWindow:HWND;
hProcess,PID,buf,ibuf,BC:DWord;
i,r:Integer;
begin
GetWindowThreadProcessId(KlientWindow,@PID);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,PID);

ReadProcessMemory(hProcess,ptr($00B27A04),@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*call),@ibuf,sizeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$10),@r,sizeof(r),BC);

Result:=r;

CloseHandle(hProcess);
end;

function Drop(id : Integer): Integer;
begin
Packet('0E00' + GetCall(id) + GetCount(GetCall(id)) + '00');
end;

Спасибо
  Ответить с цитированием
Старый 29.06.2012, 22:03   #8
Бандеровец
 Лейтенант-командор
Аватар для 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: Скан Инвенторя и выбрасывание предмета

Цитата:
Сообщение от BосhПосмотреть сообщение
Спасибо

На будущее: благодарность принимается нажатием соответствующей кнопки
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: 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.


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

Вот имена.
  Ответить с цитированием
Старый 29.06.2012, 22:27   #10
 Разведчик
Аватар для Bосh
 
Bосh никому не известный тип
Регистрация: 22.04.2012
Сообщений: 14
Популярность: 18
Сказал(а) спасибо: 6
Поблагодарили 4 раз(а) в 3 сообщениях
 
По умолчанию Re: Скан Инвенторя и выбрасывание предмета

Все понял. Исправил
VeTaL_Ua грац с 10001
  Ответить с цитированием
Старый 29.06.2012, 22:51   #11
 Разведчик
Аватар для Throme
 
Throme никому не известный тип
Регистрация: 29.06.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Скан Инвенторя и выбрасывание предмета

Как использовать эти функции?
Например из Edit1.Text взять id и проверить есть ли он в инвентаре? Я просто новенький в Delphi.
  Ответить с цитированием
Старый 30.06.2012, 01:26   #12
 Разведчик
Аватар для VeTaL_UA(1)
 
VeTaL_UA(1) скоро будет известенVeTaL_UA(1) скоро будет известенVeTaL_UA(1) скоро будет известен
Регистрация: 04.12.2011
Сообщений: 20
Популярность: 295
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Скан Инвенторя и выбрасывание предмета

Цитата:
Сообщение от ThromeПосмотреть сообщение
Например из Edit1.Text взять id и проверить есть ли он в инвентаре?

Код:
function GetCell(id: Integer): Integer;
var
KlientWindow:HWND;
hProcess,PID,buf,ibuf,BC:DWord;
i:Integer;
begin
KlientWindow=FindWindow(nil,'Perfect World');
GetWindowThreadProcessId(KlientWindow,@PID);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,PID);
 for i:=0 to 31 do
  begin
  ReadProcessMemory(hProcess,ptr($00B27A04),@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);
   if buf=id then
    begin
    Result:=i;
    break;
    end;
  end;
CloseHandle(hProcess);
end;

function GetCount(cell: Integer): Integer;
var
KlientWindow:HWND;
hProcess,PID,buf,ibuf,BC:DWord;
i,r:Integer;
begin
KlientWindow=FindWindow(nil,'Perfect World');
GetWindowThreadProcessId(KlientWindow,@PID);
hProcess := OpenProcess(PROCESS_ALL_ACCESS,False,PID);
ReadProcessMemory(hProcess,ptr($00B27A04),@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*cell),@ibuf,sizeof(ibuf),BC);
ReadProcessMemory(hProcess,ptr(ibuf+$10),@r,sizeof(r),BC);
Result:=r;
CloseHandle(hProcess);
end;

procedure Button1Click(Sender:TObject);
begin
ShowMessage('Id: '+Edit1.Text+' Cell: '+IntToStr(GetCell(StrToInt(Edit1.Text)))+
                                     ' Count: '+IntToStr(GetCount(GetCell(StrToInt(Edit1.Text))));
end;
Ну как-то так.
________________
VeTaL_UA пишет отсюда, когда сидит с мобильного телефона. Привязка по ІР
  Ответить с цитированием
Старый 23.07.2012, 21:52   #13
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: Скан Инвенторя и выбрасывание предмета

как получить можно параметры вещи, точнее доп параметры пение аспид, хп и т.д.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Программа] Бинд Кнопок Инвенторя cunt85 Боты, скрипты, прочий софт 5 13.07.2017 00:50
[Продам] Cs:s + скан ключа anonymous-777 Товары/услуги в Сети 0 04.06.2012 09:45
Выбрасывание вещей по ID Доминик Общение разработчиков 6 15.02.2012 21:48
[Продам] BF:BC2 DigitalEdition Ключ+скан Tazman Товары/услуги в Сети 1 21.08.2011 13:57

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

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

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