Шард: Dragon World
Скрипт: Мининг по скале
Проблемы:
1. Иногда пропускает шаг на след. координату и уходит в лес)
2. Несмотря на вроде бы вставленный ChekWorldSave скрипт сбивается на сейве.
Вставлял паузы, менял значение обкапывания, однако результатов не дало.
Вот данный скрипт:
Code: Select all
sub go(x,y,k,m)
while UO.GetX()<>x or UO.GetY()<>y
UO.Press(k)
CheckLag()
wend
if m==1 then
Dig()
end if
end sub
sub main()
while Not UO.Dead()
FollowMine()
UnLoad()
GoBeg()
wend
end sub
#PageUp-33 PageDown-34 End-35 Home-36
sub FollowMine()
dig()
go(2593,834,35,1) #k
go(2593,840,35,1)
go(2594,840,34,1)
go(2595,840,34,1)
go(2596,840,34,1)
go(2596,841,35,1)
go(2597,841,34,1)
go(2598,841,34,1)#
go(2599,841,34,1)
go(2600,841,34,1)
go(2601,841,34,1)
go(2602,841,34,1)
go(2603,841,34,1)
go(2604,841,34,1)
go(2605,841,34,1)
go(2606,841,34,1)
go(2607,841,34,1)
wait(1000)
go(2608,841,34,1)#
wait(1000)
go(2608,842,35,1)
wait(100)
go(2609,842,34,1)
go(2609,843,35,1)
go(2610,843,34,1)
go(2611,843,34,1)
go(2611,844,35,1)
go(2612,844,34,1)
go(2613,844,34,1)
go(2613,845,35,1)
go(2614,845,34,1)
go(2614,846,35,1)
go(2615,846,34,1)
go(2615,847,35,1)
go(2615,848,35,1)
go(2615,849,35,1)
go(2615,850,35,1)
wait(100)
go(2616,850,34,1)
wait(100)
go(2616,851,35,1)
go(2617,851,34,1)
wait(1000)
go(2617,852,35,1)
wait(1000)
go(2618,852,34,1)
go(2618,853,35,1)
wait(1000)
go(2618,854,35,1)
go(2619,854,34,1)
go(2619,855,35,1)
go(2619,856,35,1)
go(2619,857,35,1)
go(2619,858,35,1)
go(2619,859,35,1)
go(2619,860,35,1)
go(2619,861,35,1)
go(2619,862,35,1)
go(2619,863,35,1)
go(2619,864,35,1)
go(2619,865,35,1)
go(2619,864,33,1)
go(2619,863,33,1)
wait(100)
go(2619,838,33,1)
wait(100)
go(2618,838,36,1)
go(2593,838,36,1)
wait(100)
go(2593,837,33,1)
wait(100)
go(2593,833,33,1)
end sub
sub GoBeg()
go(2593,833,33,0)
end sub
sub CheckLag()
UO.Click('backpack')
repeat
wait(50)
until UO.InJournal('backpack')
end sub
sub tohide()
while NOT UO.Hidden()
UO.Warmode('0')
UO.UseSkill('Hiding')
wait(5000)
wend
end sub
sub UnLoad()
var i
DIM Item[12]
Item[1]=0x19B9 ; >3 ore
Item[2]=0x19B7 ; 1 ore
Item[3]=0x19BA ; 2 ore
Item[4]=0x19B8 ; 3 ore
Item[5]=0x0F11 ; saphires
Item[6]=0x0F16 ; amethysts
Item[7]=0x0F18 ; tourmalines
Item[8]=0x0F15 ; citrines
Item[9]=0x0F10 ; emeralds
Item[10]=0x0F0F ; star sapphires
Item[11]=0x0F26 ; diamonds
Item[12]=0x0EED ; gold
for i = 1 to 12
UO.FindType(Item[i], '-1', 'backpack')
while UO.GetQuantity('finditem') > 0
UO.MoveItem('finditem','-1',tSeif)
Wait(1000)
CheckLag()
UO.FindType(Item[i],'-1','backpack')
wend
next
end sub
sub Dig()
var mx = UO.GetX("self")
var my = UO.GetY("self")
var mz = UO.GetZ("self")
var TileNum='1339'
var i,j,k
if UO.Dead() then
UO.CloseUO()
end if
for i = mx-1 to mx+1
for j = my-1 to my+1
repeat
uo.DeleteJournal()
k=0
if not uo.Hidden() then
repeat
uo.UseSkill('Hiding')
wait(5000)
until uo.Hidden()
end if
CheckLag()
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Exec("usetype " + tShovel)
repeat
wait(100)
k=k+1
until UO.InJournal("You put|location|no ore|but fail|far away|rock|OOPS|attacking you") || k>100
until UO.InJournal("no ore here|location|far away|in rock")
if UO.InJournal("World is saving now|PAUSED for Resync") then
CheckWS()
end if
next
next
return 1
end sub
sub Pause()
UO.DeleteJournal()
REPEAT
WAIT(3000)
UO.Print("!@! ELEMENTAL !@!")
UNTIL UO.InJournal('GO')
UO.Print("!@! KOPAU !@!")
end sub
sub CheckWS()
if UO.InJournal("World is saving now|PAUSED for Resync") then
DelJournal("World is saving now")
DelJournal("PAUSED for Resync")
UO.Print("ÍÀ×ÀËÎÑÜ ÑÎÕÐÀÍÅÍÈÅ ÌÈÐÀ")
while not UO.InJournal("World data saved in|Resync Complete")
wait(100)
wend
UO.Print("ÑÎÕÐÀÍÅÍÈÅ ÌÈÐÀ ÑÂÅÐØÈËÎÑÜ")
endif
endsub
SUB DelJournal(msg)
while UO.InJournal(msg)
UO.SetJournalLine(UO.InJournal(msg) - 1, "-- -- --")
wend
endsub