krukovis, тоесть, эти офсеты нужно заменить на офсеты из "Земли духов"?
sumikot же пояснил:
Цитата:
Сообщение от sumikot
Если так, используй адреса для инжектов от Extreme Phoenix, а офсеты перса - с оф версии.
________________
-------------------------------------------- PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
-------------------------------------------- [for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
-------------------------------------------- InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
Возможно нужен правильный оффсет SkillCall(его я не нашел), потому что при попытке бота заюзать скил по названию или отправить пета в атаку - сразу вылетает клиент. Если настроить бота чтобы он нажимал кнопки при использовании скила( допустим на F1), то бот какое-то время работает. Вообще с теми оффсетами что я дал выше, бот видит скилы перса, ресы и мобов вокруг, координаты и НПС вообщем все что и должен видеть... но часто вылетает клиент с ошибкой, через некоторое время.
часто вылетает клиент с ошибкой, через некоторое время.
Память выделяется 1 раз? Или выделяется и освобождается постоянно? Если постоянно, после выделения памяти поставьте к примеру:
if (address==0) ShowMesage("Память не выделилась");
и подождите вылета. Что-то мне подсказывает, что вы обнаружите это сообщение, симптомы знакомые.
Память выделяется 1 раз? Или выделяется и освобождается постоянно? Если постоянно, после выделения памяти поставьте к примеру:
if (address==0) ShowMesage("Память не выделилась");
и подождите вылета. Что-то мне подсказывает, что вы обнаружите это сообщение, симптомы знакомые.
________________
У автора запроса нет исходников бота. Он просто пытается наладить работу бота для другого сервера исправлением смещений и адресов в настройках.
________________
-------------------------------------------- PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
-------------------------------------------- [for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
-------------------------------------------- InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
на 1.4.5 такой есть? можно просто строку со смещениями если не трудно типа как на 1.4.4
BA +0x1C +0x34 +0x38C +0x88 +(i*0x4) /i = 0 - Count/
Судя по остальным структурам, то сейчас все должно быть тут:
BA +0x1C +0x1C +0x20 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x20 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/
BA +0x1C +0x1C +0x20 +0x88 +(i*0x4) /i = 0 - Count/
Проверь
________________
-------------------------------------------- PerfectAutoLogin v 7.4 - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
-------------------------------------------- [for 1.4.6] PW Patcher 12.0 - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
-------------------------------------------- InGamePatcher 1.2 - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
Судя по остальным структурам, то сейчас все должно быть тут:
BA +0x1C +0x1C +0x20 +0x14 Count, dword /Количество/
BA +0x1C +0x1C +0x20 +0x18 +(i*0x4) +0x4 /i = 0 - 0x300/
BA +0x1C +0x1C +0x20 +0x88 +(i*0x4) /i = 0 - Count/
Проверь
проверил, не получилось не по одной линейке вывести хп мп и лвл человека в таргете. может я что то не так делаю просто.Вот код.
Код:
var
hProcess,PID,MaxHP,MobWId,TargetWID,MaxMp,Mp,lvl,hp,buf:dword;
i,j:integer;
BytesCount: SIZE_T;
WndHndl:THandle;
begin
WndHndl:=findwindow(nil,'Perfect World');
GetWindowThreadProcessId(WndHndl, @PID);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS, False, PID);
ReadProcessMemory(hProcess, ptr(GAMERUN_ADDR), @TargetWID, sizeof(TargetWID), BytesCount);
ReadProcessMemory(hProcess, ptr(TargetWID+$34), @TargetWID, sizeof(TargetWID), BytesCount);
ReadProcessMemory(hProcess, ptr(TargetWID+$BD4), @TargetWID, sizeof(TargetWID), BytesCount);
for J:=0 to 5 do
begin
for i:=0 to $300 do
begin
ReadProcessMemory(hProcess,ptr(base_addr),@buf,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+$1C),@buf,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+$1C),@buf,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+$20),@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+$480), @MobWId, sizeof(MobWId), BytesCount);
ReadProcessMemory(hProcess,ptr(buf+offHP),@hp,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+offMaxHP),@maxhp,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+offMP),@mp,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+offMaxMP),@maxmp,4,BytesCount);
ReadProcessMemory(hProcess,ptr(buf+offLvL),@lvl,4,BytesCount);
if MobWId = TargetWid then break;
end;
if MobWId=TargetWid then Break;
end;
Label1.Caption:='Здоровье '+IntToStr(hp)+'/'+IntToStr(Maxhp);
Label2.Caption:='Мана '+IntToStr(mp)+'/'+IntToStr(Maxmp);
Label3.Caption:='Уровень '+IntToStr(lvl);
closehandle(hProcess);
Добавлено через 1 час 58 минут N00bSa1b0t, так же не получилось. видимо я что то не так делаю или смещения не те
Последний раз редактировалось Ginrey; 06.08.2012 в 18:32.
Причина: Добавлено сообщение
Хоть и на VC++ сам пишу, но посмотрел у Ginrey код на Дельфи - вроде все логично, просто видимо не те смещения или какие-то данные об окружающих игроках не посылаются сервером специально.
Сам вот такую байду использую когда один в локации - для определения появился кто или нет..
это работало в Гинезисе и работает в Духах, но вот в чем особенность в версии Земли Духов - теперь когда никого нет в локации и с моба выпадает Лут - он считается как вошедшие игроки .. ???
Последний раз редактировалось Perimetr; 07.08.2012 в 00:06.
+070C PartyMember, array /Структуры членов группы/
Там нулевой элемент всегда ПЛ, с 1 по 5 (ну или по 9 теперь) - остальные члены. Я у себя так проверяю.
при смене пла первым все равно
остается на первом месте бывший пл, массив заполняется при создании пати, перемещение пла по пати не меняет местами значения
А еще, пытался кто найти флаг блокировки паролем инвертаря? сколько пытался найти, не получается(
Последний раз редактировалось tianddu; 07.08.2012 в 11:20.