Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

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

тут можно задать вопрос по скриптингу
Post Reply
Horny
Posts: 5
Joined: 21.11.2016 11:49

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

Post 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) стабильно виснет через неопределённое время и пользоваться ей невозможно.
Я новичёк в программировании, прошу простить если не знаю простых истин, по форуму решение искал, но не нашёл.
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

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

Post 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 тайлах, отсюда и ошибка.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

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

Post by Vizit0r »

drabadan wrote: ходилка пересчитывает путь каждых 4 тайла
настало время офигительных историй...
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Horny
Posts: 5
Joined: 21.11.2016 11:49

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

Post by Horny »

Если оно не подошло с 1 раза, то не подойдет и с 101. Для подхода к дереву параметр точности необходимо задавать 1, ибо чар не может стать имеено в тайл дерева. Насколько видно по сообщениям разработчиков, ходилка пересчитывает путь каждых 4 тайла и если не может стать в 0 то вот она как раз и остановится в 4 тайлах, отсюда и ошибка.
Хм? В ламбере я и не пытался встать в дерево, скрипт вполне себе работает, но в какой-то непредсказуемый момент выдаёт ошибку и встаёт, может через 15 минут, а может через несколько часов. И выдав ошибку он не пытается даже сдвинуться. При перезапуске ходит, как ни в чём не бывало.
grundick
Developer
Developer
Posts: 272
Joined: 31.01.2008 21:16

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

Post by grundick »

xTileBox, yTileBox - это точно координаты самих деревьев?
Horny
Posts: 5
Joined: 21.11.2016 11:49

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

Post by Horny »

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