Lockpicking подправьте

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Bulwy
Posts: 1
Joined: 2008-02-01 21:49:49

Lockpicking подправьте

Post by Bulwy »

Code: Select all

#####################################################################
; Lockpicking v.1.01b (c) Edred
;
sub Lockpicking()
   VAR SundukFrom = '0x404CF9CF'
   VAR SundukTarg = '0x73aced06'
   VAR KeyTarg = '0x73aced07'
   VAR LockType = '0x14FB'
      UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
   DIM LockColor[3], SkUp[3]
   LockColor[0] = '0x0000'      ; айрон
   LockColor[1] = '0x060A'      ; дулл купер
   LockColor[2] = '0x0488'      ; бронза
   LockColor[3] = '0x08A5'      ; золото
   SkUp[0] = 299            ; уровень скилла выше которого качать железными отмычками
   SkUp[1] = 499            ; уровень скилла выше которого качать медными отмычками   
   SkUp[2] = 499            ; уровень скилла выше которого качать бронзовыми отмычками
   SkUp[3] = 599            ; уровень скилла выше которого качать золотыми отмычками   
   VAR fizzle = "замок"
   VAR success = "Открыто"
   VAR locked = "заперли"
   VAR TimeLimit = 3000
   VAR trycount = 0, succount = 0
   VAR i, j, needcolor, k, end
   UO.UseObject( SundukFrom )
   wait(1000)
   while UO.SkillVal( 'Lockpicking' ) < 1000
      If UO.Count( LockType ) == 0 Then
         EatChar( SundukFrom, 6, 2, 120 )
         j = 0
         For i = 0 To 3
            If SkUp[i] < UO.SkillVal( 'Lockpicking' ) Then
               j = i
            Endif
         Next
         needcolor = LockColor[j]
         UO.FindType( LockType, needcolor, SundukFrom )
         If UO.FindCount() == 0 Then
            UO.Print( 'Lockpicks not found. Script terminated' )
            return
         Endif
         If UO.GetQuantity( 'finditem' ) > 100 Then
            UO.Grab( '100', 'finditem' )
         Else
            UO.Grab( 'finditem' )
         Endif
         wait(1000)
         CheckLag()
      Endif
         trycount = trycount + 1
         UO.Print( 'You have ' + str( UO.Count( LockType ) ) + ' lockpicks.' )
         UO.Print( 'You have ' + str( succount ) + ' success attempt' )
         UO.Print( 'You get ' + str( trycount ) + ' attempt'  )
         UO.DeleteJournal( fizzle )
         UO.DeleteJournal( success )
         UO.WaitTargetObject( SundukTarg )
         UO.UseType( LockType )
         k = 0
         repeat
            wait(100)
            k = k + 1
         until UO.InJournal( fizzle ) OR UO.InJournal( success ) OR k > TimeLimit
         If UO.InJournal( success ) Then
            UO.DeleteJournal( locked )
            succount = succount + 1
            UO.WaitTargetObject( SundukTarg )
            UO.UseObject( KeyTarg )
            repeat
               wait(100)
            until UO.InJournal( locked )
         Endif
      Wend
   Wend
endsub


Как видно изначально скрипт эдреда из его наследия, что-то подправил сам, при удалении остального скрипт перестает работать.
Скрипт рабочий, но слишком перегруженный и после работы минут 10 инжа вылетает... Поэтому прошу удалить все лишнее - счетчики и типы ключей всякие, что бы выглядело так:
использовали лок на бочке, если не открылась, пробуем снова, открылась закрываем ключом и снова поехали...
Заранее спасибо,
ЗЫ:все из журнала и айди предметов сделанны верно
Post Reply