 |
Проблема в структуре инвентаря - Общение разработчиков - Программирование для Perfect World, общение и обсуждене разработок |
27.09.2012, 22:34
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 23.02.2011
 Сообщений: 19
 Популярность: 18
 Сказал(а) спасибо: 30
Поблагодарили 4 раз(а) в 2 сообщениях
|
Проблема в структуре инвентаря
В общем я пытаюсь найти в какой ячейке инвентаря находится портал в город и столкнулся с проблемой... Проблема такая как мы знаем ид журов 2100 соответственно для отправки в пакете он будет выглядеть так 34 08, но как ид журов выглядит в клиенте? я пробовал считать данные с ячейки где журы выдает такое значение 619644544 подумал ну поф вобью это значение и буду по нему искать журы, но не тут то было) короче ячейку с журами если предположить что ид журов в клиенте 619644544 он находит, но не находит 2 ячейку где еще журы, следовательно я сделал вывод исходя из того, что в 1 ячейке у меня 20 журов, а во 2 11 журов получается в значении 619644544 находится кол-во журов в ячейке и сам ид журов, так вот как расщифровать это значение чтоб в нем было видно кол-во и сам ид журов... код по которому я искал журы(те 20 журов, т.к. мне не известно как отсеивать от получаемых значений их кол-во и получать реальный вид ид'а журов):
Код:
Addr := ReadMem(hProcess, $00A571E0);
Addr := ReadMem(hProcess, Addr + $1C);
Addr := ReadMem(hProcess, Addr + $34);
InvArr := ReadMem(hProcess, Addr + $0D18);
InvMax := ReadMem(hProcess, InvArr + $010);
for i:=0 to InvMax - 1 do
begin
Temp := ReadMem(hProcess, InvArr + $0C);
Temp := ReadMem(hProcess, Temp + i*4);
if Temp = 619644544 then
showmessage(inttostr(i));
end;
|
|
|
27.09.2012, 23:12
|
#2
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 07.10.2009
 Сообщений: 496
 Популярность: 2687
 Сказал(а) спасибо: 64
Поблагодарили 325 раз(а) в 105 сообщениях
|
Re: Проблема в структуре инвентаря
________________
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
|
|
|
27.09.2012, 23:41
|
#3
|
|
|
|
Разведчик
|
 Регистрация: 23.02.2011
 Сообщений: 19
 Популярность: 18
 Сказал(а) спасибо: 30
Поблагодарили 4 раз(а) в 2 сообщениях
|
Re: Проблема в структуре инвентаря
в том то и дело я ID считываю, но похоже идет с примесью количества этого предмета в ячейке
Добавлено через 3 минуты
короче говоря ид считывается какой-то не такой как должен быть.... Я его считывал так: положил в 1 ячейку порталы затем считал данные из 1 ячейки(нулевая ячейка в массиве) и считались вот эти данные 619644544
Добавлено через 6 минут
причем если я перемещаю порталы из этой же пачки по инвентарю всеравно считывает это же значение... а вот во 2 пачке значения иные. Я подозреваю значение изменяется в зависимости от количества этого предмета в инвентаре
Последний раз редактировалось vladoscom93; 27.09.2012 в 23:47.
Причина: Добавлено сообщение
|
|
|
28.09.2012, 06:45
|
#4
|
|
|
|
Пехотинец
|
 Регистрация: 19.02.2010
 Сообщений: 98
 Популярность: 650
 Сказал(а) спасибо: 23
Поблагодарили 150 раз(а) в 45 сообщениях
|
Re: Проблема в структуре инвентаря
Addr := ReadMem(hProcess, $00A571E0);
Addr := ReadMem(hProcess, Addr + $1C);
Addr := ReadMem(hProcess, Addr + $34);
InvArr := ReadMem(hProcess, Addr + $0D18);
InvMax := ReadMem(hProcess, InvArr + $010);
for i:=0 to InvMax - 1 do
begin
Temp := ReadMem(hProcess, InvArr + $0C);
Temp := ReadMem(hProcess, Temp + i*4);
Temp := ReadMem(hProcess, Temp + OffSets_Item_Id);
if Temp = 2100 then
showmessage(inttostr(i));
end;
в коде не дописал еще и поиск ид предмета.. точнее ты дошел до ячейки но данные с него не чытаеш
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Автор программы PwRuf - Bot и PwRuf - Crafter
|
|
|
Пользователь сказал cпасибо:
|
|
28.09.2012, 10:59
|
#5
|
|
|
|
Разведчик
|
 Регистрация: 23.02.2011
 Сообщений: 19
 Популярность: 18
 Сказал(а) спасибо: 30
Поблагодарили 4 раз(а) в 2 сообщениях
|
Re: Проблема в структуре инвентаря
я балда) не увидел, что в структуре инвентаря еще ниже есть оффсеты) спать хотелось(
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 22:20.
|
 |