Скрипт на Lumberjacking
Moderators: Murderator+, Murderator
-
- Posts: 56
- Joined: 2009-03-16 11:51:21
Re: Скрипт на Lumberjacking
Все!!! Работает идеально, по крайней мере рубит четко, до сброса и т.д. еще не доходил.
Еще раз огромнейшее спасибо, от души жму руку!
Еще раз огромнейшее спасибо, от души жму руку!
-
- Posts: 56
- Joined: 2009-03-16 11:51:21
Re: Скрипт на Lumberjacking
И снова доброго вечера.
Переделываю этот скрипт на копку по кочкам вроде пока все идет ок, но столкнулся с блоком на разгрузку.
Как тут сделать либо массив либо что-то еще куда можно забить типы руды которую скидывать в сундук?
Можно конечно налепить переменных и напилить кусков кода для каждой из них типа того:
Но что то мне подсказывает чуйка что так не правильно, хотя и должно работать...
Направьте пожалуйста как сделать правильно.
Переделываю этот скрипт на копку по кочкам вроде пока все идет ок, но столкнулся с блоком на разгрузку.
Code: Select all
sub TakePut()
var box = "0x561955FA", iron = "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] = "0x103B 5 Food"
uo.opencontainer(box, 500)
while uo.findtype(iron, -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
Как тут сделать либо массив либо что-то еще куда можно забить типы руды которую скидывать в сундук?
Можно конечно налепить переменных и напилить кусков кода для каждой из них типа того:
Code: Select all
var box = "0x561955FA", iron = "0x1BDD", magma = "0x19B8", 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] = "0x103B 5 Food"
uo.opencontainer(box, 500)
while uo.findtype(iron, -1, "my")
uo.moveitem("finditem", 0, box)
wait(2000)
while uo.findtype(magma, -1, "my")
uo.moveitem("finditem", 0, box)
wait(2000)
Но что то мне подсказывает чуйка что так не правильно, хотя и должно работать...
Направьте пожалуйста как сделать правильно.
Last edited by Hydromarine on 2016-06-09 10:04:04, edited 1 time in total.
Re: Скрипт на Lumberjacking
Вариант раз - старый но тем не менее живучий:
Вариант два - чуть более новый:
Есть еще пару вариантов но так как руды всего 4 вида и как правило не важно какого цвета то морочиться с динамическими паузами и файндлистами не стоит.
PS у тебя все как то наоборот. Вместо того что бы почитать уроки где очень нормально прописал вариант работы с массивами ты начал читать сложные скрипты где из 1 строчки путем выборки символов выцепляют и тип и количество и название элемента. Оно конечно не плохо но лучше тренироваться на кошках чем на трепанации черепа.
Code: Select all
var bag = '0x4018A728' ; сундук куда скидывать руду и откуда брать инструменты
var ore1 = '0x19B7'
var ore2 = '0x19BA'
var ore3 = '0x19B8'
var ore4 = '0x19B9'
sub main()
repeat
walker(1874, 267, 0) ; подошли к сундуку
UO.UseObject(bag) ; открыли сундук
wait(1000)
putore() ; скидываем руду
; и пошли копать пока не набрали вес что бы повторить цикл
until UO.Dead() ; пока не умерли
end sub
Sub putore() ; скидывалка четырех видов руды (они имеют разный тип, пофигу на цвет)
put(ore1,bag)
put(ore2,bag)
put(ore3,bag)
put(ore4,bag)
end sub
Sub PUT(item, cont) ; универсальная скидывалка чего то куда то.
while UO.Count( item ) > 0
UO.FindType( item, -1, -1 ) ; первая единичка как раз и отвечает за пофигкакойцвет
UO.MoveItem( 'finditem', 0, cont )
checklag()
wend
end sub
Вариант два - чуть более новый:
Code: Select all
sub start()
DIM ore[4]
##########################
ore[1] = '0x19B7'
ore[2] = '0x19B8'
ore[3] = '0x19B9'
ore[4] = '0x19BA'
##########################
uo.useobject(Ore_Bag)
wait(1000)
for i = 1 to 4
put(ore[i],Ore_Bag)
next
бла бла бла
Sub PUT(item, cont1, cont2)
UO.FindType( item, -1, cont1 )
while UO.FindCount()
UO.MoveItem( 'finditem', 0, cont2)
wait(500)
UO.FindType( item, -1, cont1 )
wend
end sub
Есть еще пару вариантов но так как руды всего 4 вида и как правило не важно какого цвета то морочиться с динамическими паузами и файндлистами не стоит.
PS у тебя все как то наоборот. Вместо того что бы почитать уроки где очень нормально прописал вариант работы с массивами ты начал читать сложные скрипты где из 1 строчки путем выборки символов выцепляют и тип и количество и название элемента. Оно конечно не плохо но лучше тренироваться на кошках чем на трепанации черепа.
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: Скрипт на Lumberjacking
Я делал по листу. В Autostart
И сама разгрузка, что-то типа
Code: Select all
uo.addfindlist("Ore", "Type руды 1")
uo.addfindlist("Ore", "Type руды 2")
uo.addfindlist("Ore", "Type руды 3")
И сама разгрузка, что-то типа
Code: Select all
repeat
if uo.findlist("Ore", "backpack") then
uo.moveitem("finditem", 0, "ID контейнера куда перемещать")
wait(500)
end if
until not uo.findcount() or uo.dead()
-
- Posts: 56
- Joined: 2009-03-16 11:51:21
Re: Скрипт на Lumberjacking
Сделал по первому варианту который показал Мираж. Спасибо!
А случайно не было с этим скриптом проблем в плане ходилки?
У меня иногда тупо упирается в дерево или какое-то другое препятствие и стоит пытаясь проломиться напрямую через него. Приходится чара повернуть в любую сторону на 45 градусов и он начинает идти дальше. Хотя пробовал менять дистанцию по на которую должен подойти к тайлу, но проблемы это не решило. В каком куске тут править ходилку?
А случайно не было с этим скриптом проблем в плане ходилки?
У меня иногда тупо упирается в дерево или какое-то другое препятствие и стоит пытаясь проломиться напрямую через него. Приходится чара повернуть в любую сторону на 45 градусов и он начинает идти дальше. Хотя пробовал менять дистанцию по на которую должен подойти к тайлу, но проблемы это не решило. В каком куске тут править ходилку?
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: Скрипт на Lumberjacking
Ни в каком. Ходилка встроенная, несложная, поэтому при разметке нужно стараться идти так чтобы не попадать на "сложные" места.
-
- Posts: 56
- Joined: 2009-03-16 11:51:21
Re: Скрипт на Lumberjacking
Ок. Я уже наформировал несколько файлов с координатами и переписывать их уж совсем не хочется.
Можно в нем вставить код чтобы он писал последнюю координату на экран, чтобы хотябы по журналу можно было определить глючное место и в дальнейшем из файла эту координату удалить или переправить?
Можно в нем вставить код чтобы он писал последнюю координату на экран, чтобы хотябы по журналу можно было определить глючное место и в дальнейшем из файла эту координату удалить или переправить?
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
-
- Posts: 56
- Joined: 2009-03-16 11:51:21
Re: Скрипт на Lumberjacking
Incorrect User wrote:Что значит последнюю?
Ну грубо говоря, чтобы выводил надпись на экран каждой новой координаты к которой идет, дабы потом по журналу отследить на какой конкретно он застревает и прибить или поправить ее в файле. Так можно будет отследить косячные места. Другого просто в голову не приходит.
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: Скрипт на Lumberjacking
Перед uo.pmove(TreeX[i], TreeY[i], distance) добавь строку
Если хочешь просто на экран
Или вывод в текстовое окно
Если хочешь просто на экран
Code: Select all
uo.print("Иду на " + str(TreeX[i]) + " " + str(TreeY[i]))
Или вывод в текстовое окно
Code: Select all
uo.textprint("Иду на " + str(TreeX[i]) + " " + str(TreeY[i]))
uo.textopen()
Last edited by Incorrect User on 2016-06-01 11:54:36, edited 1 time in total.
-
- Posts: 56
- Joined: 2009-03-16 11:51:21
Re: Скрипт на Lumberjacking
Спасибо!
Я конечно понимаю что я уже достал но зачем же так

А вообще скрипт у вас получился очень крутой, универсальный очень.
Я конечно понимаю что я уже достал но зачем же так
uo.print("Иду на " + TreeX ....




А вообще скрипт у вас получился очень крутой, универсальный очень.
Last edited by Hydromarine on 2016-06-01 10:30:43, edited 1 time in total.
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
Re: Скрипт на Lumberjacking
Я просто местами менял или вообще удалял координату из файла и все, если где-то застревал.
-
- Posts: 56
- Joined: 2009-03-16 11:51:21
Re: Скрипт на Lumberjacking
Incorrect User wrote:Я просто местами менял или вообще удалял координату из файла и все, если где-то застревал.
Вот и я так же хотел, но когда их в файле порядка 200сот сидеть и считать не представляется возможным. А вывод в журнал упростит задачу многократно.
-
- Posts: 56
- Joined: 2009-03-16 11:51:21
Re: Скрипт на Lumberjacking
Incorrect User wrote:Перед uo.pmove(TreeX[i], TreeY[i], distance) добавь строку
Если хочешь просто на экранCode: Select all
uo.print("Иду на " + TreeX[i] + " " + TreeY[i])
Или вывод в текстовое окноCode: Select all
uo.textprint("Иду на " + TreeX[i] + " " + TreeY[i])
uo.textopen()
Попробовал и так и сяк, теперь подходит к тайлу где копать и вылетает ошибка инжекта
Code: Select all
"Invalid operation for this type"
-
- Posts: 949
- Joined: 2011-05-23 00:33:30
-
- Posts: 56
- Joined: 2009-03-16 11:51:21
Re: Скрипт на Lumberjacking
Incorrect User wrote:Поправил, пробуй
Все ок, работает! Спасибо!
-
- Posts: 34
- Joined: 2016-06-12 20:36:28
Re: Скрипт на Lumberjacking
Incorrect User wrote:Поправил, пробуй
Скрипт рабочий. Но бывает втыкается в какое то препятствие идя к необходимой координате и стоит уперевшись. Помогает буквально клик влево или вправо, чтобы чар продолжил свой путь. Как это реализовать в данном скрипте? К примеру по какому нибудь тайм ауту, допустим начинает идти в заданную координату и журнал не обновляется более чем 20-30 секунд, то делал бы шаг влево или вправо?