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

Поиск ItemId, TypeId

-

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

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

Ответ
 
Опции темы
Старый 29.10.2012, 06:40   #1
 Разведчик
Аватар для ivasik
 
ivasik скоро будет известенivasik скоро будет известенivasik скоро будет известен
Регистрация: 23.12.2009
Сообщений: 42
Популярность: 275
Сказал(а) спасибо: 34
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Поиск ItemId, TypeId

Играю на pwmax, решил сделать авто сбор ресурсов ("Пельмень =PWMAX= - валюта сервера). Часто набивается ресов очень много, а вот их всех по 1 собирать желания особо нет.
Пробую настроить пилесос. Фармлю соло в данже, должно быть без палева.
Пользуюсь функцией отправки пакетов

Цитата:
local $packet, $packetSize

$packet = '0600'
$packet &= _hex($uniqueItemId)
$packet &= _hex($itemTypeId)
$packetSize = 10

sendPacket($packet, $packetSize, $pid)

Все было бы ничего. Да только ресы то не стандартные. Из базы пв их не возьмешь. Можна ли заполнить отправку такого пакета. И как найти эти смещения?

Если можна поподробней, как для начинающего)))
  Ответить с цитированием
Старый 29.10.2012, 13:21   #2
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: Поиск ItemId, TypeId

Всё не так просто. Тебе нужен не айди предмета, а его WID (World ID), то есть его глобальный айди. А его можно узнать только сканируя ближайшие ресурсы/лут
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
  Ответить с цитированием
Старый 29.10.2012, 14:36   #3
 Разведчик
Аватар для ivasik
 
ivasik скоро будет известенivasik скоро будет известенivasik скоро будет известен
Регистрация: 23.12.2009
Сообщений: 42
Популярность: 275
Сказал(а) спасибо: 34
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Re: Поиск ItemId, TypeId

Цитата:
Сообщение от SmertigПосмотреть сообщение
А его можно узнать только сканируя ближайшие ресурсы/лут

Не знаю как это сделать, да и гугл не хочет помочь. Я тут подумал, нельзя ли просканировать инвентарь (оставив в в нем только этот рес) и вытянуть таким образом WID? Только вот каким образом это сделать, тоже не могу придумать((((
  Ответить с цитированием
Старый 29.10.2012, 15:51   #4
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: Поиск ItemId, TypeId

Цитата:
Сообщение от ivasikПосмотреть сообщение
Я тут подумал, нельзя ли просканировать инвентарь (оставив в в нем только этот рес) и вытянуть таким образом WID?

WID для каждой единицы предмета на земле - уникальный. Например, лежат на земле 5 кучек какого-то реса. И имеют они WID 37622382, 37622383, 37622384, 37622385, 37622386 (цифры от балды взяты). И не бывает двух предметов с одинаковым WID.
В инвентаре, если не ошибаюсь, предметы вообще теряют твой WID и остается только обычный ID


На чём пишешь?
Нужные оффсеты для лута (1.4.5)

Код:
Структура лута, ресов
BA +0x1C +0x1C +0x28 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x28 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/
+0X3C LocX,float /Координата X/ (X/10+400)
+0x44 LocY,float /Координата Y/ (Y/10+550)
+0x40 LocZ,float /Координата Z/ (Z/10)
+0x110 WID, dword
+0x114 ID, dword
+0x150 Type, 2byte
+0x154 Lvl, dword
+0x158 Distance, float
+0x168 +0x0 Name, wchar (UText / Unicode String)
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.

Последний раз редактировалось Smertig; 29.10.2012 в 15:59.
  Ответить с цитированием
Старый 31.10.2012, 14:42   #5
 Разведчик
Аватар для ivasik
 
ivasik скоро будет известенivasik скоро будет известенivasik скоро будет известен
Регистрация: 23.12.2009
Сообщений: 42
Популярность: 275
Сказал(а) спасибо: 34
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Re: Поиск ItemId, TypeId

Каким образом просканировать, и отобрать в масив близлежащие wid?
  Ответить с цитированием
Старый 31.10.2012, 17:23   #6
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: Поиск ItemId, TypeId

Цитата:
Сообщение от ivasikПосмотреть сообщение
Каким образом просканировать, и отобрать в масив близлежащие wid?

выше оффсеты дали все что может понадобиться. осталось тока BA найти и составить полную структуру. примерно будет выглядеть так
Код:
for i:=0 to $300 do
begin
ReadProcessMemory(hProcess,ptr(Ba),@buf,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+$1C),@buf,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+$1C),@buf,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+$24),@buf,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+$18),@buf,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+i*4),@buf,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+$4),@buf,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+$110),@WordID,4,BytesCount);
так ты получишь список близлежащих ресурсов. Если пишешь на delphi то их Id можно занести в Memo поле таким образом:
Код:
Memo1.lines.add(inttostr(WordId))
Список конечно получиться большой. потом просто сделай процедуру отсеивания повторов и останутся только несколько ближайших ресов.

