Yoko

All sides of Injection
It is currently 2024-03-19 07:34:21

All times are UTC+02:00




Post new topic  This topic is locked, you cannot edit posts or make further replies.  [ 187 posts ]  Go to page Previous 16 7 8 9 10 Next
Author Message
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-22 23:04:41 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Не, не обязательно, просто без нее создавай путь, 4 параметра вместо 5.
Путь к картинкам нужен только чтоб можно было наглядно посмотреть, какой путь был выбран, были ли учтены игровые объекты (не статика игры) и т.д.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-23 01:26:56 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Сделал, если все правильно понял то должна работать, только теперь весь скрипт это Walker(GoX, GoY, Prec) так что если значение Prec у тебя задавалось где-то отдельно, убери это. Не тестил. Так же я подумал что until not mapout.next() значит идти пока не прийдем к заданым координатам, а это конечные координаты без учета Prec, если правильно понял то Prec будет учтен, если нет - переделаю как надо когда обьяснишь что не так :)
Code:
sub Walker(GoX, GoY, Prec)
  var i, gr="", endwalk, button, DistanceX, DistanceY, StartDir, StartX, StartY, EndDir, timer
  var steptimer = 200 ; Таймер на шаг
  var mapout=PathFind(UOPath,PathMap,uo.getz(),PathAlg,ScreenPath)
  var x=uo.getx() #От куда начинаем путь по X
  var y=uo.gety() #От куда начинаем путь по Y
  var ChestX=1773 #Куда идем по X
  var ChestY=3096 #Куда идем по Y
  if CheckUOObject then
    var dx = Abs(x-ChestX)
    var dy = Abs(y-ChestY)
    if dx<dy then #Получим наибольшее значение дистанции до объекта
      dx=dy
    endif
    if remain(dx,2) then #Если есть остаток от деления на 2, то прибавим 1
      dx=dx+1
    endif
    dx=dx*2 #Максимальная дистанция поиска объектов для алгоритма = максимальная дистанция * 2
    uo.set("finddistance",str(dx))
    uo.findtype(-1,-1,"ground")
    uo.ignorereset()
    if uo.findcount() then #Поиск предметов на земле, пока не кончатся
      repeat
        gr=uo.getgraphic("finditem")
        #Проверка на людей. Все живые объекты нужно исключить из списка. Проверка Z координаты, если не больше 10 то заносим в список
        if gr<>"0x0190" and gr<>"0x0191" and abs(uo.getz("finditem")-uo.getz("self"))<10 then
          mapout.addobj(gr,uo.getx("finditem"),uo.gety("finditem"))
        end if
        uo.ignore("finditem")
        uo.findtype(-1,-1,"ground")
      until not uo.findcount()
    end if
    uo.ignorereset()
  end if
  uo.print("Setup...")
  mapout.Setup(x,y,ChestX,ChestY) #Запускаем алгоритм поиска
  if mapout.Size() then #Если есть размер вектора пути - алгоритм успешно нашел путь
    uo.print("Путь вычислен!")
    mapout.first() #Ставим указатель на первый элемент массива
    endwalk = 0
    DistanceX = str(uo.getx() - GoX)
    DistanceY = str(uo.gety() - GoY)
    if mapout.getx() == uo.getx() and mapout.gety() < uo.gety() then
      button = 33
      EndDir = 0
    end if
    if mapout.getx() > uo.getx() and mapout.gety() < uo.gety() then
      button = 39
      EndDir = 1
    end if
    if mapout.getx() > uo.getx() and mapout.gety() == uo.gety() then
      button = 34
      EndDir = 2
    end if
    if mapout.getx() > uo.getx() and mapout.gety() > uo.gety() then
      button = 40
      EndDir = 3
    end if
    if mapout.getx() == uo.getx() and mapout.gety() > uo.gety() then
      button = 35
      EndDir = 4
    end if
    if mapout.getx() < uo.getx() and mapout.gety() > uo.gety() then
      button = 37
      EndDir = 5
    end if
    if mapout.getx() < uo.getx() and mapout.gety() == uo.gety() then
      button = 36
      EndDir = 6
    end if
    if mapout.getx() < uo.getx() and mapout.gety() < uo.gety() then
      button = 38
      EndDir = 7
    end if
    if (DistanceX - Prec) <= Prec and (DistanceX - Prec) > (DistanceY - Prec) then
      endwalk = 1
    else
      if (DistanceY - Prec) <= Prec and (DistanceY - Prec) > (DistanceX - Prec) then
        endwalk = 1
      end if
    end if
    repeat
      if endwalk == 0 then
        repeat
          StartDir=UO.GetDir()
          StartX=UO.GetX()
          StartY=UO.GetY()
          UO.Press(button)
          timer = uo.timer() + steptimer
          repeat
            wait(10)
          until StartDir <> EndDir or StartY <> UO.GetY() or StartX <> UO.GetX() or timer <= uo.timer()
          if StartDir <> EndDir then
            StartDir = EndDir
          end if
          DistanceX = str(uo.getx() - GoX)
          DistanceY = str(uo.gety() - GoY)
          if (DistanceX - Prec) <= Prec and (DistanceX - Prec) > (DistanceY - Prec) then
            endwalk = 1
          else
            if (DistanceY - Prec) <= Prec and (DistanceY - Prec) > (DistanceX - Prec) then
              endwalk = 1
            end if
          end if
        until endwalk == 1 or (mapout.getx() == uo.getx() and mapout.gety() == uo.gety())
      end if
    until not mapout.next() or endwalk == 1 #Крутим цикл, пока массив не дойдет до конца
    #Тут производим какие-то действия, добираем ресы из сундука или ресаемся...
    mapout.last() #Устанавливаем указатель на последний элемент массива (он уже там, но малоли...)
    repeat
      #Тут делаем коррекцию ходьбы.
      uo.print("X="+str(mapout.getx())+" Y="+str(mapout.gety()))
      wait(10)
    until not mapout.back() #Крутим цикл до начала вектора
  else #Если нет размера вектора пути - путь не найден. Можно попробовать создать поиск с другим алгоритмом.
    uo.print("Ошибка вычисления пути!")
  end if
