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

Ask for help

Moderators: Murderator+, Murderator

Post Reply
evr0
Posts: 12
Joined: 2004-07-25 07:26:59

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

Post by evr0 »

Помогите со скриптом, цель скрипта такая: выкопать все точки вокруг себя (Можно всего 4), потом движение на три клетки в любую сторону.
Скрипт надо именно такой простой, из него уже буду доделывать. Проблема именно с выкапыванием и движением, прочитал другие скрипты немного не до конца понял. Объясните плс как и что.
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

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

Post 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) и будет тебе простейший сдвиг на три клетки.
evr0
Posts: 12
Joined: 2004-07-25 07:26:59

Post by evr0 »

спасибо большое... про 4 клети я запарился +)
evr0
Posts: 12
Joined: 2004-07-25 07:26:59

Post by evr0 »

и еще вопросик, не могу понять где поставить while чтобы он бесконечен был, просто чтобы бесконечно окапывал все клетки по порядку.
Newbie [Olymp]
Posts: 20
Joined: 2004-07-26 03:31:59
Contact:

Post by Newbie [Olymp] »

после всех определений поставь
while not wo.dead()

и не забудь закрыть в конце
evr0
Posts: 12
Joined: 2004-07-25 07:26:59

Post by evr0 »

эммм... что значит определения? +) просто в кодинге я нуб, может понятий каких не знаю +)
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

evr0 wrote:эммм... что значит определения? +) просто в кодинге я нуб, может понятий каких не знаю +)
После всех строчек с VAR ... перед первой строкой с for вставь
while UO.Dead()
перед endsub вставь
Wend
Post Reply