Page 1 of 1

Мининг Ривента need help

Posted: 2006-03-29 00:08:35
by skiv
Начит тааак... Вообщем трабл со скриптом Ривента на мининг.
Трабла номер 1:
При разгрузке дропает только 1 кучу руды и останавливается.
Трабла номер 2:
При переходе в next tile бывает лаг, инжа сама кликает на бэк пак и останавливается.
Дальше собственно сам скриптик. Кто знает что не так, объясните плз...

Code: Select all

#########################
############# 
#  Die noob!
#########################
############# 
# в банке должны быть руны в пещеры, помеченные в инжекте как обьекты 
# (Закладка Objects !!!!  не путать c  Object type) 
# Mine , Mine1, Mine2, Mine3, Mine4, а в бекпаке обьект Bank - руна к банку 
# промаркировать каждую пещеру надо зарание, запустив процедуру MultyMark() 
# Для марка, обходя последовательно все точки копания набирать "set" 
# (точка копания - центр квадрата 5х5 тайлов, который выкапывается подчистую) 
# При окончании марка в текущей пещере набрать "stop" перереколиться в следующюю пещеру и продолжить 
# После марка 5 пещер появятся файлы C:\mine4.dat, C:\mine3.dat, C:\mine2.dat, C:\mine1.dat, C:\mine.dat 
# После этого можно начинать копку запустив процедуру main() стоя у банка. 
# И если в банке будут лежать жаренные фишстеки, чар не применет возможностью ими полакомиться. 
# при вероятности дисконнектов перед копкой запускать процедуру Reconnect 
#
#
# скрипт с авторесом (при стаке в Брит) Верхнее меню помощи должно быть открыто.
# процедуру minesh(PX,PY) поставить вместо mine(PX,PY) для копки лопатой и разбивания добытых камней на стоунблоки, в паке должна быть кирка
# процедура pod() для экстренного подьема выпавшей из банка руды. Контейнер куда собирать указать в самой процедуре.

#########################
#######
var Cont = '0x40017CCE'    ;ID контейнера в который будет складываться накопанное.
var RC = '0x40D0375A'      ;ID контейнера с регами
var Dagg = '0x40F18080'  ;ID контейнера с дагерами и бинтами (на случай если копаются элемы)
var food= '0x097B'                  ;еда(type) по умолчанию жаренные фишстейки
var q, w, p
var f=file("C:\mine.dat")
;var f , mine
var mine

#########################
######        процедура запуска для  5 пещер
# количество пещер может быть уменьшено или увеличено 
# удалением или внесением троестрочий вида: 
#      f=file("C:\mine1.dat") 
#      mine='Mine1' 
#      one() 

sub main()
repeat

f=file("C:\mine.dat")
mine='Mine'                      
one()


f=file("C:\mine1.dat")
mine='Mine1'
one()


f=file("C:\mine2.dat")
mine='Mine2'
one()

# f=file("C:\mine3.dat")
# mine='Mine3'
# one()

# f=file("C:\mine4.dat")
#  mine='Mine4'
#  one()


until UO.Dead()
end sub
#########
sub tert()
  uo.print(str(uo.str*4))
end sub
#########################
#######      
sub one()
dim PX[50], PY[50]
var Minepoints=0
var i

uo.Print('Loading from file...') 
f.open() 
Minepoints=safe call f.ReadNumber() 
for i=1 to Minepoints 
  PX[i]=safe call f.ReadNumber() 
  PY[i]=safe call f.ReadNumber() 
next 
f.close() 
uo.Print('Loaded')
uo.say("Bank")
wait(100)
med()
takereg()
Recall(mine)
for p=1 to Minepoints 
  uo.Print('X: '+str(PX[p])+' Y: '+str(PY[p]))
  WalkN(PX[p],PY[p],'')
  q=PX[p]
  w=PY[p]
  uo.Print('Mining...')
  UO.Warmode("0")
  mine(PX,PY)
;minesh(PX,PY)
next
recall('Bank')  
Razg()
end sub
#########################
#
sub vozvrat(PX,PY)
var i
uo.Print('Move...')
for i=1 to p
  uo.Print('X: '+str(PX[p])+' Y: '+str(PY[p]))
  WalkN(PX[i],PY[i],'')
