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

Получение списка мобов вокруг

-

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

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

Ответ
 
Опции темы
Старый 08.01.2015, 19:56   #1
 Разведчик
Аватар для Adrev
 
Adrev никому не известный тип
Регистрация: 27.10.2010
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 1 сообщении
 
По умолчанию Получение списка мобов вокруг

Пытаюсь получить список мобов. делаю применрно так
Код:
DWORD WHP;

WideChar nm[32];
ReadProcessMemory(hProcess, LPCVOID(0xCCEFAC), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+0x20), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
//ReadProcessMemory(hProcess, LPCVOID(WHP+0x14), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));

ReadProcessMemory(hProcess, LPCVOID(WHP+0x1C), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+0x24), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+0x4), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+0x288), &nm, 32, LPDWORD(NULL));
получается поидее должен получить имя ближайшего, но получаю просто иероглифы.
  Ответить с цитированием
Старый 08.01.2015, 21:00   #2
 Разведчик
Аватар для Hilling
 
Hilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личность
Регистрация: 05.09.2010
Сообщений: 32
Популярность: 1182
Сказал(а) спасибо: 38
Поблагодарили 12 раз(а) в 10 сообщениях
 
По умолчанию Re: Получение списка мобов вокруг

Имя моба в кодировке Юникод. Попробуй считать в конце по 0х0 оффсету.

как-то так:

Код:
ReadProcessMemory(hProcess, LPCVOID(WHP+0x288), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+0x0), &nm, 32, LPDWORD(NULL));

Последний раз редактировалось Hilling; 08.01.2015 в 21:03.
  Ответить с цитированием
Старый 08.01.2015, 21:16   #3
 Разведчик
Аватар для Adrev
 
Adrev никому не известный тип
Регистрация: 27.10.2010
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 1 сообщении
 
По умолчанию Re: Получение списка мобов вокруг

Проверил, всё тоже самое

Добавлено через 4 минуты
(не робит)

Последний раз редактировалось Adrev; 08.01.2015 в 21:20. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 08.01.2015, 22:29   #4
 Разведчик
Аватар для Hilling
 
Hilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личностьHilling определенно авторитетная личность
Регистрация: 05.09.2010
Сообщений: 32
Популярность: 1182
Сказал(а) спасибо: 38
Поблагодарили 12 раз(а) в 10 сообщениях
 
По умолчанию Re: Получение списка мобов вокруг

Это весь код по поиску мобов?
Если весь, то конечно ничего не найдешь. Нужно по структуре ближайших мобов пробегать.
Когда-то она выглядела так: BA+0x1C +0x1C +0x20 +0x1C +(i*0x4) +0x4 /i = 0 - 0x300/
Какая актуальная - я хз, так как не играю на руоффе. Пробегаешься в цикле, и ищешь не нулевые структуры, из которых уже и получаешь нужные тебе данные о мобах: имя, координаты, расстояние и т.п.

Вот можешь глянуть: http://zhyk.ru/forum/showthread.php?t=422221

Последний раз редактировалось Hilling; 08.01.2015 в 22:36.
  Ответить с цитированием
Старый 09.01.2015, 12:02   #5
 Разведчик
Аватар для Adrev
 
Adrev никому не известный тип
Регистрация: 27.10.2010
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 1 сообщении
 
По умолчанию Re: Получение списка мобов вокруг

Решил попробывать пока с лутом, в соседней теме было вот такие офсеты
// структура лута BA + D_GA + L_D1 + L_D2 +
#define L_STRUCT 0x1c
#define L_D3 0x04

// параметры лута L_STRUCT+
#define L_X 0x03C
#define L_Z 0x040
#define L_Y 0x044
#define L_TYPE 0x150
#define L_WID 0x110
#define L_DIST 0x15C
Получается что бы получить название ближайшего лута должно быть так:
Цитата:
WideChar nm[32];
ReadProcessMemory(hProcess, LPCVOID(0xCCEFAC), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+0x1C), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+0x1C), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+0x24), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+0x1C), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+1*0x4), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+0x4/1), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+0x168), LPVOID(&WHP), sizeof(DWORD(WHP)), LPDWORD(NULL));
ReadProcessMemory(hProcess, LPCVOID(WHP+0x0), &nm, 32, LPDWORD(NULL));

но всё равно не робит
  Ответить с цитированием
Старый 09.01.2015, 12:20   #6
 Разведчик
Аватар для zasranecqwe1111
 
zasranecqwe1111 никому не известный тип
Регистрация: 13.08.2011
Сообщений: 15
Популярность: 10
Сказал(а) спасибо: 6
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Получение списка мобов вокруг

Цитата:
Сообщение от AdrevПосмотреть сообщение
Решил попробывать пока с лутом, в соседней теме было вот такие офсеты
// структура лута BA + D_GA + L_D1 + L_D2 +
#define L_STRUCT 0x1c
#define L_D3 0x04

// параметры лута L_STRUCT+
#define L_X 0x03C
#define L_Z 0x040
#define L_Y 0x044
#define L_TYPE 0x150
#define L_WID 0x110
#define L_DIST 0x15C
Получается что бы получить название ближайшего лута должно быть так:

но всё равно не робит

Данный список Лута неотсортированный, тоесть ближайший и единственный предмет может быть на 32 позиции в массиве или вообще в конце, и еще даже если список сортированный и ты хочешь получить 1й элемент надо
Код:
LPCVOID(WHP+1*0x4)
Умножать на 0 а не на 1
  Ответить с цитированием
Старый 09.01.2015, 14:03   #7
 Разведчик
Аватар для Adrev
 
Adrev никому не известный тип
Регистрация: 27.10.2010
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 1 сообщении
 
По умолчанию Re: Получение списка мобов вокруг

т.е. получается если пробегу в цикле i=1->300 и вызову
Код:
LPCVOID(WHP+i*0x4)
, то по идее там должно проскачить название лута?

Добавлено через 6 минут
А может кто скинет функцию, кто как получает список лута(мобов), с текущими оффсетами. А то вроде переделал , тот код где на С++ Builder 6 писали бота, но один фиг не робит.

Последний раз редактировалось Adrev; 09.01.2015 в 14:09. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение Списка кланов (C#) phoenixusa Общение разработчиков 9 12.10.2017 13:56
[Помогите!] Получение списка квестов bespaniki Общение разработчиков 4 01.03.2013 01:48
[Помогите!] Проблема с получением списка мобов phoenixusa Общение разработчиков 2 17.05.2012 20:05

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

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

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