end sub

Sub Abs(i)
  if i<0 then
    i=i*(-1)
  endif
  return i
end sub

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 17:11:18 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Попробовал включить ходилку, написало Setup... и всё. Проц 100% память сожрало так же всю, тормоза и ничего не деалет больше.

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 19:51:06 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
С координатами не намудрил?
Пока что, желательное расстояние не больше 100 тайлов. Простые прогулки от дерева к дереву, до сундука или от вендора к вендору.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 19:53:50 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Там было не более 10 тайлов и практически открытое пространство. Хотя я понял, я же сделал чтобы был как валкер GoX, GoY, Prec а у тебя координаты не из этого берет. Сейчас попробую сделать так как нужно :roll:

_________________
CodeSweeper


Last edited by Incorrect User on 2013-06-24 19:57:19, edited 1 time in total.

Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 19:55:33 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
оО такого явно не должно было случиться)
Сколько тестил и так и сяк - все норм.
Путь к мулам и т.п. проверь, все ли верно указано?


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 20:02:01 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Вот теоретически рабочий вариант, теперь пишет Ошибка вычисления пути. Стою за 8 тайлов от точки назначения.
Code:
sub Walker(GoX, GoY, Prec)
  var i, gr="", endwalk, button, DistanceX, DistanceY, StartDir, StartX, StartY, EndDir, timer
  var steptimer = 200 ; Таймер на шаг
  var mapout=PathFind(UOPath,PathMap,uo.getz(),PathAlg,ScreenPath)
  var x=uo.getx() #От куда начинаем путь по X
  var y=uo.gety() #От куда начинаем путь по Y
  if CheckUOObject then
    var dx = Abs(x-GoX)
    var dy = Abs(y-GoY)
    if dx<dy then #Получим наибольшее значение дистанции до объекта
      dx=dy
    endif
    if remain(dx,2) then #Если есть остаток от деления на 2, то прибавим 1
      dx=dx+1
    endif
    dx=dx*2 #Максимальная дистанция поиска объектов для алгоритма = максимальная дистанция * 2
    uo.set("finddistance",str(dx))
    uo.findtype(-1,-1,"ground")
    uo.ignorereset()
    if uo.findcount() then #Поиск предметов на земле, пока не кончатся
      repeat
        gr=uo.getgraphic("finditem")
        #Проверка на людей. Все живые объекты нужно исключить из списка. Проверка Z координаты, если не больше 10 то заносим в список
        if gr<>"0x0190" and gr<>"0x0191" and abs(uo.getz("finditem")-uo.getz("self"))<10 then
          mapout.addobj(gr,uo.getx("finditem"),uo.gety("finditem"))
        end if
        uo.ignore("finditem")
        uo.findtype(-1,-1,"ground")
      until not uo.findcount()
    end if
    uo.ignorereset()
  end if
  uo.print("Setup...")
  mapout.Setup(x,y,GoX,GoY) #Запускаем алгоритм поиска
  if mapout.Size() then #Если есть размер вектора пути - алгоритм успешно нашел путь
    uo.print("Путь вычислен!")
    mapout.first() #Ставим указатель на первый элемент массива
    endwalk = 0
    DistanceX = str(uo.getx() - GoX)
    DistanceY = str(uo.gety() - GoY)
    if mapout.getx() == uo.getx() and mapout.gety() < uo.gety() then
      button = 33
      EndDir = 0
    end if
    if mapout.getx() > uo.getx() and mapout.gety() < uo.gety() then
      button = 39
      EndDir = 1
    end if
    if mapout.getx() > uo.getx() and mapout.gety() == uo.gety() then
      button = 34
      EndDir = 2
    end if
    if mapout.getx() > uo.getx() and mapout.gety() > uo.gety() then
      button = 40
      EndDir = 3
    end if
    if mapout.getx() == uo.getx() and mapout.gety() > uo.gety() then
      button = 35
      EndDir = 4
    end if
    if mapout.getx() < uo.getx() and mapout.gety() > uo.gety() then
      button = 37
      EndDir = 5
    end if
    if mapout.getx() < uo.getx() and mapout.gety() == uo.gety() then
      button = 36
      EndDir = 6
    end if
    if mapout.getx() < uo.getx() and mapout.gety() < uo.gety() then
      button = 38
      EndDir = 7
    end if
    if (DistanceX - Prec) <= Prec and (DistanceX - Prec) > (DistanceY - Prec) then
      endwalk = 1
    else
      if (DistanceY - Prec) <= Prec and (DistanceY - Prec) > (DistanceX - Prec) then
        endwalk = 1
      end if
    end if
    repeat
      if endwalk == 0 then
        repeat
          StartDir=UO.GetDir()
          StartX=UO.GetX()
          StartY=UO.GetY()
          UO.Press(button)
          timer = uo.timer() + steptimer
          repeat
            wait(10)
          until StartDir <> EndDir or StartY <> UO.GetY() or StartX <> UO.GetX() or timer <= uo.timer()
          if StartDir <> EndDir then
            StartDir = EndDir
          end if
          DistanceX = str(uo.getx() - GoX)
          DistanceY = str(uo.gety() - GoY)
          if (DistanceX - Prec) <= Prec and (DistanceX - Prec) > (DistanceY - Prec) then
            endwalk = 1
          else
            if (DistanceY - Prec) <= Prec and (DistanceY - Prec) > (DistanceX - Prec) then
              endwalk = 1
            end if
          end if
        until endwalk == 1 or (mapout.getx() == uo.getx() and mapout.gety() == uo.gety())
      end if
    until not mapout.next() or endwalk == 1 #Крутим цикл, пока массив не дойдет до конца
    #Тут производим какие-то действия, добираем ресы из сундука или ресаемся...
    mapout.last() #Устанавливаем указатель на последний элемент массива (он уже там, но малоли...)
    repeat
      #Тут делаем коррекцию ходьбы.
      uo.print("X="+str(mapout.getx())+" Y="+str(mapout.gety()))
      wait(10)
    until not mapout.back() #Крутим цикл до начала вектора
  else #Если нет размера вектора пути - путь не найден. Можно попробовать создать поиск с другим алгоритмом.
    uo.print("Ошибка вычисления пути!")
  end if
