Тема: SKYbot-dll бот
Показать сообщение отдельно
Старый 07.04.2008, 18:50   #25
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: SKYbot-dll бот

Skymanrus!
Первый вопрос. Новая версия скоро будет? :)
Второй. Расскажи для чего арк тангенсы нужны? Может подскажешь, что почитать на эту тему?
Код:
function ArcTan2(y : Extended; x : Extended) : Extended;
begin
  if (x=0) then x:=0.01;
  Result:=1;
  Try
    begin
      if (((x>=0) and (y>0)) or ((x>=0) and (y<=0))) then Result:=ArcTan(y/x)*180/pi;
      if ((x<0) and (y>=0)) then Result:=(ArcTan(y/x)*180/pi)+180;
      if ((x<0) and (y<0)) then Result:=(ArcTan(y/x)*180/pi)-180;
    end;
    except on E:Exception do
    begin
      ShowMessage('код 4: y:'+floattostr(y)+' x:'+floattostr(x)+' Result:'+floattostr(Result)+' !'+E.ClassName+' ошибка: '+E.Message);
    end;
  end;
end;
и
Код:
//--------эта процедура вычисляет мои реальные координаты-----------//
procedure MYposPROC;
var
  i:integer;
begin
  if(on1=true)then
  begin
    try
    begin
      HPtime:=HPtime+1;
      if(myXreal=0) then
      begin
        myXreal:=myXpot;
        myYreal:=myYpot;
      end;
      //изменение текущих координат чара
      if ((myXreal<>0) and (myYreal<>0) and (ras(myXreal, myYreal, myXpot, myYpot)>=33)) then
      begin
        myXreal:=round(myXreal+((MYspeed/2)*cos(pi+(pi/180*ArcTan2(myYreal-myYpot,myXreal-myXpot)))));
        myYreal:=round(myYreal+((MYspeed/2)*sin(pi+(pi/180*ArcTan2(myYreal-myYpot,myXreal-myXpot)))));
      end;
      //обновляем растояния от меня до мобов
      for i:=0 to length(MobsRAS)-1 do
      begin
        if(MobsRAS[i]<>0) then MobsRAS[i]:=ras(myXreal,myYreal,MobsX[i],MobsY[i]);
        //включаем режим бота если onSKYbot=true
        if(onSKYbot=true)then
        begin
          if(myXradiy=0) then
          begin
            myXradiy:=myXreal;
            myYradiy:=myYreal;
            yaSIT:=false;
          end;
        end
        else
        begin
          myXradiy:=0;
          myYradiy:=0;
        end;

      end;
      except on E:Exception do ShowMessage('код 54: onSKYbot:'+Booltostr(onSKYbot)+' myXreal:'+inttostr(myXreal));
    end;
  end;
end;
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием