It is currently 28 Mar 2024, 20:10

All times are UTC + 2 hours [ DST ]




Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Lumber [Injection]
PostPosted: 20 Sep 2015, 01:47 
Offline
Игрок
User avatar

Joined: 31 Jul 2015, 15:18
Posts: 133
NB! не летает по рунбукам, это для прокачки лумбера кому надо... просто включите его в лесу и он начнет рубить..
Code:
var AxeCount=1 #Сколько типов топоров используется?
var UOPath='E:\Games\Ultima Online ML' #Путь к файлам *.mul (Карта, статик)
var TermOnWeight=1 #Авто выключение при перевесе? 1 - да, 0 - нет
var MaxWeight=uo.str*4+10 #Максимальный вес, до которого стоит рубить
var Shard=0

Sub Axe(i)
   dim t[AxeCount]
   
   #вписать типы топоров, если нужно изменить их.
   t[0]='0x0F43'
   t[1]='0x0F49'
   
   return t[i]
end sub

Sub InitMapIDX()
   if Shard then
      uo.setglobal('MapIDX','0')
      return
   endif
   var line=0
   var fstr=str(uo.getx('self'))+','+str(uo.gety('self'))
   uo.deletejournal()
   uo.msg('.where')
   repeat
      line=uo.injournal(fstr)
      wait(100)
   until line
   var str=uo.journal(line-1)
   uo.setglobal('MapIDX',GetMapIDX(str,strlen(str)))
end sub

Sub GetMapIDX(str,len)
   var i,r=str[len-2],zc=0
   for i=len-1 to 0 step -1
      if str[i]=='(' then
         if zc==3 then
            return r
         else
            return '0'
         endif
      endif
      if str[i]==',' then
         zc=zc+1
      endif
   next
   return r
end sub

Sub searchTree()
   var i, x, y, t, stp, max_search = 24 ; максимальная дистанция для генерации координат.
   var cx = uo.getX()
   var cy = uo.getY()
   for i = 1 to max_search
      for x =-i to i
         stp = 1
         if not i == abs( x ) then
            stp = abs( i ) * 2
         endif
         for y = -i to i step stp
            if NOT uo.getGlobal( 't:' + str( x + cx ) + "," + str( y + cy ) ) == "empty" then
               t = IsTreeTile( x + cx, y + cy )
               if not t == false then
                  uo.setGlobal( "tree_x", str( x + cx ) )
                  uo.setGlobal( "tree_y", str( y + cy ) )
                  uo.setGlobal( "tree_t", str( t ) )
                  return false
               else
                  uo.setGlobal( 't:' + str( x + cx ) + "," + str( y + cy ), 'empty' )
               endif
            endif
         next
      next
   next
   uo.exec( "terminate main" )
   return false
endsub

sub main()
   InitMapIDX()
   searchTree()
   doMineTree()
   ttt()
endsub

Sub UseAxe()   
   var i,obj=''
   obj=uo.objatlayer('Rhand')
   if obj<>'' then
      for i=0 to AxeCount-1
         if uo.getgraphic(obj)==Axe(i) then
            uo.useobject(obj)
            return
         endif
      next
      uo.moveitem(obj)
      wait(100)
   endif
   obj=uo.objatlayer('Lhand')
   if obj<>'' then
      for i=0 to AxeCount-1
         if uo.getgraphic(obj)==Axe(i) then
            uo.useobject(obj)
            return
         endif
      next
      uo.moveitem(obj)
      wait(100)
   endif
   for i=0 to AxeCount-1
      if uo.count(Axe(i)) then
         uo.usetype(Axe(i))
         return
      endif
   next
   uo.print('Íå íàéäåí èíñòðóìåíò')
end sub

