Page 1 of 1

Mining...

Posted: 2006-04-27 15:58:44
by Mazhor

Code: Select all

var rb = '0x75F983FC';RunBuk
Var ore = '0x19B9'
var ingtype = '0x1BF2'
var kirka = '0x0E85'
var shit = '0x1B76'

var nyLLIka = '0x13FE'

Var elem = '0x000E'
VAR MaxTime = 120   ; измеряется в 1/10 сек. 
var refresh = '0x0F0B'
var stamprotect = 20
var forge = '0x0FB1'
Var sera = '0x0F8C'
Var gold = '0x0EED'
var chekhp = 50
var gh = '0x0F0C'
var sunduk = '0x75FAA6D6';самый левый.
var sunduk1 = '0x75FAA6D1'
var havka = '0x171F'
var gstr = '0x0F09'
var bandage = '0x0E21'
var shagx = 3
var shagy = 3
var nognizi = '0x0F9E'

VAR ms1 = "Вы не видите цели" 
VAR ms2 = "Слишком далеко" 
VAR ms3 = "Рудная жила в этом месте" 
VAR ms4 = "Сначала вы должны" 
VAR ms5 = "Вы должны подождать" 
VAR ms6 = "Цель находится" 
VAR ms7 = "Вы прекратили копать" 
Var attackms = "attackin"


sub gostart()
gohome()
start()
endsub

sub stamdetekt()
while true
if uo.injournal("fatigued to move") then
uo.sayu(".drinkref")
havka()
uo.deletejournal()
wait(2000)
else
wait(5000)
endif
wend
endsub

sub start()

uo.exec('exec reconnector')
while true
vihod()

repeat
uo.useobject(rb)
wait(500)
uo.lclick(63,158) ;Destard
wait(12000)
until uo.getx() == 1248 and uo.gety() == 2653
wait(500)
go()
wait(500)
gohome()
wait(500)
vihod()
wait(500)

;repeat
;uo.useobject(rb) 
;wait(500)
;uo.lclick(64,172) ;Trin_3
;wait(12000)
;until uo.getx() == 1417 and uo.gety() == 2888
;wait(500)
;go()
;wait(500)
;gohome()
;wait(500)
;vihod()
;wait(500)


repeat
uo.useobject(rb)
wait(500)
uo.lclick(62,82)
wait(12000)
until uo.getx() == 769 and uo.gety() == 1679
wait(500)
go()
wait(500)
gohome()
wait(500)
vihod()
wait(500)

repeat
uo.useobject(rb)
wait(500)
uo.lclick(62,98)
wait(12000)
until uo.getx() == 2437 and uo.gety() == 901
wait(500)
go()
wait(500)
gohome()
wait(500)
vihod()
wait(500)

repeat
uo.useobject(rb)
wait(500)
uo.lclick(63,111)
wait(12000)
until uo.getx() == 2362 and uo.gety() == 823
wait(500)
go()
wait(500)
gohome()
wait(500)
vihod()
wait(500)

;uo.useobject(rb)
;wait(500)
;repeat
;uo.lclick(64,127)
;wait(12000)
;until uo.getx() == 4020 and uo.gety() == 434
;wait(500)
;go()
;wait(500)
;gohome()
;wait(500)
;vihod()
;wait(500)

repeat
uo.useobject(rb)
wait(500)
uo.lclick(62,143)
wait(12000)
until uo.getx() == 4009 and uo.gety() == 309
wait(500)
go()
wait(500)
gohome()
wait(500)
vihod()
wait(500)

repeat
uo.useobject(rb)
wait(500)
uo.lclick(63,160)
wait(12000)
until uo.getx() == 991 and uo.gety() == 1586
wait(500)
go()
wait(500)
gohome()
wait(500)
vihod()
wait(500)



wend
endsub

sub kopka()
var k, x, y , t
for y=-2 to 2
for x=-2 to 2 
		UO.FindType(elem, -1, 1)