end sub

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 20:22:27 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
PathAlg поставь 1

Что ниже работает. Только что проверил и с учетом игровых объектов и без него.
Только путь к УО и т.п. надо глобально вывести.
Но это если на пути точно не встретятся преграды (ящик поставлят, непроходимый клиентом тайл и т.п.)
Code:
sub Walker(GoX, GoY)
   var i, gr="", CheckUOObject=1
   var mapout=PathFind('E:\Ultima Online',0,uo.getz(),1,'E:\UOPathScreens')
   var x=uo.getx() #От куда начинаем путь по X
   var y=uo.gety() #От куда начинаем путь по Y
   if CheckUOObject then
      var dx = Abs(x-GoX)
      var dy = Abs(y-GoY)
      if dx<dy then #Получим наибольшее значение дистанции до объекта
         dx=dy
      endif
      if remain(dx,2) then #Если есть остаток от деления на 2, то прибавим 1
         dx=dx+1
      endif
      dx=dx*2 #Максимальная дистанция поиска объектов для алгоритма = максимальная дистанция * 2
      uo.set("finddistance",str(dx))
      uo.findtype(-1,-1,"ground")
      uo.ignorereset()
      if uo.findcount() then #Поиск предметов на земле, пока не кончатся
         repeat
            gr=uo.getgraphic("finditem")
            #Проверка на людей. Все живые объекты нужно исключить из списка. Проверка Z координаты, если не больше 10 то заносим в список
            if gr<>"0x0190" and gr<>"0x0191" and abs(uo.getz("finditem")-uo.getz("self"))<10 then
               mapout.addobj(gr,uo.getx("finditem"),uo.gety("finditem"))
            end if
            uo.ignore("finditem")
            uo.findtype(-1,-1,"ground")
         until not uo.findcount()
      end if
      uo.ignorereset()
   end if
   uo.print("Setup...")
   mapout.Setup(x,y,GoX,GoY) #Запускаем алгоритм поиска
   if mapout.Size() then #Если есть размер вектора пути - алгоритм успешно нашел путь
      uo.print("Путь вычислен!")
      mapout.first() #Ставим указатель на первый элемент массива
      repeat
         WalkTo(mapout.getx()-uo.getx(),mapout.gety()-uo.gety())
      until not mapout.next() #Крутим цикл, пока массив не дойдет до конца
   else #Если нет размера вектора пути - путь не найден. Можно попробовать создать поиск с другим алгоритмом.
      uo.print("Ошибка вычисления пути!")
   end if
