procedure AutoPathCall(aPParams:PParams); stdcall; var addr:pointer; x,y:dword; begin x:=aPParams^.param1; y:=aPParams^.Param2; z:=aPParams^.Param3; addr := Pointer($00438770); asm pushad MOV EDI,y MOV ESI,x MOV EAX,DWORD PTR DS:[$9C0E6C] // base_addr PUSH 0 // ; /Arg7 = 00000000 PUSH EDI // ; |Arg6 MOV ECX,DWORD PTR DS:[EAX+$1C] // ; | PUSH ESI // ; |Arg5 PUSH 0 // ; |Arg4 = 00000000 PUSH 0 // ; |Arg3 = 00000000 PUSH 0 // ; |Arg2 = 00000000 PUSH $14A // ; |Arg1 = 0000014A call addr // ; \elementc.00438770 MOV EDX,DWORD PTR DS:[$9C0E6C] //; elementc.009C14F8 XOR EAX,EAX MOV AL,0 PUSH 0 //; /Arg7 = 00000000 MOV ECX,DWORD PTR DS:[EDX+$1C] //; | MOV EDX,z //; | PUSH EAX //; |Arg6 = 00000000 PUSH EDX //; |Arg5 = Высота полета PUSH 1 //; |Arg4 = 00000001 PUSH 0 //; |Arg3 = 00000000 PUSH 0 //; |Arg2 = 00000000 PUSH $14A //; |Arg1 = 0000014A CALL addr //; \elementc.00438770 popad end; end; procedure AutoPath(realcoord_X,realcoord_Y,realcoord_Z:single); begin aParams.Param1:=round(realcoord_X); aParams.Param2:=round(realcoord_Y); aParams.Param3:=round(realcoord_Z); // высота полета InjectFunc(aHandle,@AutoPathCall,@aParams,SizeOf(aParams)); end;