next
end sub
########################
sub Mark()
dim PX[50], PY[50]
var Minepoints=0
var i
uo.Print('Start marking...') 
for i=1 to 50
UO.DeleteJournal()
uo.Print('Set point '+ str(i))
repeat
    wait(500)
    if UO.InJournal('stop')then
      SaveToFile(i-1,PX,PY)
      return
    endif
until UO.InJournal('set')
  PX[i] = UO.GetX("self") 
  PY[i] = UO.GetY("self") 
  uo.Print('Point '+str(i)+' X: '+str(PX[i])+' Y: '+str(PY[i])+'taken')
next
end sub
########################
sub MultyMark()
uo.Print('Cove............ 1') 
f=file("C:\mine.dat")
Mark()
uo.Print('Cove............ 2') 
f=file("C:\mine1.dat")
Mark()
uo.Print('Cove............ 3') 
f=file("C:\mine2.dat")
Mark()
# uo.Print('Cove............ 4') 
# f=file("C:\mine3.dat")
# Mark()
# uo.Print('Cove............ 5') 
# f=file("C:\mine4.dat")
#  Mark()
  uo.Print('Marking finished. Ready for mine') 
end sub
#########################
####
sub SaveToFile(mp,PX,PY) 
var s=0,k=0 
f.open() 
f.create() 
uo.Print('points = '+ str(mp))
  s=safe call f.writeln(mp) 
for k=1 to mp 
  s=safe call f.writeln(str(PX[k])+' '+str(PY[k])) 
next 
f.close() 
end sub 

#########################
#########
sub mine(PX,PY) 
  var x,y,z
  VAR LastTimer 
  UO.Set('finddistance','2') 
  z=UO.GetZ("self") 
    for x=-2 to 2 
        for y=-2 to 2 
        Hid()      
          UO.Print(str(x)+" "+str(y))
          Repeat 
              if UO.InJournal('TORMOZ') then
                pause()
              endif
              if uo.injournal('boulder')or UO.count('0x134F') then
                boulder()
              endif
;              if uo.dead() then
;                  wait(180000)
                ;if uo.dead() then
                    ;ressurect(PX,PY)
                endif
;              endif
              UO.DeleteJournal()
              UO.Warmode("0")
              UO.WaitTargetTile("1341",STR(UO.GetX()+x),STR(UO.GetY()+Y),str(z)) 
              UO.UseType('0x0E85')
              LastTimer=UO.Timer() 
              Repeat
                wait(500)
                lookout()
              Until UO.InJournal("You put") or UO.InJournal("can't see") or UO.InJournal("heavy") or UO.InJournal("location") or UO.InJournal("no ore") or UO.InJournal("but fail") or UO.InJournal("far away") or UO.InJournal("in rock") or UO.InJournal("must wait") or UO.InJournal("nothing") or UO.InJournal("elsewhere") or UO.InJournal("where it") OR UO.Timer()>LastTimer+200
            ;lookout()
          Until UO.InJournal("nothing") or UO.InJournal("elsewhere") or UO.InJournal("no ore here") or UO.InJournal("location") or UO.InJournal("far away") or UO.InJournal("in rock") or UO.InJournal("where it") or UO.InJournal("must wait")
              if UO.Weight>(uo.str*4) then
                unload(PX,PY)
              endif
        ;wait(4000)  ; раскоментировать при копке лопатой
        next 
    next
end sub
#########################
################
sub lookout()
  if UO.InJournal("elemental") then
      killelem()
  endif
end sub
#########################
##############
sub check()
  var noto, ser, jor
      for jor = 0 to 9
          ser = uo.journalserial(jor)
          UO.Print(ser)
          uo.Print(str(uo.IsNPC("ser")))
          if not UO.IsNPC('ser') and not uo.injournal("elemental") and ser <> '0x00000000' then
            if uo.waiting() then
                uo.canceltarget()
            endif
            UO.DeleteJournal()
            UO.Print('PPPPPP')
          UO.Print(ser)
          recall('Bank')  
          Razg()
          wait(180000)
            return
          endif
          
      next