if  uo.FindCount() > 0 or uo.gethp() < uo.getmaxhp() then
		if uo.gethp() > uo.getmaxhp() - 10 then
		armslor()
		endif
		UO.FindType(elem, -1, 1)
			Uo.Equipt('Rhand', nyLLIka)
			Uo.Equipt('Lhand', shit)
			wait(500)
			uo.warmode(true)
			uo.attack(uo.getserial('finditem'))
			
			
			Repeat
			UO.FindType(elem, -1, 1)
			if uo.findcount()> 1	then
			chekhp = 80
			uo.print("Boremsya s "+Str(uo.findcount())+" elemami ! banki s 80")
			else
			uo.print("Boremsya s "+Str(uo.findcount())+" elemom! banki s 50")
			chekhp = 50
			endIf			
			if uo.gethp() <= chekhp then
			uo.usetype(gh)
			endif
			Uo.Equipt('Rhand', nyLLIka)
			Uo.Equipt('Lhand', shit)
			wait(300)
			Uo.Press(120)
			;wait(3000)

			wait(4000)
			Uo.UseType('0x0F09')
			UO.FindType(elem, -1, 1)
			Until (UO.GetHP() == UO.GetMaxHp()) and (UO.FindCount() == 0 )
			UO.warmode(false)
			UO.Exec('exec loot')
			wait(2000)
			;UO.Exec('exec go')
			
else
         if uo.weight >=2000 then
         x = 2
         y = 2
         else


      k = 0 
      	 UO.CancelTarget()
      	 havka()
         UO.DeleteJournal() 
         t = UO.Timer() 
         k = k + 1 
         wait(300) 
         ;UO.print(x +"  "+y)
         UO.WaitTargetTile( '1339', STR( UO.GetX("self") + x ), STR( UO.GetY("self") + y ), 0) 
         UO.UseType( Kirka ) 
         UO.print ("Kopaem v: "+ STR( UO.GetX("self") + x )+" "+ STR( UO.GetY("self") + y ))

         repeat
            wait(500) 
         until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR ((t + MaxTime) < UO.Timer()) ;OR UO.InJournal(ms4) 
		 endif

next 
next 
Uo.Print(k)

endif

endsub

sub checkstam()

havka()

if uo.stamina < stamprotect then
uo.findtype(refresh,-1,'backpack')
if uo.findcount() then
uo.usetype(refresh)
wait(1000)
else
uo.print("Nety Refreshey blya!")
repeat
wait(500)
until uo.stamina >= stamprotect
endif
else
endif
uo.exec('set finddistance 2')
UO.FindType(forge,-1,'ground')
if uo.findcount() then
;plavka()
else
endif
loot()
endsub

sub gohome()
repeat
uo.useobject(rb)
wait(500)
uo.lclick(213,83)
wait(12000)
until uo.getx() == 364 and uo.gety() == 1482 and uo.getZ() == 2
checklag()
walker(364,1481,6)
checklag()
uo.opendoor()
walker(364,1475,9)
wait(500)
walker(362,1475,9)
uo.print("Priehali ura!")
plavka()
armslor()
rasklad()
endsub

sub blud()
uo.waittargettile('2881', '5176', '3266', '46')
uo.usetype('0x0E22')
endsub

sub vihod()
var i = 0
blud()
dropblya()
uo.useobject(sunduk)
uo.useobject(sunduk1)
uo.findtype(gstr,-1,'backpack')
uo.moveitem('finditem',0,sunduk1)
wait(300)
uo.findtype(refresh,-1,'backpack')
uo.moveitem('finditem',0,sunduk1)
wait(300)
uo.findtype(gh,-1,'backpack')
uo.moveitem('finditem',0,sunduk1)
wait(300)
uo.findtype(havka,-1,'backpack')
uo.moveitem('finditem',0,sunduk1)
wait(300)
uo.findtype(gold,-1,'backpack')
uo.moveitem('finditem',0,sunduk1)
wait(300)
uo.findtype('0x0F9E');noznizi
while uo.findcount() > 0
uo.findtype(bandage)
uo.moveitem('finditem',0,sunduk)
wait(300)
wend
uo.findtype(bandage)
while uo.findcount() > 0
uo.findtype(bandage)
uo.moveitem('finditem',0,sunduk1)
wait(300)
wend
uo.findtype('0x0F0E');emptybotle
while uo.findcount() > 0
uo.findtype('0x0F0E')
uo.moveitem('finditem',0,sunduk1)
wait(300)
wend