Так провернуть в нескольких областях или выкопать все кроме нужного реса и получить его ID

Последний раз редактировалось Ginrey; 31.10.2012 в 18:54.
  Ответить с цитированием
Пользователь сказал cпасибо:
ivasik (01.11.2012)
Старый 01.11.2012, 05:27   #7
 Разведчик
Аватар для ivasik
 
ivasik скоро будет известенivasik скоро будет известенivasik скоро будет известен
Регистрация: 23.12.2009
Сообщений: 42
Популярность: 275
Сказал(а) спасибо: 34
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Re: Поиск ItemId, TypeId

Что делаю не так?

Цитата:
FOR $I = 0 TO 768

$POINT = Dec($I*4)

$RES = _MEMORYREAD(_MEMORYREAD(_MEMORYREAD(_MEMORYREAD(_M EMORYREAD(_MEMORYREAD(_MEMORYREAD(_MEMORYREAD(11696644, $MEMID) + 28, $MEMID) + 28 , $MEMID) + 40, $MEMID) + 24, $MEMID) +$POINT, $MEMID) + 4, $MEMID) +268, $MEMID)

IF $RES <> 0 THEN

FileWrite(@ScriptDir & "\Log.txt", $RES & @CRLF)

ENDIF
NEXT

Файл остается пустым, и ничего туда не пишется.
Когда ставлю это смещение:
Цитата:
BA +0x1C +0x1C +0x28 +0x14 Count, dword /Количество/

В файл пишется количество близлежащих ресов на полу.

Последний раз редактировалось ivasik; 01.11.2012 в 05:30. Причина: _MEMORYREAD не могу выправить. В проге этой ошибки нет.
  Ответить с цитированием
Старый 01.11.2012, 13:53   #8
-= Мастер Света =-
 Рыцарь-лейтенант
