Помогите доработать мининг на ДРВ
Posted: 2006-04-01 20:26:06
Сегодня на шарде сократили количество выкапываемых и добываемых рессурсов.
Вообщем есть скрипт. Его надо поправить малость. Если всё вокруг себя выкопали, по смещаемся чуть ниже. Вообщем примитивную ходилку чтоли в него вклеить. Спасибо.
Вообщем есть скрипт. Его надо поправить малость. Если всё вокруг себя выкопали, по смещаемся чуть ниже. Вообщем примитивную ходилку чтоли в него вклеить. Спасибо.
Code: Select all
sub maning()
var mx, my, mz, i, j, jor, ser, noto, ya,k, name, QWART = '0x002D3690', cave = 1
Uo.exec("set norbcheck 1"); äëÿ ðåêîëà
uo.exec("set norbcalc 1"); òîæå
uo.print('!!Âûáåðè Ëîïàòó!! ')
uo.exec('addobject Shovel')
while uo.targeting()
wait(100)
wend
uo.print('!!Âûáåðè Ðóíáóê!! ')
uo.exec('addobject Runebook')
while uo.targeting()
wait(100)
wend
na4alo:
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4
while not UO.Hidden()
UO.Say(",warmode 0")
wait(200)
uo.print("Ïðÿ÷åìñÿ...")
UO.UseSkill("Hiding")
wait(4000)
wend
UO.Print("Êîïàåì â êîîðäèíàòàõ: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("You put the Iron") and not UO.InJournal("You put the Old Copper") and not UO.InJournal("You put the Dull Copper") and not UO.InJournal("You put the Copper") and not UO.InJournal("You put the Rusty") and not UO.InJournal("You put the Bronze")
if UO.Dead() then
pwav()
UO.TextPrint('Êðûñà!!!==='+name+ 'Öâåò=' +str(noto))
Pause()
end if
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Deletejournal()
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel")
k = 0
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock") and k < 10
wait (1000)
k = k + 1
for jor = 0 to 9
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
name = UO.GetName(ser)
ya = UO.GetSerial('self')
if ser <> ya and noto <> 0 and ser <> QWART then
UO.TextOpen()
UO.TextPrint('Ñðóëèë :) --- '+name+ ' Öâåò=' +str(noto))
if uo.waiting() then
uo.canceltarget()
endif
Save()
pwavw()
loot()
cave = cave + 1
if cave > 4 then
cave = 1
end if
Mana()
;wait(30000) ; âðåìÿ â ñåêóíäàõ ïðè îæèäàíèè ïîêà óéäåò ÏÊ
goto reccal
endif
next
wend
if UO.InJournal("but fail") AND k < 2 then
wait(8000)
UO.DeleteJournal()
endif
if uo.weight > 720 then ; Ìàêñèìàëüíûé âåñ ïðè êîòîðîì äîìîé ñ ðóäîé
goto end
endif
wend
UO.DeleteJournal()
next
next
goto na4alo
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21") ; äîìîé ( â ðóíáóêå ñëîò 1 )
wait(10000)
loot()
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
if cave == 1 then
uo.exec("recall Runebook 33") ; â øàõòó ( â ðóíáóêå ñëîò 2 )
end if
if cave == 2 then
uo.exec("recall Runebook 46") ; â øàõòó ( â ðóíáóêå ñëîò 3 )
end if
if cave == 3 then
uo.exec("recall Runebook 58") ; â øàõòó ( â ðóíáóêå ñëîò 4 )
end if
if cave == 4 then
uo.exec("recall Runebook 64") ; â øàõòó ( â ðóíáóêå ñëîò 5 )
end if
mx = UO.GetX("self")
my = UO.GetY("self")
wait(10000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
goto na4alo
end sub
sub loot() ; ïåðåêëàäêà ðóäû â ñóíäóê
if uo.waiting() then
uo.canceltarget()
endif
VAR a,Exit
VAR UnloadCont= '0x40429DFC' ; ÀÉÄÈ ñóíäóêà äëÿ ðóäû
DIM Ore[5]
Ore[0]=0x19B9 ; 4 and more ore
Ore[1]=0x19B7 ; 1 ore
Ore[2]=0x19BA ; 2 ore
Ore[3]=0x19B8 ; 3 ore
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a=0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
endif
until Exit==1
Next
UO.UnSetReceivingContainer()
end sub
sub Save() ; Ðåêîëë îò ÏÊ ïðè èõ ïîÿâëåíèè (â ïàêå ðóíêà â áåçîïàñíîå ìåñòî è ðåãè)
var mx, my
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
mx = UO.GetX("self")
my = UO.GetY("self")
UO.DeleteJournal()
UO.Usetype('0x0F0E','0x0631')
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')
wait(4000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
end sub
sub pwav() ; çâóê ïðè âûêàïûâàíèè ÝËÅÌÅÍÒÀËÀ
uo.playwav("C:\Trumpet1.wav")
endsub
sub pwavw(); çâóê ïðè ïîÿâëåíèè ÏÊ
uo.playwav("C:\Alarm.wav")
endsub
sub Pause() ; Ïàóçà ñêðèïòà åñëè âûêîïàëè Ýëåìà (ïðîäîëæèòü ñêàçàâ GO )
UO.DeleteJournal()
REPEAT
WAIT(3000)
UO.Print("!!!ÑÊÐÈÏÒ ÍÀ ÏÀÓÇÅ!!!!")
UNTIL UO.InJournal('GO')
UO.Print("!!!ÑÊÐÈÏÒ ÏÐÎÄÎËÆÅÍ!!!!")
endif
end sub
#############################Ïðÿ÷åì îêíî ÓÎ##################################3
sub HideWindowUO()
UO.asmUOHideEx(); Ïðÿ÷åì îêíî ÓÎ â òðåé
end sub
########################################################
sub Mana()
while UO.Mana < UO.Int
UO.Useskill('Meditation')
wait(1000)
wend
end sub