uo.findtype(nyLLIka)
while uo.findcount() > 0
uo.findtype(kirka)
uo.moveitem('finditem',0,sunduk)
wait(300)
wend

uo.findtype(kirka)
while uo.findcount() > 0
uo.findtype(kirka)
uo.moveitem('finditem',0,sunduk)
wait(300)
wend
uo.findtype(shit)
while uo.findcount() > 0
uo.findtype(shit)
uo.moveitem('finditem',0,sunduk)
wait(300)
wend
armslor()

## berem hlam

while i < 5
uo.findtype(kirka,-1,sunduk)
uo.grab(1,'finditem')
i = i + 1
wait(300)
wend
i = 0
while i < 3
uo.findtype(shit,-1,sunduk)
uo.grab(1,'finditem')
i = i + 1
wait(300)
wend
i = 0
uo.findtype(nognizi,'0x005F',sunduk)
uo.grab(25,'finditem')
wait(300)
uo.findtype(gh,-1,sunduk1)
uo.grab(25,'finditem')
wait(300)
uo.findtype(gh,-1,sunduk1)
uo.grab(1,'finditem')
wait(300)
uo.findtype(refresh,-1,sunduk1)
uo.grab(15,'finditem')
wait(300)
uo.findtype(gstr,-1,sunduk1)
uo.grab(1,'finditem')
wait(300)
uo.findtype(bandage,-1,sunduk1)
uo.grab(150,'finditem')
wait(300)
checklag()
walker(5174,3270,0)
wait(1000)
uo.opendoor()
wait(300)
walker(5174,3273,0)
banan()
endsub

sub banan()
uo.waittargetobject('0x756904BB')
uo.usetype('0x0F9E')
repeat
wait(50)
until UO.injournal("собрали")
uo.usetype(havka)
wait(1000)
armslor()
endsub

sub rasklad() 
uo.exec('set finddistance 3') 
var ix, iy, iid, icolor = 1, ingtype='0x1BF2' 
uo.findtype(ingtype,-1,'backpack') 
while uo.findcount() > 0  
   iid = uo.getserial('finditem') 
   ;UO.Print(iid)
   icolor = uo.getcolor(iid) 
   ;UO.Print(icolor)
   uo.findtype(ingtype,icolor,'ground') 
   if uo.findcount() >0 then  
      ix = uo.getx('finditem') 
      iy = uo.gety('finditem') 
      ;uo.print("Found ing "+ uo.getserial('finditem')+" in X="+Str(ix)+" and Y="+Str(iy))
      uo.moveitem(iid,'all',uo.getserial('finditem'),ix,iy,46) 
   else 
      uo.drophere(iid) 
   endif 
   wait(500) 
   uo.findtype(ingtype,-1,'backpack') 
wend
endsub

sub dropblya()
armslor()
uo.findtype(ingtype,-1,'backpack')
while uo.findcount() > 0 
uo.findtype(ingtype,-1,'backpack')
uo.drop(0,0,0,0,uo.getserial('finditem'))
wait(300)
wend
uo.findtype(sera,-1,'backpack')
while uo.findcount() > 0 
uo.findtype(sera,-1,'backpack')
uo.drophere(uo.getserial('finditem'))
wait(300)
wend
endsub

Sub plavka()
Uo.FindType (ore ,'-1','backpack')
While UO.FindCount() 
Uo.FindType (ore ,'-1','backpack')
Uo.UseType(ore)
wait(4000)
wend
EndSub


sub go()
while uo.weight < 2000
if uo.weight < 1999 then
kopka()
checkstam()
walker(UO.GetX()+shagx, UO.GetY() - shagy, 1)
endif
if uo.weight < 1999 then

kopka()
checkstam()
walker(UO.GetX()+shagx, UO.GetY() - shagy, 1)
endif
if uo.weight < 1999 then

kopka()
checkstam()
walker(UO.GetX()+shagx, UO.GetY() + shagy, 1)
endif
if uo.weight < 1999 then

