Yoko

All sides of Injection
It is currently 2025-10-15 07:50:03

All times are UTC+02:00




Post new topic  Reply to topic  [ 8 posts ] 
Author Message
 Post subject: Tinkering
PostPosted: 2004-05-23 13:31:09 
Offline

Joined: 2004-05-22 23:46:27
Posts: 12
sub main()
repeat
UO.WaitMenu('Tinkering','Tools','Tools','tinker')
UO.Usetype('0x1EBC')
wait (200)
UO.DeleteJournal()
while not (UO.InJournal("You put") or UO.InJournal("Tinkering failed"))
wait (500)
end sub

Такой вот простенький скрипт, только почему-то не зацикливается. Делает один раз - и застывает. Почему? Ведь repeat стоит...


Top
   
 Post subject:
PostPosted: 2004-05-23 13:32:38 
Offline

Joined: 2004-05-22 23:46:27
Posts: 12
Ответ увидел в следующей теме. :)


Top
   
 Post subject:
PostPosted: 2004-05-23 13:40:08 
Offline

Joined: 2004-05-22 23:46:27
Posts: 12
Странно. Изменил скрипт на:

sub main()
While NOT UO.Dead()
UO.WaitMenu('Tinkering','Tools','Tools','tinker')
UO.Usetype('0x1EBC')
wait (200)
UO.DeleteJournal()
while not (UO.InJournal("You put") or UO.InJournal("Tinkering failed"))
wait (200)
wend
wait (200)
end sub

, но все равно не помогло!


Top
   
 Post subject:
PostPosted: 2004-05-23 13:51:18 
Offline

Joined: 2004-05-22 23:46:27
Posts: 12
Побегав по форуму, "домутил" скрипт до такого вида, и теперь все работает:

sub main()
var i;
tinst:
uo.deletejournal()
UO.WaitMenu('Tinkering','Tools','Tools','tinker')
UO.Usetype('0x1EBC')
i=0
repeat
wait(200)
i=i+1
until uo.injournal("You put") or uo.injournal("failed") or i>50
goto tinst
end sub

Только объясните, пожалуйста, что вообще в этом скрипте означают строки с i (var i, i=0, i=i+1, i>50).


Top
   
 Post subject:
PostPosted: 2004-05-24 18:31:11 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Russian wrote:
Побегав по форуму, "домутил" скрипт до такого вида, и теперь все работает:

sub main()
var i;
tinst:
uo.deletejournal()
UO.WaitMenu('Tinkering','Tools','Tools','tinker')
UO.Usetype('0x1EBC')
i=0
repeat
wait(200)
i=i+1
until uo.injournal("You put") or uo.injournal("failed") or i>50
goto tinst
end sub

Только объясните, пожалуйста, что вообще в этом скрипте означают строки с i (var i, i=0, i=i+1, i>50).


Счетчик времени. Простейший. Который прерывает цикл ожидания независимо от сообщения если прошло 50*200 миллисекунд (10 сек).


Top
   
 Post subject:
PostPosted: 2004-05-24 18:36:24 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Но ты в своем скрипте ограничен весом пака чара, потому лучше сделай так (измени крафт боттлов на то, что тебе надо):

Code:
; Tinker. v.1.00b (c) Edred
;
; Чар берет из сундука инготы, крафтит из них бутылки
; и складывает эти бутылки в этот же сундук.
; Если инги закончились - выход.
;
sub tinker()
   VAR Sunduk = '0x4042B1A1'       ; Сериал сундука
   VAR Ingi = '0x1BEF'          ; Тип ингов
   VAR Instrum = '0x1EBC'      ; Тип инструмента тинкера
   VAR Bottle = '0x0F0E'       ; Тип бутылки
   VAR Kolvo = 200          ; Брать ингов
   VAR k = 0
   While TRUE
      UO.FindType( Ingi, -1, Sunduk )   ; Ищем инги в сундуке
      If UO.FindCount() == 0 Then
         UO.Print("Iron Ingots not found, script terminated")
         return
      Endif
      UO.Grab( Str( Kolvo ), 'finditem' )
      wait( 2000 )
      While UO.Count( Ingi ) > 0
         ; Пока в паке есть инги
         UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
         UO.DeleteJournal()
         UO.CancelMenu()
         UO.WaitMenu ('Tinkering', 'Tools', 'Tools', 'empty bottle' )
         UO.UseType( Instrum )
         k = 0
         while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
            k = k + 1
            wait(500)
         wend
         if UO.Count( Bottle ) > 0 then
            UO.FindType( Bottle, -1, -1 )
            UO.MoveItem( 'finditem', 0, Sunduk )
            wait( 1000 )
            UO.Print( 'Bottle moved' )
         end if
      Wend
   Wend
end sub


Top
   
 Post subject:
PostPosted: 2004-05-25 17:03:36 
Offline

Joined: 2004-05-06 21:19:19
Posts: 5
Edred wrote:
Но ты в своем скрипте ограничен весом пака чара, потому лучше сделай так (измени крафт боттлов на то, что тебе надо):

Code:
; Tinker. v.1.00b (c) Edred
;
; Чар берет из сундука инготы, крафтит из них бутылки
; и складывает эти бутылки в этот же сундук.
; Если инги закончились - выход.
;
sub tinker()
   VAR Sunduk = '0x4042B1A1'       ; Сериал сундука
   VAR Ingi = '0x1BEF'          ; Тип ингов
   VAR Instrum = '0x1EBC'      ; Тип инструмента тинкера
   VAR Bottle = '0x0F0E'       ; Тип бутылки
   VAR Kolvo = 200          ; Брать ингов
   VAR k = 0
   While TRUE
      UO.FindType( Ingi, -1, Sunduk )   ; Ищем инги в сундуке
      If UO.FindCount() == 0 Then
         UO.Print("Iron Ingots not found, script terminated")
         return
      Endif
      UO.Grab( Str( Kolvo ), 'finditem' )
      wait( 2000 )
      While UO.Count( Ingi ) > 0
         ; Пока в паке есть инги
         UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
         UO.DeleteJournal()
         UO.CancelMenu()
         UO.WaitMenu ('Tinkering', 'Tools', 'Tools', 'empty bottle' )
         UO.UseType( Instrum )
         k = 0
         while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
            k = k + 1
            wait(500)
         wend
         if UO.Count( Bottle ) > 0 then
            UO.FindType( Bottle, -1, -1 )
            UO.MoveItem( 'finditem', 0, Sunduk )
            wait( 1000 )
            UO.Print( 'Bottle moved' )
         end if
      Wend
   Wend
end sub

Что надо дописть , что бы чар складывал бутылки не в сундук ...
А в паки , причем разные паки .... менял бы он паки после переполнения прошлого .
Буду очень благодарен


Top
   
 Post subject:
PostPosted: 2004-05-25 19:04:49 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Quote:
Что надо дописть , что бы чар складывал бутылки не в сундук ...
А в паки , причем разные паки .... менял бы он паки после переполнения прошлого .
Буду очень благодарен


Поройся тут, я кидал свои скрипты на ламбер и тейлор, там именно так и организовано... В тинкере мне такой необходимости не было, боттлы суммируются и их не надо раскладывать...


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 1 guest


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 Limited