Page 1 of 1

NewMoveXY чек дошли или нет, координата плюс минус 2 тайла.

Posted: 25.11.2016 1:42
by Horny
Здравствуйте, часто в скрипте возникает ошибка с NewMoveXY, возвращает ошибку и встаёт.
Сделал чек для точного подхода:

Code: Select all

if not Dead then 
 begin
  repeat
   CurrX := GetX(self);
   CurrY := GetY(self);
   NewMoveXY(xTileBox, yTileBox, true, 0, true);
   wait(1000);
  until (CurrX = xTileBox) and (CurrY = yTileBox); 
 end;
Однако, при ламбере нужно подойти к дереву на 1 тайл меньше и неизвестно с какой стороны, а значит заданная координата будет отличаться от той в которую идём. Возникает вопрос, как это возможно реализовать? Что-то вроде "until (CurrX = (xTileBox+1) or (xTileBox-1))"? Может можно сделать чек проще и\или в виде инклюда?
Версия стелса 6.2.1. Последняя версия (7.6.2) стабильно виснет через неопределённое время и пользоваться ей невозможно.
Я новичёк в программировании, прошу простить если не знаю простых истин, по форуму решение искал, но не нашёл.

Re: NewMoveXY чек дошли или нет, координата плюс минус 2 тай

Posted: 25.11.2016 10:13
by drabadan
Horny wrote:Здравствуйте, часто в скрипте возникает ошибка с NewMoveXY, возвращает ошибку и встаёт.
Сделал чек для точного подхода:

Code: Select all

if not Dead then 
 begin
  repeat
   CurrX := GetX(self);
   CurrY := GetY(self);
   NewMoveXY(xTileBox, yTileBox, true, 0, true);
   wait(1000);
  until (CurrX = xTileBox) and (CurrY = yTileBox); 
 end;
Однако, при ламбере нужно подойти к дереву на 1 тайл меньше и неизвестно с какой стороны, а значит заданная координата будет отличаться от той в которую идём. Возникает вопрос, как это возможно реализовать? Что-то вроде "until (CurrX = (xTileBox+1) or (xTileBox-1))"? Может можно сделать чек проще и\или в виде инклюда?
Версия стелса 6.2.1. Последняя версия (7.6.2) стабильно виснет через неопределённое время и пользоваться ей невозможно.
Я новичёк в программировании, прошу простить если не знаю простых истин, по форуму решение искал, но не нашёл.

Code: Select all

  NewMoveXY(xTileBox, yTileBox, true,                  1                                 , true);
Если оно не подошло с 1 раза, то не подойдет и с 101. Для подхода к дереву параметр точности необходимо задавать 1, ибо чар не может стать имеено в тайл дерева. Насколько видно по сообщениям разработчиков, ходилка пересчитывает путь каждых 4 тайла и если не может стать в 0 то вот она как раз и остановится в 4 тайлах, отсюда и ошибка.

Re: NewMoveXY чек дошли или нет, координата плюс минус 2 тай

Posted: 25.11.2016 17:32
by Vizit0r
drabadan wrote: ходилка пересчитывает путь каждых 4 тайла
настало время офигительных историй...

Re: NewMoveXY чек дошли или нет, координата плюс минус 2 тай

Posted: 25.11.2016 18:36
by Horny
Если оно не подошло с 1 раза, то не подойдет и с 101. Для подхода к дереву параметр точности необходимо задавать 1, ибо чар не может стать имеено в тайл дерева. Насколько видно по сообщениям разработчиков, ходилка пересчитывает путь каждых 4 тайла и если не может стать в 0 то вот она как раз и остановится в 4 тайлах, отсюда и ошибка.
Хм? В ламбере я и не пытался встать в дерево, скрипт вполне себе работает, но в какой-то непредсказуемый момент выдаёт ошибку и встаёт, может через 15 минут, а может через несколько часов. И выдав ошибку он не пытается даже сдвинуться. При перезапуске ходит, как ни в чём не бывало.

Re: NewMoveXY чек дошли или нет, координата плюс минус 2 тай

Posted: 11.12.2016 22:13
by grundick
xTileBox, yTileBox - это точно координаты самих деревьев?

Re: NewMoveXY чек дошли или нет, координата плюс минус 2 тай

Posted: 14.12.2016 15:30
by Horny
grundick wrote:xTileBox, yTileBox - это точно координаты самих деревьев?
То был пример, у дерева конечно иначе. Я так понял, что это серв глючный и просто настроил сброс скрипта.