бегаем по тайлам и обкапываемся вокруг .. затем иф вес>300 бежим в банк и скидуем в сумочку ид вобью сам ) добераем кирок если в паке меньше 2 но не больше 4 и репит по кругу .. ну мона ещё еду добавить ... а то на форуме скоко не лазил везде какие-то или сильно сложные или слишком простые )) золотая средина нуна ))
а ещё просьба без хайда )) ну и поля где надо "иф нотжурнал промазал по земле / там нема/ и т.п. тоже сам заполню" навсяк пожар .. шард Forgoten World..
П.С. знаю что вас всех достало ) но простите уж...

вобще-то нашол примерный скрипт на хождение и обкапывание вокруг ..
Code: Select all
sub Mining_Carve()
var i
dim x[6],y[6]
x[0]=2577
y[0]=481
x[1]=2572
y[1]=477
x[2]=2570
y[2]=481
x[3]=2570
y[3]=486
x[4]=2564
y[4]=486
x[5]=2561
y[5]=490
repeat
for i=0 to 5
smartwalk(x[i],y[i])
mining()
next
until uo.weight>=uo.str*4
endsub
sub Mining()
var x,y
for x=-2 to 2
for y=-2 to 2
if x==0 and y==0 then
wait(500)
else
uo.deletejournal()
uo.waittargettile('0',str(uo.getx('self')+x),str(uo.gety('self')+y),'0')
uo.usetype('NPF')
repeat
wait(300)
until uo.injournal('that is too far away |there is no ore here to mine |in rock')
endif
next
next
endsub
Sub Checklag()
deljournal('a backpack')
uo.click('backpack')
repeat
wait(50)
until uo.injournal('a backpack')
endsub
Sub deljournal(msg)
while uo.injournal(msg)
uo.setjournalline(uo.injournal(msg)-1,"")
wend
endsub
Sub st(x,y,stepdelay)
var xn=uo.getx('self'),yn=uo.gety('self'),xp,yp
if uo.getdir('self')<>x then
uo.press(y)
wait(100)
checklag()
endif
uo.press(y)
wait(stepdelay)
checklag()
xp=uo.getx('self')
yp=uo.gety('self')
if xn==xp and yn==yp then
uo.press(y)
wait(stepdelay)
checklag()
xp=uo.getx('self')
yp=uo.gety('self')
endif
if xn==xp and yn==yp then
uo.press(y)
wait(stepdelay)
checklag()
xp=uo.getx('self')
yp=uo.gety('self')
endif
if xn==xp and yn==yp then
return 0
else
return uo.getdir('self')+1
endif
endsub
#Millerbeer 2009
#моя ходилка типа с зачатками интеллекта :-)
Sub SmartWalk(xk,yk)
var xn,yn,stepdelay,gon,tempx,tempy,i,z,q,m,count='z',flag=0,prec=1;prec-точность с какой надо подходить к клетке
dim sx[4], sy[4], px[100], py[100]
repeat
xn=uo.getx('self')
yn=uo.gety('self')
stepdelay=200
if xn>xk && yn>yk then
gon=st(7,38,stepdelay)
endif
if xn>xk && yn==yk then
gon=st(6,36,stepdelay)
endif
if xn>xk && yn<yk then
gon=st(5,37,stepdelay)
endif
if xn<xk && yn>yk then
gon=st(1,39,stepdelay)
endif
if xn<xk && yn==yk then
gon=st(2,34,stepdelay)
endif
if xn<xk && yn<yk then
gon=st(3,40,stepdelay)
endif
if xn==xk && yn>yk then
gon=st(0,33,stepdelay)
endif
if xn==xk && yn<yk then
gon=st(4,35,stepdelay)
endif
if xn==xk && yn==yk then
uo.print('Шеф, я на месте!!!')
return
endif
if gon==0 && dist(xn,yn,xk,yk)==1 then
uo.print('Сорри, шеф, малость недошёл!!!')
return
endif
if gon==0 && dist(xn,yn,xk,yk)>1 then
repeat
if count=='z' then
count=0
px[count]=uo.getx('self')
py[count]=uo.gety('self')
endif
if count>=0 then
z=0
for i=0 to count
if uo.getx('self')==px[i] && uo.gety('self')==py[i] then
z=1
endif
next
if z==0 then
count=count+1
if count==101 then
count=0
endif
px[count]=uo.getx('self')
py[count]=uo.gety('self')
endif
endif
sx[0]=uo.getx('self')
sy[0]=uo.gety('self')-1
sx[1]=uo.getx('self')+1
sy[1]=uo.gety('self')
sx[2]=uo.getx('self')
sy[2]=uo.gety('self')+1
sx[3]=uo.getx('self')-1
sy[3]=uo.gety('self')
for i=0 to 2
for z=0 to 2
if dist(sx[z],sy[z],xk,yk) > dist(sx[z+1],sy[z+1],xk,yk) then
tempx=sx[z+1]
tempy=sy[z+1]
sx[z+1]=sx[z]
sy[z+1]=sy[z]
sx[z]=tempx
sy[z]=tempy
endif
next
next
if count>=0 then
i=0
q=0
repeat
for z=0 to count
if sx[i]==px[z] && sy[i]==py[z] then
tempx=sx[i]
tempy=sy[i]
for m=i to 2
sx[m]=sx[m+1]
sy[m]=sy[m+1]
next
sx[3]=tempx
sy[3]=tempy
q=q+1
flag=1
endif
next
if flag==0 then
i=i+1
else
flag=0
endif
until i>=3 || q>=3
endif
i=0
repeat
tempx=uo.getx('self')
tempy=uo.gety('self')
if tempx>sx[i] && tempy==sy[i] then
gon=st(6,36,stepdelay)
else
if tempx<sx[i] && tempy==sy[i] then
gon=st(2,34,stepdelay)
else
if tempx==sx[i] && tempy>sy[i] then
gon=st(0,33,stepdelay)
else
if tempx==sx[i] && tempy<sy[i] then
gon=st(4,35,stepdelay)
else
if tempx==xk && tempy==yk then
uo.print('Шеф, я на месте!!!')
return
else
if gon==0 && dist(sx[i],sy[i],xk,yk)==1 then
uo.print('Сорри, шеф, недошёл!!!')
return
endif
endif
endif
endif
endif
endif
i=i+1
until gon || i>3
until dist(uo.getx('self'),uo.gety('self'),xk,yk)<=1
endif
until dist(uo.getx('self'),uo.gety('self'),xk,yk)<=prec
endsub
Sub Dist(x1,y1,x2,y2)
var dx,dy
if x1-x2 > 0 then
dx=x1-x2
else
if x1-x2 < 0 then
dx=x2-x1
else
dx=0
endif
endif
if y1-y2 > 0 then
dy=y1-y2
else
if y1-y2 < 0 then
dy=y2-y1
else
dy=0
endif
endif
if dx>=dy then
return dx
else
return dy
endif
endsub
но тут нету скидывания в банк..
банк у меня открываеться по принципу
Code: Select all
UO.UseObject(0x4001CCDE)
CheckLag()
UO.UseObject(0x400D0A53)
(но я незнаю как его туда вклеить и как добавить сброс ресурсов ..) понимаю что чёто тип
,moveitem object [quantity containerobject/ground [x y z]]
в моём случае ето походу
moveitem Type=0x19B9 "0" "0x400D0A53"
поправил масив координат .. и попытался поправить журнал (сообщения что выдаёт еси там далеко или нема руды) но нехотит копать .. запускаю 1 копка и всё
фразы которые говорит серв когда не нужно продолжать копать
Try mining in rock.
that is too far away.
there is no ore here to mine.
а после которых нужно копать думаю не стоит писать ? =)
а ещё есть обход антимакроса .. который как правило срабатывает при одевании кирки и ето приводит макрос в ступор .. т.к. ласт действие походу получаеться не таргет ...