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

Получаем список ближайших мобов и NPC [Delphi 7]

-

Разработка ПО для Perfect World

- Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World

Ответ
 
Опции темы
Старый 12.07.2014, 03:05   #1
 Пехотинец
Аватар для sedrik1992
 
sedrik1992 никому не известный тип
Регистрация: 03.02.2013
Сообщений: 60
Популярность: 10
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 12 сообщениях
 
По умолчанию Получаем список ближайших мобов и NPC [Delphi 7]

Доброго времени суток.

Сделал небольшую наработку для получения списка ближайших мобов и NPC,
в приложении исходник на Delphi 7.

Код работающий, но по-моему громоздкий.
Если кто разбирается, подскажите, можно ли как-то код оптимизировать?

[Ссылки могут видеть только зарегистрированные пользователи. ]
Вложения
Тип файла: rar Spisok_mobov.rar (170.0 Кб, 175 просмотров)
________________
World ID | Кубометр
  Ответить с цитированием
Старый 12.07.2014, 17:09   #2
-= Мастер Света =-
 Рыцарь-капитан
Аватар для Ginrey
 
Ginrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака НоррисаGinrey троюродный дядя Чака Норриса
Регистрация: 14.06.2012
Сообщений: 511
Популярность: 7566
Сказал(а) спасибо: 4
Поблагодарили 181 раз(а) в 88 сообщениях
 
По умолчанию Re: Получаем список ближайших мобов и NPC [Delphi 7]

зачем тебе вообще этот участок кода?
Код:
  ReadProcessMemory (hProcess, Pointer(ba), @tpm, 4, Nob);
  ReadProcessMemory (hProcess, Pointer(tpm+$1C), @tpm1, 4, Nob);
  ReadProcessMemory (hProcess, Pointer(tpm1+$30), @tpm2, 4, Nob);
  ReadProcessMemory (hProcess, Pointer(tpm2+$1458), @cnt1, 4, Nob);
  ReadProcessMemory (hProcess, Pointer(cnt1+$3C), @cnt1, 4, Nob);
  tc1:=integer(cnt1); //Target counter
ты же его нигде не применяешь в конечном счете

так же идет двойной повтор SetLength(D,n+1);
то есть у тебя массив станет в 2 раза больше чем есть мобов на карте, не критично но все же.
Убрать излишние Begin_End и будет минимум используемого кода
________________
Хотите как то отблагодарить за помощь?
Не стесняйтесь нажимайте "Спасибо"

Делаю программы на заказ, по всем вопросам в скайп: Ginrey2
  Ответить с цитированием
Старый 12.07.2014, 17:32   #3
 Разведчик
Аватар для csx: _or_75
 
csx: _or_75 у всех на слухуcsx: _or_75 у всех на слухуcsx: _or_75 у всех на слухуcsx: _or_75 у всех на слухуcsx: _or_75 у всех на слухуcsx: _or_75 у всех на слухуcsx: _or_75 у всех на слухуcsx: _or_75 у всех на слухуcsx: _or_75 у всех на слухуcsx: _or_75 у всех на слуху
Регистрация: 26.10.2012
Сообщений: 14
Популярность: 1354
Сказал(а) спасибо: 1
Поблагодарили 5 раз(а) в 2 сообщениях
 
По умолчанию Re: Получаем список ближайших мобов и NPC [Delphi 7]

Вообще количество мобов вокруг можно было сделать проще чере GameAddress

GA + 1C + 20 + 5C

[Ссылки могут видеть только зарегистрированные пользователи. ]

Но ты делаешь через BaseAddress

BA + 1C + 1C+ 20 + 14

[Ссылки могут видеть только зарегистрированные пользователи. ]

Итог:

[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 12.07.2014, 18:51   #4
 Старший сержант
Аватар для Kyroki
 
Kyroki излучает ауруKyroki излучает ауруKyroki излучает ауруKyroki излучает ауруKyroki излучает ауруKyroki излучает ауру
Регистрация: 20.10.2010
Сообщений: 170
Популярность: 684
Сказал(а) спасибо: 146
Поблагодарили 74 раз(а) в 54 сообщениях
 
По умолчанию Re: Получаем список ближайших мобов и NPC [Delphi 7]

Я мобов(и нпс) нахожу так
Код:
for i:=0 to 768 do begin
MobWID:=0;
ReadProcessMemory (hProcess, Pointer(GameAdress), @Mob, 4, NoB);
ReadProcessMemory (hProcess, Pointer(Mob+$1C), @Mob, 4, NoB);
ReadProcessMemory (hProcess, Pointer(Mob+$20), @Mob, 4, NoB);
ReadProcessMemory (hProcess, Pointer(Mob+$1C), @Mob, 4, NoB);
ReadProcessMemory (hProcess, Pointer(Mob+i*$4), @Mob, 4, NoB);
ReadProcessMemory (hProcess, Pointer(Mob+$4), @Mob, 4, NoB);
ReadProcessMemory (hProcess, Pointer(Mob+$120), @MobWId, 4, NoB);
if Integer(MobWId) <> 0 then begin
ReadProcessMemory (hProcess, Pointer(Mob+$B4), @MobType, 4, NoB);
if Integer(MobType) = 6 then begin
ReadProcessMemory (hProcess, Pointer(Mob+$29C), @MobDis, 4, NoB);
ReadProcessMemory (hProcess, Pointer(Mob+$124), @MobId, 4, NoB);
ReadProcessMemory (hProcess, Pointer(Mob+$128), @MobLVL, 4, NoB);
ReadProcessMemory (hProcess, Pointer(Mob+$278), @MobN, 4, NoB);
ReadProcessMemory (hProcess, Pointer(MobN+$0), @MobName, 255, NoB);
ReadProcessMemory (hProcess, Pointer(Mob+$3C), @MobLocX, 4, NoB);
ReadProcessMemory (hProcess, Pointer(Mob+$44), @MobLocY, 4, NoB);
ReadProcessMemory (hProcess, Pointer(Mob+$40), @MobLocZ, 4, NoB);
end;
end;
end;
________________
Вихри говорят "Х-ш-ш-ш"
[6 лет здесь]
  Ответить с цитированием
Старый 13.07.2014, 08:08   #5
 Пехотинец
Аватар для sedrik1992
 
sedrik1992 никому не известный тип
Регистрация: 03.02.2013
Сообщений: 60
Популярность: 10
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 12 сообщениях
 
По умолчанию Re: Получаем список ближайших мобов и NPC [Delphi 7]

Цитата:
Сообщение от GinreyПосмотреть сообщение
зачем тебе вообще этот участок кода?
Код:
  ReadProcessMemory (hProcess, Pointer(ba), @tpm, 4, Nob);
  ReadProcessMemory (hProcess, Pointer(tpm+$1C), @tpm1, 4, Nob);
  ReadProcessMemory (hProcess, Pointer(tpm1+$30), @tpm2, 4, Nob);
  ReadProcessMemory (hProcess, Pointer(tpm2+$1458), @cnt1, 4, Nob);
  ReadProcessMemory (hProcess, Pointer(cnt1+$3C), @cnt1, 4, Nob);
  tc1:=integer(cnt1); //Target counter
ты же его нигде не применяешь в конечном счете

так же идет двойной повтор SetLength(D,n+1);
то есть у тебя массив станет в 2 раза больше чем есть мобов на карте, не критично но все же.
Убрать излишние Begin_End и будет минимум используемого кода


Спасибо за ответ. Да,лишнее не убрал. Я изначально мобов заносил в массив, одновременно с ID и LVL, а затем циклом в листбокс выводил. Честно говоря пытался сделать 3 массива, для ID, Имени и LVL, но не додумал, как это проще реализовать...
________________
World ID | Кубометр
  Ответить с цитированием
Ответ

Метки
получение списка мобов


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить список игроков AHTOLLlKA Общение разработчиков 6 13.02.2015 22:29
как получить список имен? unit08 Вопросы и ответы, обсуждения 5 25.11.2012 18:08
[Услуги] Список моих услуг. PeReDoZaGeRoInA Point Blank 1 28.06.2011 15:17
список ГМ комманд (ид вещей и мобов) для 2.2.3 в формате .SQL Death With a Plait Rising Force Online 3 26.10.2010 13:03

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

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

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