Yoko

All sides of Injection
It is currently 2025-11-23 11:43:04

All times are UTC+02:00




Post new topic  Reply to topic  [ 3 posts ] 
Author Message
PostPosted: 2004-10-24 16:00:12 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Code:
#===================================================================#
# COOKING                                                           #
#===================================================================#
#   v.1.05b (с) Edred                                               #
#===================================================================#
;
; Встаем рядом среколлкой на базе, рядом с чаром в АМЗ ставим сундук или
; ящик. В него раскладываем много кучек хвороста не больше чем по 500
; в кучке (иначе чар не сможет взять 1 шт.) и кладем несколько стопок стейков
; (можно по 10к в стопке). Можно туда же добавить меда - уберите комментарий
; с EatChar() и добавьте эту функцию.
; Берем из сундука 1 шт хвороста, кладем в координаты TX, TY и зажигаем ее.
; Потом берем 1 шт. стейков из этого же сундука и жарим
; на костре или углях. При этом перед жаркой проверяем, есть ли в
; вокруг чара огонь или угли. если есть жарим, иначе опять жгем костер.
; Готовый стейк скидывается в этот же сундук.
;
; Перед разжиганием костра проверяем, прошло ли 5 минут с момента последней
; попытки прокачать Spirit Speak, если прошло - качаем.
;
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 )
      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' )
               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 )
               wait(1000)
               CheckLag()
            Endif
         until flag == 0
      Endif
   Wend
endsub

Sub UseSteake( fish, koster )
   VAR msg1 = 'You burn the food'            ; физл
   VAR msg2 = 'You put the fish steak'         ; успех
   VAR msg22 = 'You put the fish steaks'      ; успех
   VAR msg3 = 'You must wait'               ; ждать
   VAR msg4 = "You can't see the target"
   repeat
      DeleteJournal (msg1 )
      DeleteJournal (msg2 )
      DeleteJournal (msg22 )
      DeleteJournal (msg3 )
      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 CheckLag()
   DeleteJournal( 'backpack' )
   UO.Click( 'backpack' )
   repeat
      wait(100)
   until UO.InJournal( 'backpack' )
   return
end sub

#####################################################################
Sub DeleteJournal( string1 )
   VAR nom = UO.InJournal( string1 )
   If nom > 0 Then
      UO.SetJournalLine( Nom - 1, 'string replaced' )
      DeleteJournal( string1 )
   Endif
endsub


Top
   
 Post subject:
PostPosted: 2004-10-24 16:14:15 
Offline
Expert!
User avatar

Joined: 2004-04-04 21:40:09
Posts: 1007
Мысли автору на заметку.

Вынести кукинг в в одну функцию, а подготовку инструмента (костра) в другую. Функция кукинга должна принимать в качестве параметра серийник инструмента.

Это добавит скрипту универсальность и позволит легко адаптировать к шардам. Например у нас на ДРВ разумнее будет использовать форжу из рюкзака. Поскольку кемпинг и на х не нужен. :)


Top
   
 Post subject:
PostPosted: 2004-10-24 16:17:34 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Я уже вкачал до ГМа, поэтому вероятность переделки скрипта мною бесконечно мала... :)


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

All times are UTC+02:00


Who is online

Users browsing this forum: Bing [Bot] and 3 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:  
cron
Powered by phpBB® Forum Software © phpBB Limited