А топор тыкал без остановки потому что ты сообщение о его использовании вписал, что совершенно ни к чему. Ставишь галки на вкладке Main как я сказал, копируешь заново весь скрипт что ниже, заполняешь в каждой функции свои данные, которые неверны или неуказаны(id сундуков, координаты рун, сообщения хайда и тд) и перезапускаешь клиент и вперед. Возможно потом появятся еще какие либо сообщения, нужно будет просто их добавить. Вот как должно было выглядеть все
Code:
sub Autostart()
uo.setglobal("Recall", "Off")
end sub
sub Lumberjacking()
var read = 0 ; 0/1 - Выкл/Вкл сбор координат
var infinity = 1 ; 0/1 Проходить по рунам Один круг / Бесконечно
var distance = 3 ; Расстояние в тайлах, на которое нужно подойти к дереву
var weight = 650 ; максимальный вес, при достижении которого реколимся домой
var hatchet = "0x0F47" ; тип топора
var msg = "log in your pack|logs in your pack|You hack the tree|Тут не осталось пригодной древесины|Вы вне прямого доступа к этому месту" ; все возможные сообщения после попытки рубки дерева
var endmsg = "Тут не осталось пригодной древесины|Вы вне прямого доступа к этому месту" ; сообщения после рубки, при появлении которых переходим к другому дереву
var skip, starttime, endtime, flag, number, treecount = 0, clicks, i, k, f
dim TreeX[5000], TreeY[5000], TreeT[5000]
dim TreeTile[29]
TreeTile[0]=3277
TreeTile[1]=3280
TreeTile[2]=3283
TreeTile[3]=3286
TreeTile[4]=3289
TreeTile[5]=3291
TreeTile[6]=3294
TreeTile[7]=3296
TreeTile[8]=3299
TreeTile[9]=3302
TreeTile[10]=3393
TreeTile[11]=3394
TreeTile[12]=3395
TreeTile[13]=3396
TreeTile[14]=3415
TreeTile[15]=3416
TreeTile[16]=3417
TreeTile[17]=3418
TreeTile[18]=3419
TreeTile[19]=3438
TreeTile[20]=3439
TreeTile[21]=3440
TreeTile[22]=3441
TreeTile[23]=3442
TreeTile[24]=3460
TreeTile[25]=3461
TreeTile[26]=3462
TreeTile[27]=3290
TreeTile[28]=3288
dim RuneID[3]
RuneID[0] = "0x41D24385" ; руна в лес1
RuneID[1] = "0x41D24387" ; руна в лес2
RuneID[2] = "0x41D24389" ; руна в лес3
if read == 1 then
uo.print("Collecting coordinates...")
repeat
clicks = 0
flag = 0
uo.usetype("0x0E21")
wait(500)
while uo.targeting()
wait(100)
wend
flag = 0
for k = 0 to 28
if uo.lasttile(0) == TreeTile[k] then
flag = 1
end if
next
if uo.lasttile(1) == uo.getx() and uo.lasttile(2) == uo.gety() then
flag = 2
end if
if flag == 1 then
treecount = treecount + 1
TreeX[treecount] = uo.lasttile(1)
TreeY[treecount] = uo.lasttile(2)
TreeT[treecount] = uo.lasttile(0)
uo.print("tree found"+str(treecount)+" : X = "+str(uo.Lasttile(1))+" Y = "+str(uo.LastTile(2))+" "+str(treecount))
end if
until (flag == 2) or (treecount == 5000)
SaveToFile(treecount, TreeX, TreeY, TreeT)
uo.print("Coordinates collected!")
uo.print("Trees found: " + str(treecount))
return
end if
repeat
for number = 0 to 2
uo.ignorereset()
if number == 0 then
f = file("C:\Users\Desktop\Injection_uo\trees.dat")
else
if number == 1 then
f = file("C:\Users\Desktop\Injection_uo\trees1.dat")
else
f = file("C:\Users\Desktop\Injection_uo\trees2.dat")
end if
end if
uo.print("Loading from file...")
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()
next
f.close()
TakePut()
RecallToWood(RuneID[number])
skip = 0
repeat
for i = 1 to treecount
uo.pmove(TreeX[i], TreeY[i], distance)
repeat
uo.deletejournal(msg)
Hide()
uo.waittargettile(TreeT[i], TreeX[i], TreeY[i], uo.GetZ())
uo.usetype(hatchet)
starttime = now()
endtime = uo.timer() + 60
repeat
Save()
wait(100)
until uo.injournalbetweentimes(msg, starttime, -1) or uo.timer() > endtime or uo.dead()
until uo.injournal(endmsg) or uo.weight >= weight or uo.dead()
if uo.weight >= weight then
skip = 1
break
end if
next
until i == treecount or skip == 1 or uo.dead()
if not uo.dead() then
RecallToHome()
else
uo.print("You Dead!")
uo.exec("Terminate all")
end if
next
until infinity == 0
end sub
sub SaveToFile(treecount, TreeX, TreeY, TreeT)
var f=file("C:\Users\Desktop\Injection_uo\trees.dat")
var s = 0, i = 0
f.open()
f.create()
s=safe call f.writeln(treecount)
for i = 1 to treecount
s=safe call f.writeln(str(TreeT[i])+" "+str(TreeX[i])+" "+str(TreeY[i]))
next
f.close()
end sub
sub RecallToHome()
var runeid = "id руны в дом", starttime, endtime, msg = "spell fizzles|anti-magic field disturbs|lack reagents", endmsg = "anti-magic field disturbs|lack reagents"
var x = 000, y = 000 ; Координаты X и Y тайла куда прилетаешь по руне
uo.deletejournal(msg)
if uo.getglobal("Recall") == "Off" then
uo.setglobal("Recall", "On")
repeat
uo.deletejournal(msg)
uo.waittargetobject(runeid)
uo.cast("Recall")
starttime = now()
endtime = uo.timer() + 40
repeat
Save()
wait(100)
until (uo.getx() == x and uo.gety() == y) or uo.injournalbetweentimes(msg, starttime, -1) or uo.timer() > endtime or uo.dead()
until (uo.getx() == x and uo.gety() == y) or uo.injournal(endmsg) or uo.dead()
uo.setglobal("Recall", "Off")
end if
end sub
sub RecallToWood(runeid)
var starttime, endtime, msg = "spell fizzles|anti-magic field disturbs|lack reagents", endmsg = "anti-magic field disturbs|lack reagents"
var x = 000, y = 000 ; Координаты X и Y тайла куда прилетаешь по первой руне
var x2 = 000, y2 = 000 ; Координаты X и Y тайла куда прилетаешь по второй руне
var x3 = 000, y3 = 000 ; Координаты X и Y тайла куда прилетаешь по третьей руне
uo.deletejournal(msg)
if uo.getglobal("Recall") == "Off" then
uo.setglobal("Recall", "On")
repeat
uo.deletejournal(msg)
uo.waittargetobject(runeid)
uo.cast("Recall")
starttime = now()
endtime = uo.timer() + 40
repeat
Save()
wait(100)
until (uo.getx() == x and uo.gety() == y) or (uo.getx() == x2 and uo.gety() == y2) or (uo.getx() == x3 and uo.gety() == y3) or uo.injournalbetweentimes(msg, starttime, -1) or uo.timer() > endtime or uo.dead()
until (uo.getx() == x and uo.gety() == y) or (uo.getx() == x2 and uo.gety() == y2) or (uo.getx() == x3 and uo.gety() == y3) or uo.injournal(endmsg) or uo.dead()
uo.setglobal("Recall", "Off")
end if
end sub
sub TakePut()
var box = "ID сундука с ресурсами", logs = "0x1BDD", i, r, s, info, food, quantity
dim Reg[4]
Reg[0] = "0x0F7A 10 Black Pearl"
Reg[1] = "0x0F7B 10 Blood Moss"
Reg[2] = "0x0F86 10 Mandrake Roots"
Reg[3] = "0x09D0 5 Food"
uo.opencontainer(box, 500)
while uo.findtype(logs, -1, "my")
uo.moveitem("finditem", 0, box)
wait(2000)
wend
for i = 0 to 3
r = getword(Reg[i], 1)
s = val(getword(Reg[i], 2))
if not uo.findtype(r, -1, "my") then
if not uo.findtype(r, -1, box) then
info = getword(Reg[i], 3)
uo.print("not enough" + info)
else
Save()
uo.moveitem("finditem", s, "backpack")
wait(2000)
end if
else
if uo.getquantity("finditem") < s then
quantity = s - uo.getquantity("finditem")
if not uo.findtype(r, -1, box) then
info = getword(Reg[i], 3)
uo.print("not enough" + info)
else
Save()
uo.moveitem("finditem", quantity, "backpack")
wait(2000)
end if
end if
end if
next
for food = 1 to 5
uo.usetype("0x09D0")
wait(500)
next
end sub
sub Save()
var msg = "backpack|World save has been initiated"
if uo.injournal("World save has been initiated") then
uo.deletejournal(msg)
uo.click("backpack")
repeat
wait(100)
until uo.injournal("backpack")
end if
end sub
sub Hide()
var msg = "неудалось|is attacking you", waittime
if not uo.hidden() then
repeat
uo.warmode(0)
uo.deletejournal(msg)
uo.useskill("Hiding")
waittime = uo.timer() + 50
repeat
wait(100)
until uo.hidden() or uo.injournal(msg) or uo.timer() > waittime or uo.dead()
until uo.hidden() or uo.dead()
end if
end sub