У меня проблемма, мне нужен скрипт на мининг, на зулу, что-бы запоминал маршрут, и по нему ходил и копал... Помогите плз...
Вот скрипт который просто ходит с запада на восток и обратно, и при этом копает...
Sub main()
Var i
While UO.Life>0
For i=1 to 15
kopat()
UO.Press(34)
Next
kopat()
For i=1 to 5
wait(300)
UO.Press(33)
Next
For i=1 to 16
kopat()
UO.Press(36)
Next
kopat()
For i=1 to 5
wait(300)
UO.Press(35)
Next
UO.Press(34)
Wend
End sub
Sub kopat()
Var where_x,where_y,coords,i
UO.DeleteJournal()
where_x=uo.getx()
where_y=uo.gety()
For i=-2 to 2
coords="waittargettile "+" 1343 "+str(where_x)+" "+str(where_y+i)+" 0"
UO.Exec(coords)
UO.Exec("usetype '0x0E85'") # Çäåñü ïðîïèñûâàåì òèï êèðêè
UO.DeleteJournal()
While (not (UO.InJournal("stop mining") or UO.InJournal("far")))
Wait(1000)
Wend
Next
End sub
пОМОГИТЕ СОСКРИПТОМ ПЛЗ...
Moderators: Murderator+, Murderator
-
- Posts: 308
- Joined: 2005-07-17 15:30:52
- Location: www.drw.ru
Собственно вот скрипт, писал сам, дописал на днях, еще не тестил
Code: Select all
####################################################################################################################
#_Mining for Forgotten World v1.0_#####_Crafted by SaUroN_##########################################################
####################################################################################################################
#_Для работы скрипта вам понадобится: дом, руна к дому, 2 сундука, в первом должно быть: много кирок, много_########
#_тотал манок, много инвизок, много регов, во второй будет складываться руда, так же вам понадобится_###############
#_мин 90% магии для убийства элементалей, 5 рун в бэкпаке, в различные шахты. ВНИМАНИЕ!!!: руны должны_#############
#_быть замарчены следующим образом, чар ходит по квадруту 5 на 5 тайтлов (шагов) и копает руду,_####################
#_при этом руна дожна быть замарчена в левом верхнем углу этого квардарта, так же вам нужно учитывать то что_#######
#_чар не будет обходить препятствия, поэтому выбирайте шахты по просторнее, при убийстве элементаля чар отходит_####
#_от него на 3 тайтла (шага) вниз, руна к дому должна быть замарчена напротив входа, в 5 тайтлах (шагах)_###########
#_от него, чар будет входить в дом путем ходьбы на северо-восток._##################################################
####################################################################################################################
#_Принцип работы скрипта: чар стоит в доме, набирает все необходимое из первого сундука, телепортируется_###########
#_в шахту, копает, как только выкапывает все вокруг себя, переходит на следующее место, при появлении эелементаля_##
#_убавет его и лутает, продолжает копать, при появлении других игроков, телепортируется в следующую шахту,_#########
#_затем продолжает копать, при наборе максимального веса чар телепортируется к дому, подходит вплотную к двери,_####
#_использует детект хид, кастует Reveal на себя, если в радиусе 3м никого не обнаруживает,_#########################
#_за пол секунды=>(открывает дверь, залетает в дом, закрывает дверь), проходит к дальней стенке дома, где стоят_####
#_сундуки, затем складывает руду во второй сундук, набирает все необходимое и телепортируется в следующую _#########
#_шахту, при обкопке меняет сломавшиеся кирки._#####################################################################
####################################################################################################################
sub Mining()
uo.setglobal('per1', '0')
wait(100)
uo.setglobal('per2', '1')
wait(100)
uo.setglobal('per3', '0')
wait(100)
uo.setglobal('per4', '1')
uo.print('Укажите сундук с регами, кирками, инвизками, манками')
uo.exec('addobject Sunduk1')
while uo.targeting()
wait(100)
wend
wait(1000)
uo.print('Укажите сундук для руды')
uo.exec('addobject Sunduk2')
while uo.targeting()
wait(100)
wend
wait(1000)
uo.print('Укажите дверь в дом')
uo.exec('addobject Door')
while uo.targeting()
wait(100)
wend
wait(1000)
uo.print('Укажите руну к дому')
uo.exec('addobject Home')
while uo.targeting()
wait(100)
wend
wait(1000)
uo.print('Укажите руну в шахту 1')
uo.exec('addobject mine1')
while uo.targeting()
wait(100)
wend
wait(1000)
uo.print('Укажите руну в шахту 2')
uo.exec('addobject mine2')
while uo.targeting()
wait(100)
wend
wait(1000)
uo.print('Укажите руну в шахту 3')
uo.exec('addobject mine3')
while uo.targeting()
wait(100)
wend
wait(1000)
uo.print('Укажите руну в шахту 4')
uo.exec('addobject mine4')
while uo.targeting()
wait(100)
wend
wait(1000)
uo.print('Укажите руну в шахту 5')
uo.exec('addobject mine5')
while uo.targeting()
wait(100)
wend
uo.deletejournal()
uo.exec('exec CheckingItems')
end sub
sub CheckingItems()
if val(uo.getglobal('per1')) == 1 then
DIM Ore[4]
Ore[0] = '0x19B9'
Ore[1] = '0x19B7'
Ore[2] = '0x19BA'
Ore[3] = '0x19B8'
for var a = 0 to 3
uo.findtype(Ore[a])
while uo.findcount() > 0
uo.moveitem('finditem', '-1', 'Sunduk2')
wait(1000)
uo.findtype(Ore[a])
wend
next
endif
uo.setglobal('per1', '1')
DIM Reg[6]
Reg[0] = '0x0F7A'
Reg[1] = '0x0F7B'
Reg[2] = '0x0F86'
Reg[3] = '0x0F84'
Reg[4] = '0x0F8C'
Reg[5] = '0x0F88'
VAR b
for b = 0 to 5
if uo.count( Reg[b] ) < 20 then
uo.findtype( Reg[b], '-1', 'Sunduk1')
if uo.findcount() > 0 then
uo.moveitem('finditem', '20')
wait(1000)
else
uo.print('Нет необходимого количества регов в сундуке')
wait(1000)
return
endif
endif
next
DIM Botl[2]
Botl[0] = '0x0F09'
Botl[1] = '0x0F08'
VAR c
for c = 0 to 1
if uo.count( Botl[c] ) < 5 then
uo.findtype( Botl[c], '-1', 'Sunduk1')
if uo.findcount() > 0 then
uo.moveitem('finditem', '5')
wait(1000)
else
uo.print('Нет необходимого количества ботлов в сундуке')
wait(1000)
return
endif
endif
next
uo.findtype('0x0E85')
while uo.findcount() < 7
uo.findtype('0x0E85', '-1', 'Sunduk1')
if uo.findcount() > 0 then
uo.moveitem('finditem', '1')
else
uo.print('Нет необходимого количества кирок в сундуке')
wait(500)
return
endif
wait(1000)
wend
end sub
sub KillElemental()
VAR a, b, c, d, e
for a = 1 to 3
uo.press(40)
wait(300)
next
wait(1000)
uo.usetype('0x0F08')
wait(100)
uo.exec('exec CheckingInvis')
uo.set('finddistance', '5')
uo.findtype( '0x000E', '-1', '1' )
b = uo.getserial('finditem')
step1:
if uo.Mana < 50 then
uo.usetype('0x0F09')
wait(500)
endif
uo.waittargetobject('b')
uo.cast('Energy Vortex')
wait(7000)
if uo.injournal('fizzles') then
wait(1000)
uo.deletejournal('fizzles')
goto step1
else
while not uo.injournal('Body of')
uo.set('finddistance', '12')
uo.findtype( '0x000D', '-1', '1' )
c = uo.getserial('finditem')
if not uo.findcount() > 0 then
goto step1
else
wait(5000)
endif
wend
uo.deletejournal('Body of')
step2:
if uo.Mana < 20 then
uo.usetype('0x0F09')
wait(100)
endif
uo.waittargetobject('c')
uo.cast('Dispel')
wait(5000)
if uo.injournal('fizzles') then
wait(1000)
uo.deletejournal('fizzles')
goto step2
endif
for d = 1 to 3
uo.press(38)
wait(300)
next
wait(1000)
if uo.weight > 600 then
uo.exec('exec GoHome')
wait(100)
uo.exec('terminate Obkopka')
return
endif
DIM item[2]
item[0] = '0x1BF5'
item[1] = '0x0EED'
uo.useobject('lastcorpse')
wait(1000)
for e = 0 to 1
uo.findtype( item[e], '-1', 'lastcorpse')
while uo.findcount() > 0
uo.moveitem('finditem')
wait(1000)
wend
next
end sub
sub CheckingInvis()
uo.deletejournal()
while not uo.injournal('An Ort')
if uo.injournal('revealed') then
uo.deletejournal('revealed')
uo.usetype('0x0F08')
else
wait(500)
endif
wend
uo.deletejournal('An Ort')
end sub
sub Teleportation()
VAR a
step1:
if uo.Mana < 11 then
uo.usetype('0x0F09')
wait(300)
endif
if val(uo.getglobal('per2')) == 1 then
uo.waittargetobject('mine1')
uo.cast('Recall')
endif
if val(uo.getglobal('per2')) == 2 then
uo.waittargetobject('mine2')
uo.cast('Recall')
endif
if val(uo.getglobal('per2')) == 3 then
uo.waittargetobject('mine3')
uo.cast('Recall')
endif
if val(uo.getglobal('per2')) == 4 then
uo.waittargetobject('mine4')
uo.cast('Recall')
endif
if val(uo.getglobal('per2')) == 5 then
uo.waittargetobject('mine5')
uo.cast('Recall')
endif
wait(3000)
if uo.injournal('fizzles') then
wait(500)
uo.deletejournal('fizzles')
goto step1
endif
a = val(uo.getglobal('per2')) + 1
wait(100)
uo.setglobal('per2', str(a))
if val(uo.getglobal('per2')) > 5 then
uo.setglobal('per2', '1')
endif
uo.setglobal('per3', '0')
wait(100)
uo.exec('exec CheckingPK')
wait(100)
uo.exec('exec Obkopka')
end sub
sub CheckingPK()
while uo.Life > 0
uo.set('finddistance', '12')
uo.findtype('0x0190', '-1', '1')
if uo.findcount() > 1 then
uo.usetype('0x0F08')
wait(100)
Taleportation()
wait(100)
return
else
wait(1000)
endif
wend
end sub
sub GoHome()
uo.exec('terminate CheckingPK')
uo.deletejournal()
VAR a, b
step1:
if uo.Mana < 11 then
uo.usetype('0x0F09')
wait(300)
endif
uo.waittargetobject('Home')
uo.cast('Recall')
wait(3000)
if uo.injournal('fizzles') then
wait(500)
uo.deletejournal('fizzles')
goto step1
endif
for a = 1 to 5
uo.press(33)
wait(300)
next
uo.useskill('Detect Hidden')
wait(4000)
step2:
if uo.Mana < 20 then
uo.usetype('0x0F09')
wait(300)
endif
uo.cast('Reveal', 'self')
wait(4000)
if uo.injournal('fizzles') then
wait(500)
uo.deletejournal('fizzles')
goto step2
endif
uo.set('finddistance', '3')
uo.findtype('0x0190', '-1', '1')
if uo.findcount() > 1 then
return
endif
uo.useobject('Door')
wait(500)
uo.press(33)
uo.useobject('Door')
for b = 1 to 6
uo.press(33)
wait(300)
next
uo.exec('exec CheckingItems')
end sub
sub Obkopka()
step1:
VAR mx, my, mz, a, b, c
mx = uo.getx('self')
my = uo.gety('self')
mz = uo.getz('self')
uo.deletejournal()
for a = mx-2 to mx+2
for b = my-2 to my+2
while not uo.Hidden()
uo.warmode('0')
uo.useskill('Stelth')
wait(4000)
wend
uo.print('Копаем тут: '+str(mx-a)+' '+str(my-b))
c = val(uo.getglobal('per3')) + 1
wait(100)
uo.setglobal('per3', str(c))
while not uo.injournal('no ore here') and not uo.injournal('far away')
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
else
wait(100)
endif
uo.waittargettile('1341', str(a), str(b), str(mz))
uo.usetype('0x0E85')
while not uo.injournal('You put') and not uo.injournal('no ore') and not uo.injournal('but fail') and not uo.injournal('far away') and not uo.injournal('broken')
wait (500)
wend
uo.set('finddistance', '5')
uo.findtype( '0x000E', '-1', '1' )
if uo.findcount() > 0 then
KillElemental()
else
wait(100)
endif
if val(uo.getglobal('per3')) > 25 then
uo.setglobal('per3', '0')
ChengePlace()
goto step1
else
wait(100)
endif
if uo.weight > 600 then
uo.exec('exec GoHome')
wait(100)
return
else
wait(100)
endif
wend
uo.deletejournal()
next
next
goto step1
end sub
sub ChengePlace()
VAR a, b, c, d
if val(uo.getglobal('per4')) > 3 then
uo.setglobal('per4', '1')
uo.exec('exec Teleportation')
wait(100)
uo.exec('terminate Obkopka')
return
endif
if val(uo.getglobal('per4')) == 1 then
for a = 1 to 5
uo.press(40)
wait(300)
next
endif
if val(uo.getglobal('per4')) == 2 then
for b = 1 to 5
uo.press(39)
wait(300)
next
endif
if val(uo.getglobal('per4')) == 3 then
for c = 1 to 5
uo.press(38)
wait(300)
next
endif
d = val(uo.getglobal('per4')) + 1
wait(100)
uo.setglobal('per4', str(d))
end sub