end sub
#########################
##############
sub Pause()
UO.DeleteJournal() 
REPEAT 
WAIT(3000) 
UO.Print("Paused") 
UNTIL UO.InJournal('GO') 
UO.Print("Continue") 
endif 
end sub 
#########################
###################
sub heal()
UO.SetArm('arm')
UO.Exec('bandageself')
wait(500)
UO.Arm('arm')
wait(2000)
end sub
#########################
#############
sub Razg()
VAR a
VAR LastTimer 
DIM Ore[12] 
Ore[1]=0x19B9; 4 and more ore 
Ore[2]=0x19B7; 1 ore 
Ore[3]=0x19BA; 2 ore 
Ore[4]=0x19B8; 3 ore 
Ore[5]=0x0EED; деньги
Ore[6]=0x09AA; пандоры
Ore[7]=0x19B9; руда
Ore[8]=0x0F26; диаманты
Ore[9]=0x0F8A; pig iron
Ore[10]=0x1422; plaster
Ore[11]=0x1BF2; marble
Ore[12]=0x14EB; map


uo.say("Bank")
wait(100)
For a=1 to 12 
  While UO.Count(ore[a])>0 
        UO.FindType(ore[a],-1,-1)
        UO.MoveItem('finditem',0,Cont) 
        wait(200)
        uo.print(ore[a])
  Wend 
next
eat()
  While UO.Count('0x0E20')>0 
        UO.FindType('0x0E20',-1,-1)
        UO.MoveItem('finditem',0,Dagg) 
        wait(200)
  Wend 
takereg()
if UO.Mana < 30 then
  while UO.Mana<UO.Int 
        LastTimer=UO.Timer() 
        UO.UseSkill('Meditation') 
        repeat 
          wait(100) 
        until UO.InJournal("You are") OR UO.InJournal("You lose") OR UO.Timer()>LastTimer+200 
        UO.DeleteJournal() 
        wait(200) 
  wend 
endif  
end sub


#########################
##############
sub eat()
VAR LastTimer 
  UO.DeleteJournal()
  repeat
  LastTimer=UO.Timer() 
  UO.findtype(food,-1,'0x4001ABF5')
    if UO.findcount('finditem') then
        uo.print('eat')
        UO.Useobject('finditem') 
        wait(500)
    else
        return
    end if
  Until UO.InJournal("stuffed!") OR UO.InJournal("think") or UO.InJournal("found") OR UO.Timer()>LastTimer+200 
end sub
#########################
#######
sub unload(PX,PY)
  Recall('Bank')
  Razg()
  wait(100)
  takereg()
  wait(100)
  Recall(mine)
  uo.DeleteJournal()    
  vozvrat(PX,PY)
end sub
#########################
###############
sub ressurect1(PX,PY)
  CheckLag()
  UO.LClick(17,13)
  wait(1000)
  CheckLag()
  UO.LClick(17,61)
  wait(1000)
  CheckLag()
  uo.useobject('0x40FD37A9')
  wait(100)
  uo.useobject('backpack')
  wait(1000)
  uo.say('bank')
  wait(500)
  takereg()
  wait(1000)
  eat()
  wait(180000)
  Recall(mine)
  uo.DeleteJournal()    
  vozvrat(PX,PY)  
end sub
#########################
####
sub ressurect(PX,PY)
  UO.Exec('warmode 0')
  CheckLag()
  UO.LClick(17,13)
  wait(1000)
  CheckLag()
  UO.LClick(17,61)
  wait(1000)
  CheckLag()
  WalkN(1483,1636,'')
  WalkN(1480,1639,'')
  WalkN(1480,1647,'')
  WalkN(1468,1649,'')
  WalkN(1460,1657,'')
  WalkN(1460,1684,'')
  WalkN(1463,1690,'')
  WalkN(1463,1697,'')
  WalkN(1442,1697,'')
  WalkN(1430,1697,'')
  WalkN(1430,1691,'')
  WalkN(1428,1689,'')
  WalkN(1428,1684,'')
  WalkN(1428,1680,'')
  WalkN(1426,1678,'')
  uo.useobject('0x40021D98')
  wait(100)
  uo.useobject('backpack')
  wait(1000)
  uo.say('bank')
  wait(500)
  takereg()
  wait(1000)
  eat()
  Recall(mine)
  uo.DeleteJournal()    
  vozvrat(PX,PY)  
