Code: Select all
sub main()
var zona = 6;
var m, i, a, tX, tY, tr = 1
tX = UO.GetX('self')
tY = UO.GetY('self')
for i=1 to zona
if tr then
m = - 5
else
m = 5
endif
for a=1 to zona
tY = tY + m
GotoXY(tX,tY)
Lumder()
next
tX = tX - 5
if tr then
tr = 0
else
tr = 1
endif
next
end sub
sub Lumder()
var X, Y, MaxRange = 3, MaxVes = 620, k = 0
for Y = -MaxRange to MaxRange
for X = -MaxRange to MaxRange
if Tree(UO.GetX()+X, UO.GetY()+Y) then
repeat
UO.Set('quiet','0')
UO.DeleteJournal()
UO.Warmode(0)
wait(100)
UO.WaitTargetTile(Tree(UO.GetX()+X, UO.GetY()+Y), UO.GetX()+X, UO.GetY()+Y, UO.GetZ())
;********************************
; Auto Tools
if UO.Count(0x0F43) || UO.Count(0x0F44) then
if UO.Count(0x0F43) then
UO.UseType(0x0F43); <-- Топор
else
UO.UseType(0x0F44); <-- Топор
endif
else
UO.Set('quiet','0')
UO.Print('ГДЕ ТОПОР БЛЯ?')
return
endif
;********************************
k=k+1
repeat
wait(100)
until UO.InJournal("0xA20D|0xA2DE|0xA2E7|0xA308|0xA309|0xA30D|0xA311|0xA312|Вы положили|nothing|You put|Вы ударили по дереву|You hack at the tree|Тут нечего рубить|no logs|Вы не можете до этого достать|You can|reach this|Дерево слишком далеко|That is too far away|do much|Это кажется свободным для вашего удара|It appears immune to your blow|атакует")
UO.Set('quiet','0')
if k>10 then ; проверка на филзы. Увеличить для вырубки фаировпри 30 скилла
UO.Print('Что-то крепкое попалось!!!')
return
endif
If UO.Weight > MaxVes Then
UO.Print('Перегруз!')
return 0
endif
If UO.Life < Uo.Str/10 then
UO.Print('А мы умираем!')
return 0
endif
until UO.InJournal("0xA20D|0xA2DE|0xA2E7|0xA308|0xA309|0xA30D|Тут нечего рубить|nothing|no logs|You can|Вы не можете до этого достать|Дерево слишком далеко|too far away|свободным для вашего удара")
endif
next
next
return 0
end sub
Sub Tree(X,Y)
var i
DIM R[34]
R[1] = 3274;
R[2] = 3275;
R[3] = 3276;
R[4] = 3277;
R[5] = 3280;
R[6] = 3283;
R[7] = 3286;
R[8] = 3288;
R[9] = 3290;
R[10] = 3293;
R[11] = 3296;
R[12] = 3299;
R[13] = 3302;
R[14] = 3320;
R[15] = 3323;
R[16] = 3326;
R[17] = 3329;
R[18] = 3393;
R[19] = 3394;
R[20] = 3395;
R[21] = 3396;
R[22] = 3415;
R[23] = 3416;
R[24] = 3417;
R[25] = 3418;
R[26] = 3419;
R[27] = 3438;
R[28] = 3439;
R[29] = 3440;
R[30] = 3441;
R[31] = 3442;
R[32] = 3460;
R[33] = 3461;
R[34] = 3462;
for i = 1 to 34
if uo.privategettile( x, y, -1, R[i], R[i]) then
return R[i]
endif
next
return false
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 Numb(x-myX)<=1 and Numb(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 Numb(num)
if num>=0 then
return num
else
return num*(-1)
end if
end sub
##### СТЕРЕТЬ ЖУРНАЛ #####
Sub DeleteJournal(msg)
While UO.InJournal(msg)
UO.SetJournalLine(UO.InJournal(msg) - 1,'')
wend
endsub
Всё вроде ничего, чар ходит, рубит, ничего для этого не надо, только топор! Но возник вопрос, как можно изменить этот скрипт, чтоб вместо рубки, он ходил и искал камешки и копал!?
Вопрос: Что нужно изменить, где и как? Что бы чар сам ходил и копал?
Строки из журнала заменить могу, вместо топора кирку то же
