Примечание:
Прочтите сначала ЭТО: http://yoko.netroof.net/forum/viewtopic.php?p=6134#6134
Скрипты большинство переделанные...
без рекола, без лога веса, кароче, для танков...
хмм...кооманда ,exec logger, поможет вам ПЕРЕНЕСТИ БОЛЬШОЕ КОЛ-ВО ЛОГОВ!(2 раза на логи, и идете, во время ходьбы постоянно пишите ,exec logger)
ламберджэкинг.сц:
Code: Select all
sub Lumber()
var i=0,j=0,k=0,r=0,q=0,ii,jj
var TopX=324,TopY=65
dim TreeX[1000], TreeY[1000],TreeT[1000]
var flag=0,treeCount=0,clicks=0,flag2=0
var f=file("C:\trees.dat")
var TryHiding=0 ## 1 - перед тем как рубить дерево, будет пытаться уйти в хайд, 0 - не будет
var Xer=0
var GetFromFile=1
uo.exec("filterspeech on")
uo.exec("filterspeech add 'Where do you want to use the pickaxe?'")
uo.print('Выбери топор: ')
uo.exec('addtype axe')
wait(5000)
uo.print('Загружаем координаты из файла...')
f.open()
TreeCount=safe call f.readNumber()
for i=1 to TreeCount
TreeT[i]=safe call f.ReadNumber()
TreeX[i]=safe call f.ReadNumber()
TreeY[i]=safe call f.ReadNumber()
XER=safe call f.ReadNumber()
next
f.close()
uo.print('Деревьев найдено: '+str(treeCount))
wait(2000)
while 1==1
if treeCount>0 then
for i=1 to treeCount
uo.print('Идем к дереву '+str(i)+': x='+str(treex[i])+' y='+str(treey[i]))
flag=gotoxy(treex[i],treey[i])
if flag==1 then
if TryHiding==1 then
ToHide()
end if
GetTree(str(treeT[i]),str(treeX[i]),str(TreeY[i]),str(uo.getz()))
end if
next
end if
wend
end sub
sub GetTree(type,x,y,z)
var i
uo.print('Начинаем рубку дерева...')
for i=0 to 15
if uo.warmode()==1 then
uo.warmode(0)
end if
wait(200)
uo.deletejournal()
uo.waittargettile(type,x,y,z)
uo.useobject('axe')
if WaitForChange()==1 then
return 1
end if
next
return 0
end sub
sub ToHide()
var i
uo.print('Пытаемся уйти в хайд...')
for i=1 to 15
uo.deletejournal()
uo.useskill('Hiding')
if WaitForHide()==1 then
return 1
end if
next
return 0
end sub
sub WaitForHide()
var Text1=uo.getname()+": You have hidden yourself well"
var Text2=uo.getname()+": You can't seem to hide here."
var mess
for var i=0 to 200
mess=uo.journal(0)
if uo.Journal(0)==Text1 then
return 1
end if
if uo.Journal(0)==Text2 then
return 0
end if
wait(50)
next
return 0
end sub
sub WaitForChange()
var Text1=uo.getname()+': You hack at the tree for a while, but fail to produce any useable wood.'
var Text2='There is nothing here to chop.'
var Text3="You are too far away"
var Text4="There's not enough wood here to chop."
var Text5="That is too far away"
var Text6="There's not enough wood here to chop"
var Text7="It appears immune to your blow"
var Text8="That is too far away."
var Text9="You can't reach this."
var Text10="You can't get there."
var mess
for var i=0 to 200
mess=uo.journal(0)
if uo.Journal(0)==Text2 OR uo.Journal(0)==Text3 OR uo.Journal(0)==Text4 OR uo.Journal(0)==Text5 OR uo.Journal(0)==Text6 OR uo.Journal(0)==Text7 OR uo.Journal(0)==Text8 OR uo.Journal(0)==Text9 OR uo.Journal(0)==Text10 then
return 1
end if
if uo.Journal(0)==Text1 then
return 0
end if
if mess[0]=='Y' AND mess[1]=='o' AND mess[2]=='u' AND mess[4]=='p' AND mess[5]=='u' AND mess[6]=='t' then
return 0
end if
wait(50)
next
return 0
end sub
sub WaitForTarget()
for var i=0 to 50
if uo.Targeting()==1 then
return 1
end if
wait(200)
next
return 0
end sub
sub WaitForChangeXY(myX,myY,lastX,lastY)
for var i=1 to 50
if lastX<>myX OR lastY<>myY then
return 1
end if
wait(200)
next
return 0
end sub
sub gotoXY(x,y)
var myX,myY,lastX=0,lastY=0,i,halt=0,z,r=0
for i=1 to 60
MyX=uo.getX();
MyY=uo.getY();
if LastX==MyX AND LastY==MyY then
halt=halt+1
else
halt=0
end if
if halt>=10 then
if uo.GetDir()==1 then
for z=0 to 8
uo.press(40)
next
end if
if uo.GetDir()==3 then
for z=0 to 8
uo.press(37)
next
end if
if uo.GetDir()==5 then
for z=0 to 8
uo.press(38)
next
end if
if uo.GetDir()==7 then
for z=0 to 8
uo.press(39)
next
end if
halt=15
end if
if abs(x-myX)<=1 AND abs(y-myY)<=2 then
return 1
end if
if x<=MyX then
if y<=MyY then
for z=0 to 3
uo.press(38)
next
else
for z=0 to 3
uo.press(37)
next
end if
else
if y<=MyY then
for z=0 to 3
uo.press(39)
next
else
for z=0 to 3
uo.press(40)
next
end if
end if
lastX=myX
lastY=myY
wait(200)
next
return 0
end sub
sub abs(num)
if num>=0 then
return num
else
return num*(-1)
end if
end sub
sub main()
Lumber()
end sub
sub logger()
uo.exec("moveitem lastobject 0 ground "+str(uo.getx())+" "+str(uo.gety())+" "+str(uo.getZ())+" ")
end sub
Создаём файлик C:\trees.dat, и в него вставляем...
текст полученный командой ,infotile, после того как вы щелкнули на дерево...1-ая строка должна быть равна кол-во деревьев...
у вас должно получиться такое...
Code: Select all
62
3283 2644 681 0
3277 2644 678 0
3299 2644 675 0
3293 2644 672 0
3293 2640 675 0
3296 2640 672 0
3296 2644 666 0
3287 2636 672 0
3299 2648 672 0
3290 2648 669 0
3277 2648 666 0
3299 2648 663 0
3288 2648 660 0
3296 2644 666 0
3150 2645 669 0
3293 2644 672 0
3291 2652 669 0
3289 2652 672 0
3281 2652 678 0
3299 2660 666 0
3299 2652 660 0
3289 2648 660 0
3277 2648 654 0
3283 2644 657 0
3299 2640 660 0
3299 2652 660 0
3293 2656 654 0
3299 2660 651 0
3277 2660 648 0
3302 2660 654 0
3299 2660 666 0
3277 2660 669 0
3299 2660 672 0
3299 2668 672 0
3288 2668 663 0
3299 2672 660 0
3283 2672 657 0
3280 2668 654 0
3284 2676 657 0
3283 2676 657 0
3277 2672 651 0
3280 2676 651 0
3299 2680 654 0
3299 2680 651 0
3296 2680 672 0
3290 2680 675 0
3280 2680 678 0
3299 2680 681 0
3277 2676 687 0
3289 2676 681 0
3291 2676 678 0
3283 2672 681 0
3302 2672 678 0
3280 2668 678 0
3296 2672 675 0
3299 2668 672 0
3293 2676 672 0
3293 2684 669 0
3280 2692 672 0
3289 2688 675 0
3291 2684 675 0
3291 2680 663 0