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 инжа вылетает... Поэтому прошу удалить все лишнее - счетчики и типы ключей всякие, что бы выглядело так:
использовали лок на бочке, если не открылась, пробуем снова, открылась закрываем ключом и снова поехали...
Заранее спасибо,
ЗЫ:все из журнала и айди предметов сделанны верно