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

Структура / Список лута

-

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

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

Ответ
 
Опции темы
Старый 10.04.2011, 16:07   #1
 Разведчик
Аватар для zaparca
 
zaparca на правильном пути
Регистрация: 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
Reaper
 Фельдмаршал
Аватар для Dinmaite
 
Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
Отправить сообщение для Dinmaite с помощью ICQ
 
По умолчанию Re: Структура / Список лута

Конечно ты там не так считаешь, в структуре ведь написано [i*4], а не [ipbuf*4].
Так чего же спрашивается так писать?
Что такое i - есть ответ в теме со структурами.
  Ответить с цитированием
Старый 18.04.2011, 10:50   #3
 Разведчик
Аватар для zaparca
 
zaparca на правильном пути
Регистрация: 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 минут
Цитата:
Сообщение от zaparcaПосмотреть сообщение
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. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура ядра? evrei-la2 Вопросы и ответы, обсуждения 0 18.02.2011 09:36
Структура файлов сервера и клиента ден06 Вопросы и ответы, обсуждения 2 28.01.2011 02:14
Структура ипб 2.3.6 object Общение и обсуждение, архив Lineage 2 0 03.10.2010 21:45
пб 1 на 1 и куча лута Leafeon Rising Force Online 5 26.07.2008 17:53
Edf файл структура Ivan_32 Архив уязвимостей 5 17.05.2008 02:42

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

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

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