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("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)
if uo.injournal("heavy") or uo.dead() then
pwav()
endif
for jor = 0 to 9
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("elemental") then
if uo.waiting() then
uo.canceltarget()
endif
pwavw()
wait(180000) ; время в секундах при ожидании пока уйдет ПК
loot()
wait(3000)
goto reccal
endif
next
wend
if uo.weight > 625 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
uo.exec("recall Runebook 94") ; в шахту ( в рунбуке слот 8 )
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
while not UO.Hidden()
UO.UseSkill("Stealth")
wait(4000)
wend
VAR UnloadCont='0x403B3732' ; АЙДИ сундука для руды
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.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
в общем вставил с грехом пополам питьё бутылки перед тем, как улететь. Сейчас можете подсказать пожалуйста, где именно вставлять питьё бутылки, как только он обратно в шахту возвращаетца?
спасиб Мираж! Пардон что докучаю, но дело в том, что перед полётом в шахту он пьёт инвиз, а в шахту прилетает не в инвизе (ну это везде так кажись). Можно ли сделать, что как только он в шахту обратно прилетает - пьёт инвиз! Тоесть полусаетца надо вставлять перед началом копки?
UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4
попробуй.
Там где я играл копание выводит из инвиза. Но это специфика сервера скорее чем общее правило.
И он же все равно прятаться старается хайдингом. Зачем тратить вес и деньги на инвизки? ПК захочет поймать - поймает. Проще вписать оживление с креста.
sub ToHide()
VAR LastTimer, n=0, HidFlag=1
if UO.Hidden() then
HidFlag=0
else
end if
while HidFlag
uo.DeleteJournal()
LastTimer=UO.Timer()
UO.Exec('warmode 0')
UO.UseSkill('Hiding')
repeat
wait(100)
until UO.InJournal("can't seem to hide|to perform|stop trying|прекратили|не удалось|удачно|You have hidden yourself well") || LastTimer+50<UO.Timer()
if UO.InJournal("0xA5F8|удачно|You have hidden yourself well") then
HidFlag=0
else
n=n+1
if n>3 then
UO.Set('quiet','0')
UO.Print('Спрятаться не получается')
UO.Set('quiet','1')
MyTerminate()
end if
end if
wend
end sub
Вписываешь куда требуется ToHide()
Пытается спрятаться 3 раза, если не получается - вырубает скрипт функцией MyTerminate()
Сообщения возможно потребуется поменять под сервер.
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(1000)
###wend
ToHide()
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
Ток он как прилетит после выгрузки - немножко стоит секунды 2-3, а потом ток прячетца. Или так и надо?
until UO.InJournal("can't seem to hide|to perform|stop trying|прекратили|не удалось|удачно|You have hidden yourself well") || LastTimer+50<UO.Timer()
if UO.InJournal("0xA5F8|удачно|You have hidden yourself well") then