Навоз

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
vertijok2000
Posts: 61
Joined: 2015-11-26 10:16:44

Навоз

Post by vertijok2000 »

Code: Select all

sub AutoJail()
   VAR JailPatch = '1293 1767 OPEN 1291 1767 GET 1293 1770 OPEN 1291 1770 GET 1293 1773 OPEN 1291 1773 GET 1293 1776 OPEN 1291 1776 GET 1293 1779 OPEN 1291 1779 GET 1293 1782 OPEN 1291 1782 GET 1295 1782 WAIT WAIT END'
   VAR navoz = '0x0F3C'
   VAR navoz1 = '0x0F3B'
   VAR woodgate = '0x0843'
   VAR str1, str2, i = 1, sum = 0
   VAR NeedGuano = 20000
   UO.Set( 'distance', '3' )
   UO.Set( 'finddistance', '3' )
   JailPatch = JailPatch + ' '
   repeat
      str1 = GetWord( JailPatch, i )
      If str1 <> '' Then
         If str1 == 'OPEN' Then
            ;îòêðîåì áëèæàéøóþ äâåðü
            OpenGate( woodgate )
         Else
            If str1 == 'GET' Then
               ; áåðåì íàâîç
               GetGuano( navoz )
               GetGuanoo( navoz )
               sum = sum + 1
               If sum > NeedGuano Then
                  ;UO.Print( 'I made it!!! Congratulations!' )
                  return
               Endif
            Else
               If str1 == 'END' Then
                  i = 0
               Else
                  If str1 == 'WAIT' Then
                     wait(1000)
                  Else
                     ;str1 - êîîðäèíàòà
                     i = i + 1
                     ;str2 = GetWord( JailPatch, i )
                     ;GoToXY( val(str1), val(str2), 0 )
                  Endif
               Endif
            Endif
         Endif
      Else
         i = 0
      Endif
      i = i + 1
   until sum > NeedGuano
endsub

Sub OpenGate( typ1 )
   VAR nemogu = "You can't reach that."
   repeat
      UO.Findtype( typ1, '-1', '1' )
      DeleteJournal( nemogu )
      UO.UseObject( 'finditem' )
      wait(500)
      CheckLag()
      If UO.InJournal( nemogu ) Then
         UO.Ignore( 'finditem' )
      Else
         return
      Endif
   until False
endsub

Sub GetGuano( typ1 )
   VAR nemogu = "You can't reach that."
   repeat
      UO.FindType( typ1, '-1', '1' )
      If UO.FindCount() > 0 Then
         DeleteJournal( nemogu )
         UO.UseObject( 'finditem' )
         wait(500)
         CheckLag()
         If UO.InJournal( nemogu ) Then
            UO.Ignore( 'finditem' )
         Else
            UO.IgnoreReset()
            return
         Endif
      Else
         wait( 1000 )
      Endif
   until False
endsub


Sub GetGuanoo( typ2 )
   VAR nemogu = "You can't reach that."
   repeat
      UO.FindType( typ2, '-1', '1' )
      If UO.FindCount() > 0 Then
         DeleteJournal( nemogu )
         UO.UseObject( 'finditem' )
         wait(500)
         CheckLag()
         If UO.InJournal( nemogu ) Then
            UO.Ignore( 'finditem' )
         Else
            UO.IgnoreReset()
            return
         Endif
      Else
         wait( 1000 )
      Endif
   until False
endsub


Sub GetWord( st, nom )
   ; Âîçâðàùàåò ñëîâî èç ñòðîêè str çà íîìåðîì num
   ; åñëè òàêîãî ñëîâà íåò - âîçâðàùàåì ''
   ;
   ; Ðàçäåëèòåëåì ñëîâ ñ÷èòàåì ïðîáåë. Íåñêîëüêî ïðîáåëîâ ïîäðÿä ñ÷èòàþòñÿ çà îäèí.
   ; Ôóíêöèÿ ñäåëàíà áåç ðåêóðñèè ñïåöèàëüíî äëÿ ñ÷èòûâàíèÿ ñëîâ èç ñâåðõäëèííûõ ñòðîê!
   ;
   VAR tmpst
   VAR i, dlin, kol, start
   dlin = len( st )
   kol = 0
   start = 0
   For i=0 To dlin - 1
      If mid( st, i, 1 ) == ' ' OR i == dlin - 1 Then
         kol = kol + 1
         If kol == nom Then
            ; ýòî ïåðâûé ïðîáåë ïîñëå íóæíîãî íàì ñëîâà
            tmpst = mid( st, start, i - start )
            return tmpst
         Else
            While mid( st, i, 1 ) == ' '
               i = i + 1
            Wend
            If kol == nom - 1 Then
               start = i
            Endif
         Endif
      Endif
   Next
   tmpst = ''
   return tmpst