Sub doMineTree()
   var x, y, t, tm=0, w=0
   var end="íå ïîëÿ çðåíèÿ|äåñü ïîëåçíàÿ äðåâåñèíà êîí÷èëàñü|ëèøêoì äaëeêo|äëÿ ðóáêè|to chop|far away|not a tree|ou can not see that|find nothing usefu|t reach this|sight to that location|is too far away|ry chopping a tree"
   var try="ou put the|appears immune to your blo|àðóáëeííûå äðoâà íèêóäà íe ãîäÿòñÿ|hack at the tree for a while|perform another action"
   repeat
      x=val(uo.getGlobal("tree_x"))
      y=val(uo.getGlobal("tree_y"))
      t=val(uo.getGlobal("tree_t"))
      uo.setGlobal('t:'+str(x)+","+str(y),"empty")
      Walker(x,y,1)
      uo.exec("exec searchTree")
      repeat
         if TermOnWeight then
            if uo.weight>=MaxWeight then
               uo.print('Ìàêñèìàëüíûé âåñ äîñòèãíóò. Âûêëþ÷àþñü.')
               uo.exec('terminate all')
               return
            endif
         endif
         tm=0
         w=uo.weight
         if uo.waiting() then
            uo.canceltarget()
         endif
         deljournal(try+"|"+end)
         uo.waittargettile(str(t),str(x),str(y),str(uo.getZ()))
         UseAxe()
         repeat
            wait(1000)
            tm=tm+1
         until uo.injournal(try+"|"+end) or tm>=50 or w<>uo.weight
      until uo.injournal(end) or tm>=50
      while uo.getGlobal("tree_x")==str(x) && uo.getGlobal("tree_y")==str(y)
         wait(500)
      wend
   until false
end sub

Sub deljournal( msg )
   while uo.injournal( msg )
      uo.setjournalline( uo.injournal( msg ) -1, '' )
   wend
endsub

Sub IsTreeTile( x, y )
   var i, tree_count = 20
   DIM tree[ val( str( tree_count ) ) ]
   tree[0] = 3274
   tree[1] = 3275
   tree[2] = 3276
   tree[3] = 3277
   tree[4] = 3280
   tree[5] = 3283
   tree[6] = 3286
   tree[7] = 3289
   tree[8] = 3291
   tree[9] = 3292
   tree[10] = 3294
   tree[11] = 3295
   tree[12] = 3296
   tree[13] = 3299
   tree[14] = 3302
   tree[15] = 3394
   tree[16] = 3395
   tree[17] = 3417
   tree[18] = 3440
   tree[19] = 3461
   #uo.print('x='+str(x))
   #uo.print('y='+str(y))
   #uo.print('m='+uo.getglobal('MapIDX'))
   #uo.print('UOPath='+UOPath)
   for i = 0 to tree_count -1
      if uo.gettilexym(x,y,val(uo.getglobal('MapIDX')),tree[i],tree[i],UOPath) then
         #if uo.privategettile( x, y, -1, tree[i], tree[i] ) then
         return tree[i]
      endif
   next
   return false
endsub

########################################## ÕÎÄÈËÊÀ 3 ##########################
#var Prec=3 # Êàê áëèçêî ñëåäóåò ïîäîéòè ê öåëè (Precision)
#var MaxTraceDistance=15 # Ìàêñèìàëüíàÿ äëèíà îáõîäà. Æåëàòåëüíî ñòàâèòü ñ ðàñ÷åòà âîçìîæíûõ ïðåïÿòñâèé. Åñëè ñòàâèòü î÷åíü #áîëüøèå ÷èñëà, êîäèëêà ìîæåò ïîéòè â îáõîä ïîë ìèðà ÷òîáû äîéòè ê ñîñåäíåìó äåðåâó.
#var Speed=2 # Äëèíà øàãà. Ñêîëüêî øàãîâ äåëàòü çà ðàç. Âûøå 3 ñòàâèòü ñìûñëà íåò. Òîåñòü òóïîå óìíîæåíèå øàãîâ. Äëÿ ëàìáåðà #èäåàëüíî 3, äëÿ ìàéíèíãà - 1.
#var StepTimeOut=400 # Åñëè óïåðëèñü â íåîïîçíàííûé îáüåêò, ñêîëüêî ìñåê æäàòü ñäâèãà ñ ìåñòà. Åñëè ïî ïðîñòîìó - òàéìàóò #øàãà. Åñëè ïîñòàâèòü ñèëüíî ìàëåíüêèå, õîäèëêà íà÷íåò òðàññèðîâàòü ïóñòûå ìåñòà.
#UO.SetGlobal("Logging","1")  # - ïîêàçûâàòü îòëàäî÷íûå ñîîáùåíèÿ.
#UO.SetGlobal("BlindWalk","0") # - íå èñïîëüçîâàòü ïðîâåðêó òàéëîâ, à èñïîëüçîâàòü õîäüáó íàîùóïü. Äëÿ ìàéíèíãà ÎÁßÇÀÒÅËÜÍÎ #ÂÊËÞ×ÈÒÜ.
#Â ôóíêöèè IsPass, ñîäåðæèòüñÿ ñïèñîê ïðîõîäèìûõ òàéëîâ.

