Проблема со скриптом

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
MaDMaNN
Posts: 20
Joined: 2007-10-03 13:24:47

Проблема со скриптом

Post by MaDMaNN »

Я нащёл скрипт на кукинг от Edreda,только проблема,всё нормально запускается,берётся хворост,поджигается,берёт один кусок рыбы,жарит и всё.Тупо стоит.Скрипт не отключается.В чём ошибка ? :(

Code: Select all

sub cooking() 
   VAR Sunduk = '0x40591B82'
   VAR Hvorost = '0x0DE1'
   VAR Koster = '0x0DE3'
   VAR Ugli = '0x0DE9'
   VAR Fish = '0x097A'
   VAR FishGot = '0x097B'
   VAR TX = 1873
   VAR TY = 387
   VAR i, flag
   VAR SpiritTime = UO.Timer()
   UO.CancelTarget()
   UO.Exec( 'set finddistance 3' )
      UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
   UO.UseObject( Sunduk )
   While UO.SkillVal( 'Cooking' ) < 1000
;      EatChar( Sunduk, 2, 1, 120 )
# ----------------------------------
# блок запуска прокачки Spirit Speak
      If ( UO.Timer() - SpiritTime ) / 600 > 5 Then
         ; Прошло 5 минут с момента последней прокачки Spirit Speak
         SpSpeak()
         SpiritTime = UO.Timer()
      Endif
# ----------------------------------
      wait(1000)
      UO.FindType( Hvorost, -1, Sunduk )
      If UO.FindCount() == 0 Then
         UO.Print( 'No kindling found. Script terminated' )
         return
      Endif
      UO.MoveItem( 'finditem', '1', 'ground', str(TX), str(TY), str(UO.GetZ()) )
      wait(1000)
      CheckLag()
      UO.Findtype( Hvorost, -1, 1 )
;      wait(1000)
      If UO.FindCount() > 0 Then
         repeat
            UO.UseFromGround( Hvorost )
            wait(1000)
            UO.FindType( Koster, -1, 1 )
         until UO.FindCount() > 0
         ; костер горит
         flag = 1
         repeat
            ; взять из сундука 1 стейк
            If UO.Count( Fish ) == 0 Then
               UO.FindType( Fish, -1, Sunduk )
               If UO.FindCount() == 0 Then
                  UO.Print( 'No fish steaks found. Script terminated' )
                  return
               Endif
               UO.Grab( '1', 'finditem' )
;               repeat
;                  wait(100)
;               until UO.Count( Fish ) > 0
               wait(1000)
               CheckLag()
            Endif
            ; теперь проверим не погас ли костер, не исчезли ли угли
            UO.FindType( Koster, -1, 1 )
            If UO.FindCount() <> 0 Then
               ; еще горит костер - жарим на нем стейк
               If UseSteake( Fish, UO.GetSerial('finditem') ) Then
                  flag = 0
               Endif
               ; стейк готов
            Else
               UO.FindType( Ugli, -1, 1 )
               If UO.FindCount() <> 0 Then
                  ; есть еще угли!
                  if UseSteake( Fish, UO.GetSerial('finditem') ) then
                     flag = 0
                  endif
               Else
                  flag = 0
               Endif
            Endif
            If UO.Count( FishGot ) > 0 Then
               UO.FindType( FishGot )
               UO.MoveItem( 'finditem', -1, Sunduk )
;               repeat
;                  wait(100)
;               until UO.Count( FishGot ) == 0
               wait(1000)
               CheckLag()
            Endif
         until flag == 0
      Endif
   Wend
endsub

Sub UseSteake( fish, koster )
   VAR msg1 = 'You burn the food to a crips'It's ruined!'            ; физл
   VAR msg2 = 'Mmm,smells good'         ; успех
   VAR msg22 = 'You put the fish steaks'      ; успех
   VAR msg3 = 'The previous piece is still not ready'               ; ждать
   VAR msg4 = "You can't see the target"
   repeat
      UO.DeleteJournal (msg1 )
      UO.DeleteJournal (msg2 )
      UO.DeleteJournal (msg22 )
      UO.DeleteJournal (msg3 )
      UO.DeleteJournal (msg4 ) 
      UO.WaitTargetObject( 'finditem' )
      UO.UseType( Fish )
      repeat
         wait(500)
      until UO.InJournal(msg1) OR UO.InJournal(msg2) OR UO.InJournal(msg22) OR UO.InJournal(msg3) OR UO.InJournal(msg4)
      if UO.InJournal(msg4) then
         return 1
      endif
      if UO.InJournal(msg3) then
         wait(500)
      endif
   until UO.InJournal(msg2) OR UO.InJournal(msg22)
   return 0
endsub

sub NechegoDelat()
   SpSpeak()
   VAR SpiritTime = UO.Timer()
   repeat
      If ( UO.Timer() - SpiritTime ) / 600 > 5 Then
         ; Прошло 5 минут с момента последней прокачки Spirit Speak
         SpSpeak()
         SpiritTime = UO.Timer()
      Else
         wait(500)
      Endif
   until UO.Dead()
endsub
Last edited by MaDMaNN on 2007-11-01 19:38:25, edited 1 time in total.
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Сначало правильно напиши имя автора
MaDMaNN
Posts: 20
Joined: 2007-10-03 13:24:47

Post by MaDMaNN »

Да я извеняюсь,исправил.
Okypok
Posts: 100
Joined: 2007-10-12 20:48:07

Post by Okypok »

Интересные такие здоровые скрипты на такие простые вещи :) Вчитываться не хочется, но визуально по количеству строк он меня пугает.. О_о
Image
Image
MaDMaNN
Posts: 20
Joined: 2007-10-03 13:24:47

Post by MaDMaNN »

Okypok wrote:Интересные такие здоровые скрипты на такие простые вещи :) Вчитываться не хочется, но визуально по количеству строк он меня пугает.. О_о


Так покажи свой маленький скрипт на кукинг.
Okypok
Posts: 100
Joined: 2007-10-12 20:48:07

Post by Okypok »

Ну это кукинг на костре, а я как-то привык на форже или в печке :)
Image
Image
MaDMaNN
Posts: 20
Joined: 2007-10-03 13:24:47

Post by MaDMaNN »

Okypok wrote:Ну это кукинг на костре, а я как-то привык на форже или в печке :)


В жарке рыбки на форже нечево сложново нету ) Поэтому и скрипт меньше.А в данной ситуации как видишь =\
MaDMaNN
Posts: 20
Joined: 2007-10-03 13:24:47

Post by MaDMaNN »

Ап!
Post Reply