Копает отлично, в банк складывает все борохло...
Не работает переплавка =( и бс
Помогите

PHP код:
sub hide() 
Встаем в хайд
uo
.warmode(0)
while 
not uo.hidden() 
uo.useskill('Detect Hidden'); перед тем как встать в хайддетектим.
wait(4000) ; если это не нужностираем эти две строчки
uo
.useskill('Stealth')
wait(3000)
wend
end sub


sub trashtype
(trtype)
;
сливаем в треш-бочку все предметы с типом trtype
;
Бочка должна быть в пределах видимости
var i
var Trken
uo
.findtype(0x0FAE,-1,'ground') ; 0x0FAE тип бочки
if uo.findcount()==0 then
uo
.print("Бочки нет");
return
end if
Trken=uo.GetSerial('finditem')
uo.findtype(trtype,-1,'backpack'
while 
uo.findcount()>0
uo
.waittargetobject('finditem')
uo.useobject(Trken)
i=0
uo
.deletejournal()
repeat
wait
(200)
i=i+1
until uo
.injournal('You have recieved') or i>40
uo
.findtype(trtype,-1,'backpack')
Wend
end sub


sub trashh
()
;
трешим молотки
trashtype
(0x1413)
end sub


sub bs
()
Куем из айрон-ингов молотки
var i
var ew=500
var gr='0x1BEf' тип инготов
uo
.waittargetself()
uo.usetype(0x13e3) ; молоток в руки
uo
.set('injectecho','1')
uo.set('soundecho','1')
uo.set('finddistance','1')
Uo.deleteJournal()
hide()
repeat
if uo.count(gr0)==0 then
return
end if 
uo.findtype(gr,0)
if 
uo.getquantity('finditem')<32 then
return
end if
uo.useobject('finditem')
;
uo.waitmenu('Blacksmithing''Weapons''Maces & Hammers''smith`s hammer'
uo.waitmenu('Blacksmithing''Armor''Armor''Platemail Armor''Platemail armor''platemail gorget'
Uo.deleteJournal()
i=0
Repeat
wait
(500)
i=i+1
Until UO
.InJournal("You put the") or UO.InJournal("You have failed") or UO.InJournal("Arch: stop") or UO.InJournal("Menu choice not found")or uo.inJournal("Warning")or i>50
if UO.InJournal("Menu choice not found")or uo.inJournal("Warning"then
uo
.print("Menu choice not found")
wait(1000)
return
end if
if 
UO.InJournal("You have failed"then
ew
=ew+500
else
ew=500
end 
if
wait(ew)
until uo.dead()
end sub



следующие 4 саба взяты из какого-то скрипта с форума yoko.
их цель сделать шаг на соседнюю клетку
sub GoW
() 
VAR 
walkwait=300 
VAR x,y,dir=
VAR key=36 Home key 
x
=UO.GetX() 
y=UO.GetY() 
while 
UO.GetDir()<>dir 
UO
.Press(key
wait(walkwait
If 
UO.GetDir()<>dir Then 
CheckLag
() 
Endif 
wend 
UO
.Press(key

wait(walkwait
If 
x==UO.GetX() AND y==UO.GetY() Then 
CheckLag
() 
Endif 

If 
UO.GetX()+1==x Then 
return -
Else 
return 

Endif 
end sub 


sub GoN
() 
VAR 
walkwait=300 
VAR x,y,dir=
VAR key=33 PgUp 
x
=UO.GetX() 
y=UO.GetY() 
while 
UO.GetDir()<>dir 
UO
.Press(key
wait(walkwait
If 
UO.GetDir()<>dir Then 
CheckLag
() 
Endif 
wend 
UO
.Press(key

wait(walkwait
If 
x==UO.GetX() AND y==UO.GetY() Then 
CheckLag
() 
Endif 

If 
UO.GetY()+1==y Then 
return -
Else 
return 

Endif 
end sub 


sub GoE
() 
VAR 
walkwait=300 
VAR x,y,dir=
VAR key=34 PgDown 
x
=UO.GetX() 
y=UO.GetY() 
while 
UO.GetDir()<>dir 
UO
.Press(key
wait(walkwait
If 
UO.GetDir()<>dir Then 
CheckLag
() 
Endif 
wend 
UO
.Press(key

wait(walkwait
If 
x==UO.GetX() AND y==UO.GetY() Then 
CheckLag
() 
Endif 

If 
UO.GetX()-1==x Then 
return -
Else 
return 

Endif 
end sub 

sub GoS
() 
VAR 
walkwait=300 
VAR x,y,dir=
VAR key=35 End 
x
=UO.GetX() 
y=UO.GetY() 
while 
UO.GetDir()<>dir 
UO
.Press(key
wait(walkwait
If 
UO.GetDir()<>dir Then 
CheckLag
() 
Endif 
wend 
UO
.Press(key

wait(walkwait
If 
x==UO.GetX() AND y==UO.GetY() Then 
CheckLag
() 
Endif 

If 
UO.GetY()-1==y Then 
return -
Else 
return 

Endif 
end sub 

sub CheckLag
() 
UO.DeleteJournal() 
uo.exec('resend')
UO.Click('backpack'

repeat 
wait
(500
until UO.InJournal('Backpack'
end sub 


скрипт на гвардингЗапускается параллельно с основным.
sub guards()
var 
i
repeat
if uo.injournal('атакует Вас') or uo.injournal('Elemental') or (uo.str>uo.lifethen
uo
.deleteJournal()
for 
i=0 to 5
uo
.msg('guards')
wait(1000)
uo.warmode(0)
next
end 
if
wait(500)
until uo.dead()
end sub


Скриптнепосредственно двигающий чара в указанную клетку.
нормально работает только из-за особенностей Кендаля -
Там просто негде затрятьесли way-point`ы расставлены с умом
sub movechar(xx,yy)
repeat
if yy<uo.gety() then
gon()
else 
if yy>uo.gety() then
gos()
end if
end if
if xx<uo.getx() then
gow()
else
if xx>uo.getx() then
goe()
end if
end if
until (xx==uo.getx()) and (yy==uo.gety())
end sub


;Скрипт на обкопку пространства вокруг себя

sub min5x5()
hide()
UO.setcatchbag(0x401d0e0b)
VAR Kirka = '0x0e85'
VAR MaxVes = 815 
VAR TileNum = '1339'
VAR x, y, t, k 
VAR MaxTime = 100 
VAR ms1 = "Здесь больше " 
VAR ms2 = "You can't use" 
VAR ms3 = "You put the" 
VAR ms4 = "fail to find any useable ore"
VAR ms5 = "You are too far away" 
VAR ms6 = "Try mining" 
VAR ms7 = "You can't reach" 

for y=-2 to 2 
    for x=-2 to 2 
    k = 0
    hide()
    repeat 
        UO.DeleteJournal() 
        t = UO.Timer() 
        k = k + 1 
        ;UO.CancelTarget() 
        wait(500) 
        UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0) 
        UO.UseType( Kirka ) 
        repeat 
            if UO.injournal('You put some heavy') then
                UO.playwav("C:\Program Files\EPOX\USDM\warning.wav") 
            ENDIF
            wait(500) 
        until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal('There is no') OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal('You put') OR ((t + MaxTime) < UO.Timer()) 
        If UO.Weight > (UO.Str*4) Then 
            UO.Print("WARNING!!! OVERLOAD!!!" )
            uo.unsetcatchbag()
            plavka() 
            bs()
            movtrashh()
            movebank()
            return 
        Endif 
    until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 20) ) 
    next 
next 
uo.print('Script Ended!')
uo.playwav("D:\games\uo\mining.wav") 
uo.unsetcatchbag()
endsub

; Скрипт на переплавку выкопанной руды. Не проверяет скилы.
; Т.е. если Вы выкопали метеор, он лежит у Вас в паке, но
; Вы не можете его переплавить, то он пропадет
; Скрипт написал Адил :-)
sub plavka()
var fX = 2574
var fY = 475
var forge = "0x4022B4DF" ; ID форжи, в которой будете плавить.

movechar(fX,fY)

VAR Ruda1 = '0x19B9'            ; Тип руды 
VAR Ruda2 = '0x19B8'            ; Тип руды - 3 шт. 
VAR Ruda3 = '0x19BA'            ; Тип руды - 2 шт. 
VAR Ruda4 = '0x19B7'            ; Тип руды - 1 шт. 
VAR Ing1 = '0x1BEF'               ; Тип ингов металлов 
VAR Ing2 = '0x1BF2'               ; Тип ингов строймата 
VAR MaxVes = 500               ; Максимальный вес пака 
repeat    
   UO.Findtype( Ruda1, -1, 0x4022B4DF )      ; Ищем руду на земле 
   If UO.Findcount() == 0 Then 
      UO.Findtype( Ruda2, -1, 0x4022B4DF ) 
      If UO.Findcount() == 0 Then 
         UO.Findtype( Ruda3, -1, 0x4022B4DF ) 
         If UO.Findcount() == 0 Then 
            UO.Findtype( Ruda4, -1, 0x4022B4DF ) 
            If UO.Findcount() == 0 Then 
               UO.Print( "No more ore for smelt..." ) 
               Return 
            Endif 
         Endif 
      Endif 
   Endif 
   UO.Exec( "moveitem finditem 3" )   ; Тащим 1 в пак 
   Wait( 1000 ) 
   UO.Useobject( '0x19B9' )      ; переплавляем 
   Wait( 100 )
   uo.waittargetobject(forge)
   wait( 100 )
  
until NOT Uo.Count( Ruda1 ) AND NOT UO.Count( Ruda2 ) AND NOT UO.Count( Ruda3 ) AND NOT UO.Count( Ruda4 ) 
UO.Print( "No more ore for smelt..." ) 

end sub


; Главный скрипт.
sub min()
;var maxLoad = UO.Str*4
repeat
var i
If UO.Weight > UO.Str*4 then #Calculating of max weight based on character strenght
UO.Print("WARNING!!! OVERLOAD!!!" )
uo.unsetcatchbag()
plavka()
bs()
movtrashh()
movebank() 
return
until UO.Dead()
Endif 


dim coordsX[13] ; Два массива way-point
`овЧар ходит по ним поочередно
dim coordsY
[13] ; Если накопал предельный весидет к форже и плавит
coordsx
[0]=2570 потом куетпотом в треш.
coordsy[0]=477
coordsx
[1]=2575
coordsy
[1]=477
coordsx
[2]=2578
coordsy
[2]=481
coordsx
[3]=2573
coordsy
[3]=481
coordsx
[4]=2570
coordsy
[4]=486
coordsx
[5]=2565
coordsy
[5]=486
coordsx
[6]=2561
coordsy
[6]=490
coordsx
[7]=2568
coordsy
[7]=480
coordsx
[8]=2570
coordsy
[8]=486
coordsx
[9]=2575
coordsy
[9]=480
coordsx
[10]=2578
coordsy
[10]=479
coordsx
[11]=2578
coordsy
[11]=483
coordsx
[12]=2578
coordsy
[12]=479

repeat
for i=0 to 12
movechar
(coordsx[i],coordsy[i])
min5x5()
next
until uo
.dead()
end sub

Скрипт на собирание "сокровищ"
Не доработан поднимает только один элемент из-под ног.
sub putuplux()
dim LT[10]
LT[0]='0x1B48'
LT[1]='0x1B47'
LT[2]='0x1B46'
LT[3]='0x1B45'
LT[4]='0x1B44'
LT[5]='0x1B43'
LT[6]='0x1B42'
LT[7]='0x1B41'
LT[8]='0x1B40'
LT[9]='0x1B3F'
var bx=2559
var by=490
var ij
uo
.set('finddistance',3)
for 
i=0 to 9
uo
.findtype(LT[i], -1'ground')
if 
uo.findcount()>0 then
uo
.moveitem('finditem',0,'my')
j=0
repeat
wait
(10)
j=j+1
until 
(j==100) or (uo.containerof('finditem')=='backpack')
uo.useobject('finditem')
wait(600)
end if
next
end sub

Скрипт на переброску предметов с типом type и цветом color в банк.
sub movetobank(type,color
var 
Pack '0x400F7451' ID мешка в банкепредметы будут положены именно туда.
var 
Obj '0x400782B1' ID банковского сундука
uo
.useobject(Obj)
wait(500
uo.findtype(typecolor'my')
while 
uo.findcount()>0
uo
.moveitem('finditem'0Pack
wait(600
uo.findtype(typecolor'my')
wend 
end 
if 
end sub

Скрипт на перекладывание "лишних" предметов в банк.
Я туда складывал все драгоценные камни (типа турмалинов),
деньги и руду высших металлов.
sub unloading()
var 
i,j
dim items
[11]
items[0]= '0x1be9' 
items[1]= '0x0F15' 
items[2]= '0x0F26' 
items[3]= '0x0F13' 
items[4]= '0x0EED'
items[5]= '0x0F18'
items[6]= '0x0F16'
items[7]= '0x0F10'
items[8]= '0x0F11'
items[9]= '0x1bef'
items[10]= '0x1bf5'
items[11]= '0x1ecd'


DIM OreColor[7]
OreColor[0] = '0x0000' 
OreColor[1] = '0x0944' 
OreColor[2] = '0x0770' 
OreColor[3] = '0x06A3' 
OreColor[4] = '0x0481' 
OreColor[5] = '0x0487' 
OreColor[6] = '0x0482' 
OreColor[7] = '0x0633'

DIM OreType[5]
OreType[0] = '0x19B9'
OreType[1] = '0x19B8'
OreType[2] = '0x19BA'
OreType[3] = '0x19B7'
OreType[4] = '0x1bef'
for i=0 to 2
for j=0 to 3
if uo.count(OreType[j], OreColor[i])>0 then
movetobank
(OreType[j], OreColor[i])
wait(600)
endif
next
next 
for i=0 to 11
if uo.count(items[i])>0 then
movetobank
(items[i], '-1')
wait(600)
end if
next
end sub


sub movebank
() 

var 
bankx 2563
var banky 482
movechar
(bankx,banky)
unloading() 
end sub


sub movtrashh
()
var 
trashhx 2568
var trashhy 475

movechar
(trashhx,trashhy)
trashh()
end sub