end sub

Sub WalkTo(x,y)
   var dly=400 #Задержка на перемещения
   dim keys[8]
   keys[0]=33
   keys[1]=39
   keys[2]=34
   keys[3]=40
   keys[4]=35
   keys[5]=37
   keys[6]=36
   keys[7]=38
   var key=GetDirTo(x,y)
   if (key==-1) then
      uo.print('Уже стоим на этой точке.')
      return
   endif
   while (uo.getdir()<>key)
      uo.press(keys[key])
      wait(dly)
   wend
   uo.press(keys[key])
   wait(dly)
end sub

Sub GetDirTo(dx,dy)
   If dx<>0 AND dy<>0 Then
      If dx>0 AND dy>0 Then
         return 3
      Endif
      If dx>0 AND dy<0 Then
         return 1
      Endif
      If dx<0 AND dy>0 Then
         return 5
      Endif
      If dx<0 AND dy<0 Then
         return 7
      Endif
   Endif
   If dx<>0 AND dy==0 Then
      If dx>0 Then
         return 2
      Endif
      If dx<0 Then
         return 6
      Endif
   Endif
   If dx==0 AND dy<>0 Then
      If dy>0 Then
         return 4
      Endif
      If dy<0 Then
         return 0
      Endif
   Endif
   return -1