endsub

; Óäàëÿåì óêàçàííóþ ôðàçó èç æóðíàëà
;
Sub DeleteJournal( string1 )
   VAR nom = UO.InJournal( string1 )
   If nom > 0 Then
      UO.SetJournalLine( Nom - 1, ' ' )
      DeleteJournal( string1 )
   Endif
endsub
;
; Ïðîâåðêà íà ëàãè
; Èäåÿ - Savage
Sub CheckLag()
   DeleteJournal( 'backpack' )
   UO.Click( 'backpack' )
   repeat
      wait(100)
   until UO.InJournal( 'backpack' )
   return
end sub

SUB GoToXY(x,y,prec)
   ; Õîæäåíèå ïî ìèðîâûì êîîðäèíàòàì ñ òî÷íîñòüþ prec è ñêîðîñòüþ, çàâèñÿùåé îò wt
   ; (c) Yoko, AGRS
   UO.TextPrint('GoToXY '+STR(x)+', '+STR(y))
   Var ld=0,ldc=0
   Var dx,dy
   Var mx,my
   Var ox,oy,mk,k
   start:
   mx=UO.GetX()
   my=UO.GetY()
   dx=mx-x
   If dx<0 Then
      dx=0-dx
   EndIf
   dy=my-y
   If dy<0 Then
      dy=0-dy
   EndIf
   If dy>dx Then
      dx=dy
   EndIf
   If dx<=prec Then
      Return
   EndIf
   If dx<3 Then
      mk=70
   Else
      mk=15
   EndIf
   ox=mx
   oy=my
   For k=1 To mk
      mx=UO.GetX()
      my=UO.GetY()
      If mx<>ox Or my<>oy Then
         GoTo sdidapl
      EndIf
   Next
   sdidapl:
   mx=UO.GetX()
   my=UO.GetY()
   dx=mx-x
   If dx<0 Then
      dx=0-dx
   EndIf
   dy=my-y
   If dy<0 Then
      dy=0-dy
   EndIf
   If dy>dx Then
      dx=dy
   EndIf
   If dx<=prec Then
      Return
   EndIf
   If ld==dx Then
      ldc=ldc+1
      If ldc>100 Then
         UO.Print("Can not reach location!")
         Return
      EndIf
   Else
      ld=dx
   EndIf
   If mx==x Then
      If my==y Then
         Return
      EndIf
      If my>y Then
         UO.Press(33)
         GoTo start
      EndIf
      UO.Press(35)
      GoTo start
   EndIf
   If mx<x Then
      If my>y Then
         UO.Press(39)
         GoTo start
      EndIf
      If my==y Then
         UO.Press(34)
         GoTo start
      EndIf
      UO.Press(40)
      GoTo start
   EndIf
   If my<y Then
      UO.Press(37)
      GoTo start
   EndIf
   If my==y Then
      UO.Press(36)
      GoTo start
   EndIf
   UO.Press(38)
   GoTo start
endsub


вот скрипт я пытался добавить ищо один тип навоза но почемута не видет 2 тип
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Навоз

Post by Incorrect User »

GetGuano( navoz ) и GetGuanoo( navoz ) один и тот же type берет. GetGuanoo( navoz1 ) сделай.
vertijok2000
Posts: 61
Joined: 2015-11-26 10:16:44

Re: Навоз

Post by vertijok2000 »

не хочит собирать
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: Навоз

Post by Incorrect User »

Ищет на земле? У тебя непонятный контейнер поиска '1'

Code: Select all

 UO.Findtype( typ1, '-1', '1' )
vertijok2000
Posts: 61
Joined: 2015-11-26 10:16:44

Re: Навоз

Post by vertijok2000 »

GetGuanoo( navoz1 ) без этого всё норм собирает но у нас 2 вида навоза поэтому мне надо и второй тип добавить
Post Reply