Page 1 of 1

getstatictilesarray

Posted: 04.03.2012 17:32
by nepopus

Code: Select all

  for i := 0 to getstatictilesarray(minx, miny, maxx, maxy, 1, 1339, foundtilesarray) do
  begin
    if isworldcellpassable(getx(self), gety(self), getz(self), foundtilesarray[i].x, foundtilesarray[i].y, foundtilesarray[i].z, 1) then
        newmovexy(foundtilesarray[i].x, foundtilesarray[i].y, false, 0, false);
  end;
найденные координаты нарезаются на линии по Y, начиная с наименьших Х и Y.
можно ли организовать чередование линий с наименьшего/наибольшего Y. Чтобы, к примеру, не ходить лишнее расстояние в шахте? Надеюсь объяснил доходчиво :)
Заранее благодарен.

Re: getstatictilesarray

Posted: 04.03.2012 21:23
by nah nah
попробуй перебор массива на самый ближний к чару тайл, или отсортируй массив так как тебе больше нравится

Re: getstatictilesarray

Posted: 05.03.2012 6:47
by CFA
Добавлю, что isworldcellpassable проверяет проходимость только соседнего с чаром тайла (+-1) для более дальних тайлов, функция вернет неправильный результат.

Re: getstatictilesarray

Posted: 05.03.2012 14:02
by nepopus
nah nah wrote:попробуй перебор массива на самый ближний к чару тайл, или отсортируй массив так как тебе больше нравится
создать большой массив, в который записывать теже дочки в другой очередности? попробую, спс.
CFA wrote:Добавлю, что isworldcellpassable проверяет проходимость только соседнего с чаром тайла (+-1) для более дальних тайлов, функция вернет неправильный результат.
На разных концах шахты определяет нормально, а там 20 клеток.

Re: getstatictilesarray

Posted: 05.03.2012 14:16
by Vizit0r
неправильный результат будет, если Z отличается. если по всей проверяемой поверхности Z одинаково - будет нормально.