Page 1 of 1

Мининг. (Хелп с улетом от пк)

Posted: 2008-06-09 23:24:29
by Mr_Blood
Давно не играл. Вернулся на дрв, гп по 0. Решил поставить на макрос чара поднять гп... Да тут мне задачка: скрипт перестал улетать при появлении других чаров... Когда выкапывает элика то убегает, а при появлении пк или другого чар - нет, а раньше улетал...
Может на ДРВ что то поменялось...
Вот и сам скрипт:

Code: Select all

sub Maning() 
var mx, my, mz, i, j, jor, ser, noto
dim runes[2]
runes[0]=88
runes[1]=94
runes[2]=1025
var cavenumber=0
var maxcaves=3

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

uo.print('!!????-?????????!! ')
uo.exec('addobject runeHome')
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.Warmode(0)
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("Iron Ore") and not UO.InJournal("Copper") and not UO.InJournal("Old Copper") and not UO.InJournal("Dull Copper") and not UO.InJournal("Silver") and not UO.InJournal("Gold") and not UO.InJournal("Bronze") and not UO.InJournal("Rusty Ore")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel")
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")
wait (500)
for jor = 0 to 99
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 0 and noto <> 2 and not uo.injournal("loosen") then
cavenumber=cavenumber+1
if cavenumber==maxcaves then
cavenumber=0
endif
Save()
loot()
wait(3000)
goto reccal
endif
next
wend
if uo.weight > 650 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)
Reagents()
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook " + Str(runes[cavenumber]))
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='0x4041b0d1';--------???? ??????? ???? ?????? ????   
DIM Ore[13]
Ore[0]=0x19B9 ; 4 and more ore
Ore[1]=0x19B7 ; 1 ore
Ore[2]=0x19BA ; 2 ore
Ore[3]=0x19B8 ; 3 ore
Ore[4]=0x0F10
Ore[5]=0x0F0F
Ore[6]=0x0F16
Ore[7]=0x0F18
Ore[8]=0x0F15
Ore[9]=0x0F26
Ore[10]=0x0F11
Ore[11]=0x0EED
Ore[12]=0x0F0E
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a=0 to 10
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
uo.UseType('0x0F0E','0x0631')
wait(100)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
mx = UO.GetX("self")
my = UO.GetY("self")
UO.DeleteJournal()
uo.waittargetobject('runeHome') ; ?????
wait(500)
uo.cast('Recall')
wait(2000)
Screen()
pwav()
wait(2500)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
wait(2000)
Reagents()
end sub

sub time()
var hh,mm,ss,hms,t=str(UO.Time())
if len(t)<=2 then
hh="0"
mm="0"
ss=t
endif
if len(t)==3 then
hh="0"
mm=left(t,len(t)-2)
ss=right(t,len(t)-1)
endif
if len(t)==4 then
hh="0"
mm=left(t,len(t)-2)
ss=right(t,len(t)-2)
endif
if len(t)==5 then
hh=left(t,len(t)-4)
hms=left(t,len(t)-2)
mm=right(hms,len(hms)-1)
ss=right(t,len(t)-3)
endif
if len(t)==6 then
hh=left(t,len(t)-4)
hms=left(t,len(t)-2)
mm=right(hms,len(hms)-2)
ss=right(t,len(t)-4)
endif
return hh+":"+mm+":"+ss
end sub

sub Hide()
repeat
while not UO.Hidden()
wait(100)
UO.Warmode("1")
uo.print("????????...")
UO.UseSkill("Stealth")
wait(4100)
wend
wait(100)
until false
end sub

sub Reagents()
uo.exec("recall Runebook 2")
UO.UnsetReceivingContainer()
VAR StoreRegCont=0x4041b0d1;-------???? ?????????? ? ??????? ? ????? ??? ?????  ???? ? ??????
   VAR CharRegBag='backpack'
   VAR CountReg=10
   VAR WaitTime=600
VAR MainSafe=0x401B1D95;---------???? ?????????? ??? ????

UO.UseObject(MainSafe)
UO.UseObject(StoreRegCont)
UO.SetReceivingContainer('backpack')
wait(WaitTime)
if UO.BM<CountReg then
UO.FindType('0x0F7B','-1',StoreRegCont) ; BM
UO.Grab(STR((CountReg-UO.BM)),'finditem')
wait(WaitTime)
endif
if UO.BP<CountReg then
UO.FindType('0x0F7A','-1',StoreRegCont) ; BP
UO.Grab(STR(CountReg-UO.BP),'finditem')
wait(WaitTime)
endif
if UO.MR<CountReg then
UO.FindType('0x0F86','-1',StoreRegCont) ; MR
UO.Grab(STR(CountReg-UO.MR),'finditem')
wait(WaitTime)
endif
UO.FindType('0x0F0E','0x0631','backpack') ; invisible
While UO.GetQuantity('finditem')<2
UO.FindType('0x0F0E','0x0631',StoreRegCont)
wait(200)
UO.Grab('1','finditem')
wait(WaitTime)
wend

UO.FindType('0x1F4C','0x000',StoreRegCont)
wait(WaitTime)
UO.Grab('1','finditem')

uo.exec("recall Runebook 1")
UO.UnsetReceivingContainer()
end:
end sub

sub Screen()
;while not uo.dead()
;wait(50)
;wend
uo.snap()
end sub


sub pwav()
     
     uo.playwav("C:\1.wav")
   
   
   
end sub


sub Reconnect()
var ReconnectTime,rFlag
ReconnectTime='0'
rFlag=1
repeat
while (uo.ObjAtLayer('Bpack')=='')
if rFlag then
ReconnectTime=MakeTime()
rFlag=0
end if
wait(20000)
uo.Say('')
wait(3000)
uo.Say('')
wait(3000)
uo.Say('')
wait(3000)
uo.LDblClick(357,164)
uo.LClick(616,459)
wait(3000)
wend
wait(3000)
if (rFlag==0) and (ReconnectTime<>'0') then
uo.TextOpen()
uo.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
rFlag=1
ReconnectTime='0'
end if
until false
end sub