Добрый день. Необходим скритп на сбор хлопка (на форуме искал, в гугле искал. есть только урезанные версии.)
Итак что небходимо.
Вариант 1) Реколится в "загон" ищет хлопок, идет по его координатам, собирает. Хлопка на поле нет, рекол в банк(можно с выкладыванием собранного)
Вариант 2) Реколится в "загон", идет по заранее заданым координатам и каждый раз кликает под собой (собирает хлопок) как обошел весь загон, рекол к банку и выкладывает.

Проверка на вес не нужна. Хлопок собирается 2 кликом, на его тайле( или ближайшие к нему). Рекол из банка. рун бук нет.

Вот если кому то поможет я нашел 2 примерных скрипта, только вот объединить не смог...

Отсюда запись координат+ходилка

Цитата:
sub go_mining()
var cycle=1 # 1 - зациклировать, 0 - нет
var path="9s2sl9n3no9snio9niki" # все в кавычках очистить вначале скрипта
var test=0
var i=0
var j
UO.SetCatchBag("oresBag")
UO.DeleteJournal()

While i<LEN(path)
if VAL(path[i]) then
j=VAL(path[i])
i=i+1
else
j=1
endif

Repeat
if test<>1 then
UO.DeleteJournal()
mine_spot()
end if

UO.Print("New Location!")
if not make_step(path[i]) then
UO.Print("Probably Stuck!")
UO.Print("Hope it is a Worldsave")
endif
j=j-1
Until j==0

i = i + 1
if cycle && i==LEN(path) then
i=0
endif
Wend
end sub

############################################################
# Auxilliar Function. Little mod needed (look above)
############################################################
sub mine_spot()
var maxMineTime=1000
var times=0
var timeout=0
While UO.InJournal("You stop")==0
UO.Print("Mining time!")
UO.DeleteJournal()
UO.WaitTargetTile("1339",STR(UO.GetX()),STR(UO.GetY()),"0")
UO.UseType("pickaxe")
timeout=0
times = times +1
if times>20 then
wait(maxMineTime)
times = 0
endif
Repeat
timeout=timeout+200
Wait(200)
#UO.Print("Waiting...")
Until UO.InJournal("You put") OR UO.InJournal("There is no") OR timeout>maxMineTime
Wend
return 0
end sub

############################################################
# Main Path-Recording function!
############################################################
sub record_path()
var x
var y
var path=""
UO.DeleteJournal()
Repeat
x=UO.GetX()
y=UO.GetY()
if waitNewPos(x,y) then
path=path+extract_dir(x,y,UO.GetX(),UO.GetY())
endif
Until UO.InJournal("stop")
path = compressPath(path)
UO.TextClear()
UO.TextOpen()
UO.TextPrint("Your path is:")
UO.TextPrint(path)
end sub

############################################################
# Auxilliar sub.
############################################################
sub send_step(keycode,dir)
var x = UO.GetX()
var y = UO.GetY()
var timeout = 0
if UO.GetDir()<>dir then
UO.Press(keycode)
Repeat
wait(50)
Until UO.GetDir()==dir
endif
UO.Press(keycode)
Repeat
timeout=timeout+50
wait(50)
Until x<>UO.GetX() || y<>UO.GetY() || timeout>2000
if timeout>2000 then
return 0
endif
return 1
end sub

############################################################
# Bunch of auxilliar subs. No need to change anything!
############################################################
sub waitNewPos(x,y)
while x==UO.GetX() && y==UO.GetY()
if UO.InJournal("stop") then
return 0
endif
wend
return 1
end sub

sub compressPath(path)
Var i=0
Var j=0
Var newPath=""
while i<LEN(path)
j=1
while path[i]==path[i+1] AND j<9
i=i+1
j=j+1
wend
if j==1 then
newPath=newPath+path[i]
else
newPath=newPath+STR(j)+path[i]
endif
i=i+1
wend
return newPath
end sub

sub extract_dir(x,y,a,cool.gif
if x>a then
if y==b then
return "i"
else
if y>b then
return "n"
else
return "w"
endif
endif
else
if x<a then
if y==b then
return "l"
else
if y>b then
return "e"
else
return "s"
endif
endif
else
if y>b then
return "o"
else
return "k"
endif
endif
endif
end sub

sub make_step(dir)
if dir=="e" then
send_step(39,1)
return 1
endif
if dir=="l" then
send_step(34,2)
return 1
endif
if dir=="s" then
send_step(40,3)
return 1
endif
if dir=="k" then
send_step(35,4)
return 1
endif
if dir=="w" then
send_step(37,5)
return 1
endif
if dir=="i" then
send_step(36,6)
return 1
endif
if dir=="n" then
send_step(38,7)
return 1
endif
if dir=="o" then
send_step(33,0)
return 1
endif
if dir=="d" then
While UO.Count("0x19b9")
UO.Drop("0x19b9")
wait(1000)
Wend
wait(200)
return 1
endif
UO.Print("Recall Time!")
return 0
end sub


отсюда сбор хлопка
Цитата:
sub Sbor()

UO.Set('finddistance','2')
UO.FindType('0x0C51','-1','ground')
UO.UseObject('finditem')

end sub




Так что на месте я не видел, копался, еб*лся. Помогите, если сможете. Заранее благодарен.