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

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