#Walker(X,Y,Prec) - èäåì ê öåëè ñ êîîðäèíàòàìè X,Y. Âîçâðàùàåò 1 â ñëó÷àå óñïåøíîãî äîñòèæåíèÿ öåëè, è 0 - ïðè íåâîçìîæíîì îáõîäå (ïóòü íå íàéäåí)
#Tracer(StartDir,Direction) - òðàññèðîâêà 1 øàãà. Âîçâðàùàåò íàïðàâëåíèå ïî êîòîðîìó ïîëó÷èëîñü ñäâèíóòüñÿ ñ ìåñòà. StartDir #- íàïðàâëåíèå ïîñëåäíåãî äâèæåíèÿ, Direction (-1 èëè +1) íàïðàâëåíèå îáõîäà. -1 - ïî ÷àñîâîé ñòðåëêå, +1 ïðîòèâ ÷àñîâîé #ñòðåëêè. Íàïðàâëåíèÿ ñêðèïò èñïîëüçóåò ëè÷íîãî ôîðìàòà:
#1 - âëåâî âíèç
#2 - âíèç
#3 - âïðàâî âíèç
#4 - âïðàâî
#5 - âïðàâî ââåðõ
#6 - ââåðõ
#7 - âëåâî ââåðõ
#8 - âëåâî
#Tracer(StartDir,Direction) - èäåàëüíî ïîäõîäèò äëÿ ðûáàëêè âäîëü áåðåãà òàê êàê îíà áóäåò îáõîäèòü áåðåã áåñêîíå÷íî (1 #çàïóñê ôóíêöèè = 1 øàã îáõîäà).
#####################################################
# WW  W  WW   AA    LL     Kk KK  EE  EE  RRR       #
# WW  W  WW  AA A   LL     Kk K   EEE     R  R      #
# WW  W  WW  AA A   LL     KKK    EEEEE   R R       #
# WW WW  WW  AAAA   LL     KKK    EEE     RRR       #
#  WWW WWW  AA   A   LLLL  KK Kk  EE  EE  R  RR     #
####################################################
var MaxTraceDistance=10
var TraceLoopIncrease=5#Óâåëè÷åíèå MaxTraceDistance ïðè èñ÷åðïàíèè êîëè÷åñòâà õîäîâ
var LimitTrace=15#Ñêîëüêî øàãîâ â ÎÁÅ ñòîðîíû îò íà÷àëüíîé òî÷êè îáõîäà ïðåêðàùàþò õîäèëêó (âûõîäà íåò).
var Speed=2
var StepTimeOut=500#Òàéìàóò øàãà. Óñòàíàâëèâàòü íå â ðàçìåð ïèíãà, à â ðàçìåð øàãà + ðàçìåð ïèíãà.
# Äëÿ õîäüáû - 500+Ping
# Äëÿ áåãà/õîäüáû íà ëîøàäè - 300+Ping
# Áåã íà ëîøàäè - 150 + Ping

var CheckCnt=1 #Êîëè÷åñòâî ñëåïûõ ïðîâåðîê. ÓÂÅËÈ×ÈÂÀÅÒ Â ÑÒÎËÜÊÎ ÐÀÇ ÒÀÉÌÀÓÒ. Èñïîëüçîâàòü òîëüêî íà ÁÛÑÒÐÎÌ íî ÍÅÑÒÀÁÈËÜÍÎÌ êîííåêòå. Ïðè áîëüøîì ïèíãå áóäåò ÓÆÀÑ.
var DynamicPause=30 #Ìèíèìàëüíûå ïàóçû â öèêëàõ. ×åì ìåíüøå ÷èñëî - òåì ìåíüøå ðûâêîâ è òåì áîëüøå íàãðóçêà ïðîöåññîðà.