kopka()
checkstam()
walker(UO.GetX()+shagx, UO.GetY() + shagy, 1)
endif
if uo.weight < 1999 then

kopka()
checkstam()
walker(UO.GetX()-shagx, UO.GetY() + shagy, 1)
endif
if uo.weight < 1999 then

kopka()
checkstam()
walker(UO.GetX()-shagx, UO.GetY() + shagy, 1)
endif
if uo.weight < 1999 then

kopka()
checkstam()
walker(UO.GetX()-shagx, UO.GetY() - shagy, 1)
endif
if uo.weight < 1999 then

kopka()
checkstam()
walker(UO.GetX()-shagx, UO.GetY() - shagy, 1)
endif
if uo.weight < 1999 then

kopka()
endif
wend

endsub


Sub Loot()
uo.exec('set finddistance 2')
  
UO.FindType( '0x0EED', -1, 'ground' ) 
      If UO.FindCount() > 0 Then 
         UO.MoveItem( 'finditem',0, 'backpack' ) 
         wait(500) 
      Endif 
UO.FindType( '0x19B9', -1, 'ground' ) 
      If UO.FindCount() > 0 Then 
         UO.MoveItem( 'finditem',0, 'backpack' ) 
         wait(500) 
      Endif 
UO.FindType( '0x0F09', -1, 'ground' ) 
      If UO.FindCount() > 0 Then 
         UO.MoveItem( 'finditem',0, 'backpack' ) 
         wait(500) 
      Endif 
EndSub

              
var MaxTraceDistance=10 
var Speed=1 
var StepTimeOut=1000
var Prec = 0
Sub Walker(GoX,GoY,PrecControl) 

  Prec = PrecControl
  UO.Print("Prec = "+ Str(prec))
  UO.SetGlobal("Logging","0") 
  UO.SetGlobal("BlindWalk","0") 
  var LastDir 
  UO.SetGlobal("GlobalGoX",str(GoX)) 
  UO.SetGlobal("GlobalGoY",str(GoY)) 
  while not IsEnd(GoX,GoY) 
    LogInfo('Just walking') 
    LastDir=GoUntilHit(GoX,GoY) 
    if not IsEnd(GoX,GoY) then 
      LogInfo('Tracing') 
      FullAroundTrace(LastDir,GoX,GoY) 
    end if 
  wend 
end sub 

Sub FullAroundTrace(StartDir,GoX,GoY) 
  var LineX=UO.GetX() 
  var LineY=UO.GetY() 
  var CurDir=StartDir 
  var Direction=CountDirection(GoX,GoY,CurDir) 
  var StartX,StartY 
  var MovesDone=0 
  repeat 
    StartX=UO.GetX() 
    StartY=UO.GetY() 
    CurDir=Tracer(CurDir,Direction) 
    if (CurDir==GetDir(GoX,GoY)) then 
      return 
    endif 
    if MovesDone>0 and PrevMoveCross(GetDirToDir(UO.GetDir()),LineX,LineY,GoX,GoY,StartX,StartY) then 
      return 
    end if 
    MovesDone=MovesDone+1 
    CurDir=AddToDir(CurDir,-Direction) 
  until MovesDone>MaxTraceDistance 
end sub 

Sub CountDirection(GoX,GoY,StartDir) 
  var GoDir=GetDir(GoX,GoY) 
  var MyX=UO.GetX() 
  var MyY=UO.GetY() 
  if GoDir<StartDir then 
    return -1 
  end if 
  if GoDir>StartDir then 
    return 1 
  end if 
  if Abs(MyX-GoX)>Abs(MyY-GoY) then 
    if (GoDir==3 and GoY>MyY) OR (GoDir==7 and GoY<MyY) then 
      return -1 
    else 
      return 1 
    end if 
  else 
    if (GoDir==1 and GoX<MyX) or (GoDir==5 and GoX>MyX) then 
      return -1 
    else 
      return 1 
    end if 
  end if 
end sub 