end sub


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 20:29:28 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
И на твоей и на моей пишет ошибка вычисления пути.

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 20:46:59 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
В любых координатах такое происходит?
Дай координаты начала и конца пути


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 20:55:47 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Начало 2244, 1213 Конец 2244, 1208

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 21:14:46 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Все вычисляет нормально.
http://rghost.ru/46993405
Карта пути.
Проверь всетаки путь к папке с мулами еще раз.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 21:22:01 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
В путях ошибки нет, вынесены отдельно.

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 21:28:09 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
У тебя там препятствия? на картинке идет не на прямую а петлей.

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-24 21:41:42 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Препятствий нет, алгоритм вычисления такой :D
Не всегда находит самый короткий путь до точки, иногда петляет.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-26 15:44:13 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
У меня так и не работает. А как он ищет путь что получается такой круг? Я всегда представлял ходилку проверкой тайлов перед собой, в направлении куда нужно идти, пройти столько сколько есть свободных чтобы не доходил 1 тайл до препятствия и искать обход. А у вас все как-то загадочно...

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-26 17:53:52 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Этот 0 индекс http://ru.wikipedia.org/wiki/Волновой_алгоритм
Это 1 индекс http://ru.wikipedia.org/wiki/Алгоритм_поиска_A*
Как-то так) Если интересуют проги, откуда брал алгоритмы - напиши в личку.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-06-26 21:11:39 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
В общем, кому нужно, скрипт типа Wlaker(x,y,prec). Проверить нет возможности.
Code:
var UOPath = "C:\UltimaOnline" #Путь к папке с *.mul файлами УО
var ScreenPath = "C:\Screens" #Путь к папке, куда сохранять скрины поиска пути
var PathAlg = 1 #Индекс алгоритма
var PathMap = 0 #Индекс карты
var CheckUOObject = 1 #Учитывать игровые объекты при поиске пути 0 - нет; 1 - да
sub Walker(GoX, GoY, Prec)
  var i, gr="", endwalk, button, DistanceX, DistanceY, StartDir, StartX, StartY, EndDir, timer
  var steptimer = 200 ; Таймер на шаг
  var mapout=PathFind(UOPath,PathMap,uo.getz(),PathAlg,ScreenPath)
  var x=uo.getx() #От куда начинаем путь по X
  var y=uo.gety() #От куда начинаем путь по Y
  if CheckUOObject then
    var dx = Abs(x-GoX)
    var dy = Abs(y-GoY)
    if dx<dy then #Получим наибольшее значение дистанции до объекта
      dx=dy
    end if
    if remain(dx,2) then #Если есть остаток от деления на 2, то прибавим 1
      dx=dx+1
    end if
    dx=dx*2 #Максимальная дистанция поиска объектов для алгоритма = максимальная дистанция * 2
    uo.set("finddistance",str(dx))
    uo.findtype(-1,-1,"ground")
    uo.ignorereset()
    if uo.findcount() then #Поиск предметов на земле, пока не кончатся
      repeat
        gr=uo.getgraphic("finditem")
        #Проверка на людей. Все живые объекты нужно исключить из списка. Проверка Z координаты, если не больше 10 то заносим в список
        if gr<>"0x0190" and gr<>"0x0191" and abs(uo.getz("finditem")-uo.getz("self"))<10 then
          mapout.addobj(gr,uo.getx("finditem"),uo.gety("finditem"))
        end if
        uo.ignore("finditem")
        uo.findtype(-1,-1,"ground")
      until not uo.findcount()
    end if
    uo.ignorereset()
  end if
  uo.print("Setup...")
  mapout.Setup(x,y,GoX,GoY) #Запускаем алгоритм поиска
  if mapout.Size() then #Если есть размер вектора пути - алгоритм успешно нашел путь
    uo.print("Путь вычислен!")
    mapout.first() #Ставим указатель на первый элемент массива
    endwalk = 0
    DistanceX = str(uo.getx() - GoX)
    DistanceY = str(uo.gety() - GoY)
    if mapout.getx() == uo.getx() and mapout.gety() < uo.gety() then
      button = 33
      EndDir = 0
    end if
    if mapout.getx() > uo.getx() and mapout.gety() < uo.gety() then
      button = 39
      EndDir = 1
    end if
    if mapout.getx() > uo.getx() and mapout.gety() == uo.gety() then
      button = 34
      EndDir = 2
    end if
    if mapout.getx() > uo.getx() and mapout.gety() > uo.gety() then
      button = 40
      EndDir = 3
    end if
    if mapout.getx() == uo.getx() and mapout.gety() > uo.gety() then
      button = 35
      EndDir = 4
    end if
    if mapout.getx() < uo.getx() and mapout.gety() > uo.gety() then
      button = 37
      EndDir = 5
    end if
    if mapout.getx() < uo.getx() and mapout.gety() == uo.gety() then
      button = 36
      EndDir = 6
    end if
    if mapout.getx() < uo.getx() and mapout.gety() < uo.gety() then
      button = 38
      EndDir = 7
    end if
    if (DistanceX - Prec) <= Prec and (DistanceX - Prec) > (DistanceY - Prec) then
      endwalk = 1
    else
      if (DistanceY - Prec) <= Prec and (DistanceY - Prec) > (DistanceX - Prec) then
        endwalk = 1
      end if
    end if
    repeat
      if endwalk == 0 then
        repeat
          StartDir=UO.GetDir()
          StartX=UO.GetX()
          StartY=UO.GetY()
          UO.Press(button)
          timer = uo.timer() + steptimer
          repeat
            wait(30)
          until StartDir <> EndDir or StartY <> UO.GetY() or StartX <> UO.GetX() or timer <= uo.timer()
          if StartDir <> EndDir then
            StartDir = EndDir
          end if
          DistanceX = str(uo.getx() - GoX)
          DistanceY = str(uo.gety() - GoY)
          if (DistanceX - Prec) <= Prec and (DistanceX - Prec) > (DistanceY - Prec) then
            endwalk = 1
          else
            if (DistanceY - Prec) <= Prec and (DistanceY - Prec) > (DistanceX - Prec) then
              endwalk = 1
            end if
          end if
        until endwalk == 1 or (mapout.getx() == uo.getx() and mapout.gety() == uo.gety())
      end if
    until not mapout.next() or endwalk == 1 #Крутим цикл, пока массив не дойдет до конца
    #Тут производим какие-то действия, добираем ресы из сундука или ресаемся...
    mapout.last() #Устанавливаем указатель на последний элемент массива (он уже там, но малоли...)
    repeat
      #Тут делаем коррекцию ходьбы.
      uo.print("X="+str(mapout.getx())+" Y="+str(mapout.gety()))
      wait(30)
    until not mapout.back() #Крутим цикл до начала вектора
  else #Если нет размера вектора пути - путь не найден. Можно попробовать создать поиск с другим алгоритмом.
    uo.print("Ошибка вычисления пути!")
  end if
end sub

Sub Abs(i)
  if i<0 then
    i=i*(-1)
  end if
  return i
end sub

А я наверное буду стелс пробовать крутить.

_________________
CodeSweeper


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-08-28 18:45:04 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
UP! Теперь не крашит при тыке на Quit в мэйнгампе клиента.


Top
   
 
 Post subject: Re: Script.dll + include
PostPosted: 2013-08-29 06:38:33 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
а что было?

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
 
Display posts from previous:  Sort by  
Post new topic  This topic is locked, you cannot edit posts or make further replies.  [ 187 posts ]  Go to page Previous 16 7 8 9 10 Next

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited