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

WalkCall (поправте)

-

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

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

Ответ
 
Опции темы
Старый 24.05.2012, 05:39   #1
 Разведчик
Аватар для krysun
 
krysun на правильном пути
Регистрация: 01.07.2009
Сообщений: 23
Популярность: 83
Сказал(а) спасибо: 33
Поблагодарили 14 раз(а) в 11 сообщениях
Отправить сообщение для krysun с помощью Skype™
 
По умолчанию WalkCall (поправте)

procedure WalkCall(aPParams: PWalkParams);Stdcall;
var
GameAddr, CallAddress1,CallAddress2,CallAddress3: Pointer;
x,y,z: single;
flying: DWORD;
begin
GameAddr := aPParams.GameAddr;
CallAddress1:=aPParams.CallAddress1; // Pointer($00494620);
CallAddress2:=aPParams.CallAddress2; // Pointer($00498290);
CallAddress3:=aPParams.CallAddress3; // Pointer($00494EC0);
x:=aPParams.x;
y:=aPParams.y;
z:=aPParams.z;
flying:=aPParams.flying;
asm
pushad
mov eax, GameAddr //00A57ACC
mov eax, dword ptr [eax]
mov esi, dword ptr [eax+$20]
mov ecx, dword ptr [esi+$FF4]
push 1
call CallAddress1
mov edi, eax
lea eax, dword ptr [esp+$0C]
push eax
push flying
mov ecx, edi
call CallAddress2
mov ecx, dword ptr [esi+$FF4]
push 0
push 1
push edi
push 1
call CallAddress3
mov eax, GameAddr //00A57ACC
mov eax, dword ptr [eax]
mov eax, dword ptr [eax+$20]
mov eax, dword ptr [eax+$FF4]
mov eax, dword ptr [eax+$30]
mov ecx, dword ptr [eax+$4]
mov eax, x
mov dword ptr[ecx+$20], eax
mov eax, z
mov dword ptr[ecx+$24], eax
mov eax, y
mov dword ptr[ecx+$28], eax
popad
end;
end;

Интересует выделение зелёным. Если еще что не так, поправьте плиз.
А вообще инжект Walk'a не поменялся случайно? А то ну никак не робить =(
  Ответить с цитированием
Старый 24.05.2012, 10:14   #2
 Пехотинец
Аватар для pwgamer
 
pwgamer никому не известный тип
Регистрация: 11.11.2010
Сообщений: 67
Популярность: 16
Сказал(а) спасибо: 58
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: WalkCall (поправте)

mov eax, dword ptr [eax+$20] смени на 34
mov eax, dword ptr [eax+$FF4] на 10BC
lea eax, dword ptr [esp+$0C] на 18
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
krysun (24.05.2012), Meg(0) (24.05.2012)
Старый 24.05.2012, 13:23   #3
 Разведчик
Аватар для krysun
 
krysun на правильном пути
Регистрация: 01.07.2009
Сообщений: 23
Популярность: 83
Сказал(а) спасибо: 33
Поблагодарили 14 раз(а) в 11 сообщениях
Отправить сообщение для krysun с помощью Skype™
 
По умолчанию Re: WalkCall (поправте)

Поменял. Работает. Лови спасибку!
Вот мой код:
Код:
  PParams = ^TParams;
  TParams = packed record
    Packet: array [0..100] of byte;
    Param1,Param2,Param3: DWord;
    x,y,z:single;
    Param4: array [1..100] of widechar;
  end;
CONST
  GAME_ADD=$00A57ACC;