sub ttt()
   walker(2886-5,757+4,1)
end sub

Sub Walker(GoX,GoY,Prec)
   UO.SetGlobal("Logging","0")
   UO.SetGlobal("BlindWalk","0")
   var LastDir
   var MoveRes
   var TracerCnt
   UO.SetGlobal("GlobalGoX",str(GoX))
   UO.SetGlobal("GlobalGoY",str(GoY))
   UO.SetGlobal("WISFixGoX",str(GoX))
   UO.SetGlobal("WISFixGoY",str(GoY))
   while not IsEnd(GoX,GoY,Prec)
      TracerCnt = MaxTraceDistance
      repeat
         LogInfo('Just walking')
         LastDir=GoUntilHit(GoX,GoY,Prec)
         
         if IsEnd(GoX,GoY,Prec) then
            return 1
         end if
         
         LogInfo('Tracing')
         MoveRes = FullAroundTrace(LastDir,GoX,GoY,Prec,TracerCnt)
         if TracerCnt > LimitTrace then
            return 0
         endif
         TracerCnt = TracerCnt + TraceLoopIncrease
      until MoveRes == 1
   wend
   return 1
end sub

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

Sub CountDirection(GoX,GoY,StartDir,Prec)
   var GoDir=GetDir(GoX,GoY,Prec)
   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) OR (GoDir==7) then
         return -1
      else
         return 1
      end if
   else
      if (GoDir==1) or (GoDir==5) then
         return -1
      else
         return 1
      end if
   end if
end sub

Sub PrevMoveCross(Dir,x1,y1,x2,y2,StartX,StartY,Prec)
   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,Prec)
end sub

Sub LinesCrossing(x1,y1,x2,y2,x3,y3,x4,y4,Prec)
   if x1==x3 and y1==y3 then
      return false
   end if
   
   LogInfo('Start cross check')
   
   var ua1=(x4-x3)*(y1-y3)-(y4-y3)*(x1-x3)
   var ub1=(y4-y3)*(x2-x1)-(x4-x3)*(y2-y1)
   
   var ua2=(x2-x1)*(y1-y3)-(y2-y1)*(x1-x3)
   var ub2=(y4-y3)*(x2-x1)-(x4-x3)*(y2-y1)
   
   #Check for parallel lines
   if (ub1 == 0) or (ub2 == 0) then
      return false
   end if
   
   var u1=ua1/ub1
   var u2=ua2/ub2
   
   if IsDiap(u1,0,1,0.01) and IsDiap(u2,0,1,0.01) then
      LogInfo('Vectors crossing 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
   else
      LogInfo('End cross check')
      return false
   end if
end sub

Sub IsDiap(X,X0,X1,Prec)
   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,Prec)
   var LastDir
   LastDir=GetDir(GoX,GoY,Prec)
   var CouldMove
   repeat
      LastDir=GetDir(GoX,GoY,Prec)
      if LastDir<>0 and not IsEnd(GoX,GoY,Prec) then
         CouldMove=TryDir(LastDir,Prec)
      end if
   until LastDir==0 or IsEnd(GoX,GoY,Prec) or not CouldMove
   return LastDir
end sub

Sub IsEnd(GoX,GoY,Prec)
   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,Prec)
   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,Prec)
   var CurDir=StartDir
   var Result
   repeat
      Result=TryDir(CurDir,Prec)
      if not Result then
         CurDir=AddToDir(CurDir,Direction,Prec)
      end if
   until Result
   return Result
end sub