Sub PrevMoveCross(Dir,x1,y1,x2,y2,StartX,StartY) 
  var x3,y3,x4,y4 
  x3=StartX 
  y3=StartY 
  x4=StartX+(XFromDir(Dir)-StartX)*Speed 
  y4=StartY+(YFromDir(Dir)-StartY)*Speed 
  return LinesCrossing(x1,y1,x2,y2,x3,y3,x4,y4) 
end sub 

Sub LinesCrossing(x1,y1,x2,y2,x3,y3,x4,y4) 
  if x1==x3 and y1==y3 then 
    return false 
  end if 
  var z1=(x3-x1)*(y2-y1)-(y3-y1)*(x2-x1) 
  var z2=(x4-x1)*(y2-y1)-(y4-y1)*(x2-x1) 
  if z1*z2>0 then 
    return false 
  else 
    LogInfo('Vector info:') 
    LogInfo('x1= '+str(x1)) 
    LogInfo('y1= '+str(y1)) 
    LogInfo('x2= '+str(x2)) 
    LogInfo('y2= '+str(y2)) 
    LogInfo('x3= '+str(x3)) 
    LogInfo('y3= '+str(y3)) 
    LogInfo('x4= '+str(x4)) 
    LogInfo('y4= '+str(y4)) 
    return true 
  end if 
end sub 

Sub IsDiap(X,X0,X1) 
  if X<=X0+Prec and X>=X1-Prec OR X>=X0-Prec and X<=X1+Prec then 
    return true 
  end if 
  return false 
end sub 

Sub GoUntilHit(GoX,GoY) 
  var LastDir 
  LastDir=GetDir(GoX,GoY) 
  var CouldMove 
  repeat 
    LastDir=GetDir(GoX,GoY) 
    if LastDir<>0 and not IsEnd(GoX,GoY) then 
      CouldMove=TryDir(LastDir) 
    end if 
  until LastDir==0 or IsEnd(GoX,GoY) or not CouldMove 
  return LastDir 
end sub 

Sub IsEnd(GoX,GoY) 
  if Abs(UO.GetX()-GoX)<=Prec and Abs(UO.GetY()-GoY)<=Prec then 
    LogInfo('END FOUND') 
    return true 
  else 
    return false 
  end if 
end sub 

Sub GetDir(GoX,GoY) 
  var MyX=UO.GetX() 
  var MyY=UO.GetY() 
  var DiffX=Abs(UO.GetX()-GoX) 
  var DiffY=Abs(UO.GetY()-GoY) 
  var GoDir=0 
  if (DiffX/(DiffY+0.1))>=2 then 
    if (MyX>GoX) then 
      GoDir=7 
    else 
      GoDir=3 
    end if 
  else 

  if (DiffY/(DiffX+0.1))>=2 then 
    if (MyY>GoY) then 
      GoDir=5 
    else 
      GoDir=1 
    end if 
  else 
  
  if (MyX>GoX) and (MyY>GoY) then 
    GoDir=6 
  else 
  if (MyX>GoX) and (MyY<GoY) then 
    GoDir=8 
  else 
  if (MyX<GoX) and (MyY>GoY) then 
    GoDir=4 
  else 
  if (MyX<GoX) and (MyY<GoY) then 
    GoDir=2 
  end if 
  end if 
  end if 
  end if 
  end if 
  end if 
  return GoDir 
end sub 

Sub Tracer(StartDir,Direction) 
  var CurDir=StartDir 
  var Result 
  repeat 
    Result=TryDir(CurDir) 
    if not Result then 
      CurDir=AddToDir(CurDir,Direction) 
    end if 
  until Result 
  return Result 
end sub 

Sub AddToDir(Dir,Cnt) 
  var NewDir=Dir 
  NewDir=NewDir+Cnt 
  while NewDir>8 
    NewDir=NewDir-8 
  wend 
  while NewDir<1 
    NewDir=NewDir+8 
  wend 
  return NewDir 
end sub 