Код:
procedure WalkCall(aPParams:PParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
    x,y,z:single;
    flying:DWORD;
begin
CallAddress1:=Pointer($00494620);
CallAddress2:=Pointer($00498290);
CallAddress3:=Pointer($00494EC0);
x:=aPParams^.x;
y:=aPParams^.y;
z:=aPParams^.z;
flying:=aPParams^.Param1;
 asm
  pushad
  mov eax, dword ptr [GAME_ADD]
  mov esi, dword ptr [eax+$34]
  mov ecx, dword ptr [esi+$10BC]
  push 1
  call CallAddress1
  mov edi, eax
  lea eax, dword ptr [esp+$18]
  push eax
  push flying
  mov ecx, edi
  call CallAddress2
  mov ecx, dword ptr [esi+$10BC]
  push 0
  push 1
  push edi
  push 1
  call CallAddress3
  mov eax, dword ptr [GAME_ADD]
  mov eax, dword ptr [eax+$34]
  mov eax, dword ptr [eax+$10BC]
  mov eax, dword ptr [eax+$30]
  mov ecx, dword ptr [eax+$4]
  mov eax, x
  mov dword ptr[ecx+$20], eax
  mov eax, z
  mov dword ptr[ecx+$24], eax
  mov eax, y
  mov dword ptr[ecx+$28], eax
  popad
 end;
end;

procedure Walk(aHandle:dword;x,y,z:single;WalkMode:dword);
var aParams: TParams;
begin
aParams.Param1:=WalkMode;
aParams.x:=x;
aParams.y:=y;
aParams.z:=z;
InjectFunc(aHandle,@WalkCall,@aParams,SizeOf(aParams));
end;
Вызываю так (перс взлетает на высоту +20, должен быть на крыльях).
Может кому и пригодится.
Код:
procedure PristWalkUp;
var x,y,z:single;
  bc,temp:dword;
begin
  readprocessmemory(hProcess1,ptr(game_add),@temp,sizeof(temp),bc);
  readprocessmemory(hProcess1,ptr(temp+OfPersPtr),@temp,sizeof(temp),bc);
  readprocessmemory(hProcess1,ptr(temp+OfPersX),@x,sizeof(x),bc);
  form1.sEdit1.Text:=formatfloat('0.0000',x);
  readprocessmemory(hProcess1,ptr(temp+OfPersY),@y,sizeof(y),bc);
  form1.sEdit2.Text:=formatfloat('0.0000',y);
  readprocessmemory(hProcess1,ptr(temp+OfPersZ),@z,sizeof(z),bc);
  form1.sEdit3.Text:=formatfloat('0.0000',z);
  walk(hProcess1,x,y,z+20,1);
end;
  Ответить с цитированием
Пользователь сказал cпасибо:
Meg(0) (24.05.2012)
Старый 24.05.2012, 17:11   #4
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: WalkCall (поправте)

почему персонаж делает вид,что бежит,но остаётся на своём месте??
Код:
procedure WalkCall(aPParams:PParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
    x,y,z:single;
    flying:DWORD;
begin
CallAddress1:=Pointer($00494620);
CallAddress2:=Pointer($00498290);
CallAddress3:=Pointer($00494EC0);
x:=aPParams^.x;
y:=aPParams^.y;
z:=aPParams^.z;
flying:=aPParams^.Param1;
 asm
  pushad
  mov eax, dword ptr [PW_GAMERUN_ADDR]
  mov esi, dword ptr [eax+$34]
  mov ecx, dword ptr [esi+$10BC]
  push 1
  call CallAddress1
  mov edi, eax
  lea eax, dword ptr [esp+$18]
  push eax
  push flying
  mov ecx, edi
  call CallAddress2
  mov ecx, dword ptr [esi+$10BC]
  push 0
  push 1
  push edi
  push 1
  call CallAddress3
  mov eax, dword ptr [PW_GAMERUN_ADDR]
  mov eax, dword ptr [eax+$34]
  mov eax, dword ptr [eax+$10BC]
  mov eax, dword ptr [eax+$30]
  mov ecx, dword ptr [eax+$4]
  mov eax, x
  mov dword ptr[ecx+$20], eax
  mov eax, z
  mov dword ptr[ecx+$24], eax
  mov eax, y
  mov dword ptr[ecx+$28], eax
  popad
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 FlyPar:Dword;
       X:Single;
       Y:Single;
       Z:Single;
            v:HWND;
       ProcessId:integer;
aparams:TParams;
begin
v:=FindWindow(nil, PChar(edit1.text));
  GetWindowThreadProcessId(v,@ProcessId);
  hProcess:=OpenProcess(PROCESS_ALL_ACCESS,false,processid);
aparams.X:=20;
aParams.Y:=54;
aParams.Z:=36;
InjectFunc(hProcess,@WalkCall,@aParams,SizeOf(aParams));
end;
  Ответить с цитированием
Старый 24.05.2012, 17:28   #5
 Пехотинец
Аватар для pwgamer
 
pwgamer никому не известный тип
Регистрация: 11.11.2010
Сообщений: 67
Популярность: 16
Сказал(а) спасибо: 58
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: WalkCall (поправте)

Потому что, не в полете.
  Ответить с цитированием
Старый 24.05.2012, 17:36   #6
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: WalkCall (поправте)

Цитата:
Сообщение от pwgamerПосмотреть сообщение
Потому что, не в полете.

у меня ж в коде просто передвижение к координатам вписаным,хоть в полёте хоть на земле,он имитирует полёт или бег,но остаётся на своём прежнем месте
  Ответить с цитированием
Старый 24.05.2012, 22:39   #7
 Разведчик
Аватар для vogel
 
vogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личность
Регистрация: 17.09.2009
Сообщений: 46
Популярность: 1187
Сказал(а) спасибо: 8
Поблагодарили 50 раз(а) в 13 сообщениях
 
По умолчанию Re: WalkCall (поправте)

Имитировать полёт нельзя - это не оргазм. Нужно чётко передавать флаг - на крыльях/под водой перс или стоит на земле.
Это важно, потому что в воде/в воздухе движение по Z - свободно, при движении по земле, клиент сам "прибивает" твою Z координату к нужному уровню высоты, соответственно передав своё Z в этм случае движения не будет.

Добавлено через 2 минуты
Цитата:
Сообщение от Meg(0)Посмотреть сообщение
lea eax, dword ptr [esp+$18]

Не удивляйтесь потом, если у вас клиент будет внезапно выбивать...
Почему будет выбивать - спросите у гугла зачем используется регистр esp. =)))

