Code: Select all
################
##### Мининг версия 2.5 #####
#############################
sub maning()
var mx, my, mz, i, j, e, f, g, t, Exit1, a
Uo.exec("set norbcheck 1") # нужно для рекола #
uo.exec("set norbcalc 1") # нужно для рекола #
e=1 # перменная местонахождения #
f=0 # перменная подсчета пустых тайлов #
# необходимо указать Runebook в Object - from target #
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 # радиус окапывания по у #
tohide() # прячемся #
UO.Print("Mine in: "+str(mx-i)+" "+str(my-j))
# ниже убрать мессагу по которой вы нехотите переходить на следующий тайл #
# необходимо указать Shovel в Object - from target #
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("Ore") and not UO.InJournal("Elvin") and not UO.InJournal("You put")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel") # необходимо указать Shovel в Object Types - from target #
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") then # вырыли элемента #
# ниже поменять на свою мелодию #
uo.playwav("d:\Games\Ultima Online 2D\element.wav")
# убиваем элемента, собираем руду и копаем дальше #
Vortex:
uo.exec('usetype 0x0f0e 0x0631')
uo.cast('Energy Vortex','self')
wait(4000)
CheckLag()
if uo.injournal("fizzles") or uo.injournal("line") then
goto Vortex
else
wait(10000)
CheckLag()
istka:
uo.exec('usetype 0x0f0e 0x09DF') # пьем манку #
uo.cast('Mass Dispel','self')
wait(4000)
CheckLag()
if uo.injournal("fizzles") then
goto istka
endif
DIM Ore[5]
Ore[0]=0x19B9 # 4 и более руды #
Ore[1]=0x19B7 # 1 руда #
Ore[2]=0x19BA # 2 руды #
Ore[3]=0x19B8 # 3 руды #
UO.SetReceivingContainer('backpack')
wait(500)
For t=0 to 3
Exit1=0
repeat
UO.FindType(Ore[a],'ground')
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
else
Exit1=1
endif
until Exit1==1
next
UO.UnSetReceivingContainer()
endif
goto na4alo
endif
# ниже записать всех своих знакомых киллеров =) #
Scaner()
if uo.injournal("Quas") or uo.injournal("Valkirye") or uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("revealed") or uo.injournal("LEXEY") or uo.injournal("REM") then # смотрим как ПК обломался и улыбаемся #
tut:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec('usetype 0x0f0e 0x0631') # пьем инвизку, лежат в паке #
Save() # улетаем домой если ПК Вас раздетектил(при появлении записанных ПК), все выкладываем пополняем реги перемаркиваем руну, медитируем, прячемся и назад через установленное время () #
e=1 # устанавливаем начальное положение #
# ниже поменять на свою мелодию #
uo.playwav("d:\Games\Ultima Online 2D\pk.wav")
wait(180000) # стоко времени ждем дома у сейфа #
goto reccal
endif
wend
if uo.weight > 600 then # вес по которому летим домой по рунбуке #
goto end
endif
wend
###########################################################
##### Переход если 20 раз не найдена руда вокруг себя #####
###########################################################
if UO.InJournal("no ore here") then
f=f+1
endif
if f>20 then # 20 раз #
# ниже поменять на свою мелодию - это я так для себя сделал, необязательная мелодия #
uo.playwav("d:\Games\Ultima Online 2D\perehod.wav")
f=0 # обнуление переменной пустых тайлов #
g=0 # переменная перехода #
if e == 1 then
UO.Print("Go West 7 step.") # столько раз будем шагать на West #
repeat
g=g+1
GoW()
if uo.injournal('revealed') then # прячемся #
tohide()
endif
if uo.injournal("Quas") or uo.injournal("Valkirye") or uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("LEXEY") or uo.injournal("REM") then # предохраняемся #
goto tut
endif
until g>6 # 6+1 стоко шагов #
UO.DeleteJournal()
e=2
goto na4alo
else
UO.Print("Go East 7 step.") # столько раз будем шагать на East #
repeat
g=g+1
GoE()
if uo.injournal('revealed') then
tohide()
endif
if uo.injournal("Quas") or uo.injournal("Valkirye") or uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("LEXEY") or uo.injournal("REM") then
goto tut
endif
until g>6
UO.DeleteJournal()
e=1
goto na4alo
endif
endif
#########
UO.DeleteJournal()
next # переключатель цикла #
next # то же #
goto na4alo # и по кругу пока не найдем 20 пустых тайлов #
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21") # домой по рунбуку - в первом слоте руна к сейфу #
mx = UO.GetX("self")
my = UO.GetY("self")
wait(11000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto end # проверка на физл #
endif
e=1
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(11000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal # проверка на физл #
endif
goto na4alo
end sub
##################################################
##### Переход на 1 клетку в направлении West #####
##################################################
sub GoW()
VAR walkwait=300
VAR x,y,dir=6
VAR key=36 ; Home key
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
if UO.GetDir()<>dir then
CheckLag()
endif
wend
UO.Press(key)
wait(walkwait)
if x==UO.GetX() and y==UO.GetY() then
CheckLag()
Endif
if UO.GetX()+1==x then
return -1
else
return 1
endif
end sub
##################################################
##### Переход на 1 клетку в направлении East #####
##################################################
sub GoE()
VAR walkwait=300
VAR x,y,dir=2
VAR key=34 ; PgDown
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
if UO.GetDir()<>dir then
CheckLag()
endif
wend
UO.Press(key)
wait(walkwait)
if x==UO.GetX() and y==UO.GetY() then
CheckLag()
endif
if UO.GetX()-1==x then
return -1
else
return 1
endif
end sub
#############################################################
##### Анти ПК: если Вас раздетектили - по рунке к сейфу #####
#############################################################
sub Save() # описано выше #
reccal:
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')
repeat
wait(500)
until uo.injournal("fizzles") or uo.injournal("Kal Ort Por")
wait(3000)
if uo.injournal("fizzles") then
goto reccal
endif
tohide()
loot()
wait(3000)
UO.DeleteJournal()
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Mark','finditem')
wait(5000)
uo.exec('usetype 0x0f0e 0x09DF') # Пьем манку #
Med:
repeat
UO.UseSkill('Meditation')
wait(5000)
until uo.injournal("peace") or uo.injournal("lose")
if UO.InJournal('You lose') then
UO.DeleteJournal()
goto Med
endif
fillreagents()
wait(3000)
tohide()
end sub
#########################################
##### Упаковка готового продукта =) #####
#########################################
sub loot() # складываем руду в сейф #
VAR a, Exit
if uo.waiting() then
uo.canceltarget()
endif
VAR UnloadCont='0x4000E3AA' # поменять на ID своего сейфа куда складываем руду, узнать его можно командой ',info' #
DIM Ore[5]
Ore[0]=0x19B9 # 4 и более руды #
Ore[1]=0x19B7 # 1 руда #
Ore[2]=0x19BA # 2 руды #
Ore[3]=0x19B8 # 3 руды #
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 tohide()
while NOT UO.Hidden()
UO.DeleteJournal()
UO.Exec('warmode 0')
UO.UseSkill('Stealth')
repeat
wait(300)
until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied')
wend
end sub
##############################################
##### Пополнение всех нужных регов до 10 #####
##############################################
sub fillreagents()
VAR StoreRegCont='0x40173275' # непосредственно сам пак с регами в сейфе #
VAR CharRegBag='backpack' # куда сложить реги себе #
VAR CountReg=10 # количество регов каждого типа #
VAR WaitTime=1500
VAR MainSafe='0x4000E3AA' # сейф где лежит пак с регами #
UO.FindType('0x09B0','0x0044','backpack')
if UO.GetQuantity('finditem')>0 then
CharRegBag='finditem'
endif
UO.UseObject(MainSafe)
UO.UseObject(StoreRegCont)
UO.SetReceivingContainer(CharRegBag)
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.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
UO.UnsetReceivingContainer()
end sub
###########################
##### Проверка на лаг #####
###########################
sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(500)
until UO.InJournal('backpack')
end sub
###############################
##### Модуль сканирования #####
###############################
Sub Scaner()
var jor, ser, noto
uo.ignore('self')
for jor = 0 to 9
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("elemental") and not uo.injournal("You loosen") then
uo.print("!!!ALARM!!!")
endif
next
endsub
###############################
это тот же скрипт только мной переделанный возьми из него только то что тебе нужно, а именно ходилку =) ... если ты хоть немного понимаешь в скриптах, то думаю тебе не составит труда это сделать