Sub TryDir(Dir) 
  var BegX=UO.GetX() # Ia?aeuiia O 
  var BegY=UO.GetY() # Ia?aeuiia Y 
  var Counter=0 
  var GoX=BegX 
  var GoY=BegY 
  GoX=XFromDir(Dir) 
  GoY=YFromDir(Dir) 
  if not IsPass(UO.asmMapGetTile(GoX,GoY,0)) then 
    LogInfo(str(UO.asmMapGetTile(GoX,GoY,0))+' is not passable') 
  return false 
  end if 
  return TurnAndGoDir(Dir) 
end sub 

Sub XFromDir(Dir) 
  if Dir==2 OR Dir==3 Or Dir==4 then 
    return (UO.GetX()+1) 
  end if 
  if Dir==6 OR Dir==7 Or Dir==8 then 
    return (UO.GetX()-1) 
  end if 
  return (UO.GetX()) 
end sub 

Sub YFromDir(Dir) 
  if Dir==8 OR Dir==1 Or Dir==2 then 
    return (UO.GetY()+1) 
  end if 
  if Dir==4 OR Dir==5 Or Dir==6 then 
    return (UO.GetY()-1) 
  end if 
  return (UO.GetY()) 
end sub 

Sub TurnAndGoDir(Dir) 
  var StartDir=GetDirToDir(UO.GetDir()) 
  var StartX=UO.GetX() 
  var StartY=UO.GetY() 
  var EndDir 
  var Counter=0 
  GoDir(Dir) 
  repeat 
    EndDir=GetDirToDir(UO.GetDir()) 
    wait(100) 
    Counter=Counter+1 
  until StartDir<>EndDir or StartY<>UO.GetY() or StartX<>UO.GetX() or Counter>=8 
  if Counter>=8 then 
  return 0 
  end if 
  if StartY<>UO.GetY() or StartX<>UO.GetX() then 
  return Dir 
  else 
  GoDir(Dir) 
    repeat 
      wait(100) 
      Counter=Counter+1 
    until StartY<>UO.GetY() or StartX<>UO.GetX() or Counter>=StepTimeOut/100 
    if Counter>=StepTimeOut/100 then 
      LogInfo('Step timeout reached') 
      return 0 
    else 
      return Dir 
    end if 
  end if 
end sub 

sub Test2() 
Tracer(7,1) 
end sub 

Sub GetDirToDir(GotDir) 
var ChangedDir=-GotDir 
ChangedDir=AddToDir(ChangedDir,5) 
return ChangedDir 
end sub 

Sub DirToInj(Dir) 
var OutDir 
if Dir==1 then 
OutDir=1 
end if 
if Dir==2 then 
OutDir=2 
end if 
if Dir==3 then 
OutDir=3 
end if 
if Dir==4 then 
OutDir=6 
end if 
if Dir==5 then 
OutDir=9 
end if 
if Dir==6 then 
OutDir=8 
end if 
if Dir==7 then 
OutDir=7 
end if 
if Dir==8 then 
OutDir=4 
end if 
return OutDir 
end sub 

Sub GoDir(Dir) 
dim Dirs[9] 
Dirs[1]=35 
Dirs[2]=40 
Dirs[3]=34 
Dirs[4]=39 
Dirs[5]=33 
Dirs[6]=38 
Dirs[7]=36 
Dirs[8]=37 

var DistanceX=Abs(UO.GetX()-val(UO.GetGlobal("GlobalGoX"))) 
var DistanceY=Abs(UO.GetY()-val(UO.GetGlobal("GlobalGoY"))) 
var GoDistance 
if (DistanceX-Prec)<Speed then 
GoDistance=DistanceX-Prec 
else 
if (DistanceY-Prec)<Speed then 
GoDistance=DistanceY-Prec 
else 
GoDistance=Speed 
endif 
endif 

UO.Press(Dirs[Dir],GoDistance) 
endsub 

