А иммено у меня в нем проблема с самой копкой в шахте. В скрипте копка происходит в разделе na4alo. Проблема состоит в том, что чар начинает копать, но как только появляеться сообщение "There is nothing here to mine for.", он перестает копать и просто стоит, а он по идеи должен копать с другой точки. Я пробывал добавить это сообщение в скрипт но нечего не происходит....
Плз хелп.
############################################
### Шард Dragon World / www.drw.ru
############################################
### Автор скрипта: BETEP[WOD] or BETEPAH ###
############################################
### СКРИПТ ДЛЯ КОПКИ В НЕСКОЛЬКИХ ПЕЩЕРАХ.
sub Maning()
#BETEP#
var mx, my, mz, i, j, jor, ser, noto
dim runes[2]
runes[0]=21
runes[1]=22
runes[2]=23
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:
UO.DeleteJournal()
UO.UseSkill("Detect Hidden")
UO.Print("!!ПОИСК!!")
wait(3200)
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-2 to mx+2
for j = my -2 to my+2
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("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 9
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 5 and noto <> 0 and not uo.injournal("elemental") then
cavenumber=cavenumber+1
if cavenumber==maxcaves then
cavenumber=0
endif
Save()
loot()
wait(3000)
goto reccal
endif
next
wend
if uo.weight > 250 then ; Максимальный вес при котором домой с рудой
goto end
endif
wend
UO.DeleteJournal()
next
next
goto na4alo
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 20") ; домой ( в рунбуке слот 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
#BETEP#
end sub
sub loot() ; перекладка руды в сундук
if uo.waiting() then
uo.canceltarget()
endif
wait(500)
Uo.Press(33)
wait(1000)
VAR a,Exit
VAR UnloadCont='0x40004587';--------айди сундука куда кидать руду
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.waittargetobject('runeHome') ; домой
wait(500)
uo.cast('Recall')
wait(4500)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
wait(2000)
if uo.injournal("fade")then
uo.waittargetobject('runeHome') ; домой
wait(500)
uo.cast('Mark')
wait(4500)
uo.deletejournal()
endif
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()
VAR StoreRegCont=0x40028AF8;-------айди контейнера в сундуке с рудой где лежат реги и бланки
VAR CharRegBag='backpack'
VAR CountReg=10
VAR WaitTime=600
VAR MainSafe=0x40004587;---------айди контейнера где руда
wait(500)
Uo.Press(33)
wait(1000)
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.GA<CountReg then
UO.FindType('0x0F84','-1',StoreRegCont) ; GA
UO.Grab(STR(CountReg-UO.GA),'finditem')
wait(WaitTime)
endif
if UO.GS<CountReg then
UO.FindType('0x0F85','-1',StoreRegCont) ; GS
UO.Grab(STR(CountReg-UO.GS),'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
if UO.NS<CountReg then
UO.FindType('0x0F88','-1',StoreRegCont) ; NS
UO.Grab(STR(CountReg-UO.NS),'finditem')
wait(WaitTime)
endif
if UO.SA<CountReg then
UO.FindType('0x0F8C','-1',StoreRegCont) ; SA
UO.Grab(STR(CountReg-UO.SA),'finditem')
wait(WaitTime)
endif
if UO.SS<CountReg then
UO.FindType('0x0F8D','-1',StoreRegCont) ; SS
UO.Grab(STR(CountReg-UO.SS),'finditem')
wait(WaitTime)
endif
UO.FindType('0x1F4C','-1',StoreRegCont) ;
UO.Grab('2','finditem')
wait(WaitTime)
uo.exec("recall Runebook 1")
UO.UnsetReceivingContainer()
end:
end sub