Page 1 of 1

Опять же про мининг

Posted: 2004-07-25 08:39:32
by evr0
Помогите со скриптом, цель скрипта такая: выкопать все точки вокруг себя (Можно всего 4), потом движение на три клетки в любую сторону.
Скрипт надо именно такой простой, из него уже буду доделывать. Проблема именно с выкапыванием и движением, прочитал другие скрипты немного не до конца понял. Объясните плс как и что.

Re: Опять же про мининг

Posted: 2004-07-25 19:29:01
by Edred
evr0 wrote:Помогите со скриптом, цель скрипта такая: выкопать все точки вокруг себя (Можно всего 4), потом движение на три клетки в любую сторону.
Скрипт надо именно такой простой, из него уже буду доделывать. Проблема именно с выкапыванием и движением, прочитал другие скрипты немного не до конца понял. Объясните плс как и что.
Что значит можно всего 4? То есть можно копать на 4 клетки от чара? Тогда у тебя получается копка в квадрате 9х9, то есть 81 клетка. Если только на 2 клетки от чара, то все равно получится квадрат 5х5, то есть 25 клеток (не забывай всегда про клетку под ногами чара). А просто 4 клетки никак не получится.

Code: Select all

; Mining around char's 1.02b (c) Edred 
; 
sub minround() 

VAR Kirka = '0x0E85'   ; Тип Кирки 
VAR MaxVes = 550   ; Максимальный вес, подымаемый чаром минус 10-15 стоунов 
VAR TileNum = '1339'   ; Тайл пола пещеры (наиболее распространенный тип) 
VAR x, y, t, k 
VAR MaxTime = 100   ; измеряется в 1/10 сек. 
VAR ms1 = "There is no ore here to mine" 
VAR ms2 = "You can't use" 
VAR ms3 = "You put the" 
VAR ms4 = "You fail to find any useable ore" 
VAR ms5 = "You are too far away" 
VAR ms6 = "Try mining in rock" 
VAR ms7 = "You can't see that" 

for y=-2 to 2 
   for x=-2 to 2 
      k = 0 
      repeat 
         UO.DeleteJournal() 
         t = UO.Timer() 
         k = k + 1 
         UO.CancelTarget() 
         wait(300) 
         UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0) 
         UO.UseType( Kirka ) 
         repeat 
            wait(300) 
         until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR ((t + MaxTime) < UO.Timer()) 
         If UO.Weight > MaxVes Then 
            ; Вес превышен! 
            UO.Print(" Overweight!" ) 
            return 
         Endif 
      until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10) ) 
   next 
next 
endsub
вот тебе копка вокруг чара. На 2 клетки в каждую сторону. Древний скриптик, но работает. Движение - вставь в конце четыре штуки UO.Press(100) и будет тебе простейший сдвиг на три клетки.

Posted: 2004-07-25 20:16:29
by evr0
спасибо большое... про 4 клети я запарился +)

Posted: 2004-07-25 21:02:12
by evr0
и еще вопросик, не могу понять где поставить while чтобы он бесконечен был, просто чтобы бесконечно окапывал все клетки по порядку.

Posted: 2004-07-26 06:37:26
by Newbie [Olymp]
после всех определений поставь
while not wo.dead()

и не забудь закрыть в конце

Posted: 2004-07-26 09:17:00
by evr0
эммм... что значит определения? +) просто в кодинге я нуб, может понятий каких не знаю +)

Posted: 2004-07-26 13:04:55
by Edred
evr0 wrote:эммм... что значит определения? +) просто в кодинге я нуб, может понятий каких не знаю +)
После всех строчек с VAR ... перед первой строкой с for вставь
while UO.Dead()
перед endsub вставь
Wend