простая ходилка на пинжекте

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
korzh
Posts: 220
Joined: 2007-04-26 23:35:15

простая ходилка на пинжекте

Post by korzh »

Ссегодня решился таки попробовать пересесть на пинжект :)
Решил я значит написать простенькую ходилку и не получилось.. криво ходит :roll:
Так как с перлом я знаком первый день, может чтото сделал не так?

Code: Select all

sub use
{
  walk (2149,787);
}

sub walk($$)
{ 
  my($x1, $y1);
  $x1 = $_[1];
  $y2 = $_[2];
  while( (uo::getx()!=$x1) && (uo::gety()!=$y1) )
  {
    $x=uo::getx();
    $y=uo::gety();
    if ($x == $x1 && $y > $y1)
    {
      uo::press(35);
    }    
    if ($x == $x1 && $y < $y1)
    {
      uo::press(33);
    }
    if ($x < $x1 && $y == $y1)
    {
      uo::press(36);
    }
    if ($x < $x1 && $y > $y1)
    {
      uo::press(37);
    }
    if ($x < $x1 && $y < $y1)
    {
      uo::press(38);
    }
    if ($x > $x1 && $y == $y1)
    {
      uo::press(34);  
    }
    if ($x > $x1 && $y > $y1)
    {
      uo::press(40);
    }
    if ($x > $x1 && $y < $y1)
    {
      uo::press(39);
    }
      &wait(50);
  }
}
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

а в чем кривость хождения?
korzh
Posts: 220
Joined: 2007-04-26 23:35:15

Post by korzh »

ввожу например координаты на 5 тайлов от себя, а идет вообще очень очень очень далеко хз куда, и даже если чудом пройдет по нужной координате все равно идет дальше дальше...
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

ну значит ты не правельно клавиши раставил:)
да и самый простой способ дебага это принтить твое условие...
korzh
Posts: 220
Joined: 2007-04-26 23:35:15

Post by korzh »

поидее понял, проблема в куске

Code: Select all

  my($x1, $y1); 
  $x1 = $_[1]; 
  $y2 = $_[2];
так он не видет координаты х

Code: Select all

 my($x1, $y1); 
  $x1 = $_[0]; 
  $y2 = $_[1];
а так не виде у.
чего делать?
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Code: Select all

sub use 
{ 
  walk (2149,787); 
} 

sub walk($$) 
{ 
  my($x1, $y1); 
  $x1 = $_[1]; 
  $y1 = $_[2]; //!!!!
  while( (uo::getx()!=$x1) && (uo::gety()!=$y1) ) 
  { 
    $x=uo::getx(); 
    $y=uo::gety(); 
    if ($x == $x1 && $y > $y1) 
    { 
      uo::press(35); 
    }    
    if ($x == $x1 && $y < $y1) 
    { 
      uo::press(33); 
    } 
    if ($x < $x1 && $y == $y1) 
    { 
      uo::press(36); 
    } 
    if ($x < $x1 && $y > $y1) 
    { 
      uo::press(37); 
    } 
    if ($x < $x1 && $y < $y1) 
    { 
      uo::press(38); 
    } 
    if ($x > $x1 && $y == $y1) 
    { 
      uo::press(34);  
    } 
    if ($x > $x1 && $y > $y1) 
    { 
      uo::press(40); 
    } 
    if ($x > $x1 && $y < $y1) 
    { 
      uo::press(39); 
    } 
      &wait(50); 
  } 
}
Никому больше таких ошибок не делать!

+ еще куча ошибок...
korzh
Posts: 220
Joined: 2007-04-26 23:35:15

Post by korzh »

Да совместными усилиями сделали :D
спасибо Грину ;)
Post Reply