end sub
#########################
#####
sub med()
VAR LastTimer 
UO.DeleteJournal() 
while UO.Mana<UO.Int 
LastTimer=UO.Timer() 
UO.UseSkill('Meditation') 
repeat 
  wait(100) 
until UO.InJournal("You are") OR UO.InJournal("You lose") OR UO.Timer()>LastTimer+200 
UO.DeleteJournal() 
wait(200) 
wend 
end sub
#########################
################
sub takereg()
DIM reg[3]
var i,n
reg[1]='0x0F86'; MR
reg[2]='0x0F7A'; BP
reg[3]='0x0F7B'; BM

UO.UseObject(RC)
for i=1 to 3
  while UO.Count(reg[i])<5
    UO.FindType(reg[i],-1,RC)
    n=UO.Count(reg[i])
    UO.Grab(str(5-n),'finditem')
    wait(200)
    CheckLag()
  wend  
next
;UO.UseObject(Dagg)
; if not UO.count('0x0F51') then
;      UO.FindType('0x0F51',-1,Dagg)
;      IF uo.findcount() then
;        UO.Grab(str(1),'finditem')
;        wait(200)
;        CheckLag() 
;      endif  
; endif
;  if not UO.count('0x0E21') then
;      UO.FindType('0x0E21',-1,Dagg)
;            n=UO.Count(reg[i])
;      IF uo.findcount() then
;        UO.Grab(str(12-n),'finditem')
;        wait(200)
;        CheckLag() 
;      endif  
; endif
end sub
#########################
################
sub CheckLag() 
UO.DeleteJournal() 
UO.Click('backpack') 
repeat 
wait(500) 
until UO.InJournal('Backpack') 
end sub
#########################
#############
sub Reconnect() 
var ReconnectTime,rFlag 
ReconnectTime='0' 
rFlag=1 
repeat 
while (uo.ObjAtLayer('Bpack')=='') 
if rFlag then 
ReconnectTime=MakeTime() 
rFlag=0 
end if 
wait(20000) 
uo.Say('skiv') 
wait(3000) 
uo.Say('12314766') 
wait(3000) 
uo.Say('Skiv') 
wait(3000) 
uo.LDblClick(357,164) 
uo.LClick(616,459) 
wait(3000) 
wend 
wait(3000) 
if (rFlag==0) and (ReconnectTime<>'0') then 
uo.TextOpen() 
uo.TextPrint('Disconnected & Reconnected @ '+ReconnectTime) 
rFlag=1 
ReconnectTime='0' 
end if 
until false 
end sub 


sub MakeTime() 
  VAR D, T, Ret, i 
  Ret = STR(UO.Time()) 
  T = "" 
  For i = 0 To Len(Ret) 
    T = Ret[Len(Ret)-i] + T 
    If (I == 2) OR (I == 4) Then 
        T = ":" + T 
    EndIf 
  Next 
  Ret = STR(UO.Date()) 
  D = "" 
  For i = 0 To Len(Ret) 
    D = Ret[Len(Ret)-i] + D 
    If (I == 2) OR (I == 4) Then 
        D = "." + D 
    EndIf 
  Next    
  Ret = T + " @ " + D 
  RETURN Ret 
end sub 
#########################
###########
sub Hid() 
while not uo.Hidden() 
uo.exec('warmode 0')
uo.Print('Hiding...') 
uo.UseSkill('Hiding') 
wait(4000) 
wend 
wait(100) 
end sub 
#########################
########
sub Recall(dest) 
var b 
uo.print('Recoll')
for b=1 to 10 
  uo.deletejournal() 
  uo.waittargetobject(dest) 
  uo.cast('Recall',dest) 
  if WaitForRecall()==1 then 
    return 1 
  end if 