Последний раз редактировалось vogel; 24.05.2012 в 22:41. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 24.05.2012, 23:00   #8
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: WalkCall (поправте)

он как раз ИМИТИРУЕТ бежит просто на месте или летит на месте...
  Ответить с цитированием
Старый 24.05.2012, 23:14   #9
 Разведчик
Аватар для vogel
 
vogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личность
Регистрация: 17.09.2009
Сообщений: 46
Популярность: 1187
Сказал(а) спасибо: 8
Поблагодарили 50 раз(а) в 13 сообщениях
 
По умолчанию Re: WalkCall (поправте)

Ещё раз ВНИМАТЕЛЬНО прочитай мой пост - там написано почему такое происходит.
  Ответить с цитированием
Старый 24.05.2012, 23:28   #10
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: WalkCall (поправте)

я убрал Z всёравно тоже самое происходит
  Ответить с цитированием
Старый 25.05.2012, 02:31   #11
 Разведчик
Аватар для vogel
 
vogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личностьvogel определенно авторитетная личность
Регистрация: 17.09.2009
Сообщений: 46
Популярность: 1187
Сказал(а) спасибо: 8
Поблагодарили 50 раз(а) в 13 сообщениях
 
По умолчанию Re: WalkCall (поправте)

Какое слово в фразе "Нужно чётко передавать флаг - на крыльях/под водой перс или стоит на земле" тебе не понятно ?
  Ответить с цитированием
Старый 25.05.2012, 03:20   #12
 Разведчик
Аватар для krysun
 
krysun на правильном пути
Регистрация: 01.07.2009
Сообщений: 23
Популярность: 83
Сказал(а) спасибо: 33
Поблагодарили 14 раз(а) в 11 сообщениях
Отправить сообщение для krysun с помощью Skype™
 
По умолчанию Re: WalkCall (поправте)

При вызове walk(hProcess1,x,y,z+20,1);
1 - Лететь (если на крыльях)
0 - Плыть, бежать (если стоит на ногах, или в воде)
  Ответить с цитированием
Пользователь сказал cпасибо:
Meg(0) (25.05.2012)
Старый 25.05.2012, 09:54   #13
-= Элитный Мастер =-
 Главнокомандующий
Аватар для Kitsune
 
Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
 
По умолчанию Re: WalkCall (поправте)

Цитата:
Сообщение от vogelПосмотреть сообщение
Какое слово в фразе "Нужно чётко передавать флаг - на крыльях/под водой перс или стоит на земле" тебе не понятно ?

Там все предложение непонятное

P.S. Они ведь читать не умеют, то что хочешь донести надо выделять очень жирным шрифтом и подсвечивать обязательно, и то не факт, что заметят
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
- Быстрое снятие и загрузка скриншотов на хостинг.
  Ответить с цитированием
Старый 25.05.2012, 23:36   #14
 Пехотинец
Аватар для Meg(0)
 
Meg(0) никому не известный тип
Регистрация: 29.05.2010
Сообщений: 58
Популярность: 10
Сказал(а) спасибо: 80
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: WalkCall (поправте)

krysun, я поставил "1" и он у меня и в полёте и на земле работает))
  Ответить с цитированием
Старый 31.05.2012, 02:03   #15
 Старший сержант
Аватар для $maile
 
$maile сломал счётчик популярности :($maile сломал счётчик популярности :($maile сломал счётчик популярности :($maile сломал счётчик популярности :($maile сломал счётчик популярности :($maile сломал счётчик популярности :($maile сломал счётчик популярности :($maile сломал счётчик популярности :($maile сломал счётчик популярности :($maile сломал счётчик популярности :($maile сломал счётчик популярности :(
Регистрация: 07.11.2011
Сообщений: 197
Популярность: 15877
Сказал(а) спасибо: 335
Поблагодарили 330 раз(а) в 151 сообщениях
Отправить сообщение для $maile с помощью ICQ Отправить сообщение для $maile с помощью Skype™
 
По умолчанию Re: WalkCall (поправте)

WalkCall
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нуждаюсь в помощи по инжекту WalkCall Dremalka Общение разработчиков 29 11.01.2012 01:38

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

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

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