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

Инжект движения виснет

-

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

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

Ответ
 
Опции темы
Старый 12.11.2018, 23:52   #1
 Разведчик
Аватар для den57
 
den57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауру
Регистрация: 24.11.2010
Сообщений: 12
Популярность: 580
Сказал(а) спасибо: 1
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Инжект движения виснет

Доброго времени суток, пытаюсь отправить перса по координатам, но виснет игра и написанная прога, второй день не могу разобраться что и как.

Тут КОД:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

const
  GameAddr = $00E44C4C;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  PParams = ^TParams;

  TParams = packed record
    Packet: array[0..100] of byte;
    Param1, Param2, Param3, Param4: dword;
    Walk1Adress, Walk2Adress, Walk3adress, ActionArray, gameadress: dword;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure InjectFunc(ProcessID: Cardinal; Func, aParams: Pointer; aParamsSize: DWord);
var
  hThread: THandle;
  lpNumberOfBytes: DWord;
  ThreadAddr, ParamAddr: Pointer;
begin
  if ProcessID <> 0 then
  begin
    try
      ThreadAddr := VirtualAllocEx(ProcessID, nil, 256, MEM_COMMIT, PAGE_READWRITE);
      WriteProcessMemory(ProcessID, ThreadAddr, Func, 256, lpNumberOfBytes);

      ParamAddr := VirtualAllocEx(ProcessID, nil, aParamsSize, MEM_COMMIT, PAGE_READWRITE);
      WriteProcessMemory(ProcessID, ParamAddr, aParams, aParamsSize, lpNumberOfBytes);

      hThread := CreateRemoteThread(ProcessID, nil, 0, ThreadAddr, ParamAddr, 0, lpNumberOfBytes);

      WaitForSingleObject(hThread, INFINITE);

      CloseHandle(hThread);
      VirtualFreeEx(ProcessID, ParamAddr, 0, MEM_RELEASE);
      VirtualFreeEx(ProcessID, ThreadAddr, 0, MEM_RELEASE);
    except
    end;
  end
end;

procedure WalkCall(aPParams: PParams); stdcall;
var
  CallAddress1, CallAddress2, CallAddress3: Pointer;
  x, y, z: Single;
  Flying, GA, AA: DWORD;
begin
  try
    CallAddress1 := Pointer(aPParams^.Walk1Adress);
    CallAddress2 := Pointer(aPParams^.Walk2Adress);
    CallAddress3 := Pointer(aPParams^.Walk3Adress);

    x := aPParams^.param2;
    y := aPParams^.param3;
    z := aPParams^.param4;

    Flying := aPParams^.Param1;
    GA := aPParams^.GameAdress;
    AA := aPParams^.ActionArray;
    asm
        pushad
        mov     eax, GA
        mov     eax, dword ptr[eax]
        mov     esi, dword ptr[eax + $34]
        mov     ecx, AA
        mov     ecx, dword ptr[esi + ecx]
        push    1
        call    CallAddress1
        mov     edi, eax
        lea     eax, dword ptr[esp + $0C]
        push    eax
        push    Flying
        mov     ecx, edi
        call    CallAddress2
        mov     ecx, AA
        mov     ecx, dword ptr[esi + ecx]
        push    0
        push    1
        push    edi
        push    1
        call    CallAddress3
        mov     eax, GA
        mov     eax, dword ptr[eax]
        mov     eax, dword ptr[eax + $34]
        mov     ecx, AA
        mov     eax, dword ptr[eax + ecx]
        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;
  except
  end;
end;

procedure Walk(x, y, z: single; hprocess: DWORD);
var
  aParams: TParams;
  wm: integer;
  cX, cY, cZ: single;
  rw: cardinal;