next
return 0 
end sub 
#########################
##########
sub WaitForRecall() 
var Text1=uo.getname()+": The spell fizzles." 
var mess='',lastX=uo.getX(),lastY=uo.getY() 
for var v=0 to 200 
  mess=uo.journal(0) 
  if uo.Journal(0)==Text1 then 
    return 0 
  end if 
  if uo.getX()<>lastX OR uo.getY()<>LastY then 
    return 1 
  end if 
  wait(50) 
next 
return 0 
end sub 
#########################
#######  
sub killelem() 
VAR LastTimer, Elem ,i
LastTimer=UO.Timer()
  UO.DeleteJournal() 
UO.FindType('0x000E',-1,'ground') 
Elem=UO.GetSerial('finditem')
UO.Exec('warmode 1')
UO.Attack(Elem)
;WalkN(0,0,Elem)
UO.Say('Dye, mother fucker!')
repeat 
      wait(2000)
  until UO.InJournal('Body') OR LastTimer+300<UO.Timer() or uo.dead(Elem)
UO.Exec('warmode 0') 
wait(100) 
LastTimer=UO.Timer() 
if UO.Life<50 and UO.Count('0x0E21') then
  repeat 
    UO.BandageSelf() 
    wait(4000) 
  until UO.Life>170 OR LastTimer+300<UO.Timer() 
endif
loot()
WalkN(q,w,'')
end sub 
#########################
#########
sub loot() 
DIM R[5] 
var a 
R[1] = 0x0EED # деньги
R[2] = 0x09AA # пандоры
R[3] = 0x19B9 # руда
R[4] = 0x0F8A # pig iron
R[5] = 0x19BA # руда, 2 штучки

UO.UseObject('lastcorpse')
wait(100)
uo.exec("warmode '0'")
uo.waittargetobject('lastcorpse') 
uo.usetype(0x0F51) 
wait(500) 

for a=1 to 5 
uo.findtype(R[a],"-1","lastcorpse")
if UO.FindCount()>0 and Uo.GetDistance("lastcorpse")<=2 then 
UO.Grab("0","finditem") 
wait(1500) 
end if 
wait(10) 
next 
end sub
#########################
#####
#========================
=========================
============= 
#  WalkN(X,Y,Serial) - char is walking by dX and dY step 
#                sub using Home, End, PgUp, PgDown keys 
#                d'not rebind this key from default action! 
#      serial - Serial of target or "" - string 
#    walkwait - delay after keypress 
#    Example: 
#    WalkN(2080,2113,'') - go to coordinates 
#    WalkN(0,0,'0x12345678') - go to target position 
#-------------------------------------------------------------- 
sub WalkN(x,y,Target) 
  VAR i,StepSucess 
  VAR dx,dy,Exit=0 
  
  While Exit<>1    
    If Target<>"" Then 
        dx=UO.GetX(Target)-UO.GetX() 
        dy=UO.GetY(Target)-UO.GetY() 
;        UO.Print("Target locked!") 
        If UO.GetDistance(Target)<2 Then 
          Exit=1 
        Endif 
    Else 
        dx=x-UO.GetX() 
        dy=y-UO.GetY() 
        If dx==0 AND dy==0 Then 
          Exit=1 
        Endif 

    Endif 
  
    If dx<>0 AND dy<>0 Then 
        If dx>0 AND dy>0 Then 
          StepSucess=Go(3,40,300);S
E - DownArrow 
          If StepSucess==-1 Then 
              StepSucess=Go(7,38,300);W
N - UpArrow 
              StepSucess=Go(1,39,300);N
E - RightArrow 
              If StepSucess==-1 Then 
                StepSucess=Go(5,37,300);S
W - LeftArrow 
              Endif 
          Endif 
        Endif 

        If dx>0 AND dy<0 Then 
          StepSucess=Go(1,39,300);N
E - RightArrow 
          If StepSucess==-1 Then 
              StepSucess=Go(5,37,300);S
W - LeftArrow 
              StepSucess=Go(3,40,300);S
E - DownArrow 
              If StepSucess==-1 Then 
                StepSucess=Go(7,38,300);W
N - UpArrow 
              Endif 
          Endif 
        Endif 

        If dx<0 AND dy>0 Then 
          StepSucess=Go(5,37,300);S
W - LeftArrow 
          If StepSucess==-1 Then 
              StepSucess=Go(1,39,300);N
E - RightArrow 
              StepSucess=Go(7,38,300);W
N - UpArrow 
              If StepSucess==-1 Then 
                StepSucess=Go(3,40,300);S
E - DownArrow 
              Endif 
          Endif 
        Endif 

        If dx<0 AND dy<0 Then 
          StepSucess=Go(7,38,300);W
N - UpArrow 
          If StepSucess==-1 Then 
              StepSucess=Go(3,40,300);S
E - DownArrow 
              StepSucess=Go(5,37,300);S
W - LeftArrow 
              If StepSucess==-1 Then 
                StepSucess=Go(1,39,300);N
E - RightArrow 
              Endif 
          Endif 
        Endif 

    Endif 
  
    If dx<>0 AND dy==0 Then 
        If dx>0 Then 
          StepSucess=Go(2,34,300);E
- PgDown 
          If StepSucess==-1 Then 
              StepSucess=Go(3,40,300);S
E - DownArrow 
              If StepSucess==-1 Then 
                StepSucess=Go(1,39,300);N
E - RightArrow 
              Endif 
              StepSucess=Go(2,34,300);E
- PgDown 
          Endif 
        Endif 
        
        If dx<0 Then 
          StepSucess=Go(6,36,300);W
- Home 
          If StepSucess==-1 Then 
              StepSucess=Go(7,38,300);W
N - UpArrow 
              If StepSucess==-1 Then 
                StepSucess=Go(5,37,300);S
W - LeftArrow 
              Endif 
              StepSucess=Go(6,36,300);W
- Home 
          Endif 
        Endif 
    Endif 


    If dx==0 AND dy<>0 Then 
        If dy>0 Then 
          StepSucess=Go(4,35,300);S
- End 
          If StepSucess==-1 Then 
              StepSucess=Go(3,40,300);S
E - DownArrow 
              If StepSucess==-1 Then 
                StepSucess=Go(5,37,300);S
W - LeftArrow 
              Endif 
              StepSucess=Go(4,35,300);S
- End 
          Endif 
        Endif 
        
        If dy<0 Then 
          StepSucess=Go(0,33,300);N
- PgUp 
          If StepSucess==-1 Then 
              StepSucess=Go(1,39,300);N
E - RightArrow 
              If StepSucess==-1 Then 
                StepSucess=Go(7,38,300);W
N - UpArrow 
              Endif 
              StepSucess=Go(0,33,300);N
- PgUp 
          Endif 
        Endif 
    Endif 
  Wend 
end sub 


sub Go(dir,key,walkwait) 
  VAR x,y, OldDir 

  x=UO.GetX() 
  y=UO.GetY() 
  OldDir=UO.GetDir() 
;hid()
  If UO.GetDir()<>dir Then 
    UO.Press(key) 
    wait(walkwait) 
    If UO.GetDir()<>dir Then 
        CheckLag() 
    Endif 
  Endif 

  UO.Press(key) 
  wait(walkwait) 

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

  If x==UO.GetX() AND y==UO.GetY() AND OldDir<>UO.GetDir() Then 
    UO.Press(key) 
    wait(walkwait) 
  Endif 

  If x==UO.GetX() AND y==UO.GetY() Then 
    CheckLag() 
  Endif 
  
  If x==UO.GetX() AND y==UO.GetY() Then 
    UO.Print("Zasada!") 
    return -1 
  Else 
    return 1 
  Endif 
end sub 
#########################
##################
sub pod()
UO.Say('Bank')
repeat
  uo.findtype('0x19B9',-1,'ground')
  if UO.FindCount() and Uo.GetDistance('finditem')<3 then 
    uo.moveitem('finditem','1000','0x40FA6B85')
    wait(100)
  end if
  wait(1000)
    uo.print("1")
  until not UO.FindCount()