Sub AddToDir(Dir,Cnt,Prec)
   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,Prec)
   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(GoX,GoY) then
      LogInfo(str(GoX)+':'+str(GoY)+' is not passable')
      return false
   end if
   return TurnAndGoDir(Dir,Prec)
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,Prec)
   var StartDir=GetDirToDir(UO.GetDir(),Prec)
   var StartX=UO.GetX()
   var StartY=UO.GetY()
   var EndDir
   var Counter=0
   var TestCounter=CheckCnt
   
   #Direction Test
   repeat
      Counter = 0
      LogInfo('Dir: '+str(StartDir)+' Counter: '+str(Counter)) 
      PressDir(Dir)
      repeat
         EndDir=GetDirToDir(UO.GetDir(),Prec)
         wait(DynamicPause)
         Counter=Counter+1
      until StartDir<>EndDir or StartY<>UO.GetY() or StartX<>UO.GetX() or Counter>=StepTimeOut/DynamicPause
      TestCounter = TestCounter - 1
      LogInfo('Dir: '+str(EndDir)+' Counter: '+str(Counter))
      if IsEnd(val(UO.GetGlobal("WISFixGoX")),val(UO.GetGlobal("WISFixGoY")),Prec) then
         return Dir
      endif   
   until TestCounter <= 0 or Counter < StepTimeOut/DynamicPause
   
   if Counter>=StepTimeOut/DynamicPause  then
      LogInfo('Direction timeout reached')
      return 0
   end if
   #End direction Test
   
   if StartY<>UO.GetY() or StartX<>UO.GetX() then
      return Dir
   end if
   
   #Start Primary test
   TestCounter=CheckCnt
   repeat
      GoDir(Dir,Prec)
      Counter=0
      repeat
         wait(DynamicPause)
         Counter=Counter+1
      until StartY<>UO.GetY() or StartX<>UO.GetX() or Counter>=StepTimeOut/DynamicPause
      TestCounter = TestCounter - 1
   until TestCounter <= 0 or Counter < StepTimeOut/DynamicPause
   #End primary test
   
   if Counter>=StepTimeOut/DynamicPause then
      LogInfo('Step timeout reached')
      return 0
   else
      return Dir
   end if
end sub

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

Sub DirToInj(Dir)
   dim Dirs[9]
   Dirs[1]=1
   Dirs[2]=2
   Dirs[3]=3
   Dirs[4]=6
   Dirs[5]=9
   Dirs[6]=8
   Dirs[7]=7
   Dirs[8]=4
   
   return (Dirs[Dir])
end sub

Sub PressDir(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
   
   UO.Press(Dirs[Dir],1)
end sub

Sub GoDir(Dir,Prec)
   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)
end sub

Sub IsPass(X,Y)
   if UO.GetGlobal("BlindWalk") then
      return true
   endif
   
   dim Types[60]
   Types[1]=3
   Types[2]=25
   Types[3]=51
   Types[4]=63
   Types[5]=113
   Types[6]=140
   Types[7]=172
   Types[8]=219
   Types[9]=232
   Types[10]=235
   Types[11]=239
   Types[12]=243
   Types[13]=248
   Types[14]=251
   Types[15]=264
   Types[16]=267
   Types[17]=282
   Types[18]=289
   Types[19]=321
   Types[20]=379
   Types[21]=420
   Types[22]=440
   Types[23]=476
   Types[24]=499
   Types[25]=513
   Types[26]=542
   Types[27]=578
   Types[28]=586
   Types[29]=622
   Types[30]=700
   Types[31]=804
   Types[32]=1740
   Types[33]=1758
   Types[34]=1770
   Types[35]=1779
   Types[36]=1779
   Types[37]=1881
   Types[38]=1886
   Types[39]=1801
   Types[40]=1805
   Types[41]=1813
   Types[42]=1820
   Types[43]=1831
   Types[44]=1833
   Types[45]=1843
   Types[46]=1850
   Types[47]=1873
   Types[48]=1876
   Types[49]=1885
   Types[50]=1888
   Types[51]=1946
   Types[52]=1969
   Types[53]=2500
   Types[54]=2539
   
   for var i=1 TO 53 STEP 2
      #if UO.PrivateGetTile(X,Y,-1,Types[i],Types[i+1]) then
      if uo.gettilexym(X,Y,val(uo.getglobal('MapIDX')),Types[i],Types[i+1],UOPath) 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())+" - "+Line);
   end if
end sub

Sub Abs(X)
   if X>0 then
      return X
   else
      return (-X)
   end if
end sub
########################################## End Lumberjacking 3 ##########################

_________________
Ибо я верю что только массовые сожжения спасут нашу планету!


Top
 Profile  
 
 Post subject: Re: Lumber [Injection]
PostPosted: 24 Nov 2017, 19:56 
Offline
Новичок

Joined: 24 Nov 2017, 19:52
Posts: 5
Таки не работает, стоит и ничего не делает. Может кто то помочь?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC + 2 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 167 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group