вообщето вопрос был по расчету.. а не как словить координаты.
углы катeтов.. гм...достаточно "процентального" коофициента.
кусок с моего бота:
delphi Код:
TL2SpawnObject = class(TL2Object)
x, y, z : real;
Procedure MoveTo(dist:real);
Function DistanceTo(dtox,dtoy,dtoz:integer):real;overload;
end;
function TL2SpawnObject.DistanceTo(dtox, dtoy, dtoz: integer): real;
begin
result := sqrt(sqr(dtox-x)+sqr(dtoy-y));
result := sqrt(sqr(result)+sqr(dtoz-z));
if result = 0 then result := 0.1; //anti div 0
end;
procedure TL2SpawnObject.MoveTo(dist: real);
var
coof : real;
runx, runy, runz : integer;
begin
coof := dist/DistanceTo(SelfData.x, SelfData.y, SelfData.z);
runx := round(X + coof*(SelfData.x - X));
runy := round(Y + coof*(SelfData.y - Y));
runz := round(z + coof*(SelfData.z - Z));
CallMoveBackwardToLocation(runx, runy, runz);
end;
где SelfData.x/y/z собственные координаты
L2SpawnObject.X/Y/Z координаты объекта к которому производиться движение
dist - требуемая дистанция до объекта. dist может принимать отрицательное значение если нужно забежать за объект