Показать сообщение отдельно
Старый 28.11.2009, 15:25   #3
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

вообщето вопрос был по расчету.. а не как словить координаты.

углы кат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 может принимать отрицательное значение если нужно забежать за объект
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 28.11.2009 в 15:29.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился 2 спасибками от: