Yoko
http://forum.yoko.com.ua/

Мининг | Mining -)
http://forum.yoko.com.ua/viewtopic.php?f=15&t=11213
Page 1 of 1

Author:  Destruction [ 2007-01-19 05:56:54 ]
Post subject:  Мининг | Mining -)

Да, знаю, что уже хрен знает какой по счёту, но этот - как всегла особый :-)

Собственно капаем, ходим, капаем.

Code:
var step_timeout = 600 ; таймаут на шаг
sub mining()
   uo.addObject( "pickaxe" )
   while uo.targeting()
      wait(100)
   wend
   var continue = "Вы положили|Вы отменили|не удалось" ; сообщения о продолжении капания этого тайла
   var break = "нет обзора|в другом месте|ничего нету" ; сообщения о прекращении капания этого тайла
   var i = 0, f = file( "mining.tci" ) ; файлик с координатами
   f.open()
   var cnt = f.readNumber()
   DIM type[ val( str( cnt ) ) ]
   DIM tile_t[ val( str( cnt ) ) ]
   DIM tile_x[ val( str( cnt ) ) ]
   DIM tile_y[ val( str( cnt ) ) ]
   DIM tile_z[ val( str( cnt ) ) ]
   while not f.eof()
      type[ i ] = f.readNumber()
      tile_t[ i ] = f.readNumber()
      tile_x[ i ] = f.readNumber()
      tile_y[ i ] = f.readNumber()
      tile_z[ i ] = f.readNumber()
      i = i + 1
   wend
   f.close()
   for i = 0 to cnt -1
      if type[i] == 2 || type[i] == 1 then
         desWalker( tile_x[i], tile_y[i] )
      endif
      if type[i] == 2 || type[i] == 0 then
         repeat
            deljournal( break + "|" + continue )
            uo.waittargettile( str( tile_t[ i ] ), str( tile_x[ i ] ), str( tile_y[ i ] ), str( tile_z[ i ] ) )
            uo.useobject( "pickaxe" )
            repeat
               wait( 100 )
            until uo.injournal( break + "|" + continue )
         until uo.injournal( break )
      endif
   next
endsub

Sub desWalker( x, y )
   var dir, key, mx, my, timer
   if x== uo.getX() && y == uo.getY() then
      return false
   endif
   repeat
      mx = uo.getX()
      my = uo.getY()
      key = getWalkDir( x-mx, y-my, 0, 0 )
      dir = getWalkDir( x-mx, y-my, 1, 0 )
      if Not uo.getDir() == dir then
         uo.press( key, 2 )
      else
         uo.press( key )
      endif
      timer = 0
      while uo.getX() == mx && uo.getY() == my && step_timeout / 100 > timer
         wait( 100 )
         timer = timer + 1
      wend
   until uo.getX() == x && y == uo.getY()
endsub


Обратите внимание на ранее нигде не проскакивающую функцию хождения, носится - как зверь, но обходить, к сожалению - не умеет.

Теперь собственно о том, откуда беруться координаты - нет, они беруться не из воздуха :-)

Нужная информация - лежит в файле mining.tci, формат файла:
Code:
count
TYPE T X Y Z
TYPE T X Y Z

count - количество строк вида "TYPE T X Y Z".
TYPE - тип действия, 0 - капать в тайле, 1 - подойти к тайлу, 2 - подойти а потом капать.
T, X, Y, Z - соответсвенно информация о тайле, см. infotile.

Такой формат файла хорош для маленьких, кривых пещер - например такой, как в НТ на Антаресе.

Для больших масшатабов - можно написать функцию разметки.

PS: Скрипт писался и тестировался в НТ на Антаресе )

PPS: Правкой пары букв из ходилки можно сделать догонялку, которая работает по тому же принципу, что и многие другие.

Author:  -=WOLVERINE=- [ 2007-01-29 20:53:58 ]
Post subject: 

Может напишешь хотя бы пример этого фаилика а то я что то написал
только вот скрипт никак не хочет запускаться вот что я написал...да еще где сохранять этото фаил я его в папке с инжеи сохранял..
Code:
36
2 1341 1896 271 0
2 1340 1897 271 0
2 1342 1900 271 0
2 1341 1903 271 0
2 1340 1907 271 0
2 1343 1910 272 0
2 1340 1913 276 0
2 1341 1916 280 0
2 1339 1921 275 0
2 1341 1920 271 0
2 1339 1921 268 0
2 1340 1924 267 0
2 1341 1926 268 0
2 1340 1928 270 0
2 1342 1930 267 0
2 1343 1931 266 0
2 1340 1931 264 0
2 1343 1927 260 0
2 1339 1923 260 0
2 1340 1922 262 0
2 1339 1923 264 0
2 1343 1921 266 0
2 1343 1920 268 0
2 1343 1919 270 0
2 1340 1917 271 0
2 1341 1912 272 0
2 1342 1910 271 0
2 1343 1909 269 0
2 1342 1907 267 0
2 1339 1906 267 0
2 1342 1904 266 0
2 1339 1902 265 0
2 1341 1898 266 0
2 1342 1897 268 0
2 1341 1897 270 0
2 1339 1894 271 0

Author:  Destruction [ 2007-02-03 01:55:35 ]
Post subject: 

Хмм, ну дык всё верно делаешь.

Как именно не пашет?

Author:  -=WOLVERINE=- [ 2007-02-05 19:29:52 ]
Post subject: 

Просто выдает парсер....может версия клиента особая нужна?(Инжектовского.. :oops: )

Author:  Kenshin [ 2007-02-11 22:37:12 ]
Post subject: 

key = getWalkDir( x-mx, y-my, 0, 0 )
dir = getWalkDir( x-mx, y-my, 1, 0 )

как я понимаю это и есть та самая ходилка, только ее в инжу надо ставить отдельно или она там уже есть??
у меня YokoInjection 505.18 VeNdOr

при попытке запустить скрипт говорит что не могу найти функцию
getWalkDir :(

Author:  Disconnecting [ 2007-04-20 22:31:32 ]
Post subject: 

У меня тоже не работает. Пишет Unhandled exception in parser
Версия инжекта 505.16

В чем проблема?

Author:  Destruction [ 2007-04-26 18:19:08 ]
Post subject: 

Kenshin wrote:
key = getWalkDir( x-mx, y-my, 0, 0 )
dir = getWalkDir( x-mx, y-my, 1, 0 )

как я понимаю это и есть та самая ходилка, только ее в инжу надо ставить отдельно или она там уже есть??
у меня YokoInjection 505.18 VeNdOr

при попытке запустить скрипт говорит что не могу найти функцию
getWalkDir :(

viewtopic.php?t=7379&start=0

Author:  Edikus [ 2008-06-26 13:24:43 ]
Post subject: 

так ни у кого и не заработало?

у меня тоже выдаёт ошибку парсера, хотя и функцию гетвалкдир всунул и файл с координатами правильный сделал...

Author:  Destruction [ 2008-06-26 15:40:35 ]
Post subject: 

Ошибки выскакивают для того, чтобы дать информацию!

Author:  Disconnecting [ 2009-01-26 22:16:13 ]
Post subject: 

Кто нибудь разобрался почему выскакивает ошибка с парсером?!

Author:  Kynep [ 2009-01-26 22:24:43 ]
Post subject: 

Disconnecting wrote:
Кто нибудь разобрался почему выскакивает ошибка с парсером?!

Конечно! Знаешь в чем? Читать нужно внимательно, и хотя бы думать иногда.

Author:  Excaliburg [ 2009-01-28 14:00:43 ]
Post subject: 

Kynep wrote:
Disconnecting wrote:
Кто нибудь разобрался почему выскакивает ошибка с парсером?!

Конечно! Знаешь в чем? Читать нужно внимательно, и хотя бы думать иногда.


Умничай в другом месте. Если бы я хоть не много разбирался в скриптах, я бы проблему сам решил. А ты вместо того, чтобы умничать, лучше помог. Если не можешь/хочешь помочь, дорога тебе найух.

Author:  Kynep [ 2009-01-28 14:26:07 ]
Post subject: 

Excaliburg wrote:
Умничай в другом месте. Если бы я хоть не много разбирался в скриптах, я бы проблему сам решил. А ты вместо того, чтобы умничать, лучше помог. Если не можешь/хочешь помочь, дорога тебе найух.

Не хочешь думать идешь на йух сам, понял? Удачи в.... понимании !

Author:  Excaliburg [ 2009-01-28 15:58:31 ]
Post subject: 

Kynep wrote:
Excaliburg wrote:
понял?


Нет, не понял.

Author:  Successful [ 2009-01-28 17:38:11 ]
Post subject: 

щас довыеживается))))

Author:  Excaliburg [ 2009-02-19 16:29:32 ]
Post subject: 

Скрипт работает на ура, хоть и не понятно, что было не так .)
Destruction'y большое спасибо.

Кому нахамил, прощу прощения. Не в настроении был :P

Author:  Botinokk [ 2009-03-27 12:41:19 ]
Post subject: 

Мда че то тоже непонял где должен этот текстовый лежать...

Author:  kumatt [ 2009-07-18 17:45:40 ]
Post subject: 

а как добавить в скрипт ещё чтоб он выкидывал всё в сумку у дома, помогите плз :roll:

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/