begin
  try
    cX := x * 10 - 4000;
    cY := y * 10 - 5500;
    cZ := z * 10;

    readprocessmemory(hprocess, ptr(GameAddr), @wm, sizeof(wm), rw);
    readprocessmemory(hprocess, ptr(wm + $34), @wm, sizeof(wm), rw);
    readprocessmemory(hprocess, ptr(wm + $708), @wm, 4, rw);      // 0-пешком 1-полет 3-прыжок

    if wm = 0 then
      aParams.Param1 := 0
    else
      aParams.Param1 := 1;

    aParams.Param2 := 0;
    aParams.Param3 := 0;
    aParams.Param4 := 21;
    aParams.Walk1Adress := $004C7AB0;
    aParams.Walk2Adress := $004CDFB0;
    aParams.Walk3Adress := $004C80C0;
    aParams.GameAdress := GameAddr;
    aParams.ActionArray := $00001500;  //Не уверен что правильный адресс
    InjectFunc(hprocess, @WalkCall, @aParams, SizeOf(aParams));
  except
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ProcessID, hprocess, WndHndl, perscoord, nob: DWORD;
  PersX, PersY, PersZ: Integer;
begin
  WndHndl := findwindow('ElementClient Window', nil);
  GetWindowThreadProcessId(WndHndl, @ProcessID);
  hprocess := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessID);

  Walk(0, 0, 60, hprocess); //В// каком виде должны бить координаты?
end;

end.
При нажатии на кнопку все повисает... не вылетает, а именно виснет.

Прицепил Олли к ПВ и снова запустил, вот что показывает [Ссылки могут видеть только зарегистрированные пользователи. ]
Адреса брал отсюда [Ссылки могут видеть только зарегистрированные пользователи. ]

Подскажи пожалуйста.
Заранее благодарю.

Не обращайте внимания на неиспользуемые куски.

РЕШЕНИЕ

Был не тот WalkCall (не тот asm код) - ниже рабочий по 1,5,5

Код:
procedure WalkCall(aPParams: PParams); stdcall;
var
  CallAddress1, CallAddress2, CallAddress3: Pointer;
  x, y, z: single;
  flying: DWORD;
begin
  CallAddress1 := Pointer($004C7AB0);
  CallAddress2 := Pointer($004CDFB0);
  CallAddress3 := Pointer($004C80C0);

  x := aPParams^.x;
  y := aPParams^.y;
  z := aPParams^.z;

  flying := aPParams^.Param1;
  asm
        pushad
        mov     eax, BaseAddr
        mov     eax, dword ptr[eax]
        mov     eax, dword ptr[eax + $1C]
        mov     edi, dword ptr[eax + $34]    //должно быть 34
        mov     ecx, dword ptr[edi + $1500]  //должно быть 16E4
        push    1
        call    CallAddress1
        lea     edx, dword ptr[esp + $20]   //должно быть 20
        mov     esi, eax
        push    edx
        push    flying
        mov     ecx, esi
        call    CallAddress2
        mov     ecx, dword ptr[edi + $1500]  //должно быть 16E4
        mov     eax, x
        mov     dword ptr[esi + $20], eax
        mov     eax, z
        mov     dword ptr[esi + $24], eax
        mov     eax, y
        mov     dword ptr[esi + $28], eax
        push    0
        push    esi
        push    1
        call    CallAddress3
        popad
  end;
end;

Последний раз редактировалось den57; 15.11.2018 в 00:42.
  Ответить с цитированием
Старый 13.11.2018, 00:43   #2
 Разведчик
Аватар для Kavaii^_^
 
Kavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краях
Регистрация: 07.01.2011
Сообщений: 38
Популярность: -517
Сказал(а) спасибо: 50
Поблагодарили 7 раз(а) в 7 сообщениях
Отправить сообщение для Kavaii^_^ с помощью Skype™
 
По умолчанию Re: Инжект движения виснет

Код:
procedure WalkCall(aPParams:PParams);Stdcall;
var CallAddress1,CallAddress2,CallAddress3:Pointer;
    x,y,z:single;
    flying:DWORD;
begin
CallAddress1:=Pointer($0048BBE0);
CallAddress2:=Pointer($0048FFB0);
CallAddress3:=Pointer($0048C090);
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+$2C]
  mov ecx, dword ptr [esi+$1370]
  push 1
  call CallAddress1
  mov edi, eax
  lea eax, dword ptr [esp+$1C]
  push eax
  push flying
  mov ecx, edi
  call CallAddress2
  mov ecx, dword ptr [esi+$1370]
  push 0
  push 1
  push edi
  push 1
  call CallAddress3
  mov eax, dword ptr [PW_GAMERUN_ADDR]
  mov eax, dword ptr [eax+$2C]
  mov eax, dword ptr [eax+$1370]
  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(x,y,z:single);
var aParams: TParams;
    BaseWalkMode, WalkMode : DWord;
begin
  BaseWalkMode:= getDWORD (PW_GAMERUN_ADDR);
  BaseWalkMode:= getDWORD (BaseWalkMode+$2C);
  WalkMode:= getDWORD (BaseWalkMode+$6C4);
if WalkMode = 0 then aParams.Param1:=0 else aParams.Param1:=1;
  aParams.x:=x;
  aParams.y:=y;
  aParams.z:=z;
  InjectFunc(hProcess,@WalkCall,@aParams,SizeOf(aParams));
end;
Код:
    PW_BASE_ADDRESS = $00C7ABCC;
    PW_GAMERUN_ADDR = $00C7B36C;
Вот мой инжект движения (взята из темы в шапке), возможно у тебя не правильные офсеты

Последний раз редактировалось Kavaii^_^; 13.11.2018 в 00:46.
  Ответить с цитированием
Старый 13.11.2018, 19:34   #3
 Разведчик
Аватар для den57
 
den57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауру
Регистрация: 24.11.2010
Сообщений: 12
Популярность: 580
Сказал(а) спасибо: 1
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Инжект движения виснет

Мне кажется, что я передаю координаты неправильно...
Объявляю так
Код:
  PParams = ^TParams;

  TParams = packed record
    Param1: dword;
    Param2, Param3, Param4: DWORD; //Если тут Single - то крашит, если DWORD делает пару шагов и зависает 
    Walk1Adress, Walk2Adress, Walk3adress, ActionArray, gameadress: dword;
  end;
Офсеты проверил, все правильно.

Последний раз редактировалось den57; 13.11.2018 в 19:39.
  Ответить с цитированием
Старый 13.11.2018, 19:51   #4
 Разведчик
Аватар для Kavaii^_^
 
Kavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краях
Регистрация: 07.01.2011
Сообщений: 38
Популярность: -517
Сказал(а) спасибо: 50
Поблагодарили 7 раз(а) в 7 сообщениях
Отправить сообщение для Kavaii^_^ с помощью Skype™
 
По умолчанию Re: Инжект движения виснет

А какие координаты ты отправляешь?

В игре открой консоль, напиши d_showpos - это те координаты которые передавать надо (в клиенте они отображаются как X, Z, Y), не те что у карты указаны

Последний раз редактировалось Kavaii^_^; 13.11.2018 в 19:53.
  Ответить с цитированием
Старый 13.11.2018, 20:37   #5
 Разведчик
Аватар для den57
 
den57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауру
Регистрация: 24.11.2010
Сообщений: 12
Популярность: 580
Сказал(а) спасибо: 1
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Инжект движения виснет

Цитата:
Сообщение от Kavaii^_^Посмотреть сообщение
А какие координаты ты отправляешь?

В игре открой консоль, напиши d_showpos - это те координаты которые передавать надо (в клиенте они отображаются как X, Z, Y), не те что у карты указаны

Спасибо за помощь, начал он бежать, но после того, как параметры типа integer сделал.
Код:
Param2, Param3, Param4: integer;
  Ответить с цитированием
Старый 13.11.2018, 21:52   #6
 Разведчик
Аватар для Kavaii^_^
 
Kavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краях
Регистрация: 07.01.2011
Сообщений: 38
Популярность: -517
Сказал(а) спасибо: 50
Поблагодарили 7 раз(а) в 7 сообщениях
Отправить сообщение для Kavaii^_^ с помощью Skype™
 
По умолчанию Re: Инжект движения виснет

Но они не интежер же) Если когда-то захочешь пройти, к примеру, по координатам моба в таргете, у тебя будет ошибка, потому что координаты = float (single)

Попробуй
Код:
    x := aPParams^.param2;
    y := aPParams^.param3;
    z := aPParams^.param4;
поменять на
Код:
    x := aPParams^.x;
    y := aPParams^.y;
    z := aPParams^.z;
Помню такая же проблема была, сравни инжект который я юзаю и свой, в твоих много лишнего
  Ответить с цитированием
Старый 13.11.2018, 22:02   #7
 Разведчик
Аватар для НУ-ПОГОДИ
 
НУ-ПОГОДИ никому не известный тип
Регистрация: 08.09.2017
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Инжект движения виснет

оффу снифаешь?
  Ответить с цитированием
Старый 14.11.2018, 00:00   #8
 Разведчик
Аватар для den57
 
den57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауру
Регистрация: 24.11.2010
Сообщений: 12
Популярность: 580
Сказал(а) спасибо: 1
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Инжект движения виснет

Не, фришку.

Сделал по твоему коду, начинает бежать и крашит клиент. Офсеты правильные...
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  PParams = ^TParams;

  TParams = packed record
    Packet: array[0..100] of byte;
    Param1: DWord;
    x, y, z: Single;
  end;

const
  PW_GAMERUN_ADDR = $00E44C4C;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure InjectFunc(ProcessID: Cardinal; Func, aParams: Pointer; aParamsSize: DWord);
var
  hThread: THandle;
  lpNumberOfBytes: DWord;
  ThreadAddr, ParamAddr: Pointer;
begin
  if ProcessID <> 0 then
  begin
    try
      ThreadAddr := VirtualAllocEx(ProcessID, nil, 256, MEM_COMMIT, PAGE_READWRITE);
      WriteProcessMemory(ProcessID, ThreadAddr, Func, 256, lpNumberOfBytes);

      ParamAddr := VirtualAllocEx(ProcessID, nil, aParamsSize, MEM_COMMIT, PAGE_READWRITE);
      WriteProcessMemory(ProcessID, ParamAddr, aParams, aParamsSize, lpNumberOfBytes);

      hThread := CreateRemoteThread(ProcessID, nil, 0, ThreadAddr, ParamAddr, 0, lpNumberOfBytes);

      WaitForSingleObject(hThread, INFINITE);

      CloseHandle(hThread);
      VirtualFreeEx(ProcessID, ParamAddr, 0, MEM_RELEASE);
      VirtualFreeEx(ProcessID, ThreadAddr, 0, MEM_RELEASE);
    except
    end;
  end
end;

procedure WalkCall(aPParams: PParams); stdcall;
var
  CallAddress1, CallAddress2, CallAddress3: Pointer;
  x, y, z: single;
  flying: DWORD;
begin
  CallAddress1 := Pointer($004C7AB0);
  CallAddress2 := Pointer($004CDFB0);
  CallAddress3 := Pointer($004C80C0);
  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 + $1500]
        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 + $1500]
        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 + $1500]
        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(x, y, z: single; hprocess, WalkMode: DWORD);
var
  aParams: TParams;
begin
  aParams.Param1 := WalkMode;

  aParams.x := (x * 10) - 4000;
  aParams.y := (y * 10) - 5500;
  aParams.z := z * 10;
  InjectFunc(hprocess, @WalkCall, @aParams, SizeOf(aParams));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ProcessID, WndHndl, hprocess: DWORD;
  wm: integer;
  rw: cardinal;
  WalkMode: DWORD;
begin
  WndHndl := findwindow('ElementClient Window', nil);
  GetWindowThreadProcessId(WndHndl, @ProcessID);
  hprocess := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessID);

  readprocessmemory(hprocess, ptr(PW_GAMERUN_ADDR), @WalkMode, sizeof(WalkMode), rw);
  readprocessmemory(hprocess, ptr(WalkMode + $34), @WalkMode, sizeof(WalkMode), rw);
  readprocessmemory(hprocess, ptr(WalkMode + $708), @WalkMode, 4, rw);      // 0-пешком 1-полет 3-прыжок

  Walk(StrToFloat(Edit1.Text), StrToFloat(Edit2.Text), StrToFloat(Edit3.Text), hprocess, WalkMode); //В// каком виде должны бить координаты?
end;

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

Последний раз редактировалось den57; 14.11.2018 в 00:14.
  Ответить с цитированием
Старый 14.11.2018, 00:42   #9
 Разведчик
Аватар для Kavaii^_^
 
Kavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краях
Регистрация: 07.01.2011
Сообщений: 38
Популярность: -517
Сказал(а) спасибо: 50
Поблагодарили 7 раз(а) в 7 сообщениях
Отправить сообщение для Kavaii^_^ с помощью Skype™
 
По умолчанию Re: Инжект движения виснет

Код:
  aParams.x := (x * 10) - 4000;
  aParams.y := (y * 10) - 5500;
  aParams.z := z * 10;
а можно узнать зачем тебе это? эти формулы нужно чтобы из нормальных координат (с которыми клиент работает) перевести в читаемые (те что клиент отображает). То есть эти формулы нужны только когда ты хочешь отобразить координаты для юзера (чтобы он сравнил с теми что видит в игре возле карты)

и зачем hprocess, WalkMode: DWORD в процедуре? они там уже вроде как есть, если ты хочешь чтобы с разными окнами работало, попробуй пока их убрать, разобраться как с одним окном работать, а потом уже меняй под себя)

Нашел в исходниках ПВРУФ полезную штуку, подключение к окну, выбираешь из листбокса ник, он подключает к окну:

Код:
procedure Connect;
begin
  GetWindowThreadProcessID (WID, @PID);
  hProcess:= OpenProcess (PROCESS_ALL_ACCESS, False, PID);
  Player:= GetPlayerInfo;
end;
procedure Disconnect;
begin
  CloseHandle (hProcess);
  hProcess:= 0;
end;
function connected: boolean;
begin
  Result:= hProcess <> 0;
end;
procedure Find_WID;
var
    Local_WID : HWND;
    buf : array [0..255] of Char;
    i: Integer;
    ElementClassName: String;
begin
  i:= 0;
  ElementClassName:= 'ElementClient Window';
  MainFormNirka.cmb_Windows.Clear;
  FillChar(Found_WID, SizeOf(Found_WID), #0);
  Local_WID:= FindWindow (0,0);
  while (Local_WID <> 0) do
  begin
    GetClassName (Local_WID, @buf, 100);
    if buf=ElementClassName then
    begin
      Found_WID[i]:= Local_WID;
      WID:= Local_WID;
      Connect;
      MainFormNirka.cmb_Windows.Items.Add(Player.Name);
      inc(i);
      Disconnect;
    end;
      Application.ProcessMessages;
      Local_WID:=GetNextWindow(Local_WID,GW_HWNDNEXT);
  end;
end;
Код:
Found_WID: array [0..10] of THandle;
    WID : THandle;
    PID : DWord;
Это кидаешь на форму (2 ивента у листбокса)

Код:
procedure TMainFormNirka.cmb_WindowsDropDown(Sender: TObject);
begin
  find_wid;
end;
procedure TMainFormNirka.cmb_WindowsSelect(Sender: TObject);
begin
  WID:= Found_WID [cmb_Windows.ItemIndex];
  SetWindowText (WID, PChar (cmb_Windows.Text));
  connect;
end;

Последний раз редактировалось Kavaii^_^; 14.11.2018 в 00:57.
  Ответить с цитированием
Старый 14.11.2018, 00:53   #10
 Разведчик
Аватар для den57
 
den57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауру
Регистрация: 24.11.2010
Сообщений: 12
Популярность: 580
Сказал(а) спасибо: 1
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Инжект движения виснет

У меня в Edit1, 2, 3 заданы координаты в клиентском виде, этими формулами я их привожу к серверному виду.
Так тоже писал
Код:
  aParams.x := 0;
  aParams.y := 0;
  aParams.z := 60;
hprocess, WalkMode я передаю из процедуры кнопки, в процедуру walk

Вопрос НЕ актуален!!! Ответ в первом посте!

Последний раз редактировалось den57; 15.11.2018 в 10:15.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Не работает инжект движения в полете Smerch Общение разработчиков 2 20.03.2017 13:11
[Помогите!] инжект движения на С++ bober757 Общение разработчиков 0 19.10.2016 11:53
Не работает инжект движения Arvol Общение разработчиков 38 07.08.2015 19:25
Vb.net инжект движения bestbeer Общение разработчиков 0 10.01.2014 09:08
[Обсуждение] Всё виснет! .Master. Общение и обсуждение 26 05.11.2012 20:06

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

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

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