Sub IsPass(ID) 
  if UO.GetGlobal("BlindWalk") then 
    return true 
  endif 
  dim Types[60] 
  Types[0]=4 
  Types[1]=3 
  Types[2]=5 
  Types[3]=6 
  Types[4]=203 
  Types[5]=197 
  Types[6]=212 
  Types[7]=242 
  Types[8]=241 
  Types[9]=196 
  Types[10]=198 
  Types[11]=199 
  Types[12]=1713 
  Types[13]=1724 
  Types[14]=243 
  Types[15]=240 
  Types[16]=219 
  Types[17]=209 
  Types[18]=214 
  Types[19]=57 
  Types[20]=24 
  Types[21]=52 
  Types[22]=22 
  Types[23]=56 
  Types[24]=23 
  Types[25]=25 
  Types[26]=58 
  Types[27]=53 
  Types[28]=61 
  Types[29]=59 
  Types[30]=580 
  Types[31]=585 
  Types[32]=581 
  Types[33]=582 
  Types[34]=583 
  Types[35]=584 
  Types[36]=596 
  Types[37]=152 
  Types[38]=81 
  Types[39]=93 
  Types[40]=95 
  Types[41]=83 
  Types[42]=142 
  Types[43]=503 
  Types[44]=141 
  Types[45]=143 
  Types[46]=500 
  Types[47]=1088 
  Types[48]=1089 
  Types[49]=1086 
  Types[50]=155 
  Types[51]=501 
  Types[52]=98 
  Types[53]=90 
  Types[54]=502 
  Types[55]=1087 
  Types[56]=598 
  Types[57]=582 
  Types[58]=200 
  Types[59]=216 
  
  for var i=0 to 59 
    if Types[i]==ID then 
      return true 
    end if 
  next 
  return false 
end sub 

Sub LogInfo(Line) 
  if not UO.GetGlobal("Logging")=="0" then 
    UO.TextOpen() 
    UO.TextPrint(str(UO.GetX())+":"+str(UO.GetY())+" - "+str(Line)); 
  end if 
end sub 

Sub Abs(X) 
  if X>0 then 
    return X 
  else 
    return (-X) 
  end if 
end sub 

endsub

sub CheckLag() 
if uo.Waiting()>0 then 
uo.Exec('canceltarget') 
end if 
uo.DeleteJournal() 
uo.Click('backpack') 
repeat 
wait(50) 
until uo.InJournal('backpack') 
end sub

sub Reconnector() 
var ReconnectTime, RFlag 
ReconnectTime = '0' 
RFlag = 1 
Repeat 
if uo.injournal("fatigued to move") then
uo.sayu(".drinkref")
havka()
uo.deletejournal()
wait(1000)
else
endif
While (UO.ObjAtLayer('Bpack') == '') 
if RFlag Then 
ReconnectTime = MakeTime() 
RFlag = 0 
endif 
Wait(20000) # WorldSave Protection 
UO.Say('') 
Wait(3000) 
UO.Say('') 
Wait(3000) 
UO.Say('') 
Wait(3000) 
UO.LDblClick(357,164) 
UO.LClick(616,459) 
Wait(3000) 
WEnd 
Wait(3000) 
if (RFlag == 0) and (ReconnectTime <> '0') Then 
;UO.Exec('terminate all') 
;UO.Exec('exec fishing') 
UO.TextOpen() 
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime) 
RFlag = 1 
ReconnectTime = '0' 
endif 
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 havka()
	If UO.InJournal("Вам не мешало") or UO.InJournal("быка")or UO.InJournal("голодны") or UO.InJournal("перекусить") or UO.InJournal("голода") then
	UO.UseType(havka)	
	else
	endIf
endsub

sub mo()
uo.exec('set finddistance 0')
uo.print('4to brat? ') 
uo.exec('addobject item1') 
while uo.targeting() 
wait(100) 
wend 

uo.print('Kuda logit?') 
uo.exec('addobject sumka1') 
while uo.targeting() 
wait(100) 
wend 


uo.findtype(uo.getGraphic('item1') ,uo.getColor('item1'),'ground')
   while UO.FindCount() 
uo.findtype(uo.getGraphic('item1') ,uo.getColor('item1'),'ground')   
		uo.moveitem('finditem','0','sumka1') 
		wait(100) 
   wend
endsub


sub armslor()
;uo.addObject('volina') 
;while uo.targeting() 
;wait(200) 
;wend 


;repeat
;uo.waittargetobject('0x74A4DD95')
;havka()
;UO.DeleteJournal()
;UO.UseSkill('Arms Lore')
;wait(1500)
;UO.RClick(275,154)
;wait(500)
;until uo.dead()
endsub

