Page 1 of 1

Cartography для соседнего раздела

Posted: 2004-09-22 19:21:18
by Edred
Cartography

Этот скрипт является логическим продолжением скрипта на тейлор с пошивом карт и раскладыванием их по мешочкам в сундуке - то есть дает ответ на вопрос "а что же с этими картами в мешочках делать?"... :lol:

Code: Select all

#####################################################################
; Cartography. v.1.00b (c) Edred
;
; Ищем в сундуке 1 мешок с картами, берем по очереди из него карты,
; качаем на них картографию (с повторами в случае физлов), потом скидываем
; карты в трэш. Если мешки с картами кончились - выход.

sub cartograph()
   VAR Sunduk1 = '0x4047F4CD'       ; Сериал сундука с мешками с картами
   VAR Trash = '0x4001F99D'      ; Сериал мусорного ведра
   VAR Meshok = '0x0E76'          ; Тип мешка
   VAR Map = '0x14EB'             ; Тип карты
   VAR Fizzle = 'Thy trembling hand results'
   VAR Success = 'You put the map in your pack'
   VAR MeshSer, j, k, MapSer, flag
   UO.CancelMenu()
   UO.IgnoreReset()
   UO.AutoMenu( 'What sort of map', 'Regional Map' )
   UO.FindType( Meshok, -1, Sunduk1 )
   While UO.FindCount() > 0
      MeshSer = UO.GetSerial( 'finditem' )
      UO.UseObject( MeshSer )
      wait(500)
      CheckLag()
      UO.FindType( Map, -1, MeshSer )
      While UO.FindCount() > 0
         MapSer = UO.GetSerial( 'finditem' )
         UO.Grab( '1', 'finditem' )
         repeat
            wait(100)
         until UO.Count( Map ) == 1
         flag = 0
         While flag == 0
            DeleteJournal( Fizzle )
            DeleteJournal( Success )
            UO.UseObject( MapSer )
            k = 0
            repeat
               k = k + 1
               wait(100)
            until UO.InJournal( Fizzle ) OR UO.InJournal( Success ) OR k > 600
            If UO.InJournal( Success ) OR k > 600 Then
               flag = 1
            Endif
         Wend
         UO.FindType( Map )
         While UO.FindCount() > 0            
            UO.MoveItem( 'finditem', 0, Trash )
            wait(1000)
            CheckLag()
            UO.FindType( Map )
         Wend
      UO.FindType( Map, -1, MeshSer )
      Wend
      UO.Ignore( MeshSer )
      UO.FindType( Meshok, -1, Sunduk1 )
   Wend
   UO.IgnoreReset()
   UO.CancelMenu()
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


ЗЫ: Обратите внимание - скрипт не двигает сами мешки, он только опорожняет их...