end sub
#########################
#######################
sub boulder()
if uo.count('0x0E85') then
  while uo.count('0x134F')
    uo.waittargettype('0x134F')
    uo.usetype('0x0E85') 
    wait(100)
  wend
  uo.findtype('0x134F',-1,'ground')
    if uo.FindCount()then
      uo.waittargetobject('finditem')
      uo.usetype('0x0E85')
    endif
    wait(2000)
endif
end sub
#########################
#######################
sub minesh(PX,PY) 
  var x, y,z 
  VAR LastTimer 
  uo.LastTile()

  UO.Set('finddistance','2') 
  z=UO.GetZ("self") 
    for x=-2 to 2 
        for y=-2 to 2 
        ;Hid()      
          UO.Print(str(x)+" "+str(y))
          Repeat 
              if UO.InJournal('TORMOZ') then
                pause()
              endif
              if uo.injournal('boulder')or UO.count('0x134F') then
                boulder()
                UO.Print('boulder')
              endif
              If UO.targeting() then
                uo.canceltarget()
              endif
              UO.DeleteJournal()
              UO.Warmode("0")
              UO.WaitTargetTile("1339",STR(UO.GetX()+x),STR(UO.GetY()+Y),str(z))
              UO.UseType('0x0F39')
              LastTimer=UO.Timer() 
              Repeat 
                wait(500) 
              Until UO.InJournal("You put") or UO.InJournal("can't see") or uo.injournal('boulder') or UO.InJournal("heavy") or UO.InJournal("location") or UO.InJournal("no ore") or UO.InJournal("but fail") or UO.InJournal("far away") or UO.InJournal("in rock") or UO.InJournal("must wait") or UO.InJournal("nothing") or UO.InJournal("elsewhere") or UO.InJournal("where it") OR UO.Timer()>LastTimer+200
              lookout()

          Until UO.InJournal("nothing") or UO.InJournal("elsewhere") or UO.InJournal("no ore here") or UO.InJournal("location") or UO.InJournal("far away") or UO.InJournal("in rock") or UO.InJournal("where it")
            
              if UO.Weight>(uo.str*4 - 20) then 
                unload(PX,PY)
              endif
        ;wait(2000)  ;на случай флуда в окне
        next 
    next
end sub
Буду благодарен :roll:

Posted: 2006-03-29 23:06:27
by skiv
up?

Posted: 2006-03-29 23:25:38
by Grin

Code: Select all

sub Razg() 
VAR a 
VAR LastTimer 
DIM Ore[13] 
Ore[1]=0x19B9; 4 and more ore 
Ore[2]=0x19B7; 1 ore 
Ore[3]=0x19BA; 2 ore 
Ore[4]=0x19B8; 3 ore 
Ore[5]=0x0EED; деньги 
Ore[6]=0x09AA; пандоры 
Ore[7]=0x19B9; руда 
Ore[8]=0x0F26; диаманты 
Ore[9]=0x0F8A; pig iron 
Ore[10]=0x1422; plaster 
Ore[11]=0x1BF2; marble 
Ore[12]=0x14EB; map 


uo.say("Bank") 
wait(100) 
For a=1 to 12 
  While UO.Count(ore[a])>0 
        UO.FindType(ore[a],-1,'backpack') 
        UO.MoveItem('finditem',0,Cont) 
        wait(200) 
        uo.print(str(ore[a])) 
  Wend 
next 
eat() 
  While UO.Count('0x0E20')>0 
        UO.FindType('0x0E20',-1,'backpack') 
        UO.MoveItem('finditem',0,Dagg) 
        wait(200) 
  Wend 
takereg() 
if UO.Mana < 30 then 
  while UO.Mana<UO.Int 
        LastTimer=UO.Timer()
        UO.DeleteJournal() 
        UO.UseSkill('Meditation') 
        repeat 
          wait(100) 
        until UO.InJournal("You are") OR UO.InJournal("You lose") OR UO.Timer()>LastTimer+200      
        wait(200) 
  wend 
endif
это что касается дрова... возможна трабла в быстром перетаскивании...
поповоду второго... определись на какой части он зависает... до ходилки или после... добавив принт до и после