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