Аватар для Smertig
 
Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(Smertig сломал счётчик популярности :(
Регистрация: 31.01.2011
Сообщений: 413
Популярность: 14489
Золото Zhyk.Ru: 300
Сказал(а) спасибо: 77
Поблагодарили 361 раз(а) в 145 сообщениях
Отправить сообщение для Smertig с помощью ICQ Отправить сообщение для Smertig с помощью Skype™
 
По умолчанию Re: Поиск ItemId, TypeId

ivasik, о, родной AutoIt. Автор, тебе удобно переводить все оффсеты в десятичную систему счисления? Почему бы вместо
Цитата:
$RES = _MEMORYREAD(_MEMORYREAD(_MEMORYREAD(_MEMORYREAD(_M EMORYREAD(_MEMORYREAD(_MEMORYREAD(_MEMORYREAD(1169 6644, $MEMID) + 28, $MEMID) + 28 , $MEMID) + 40, $MEMID) + 24, $MEMID) +$POINT, $MEMID) + 4, $MEMID) +268, $MEMID)

не записать нормально
Цитата:
$RES = _MEMORYREAD(_MEMORYREAD(_MEMORYREAD(_MEMORYREAD(_M EMORYREAD(_MEMORYREAD(_MEMORYREAD(_MEMORYREAD(0xB2 7A04, $MEMID) + 0x1C, $MEMID) + 0x1C, $MEMID) + 0x28, $MEMID) + 0x18, $MEMID) +$POINT, $MEMID) + 0x4, $MEMID) + 0x10C, $MEMID)

п.с. последний оффсет неверный, попробуй
Цитата:
+0x110 WID, dword
+0x114 ID, dword

________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
  Ответить с цитированием
Пользователь сказал cпасибо:
ivasik (02.11.2012)
Старый 01.11.2012, 13:58   #9
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: Поиск ItemId, TypeId

Цитата:
Сообщение от ivasikПосмотреть сообщение
В файл пишется количество близлежащих ресов на полу.

а где вы взяли смещение +0x268 если перевести 110 из 16-ричной в 10-тичную получится 272.
  Ответить с цитированием
Старый 02.11.2012, 02:30   #10
 Разведчик
Аватар для ivasik
 
ivasik скоро будет известенivasik скоро будет известенivasik скоро будет известен
Регистрация: 23.12.2009
Сообщений: 42
Популярность: 275
Сказал(а) спасибо: 34
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Re: Поиск ItemId, TypeId

Цитата:
Сообщение от SmertigПосмотреть сообщение
п.с. последний оффсет неверный

Пишу не для руофа, поэтому для меня верно:
Цитата:
+0x10C WID, dword
+0x110 ID, dword

Цитата:
Сообщение от GinreyПосмотреть сообщение
а где вы взяли смещение +0x268 если перевести 110 из 16-ричной в 10-тичную получится 272.

Смотрим выше. 268 взялось из 0x10C

Всем помагавшим спс, разобрался, код заработал. Хочу написать пылесос, но пока получился только сборщик ресов, по определенному ид. Пользуюсь этой функцией:
Цитата:
local $packet, $packetSize

$packet = '0600'
$packet &= _hex($uniqueItemId)
$packet &= _hex($itemTypeId)
$packetSize = 10

sendPacket($packet, $packetSize, $pid)

Но с этой функцией перс, после убийства моба начинает все ресы физически собирать (12-14шт) это очень долго. Как сделать, чтобы он их тупо втягивал, пылесосом?
  Ответить с цитированием
Старый 02.11.2012, 02:51   #11
-= Илитный Мастер =-
 Главнокомандующий
Аватар для AEBus
 
AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(AEBus сломал счётчик популярности :(
Регистрация: 28.03.2009
Сообщений: 1,666
Популярность: 67466
Сказал(а) спасибо: 246
Поблагодарили 1,560 раз(а) в 691 сообщениях
 
По умолчанию Re: Поиск ItemId, TypeId

Помнится была программа от семодера для китайской фришки, так там реальный пылесос, почти сразу ресы втягивались
  Ответить с цитированием
Старый 02.11.2012, 05:45   #12
 Разведчик
Аватар для AHTOLLlKA
 
AHTOLLlKA никому не известный тип
Регистрация: 08.10.2012
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Поиск ItemId, TypeId

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

не подскажите линки на китайские форумы где тоже разбирают протокол и пишут софт?
  Ответить с цитированием
Старый 02.11.2012, 09:59   #13
 Разведчик
Аватар для ivasik
 
ivasik скоро будет известенivasik скоро будет известенivasik скоро будет известен
Регистрация: 23.12.2009
Сообщений: 42
Популярность: 275
Сказал(а) спасибо: 34
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Re: Поиск ItemId, TypeId

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

Вот, чтото подобное хочется реализовать.
  Ответить с цитированием
Старый 02.11.2012, 14:15   #14
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: Поиск ItemId, TypeId

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

а разве так возможно даже если на пакетном уровне сделать, там же идет время ожидания сбора и если все отправить все равно же не соберет все а только 1 или 2
  Ответить с цитированием
Старый 02.11.2012, 19:44   #15
 Разведчик
Аватар для ivasik
 
ivasik скоро будет известенivasik скоро будет известенivasik скоро будет известен
Регистрация: 23.12.2009
Сообщений: 42
Популярность: 275
Сказал(а) спасибо: 34
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Re: Поиск ItemId, TypeId

Цитата:
Сообщение от GinreyПосмотреть сообщение
а разве так возможно даже если на пакетном уровне сделать, там же идет время ожидания сбора и если все отправить все равно же не соберет все а только 1 или 2

Было все так: Стоит страж (сикер) в буре, убивает респящихся мобов, и с них сам затягивает нужные ресы (будучи в буре)
P.S.: Стало быть есть способ, только бы узнать какой.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Информация] Поиск игр. Mephistopheles Игры 8 26.04.2020 18:03
[Помогите!] ItemID вытащить из пакета? trdd132 Общение и обсуждение, архив Lineage 2 0 22.08.2011 09:21
[Помогите!] Поиск ЧС Samira18 Общение и обсуждение Perfect World 1 25.03.2011 15:05

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

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

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net