sub splavi()
uo.exec('set finnddistance 0')
uo.exec('addobject item1') 
while uo.targeting() 
wait(100) 
wend 
uo.exec('addobject item2') 
while uo.targeting() 
wait(100) 
wend 

while true
uo.findtype('item1')

wend
endsub


Posted: 2006-04-27 16:00:23
by Mazhor

Code: Select all

sub gohome()
repeat
uo.useobject(rb)
wait(500)
uo.lclick(213,83)
wait(12000)
until uo.getx() == 364 and uo.gety() == 1482 and uo.getZ() == 2
checklag()
walker(364,1481,6)
checklag()
uo.opendoor()
walker(364,1475,9)
wait(500)
walker(362,1475,9)
uo.print("Priehali ura!")
plavka()
armslor()
rasklad()
endsub
Чар реколится домой, открывает двери, но в дом не заходит...=(

Posted: 2006-04-27 17:51:33
by Mazhor
помогите сделать пожалуйсто...

Posted: 2006-04-27 18:29:26
by DerMeister =)
=) если я не ошибаюсь, то PrecControl - точность подхода к цели, а не координата Z :)

У тебя имеется: walker(364,1475,9)
Наверное нужно поменьше поставить?

ЗЫ: Скрипт явно был написан за лаве... спроси у автора что да как =)

Posted: 2006-04-27 18:39:40
by Mazhor
Автор этого скрипта уже два месяца не появляется...
Я не уследил и старый дом пропал за неуплату (под тот дом был заточен скрипт). Я хочу переделать под другой...
зы: скрипт халявный=)

Code: Select all

 
until uo.getx() == 364 and uo.gety() == 1482 and uo.getZ() == 2 - это то место куда чар реколиться

walker(364,1481,6) - это он заходит на ступени (но не заходит)

uo.opendoor() - двери то окрывает но в самом начале и в дом не идёт

walker(364,1475,9) - должен заходить в дом по прямой

walker(362,1475,9) - поварачивает в доме и идёт к форже...


Posted: 2006-04-27 18:49:33
by DerMeister =)
Ну хз... Скрипт невъебенного размера... без поллитра не разобратся что к чему и как... :)
Ты хоть координаты переставил? (всмысле для нового дома)

Posted: 2006-04-27 19:53:10
by Mazhor
Конечно...
Да не такой он уж и большой :P

Posted: 2006-04-27 23:56:50
by Edred
Критический размер - 30 строк. Более длинные чужие скрипты не читаю. 8)

ЗЫ: Локализуй проблему, запости только нужный кусок. Гораздо больше вероятность, что кто-то поможет.

Posted: 2006-04-28 19:17:10
by DerMeister =)
Угу... я например даже не могу понять, что в этом скрипте "ходилка", а что нет...

Posted: 2006-04-28 20:18:50
by dmitrykit
vobwe, kogdato v poiskah interesnyh idej dlja modernizachiji svojego skripta, ja obnaruzhil, 4to vse 4to tut imejecca vyrosla iz odnogo roditelja.. i nichego novogo u naroda net.. vse tezhe oshibki.....

Posted: 2006-05-03 13:55:13
by Mazhor
Всем спасибо!
Я уже всё сделал...

Posted: 2006-05-03 16:24:22
by Sanch
Угу... я например даже не могу понять, что в этом скрипте "ходилка", а что нет...
Я ее то же не нашел, но она там точно есть :)

Posted: 2006-05-03 18:53:01
by Savage
Использована ходилка беёндера или похожая.

Posted: 2006-05-09 22:56:10
by Tukula
В последней строке ошибка :( что делать?

Posted: 2006-05-09 23:19:15
by Edred
Tukula wrote:В последней строке ошибка :( что делать?
Телепаты в отпуске. Какая ошибка? Их, знаешь ли, достаточно много разных бывает...

Posted: 2006-05-09 23:22:52
by DerMeister =)
Tukula wrote:В последней строке ошибка :( что делать?
Убей себя об стену! :wink: :lol: :D :P