camping(DRW)
Posted: 2004-12-29 18:02:54
у меня такой вопрос ,как узнать номера рун в скрипте который будет ниже(играю на дрв), и еще не могли бы добавить реколл по рунбуке если не льзя узнать номера рун, я оченб вас прошу.
Code: Select all
sub main()
sub camping()
DIM Regs[3]
Regs[0] = '0x0F7A' ; Black Pearl
Regs[1] = '0x0F7B' ; Bood Moss
Regs[2] = '0x0F86' ; Mandrake Root
VAR Hvorost = '0x0DE1'
VAR flag, myx, myy, myz, fin, i
VAR FinalX = 1626
VAR Sunduk = '0x4024AD4D'
VAR RuneToBase = '20'
VAR RuneToFire = '30'
;
; Стартуем стоя в начале пути.
; UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
UO.Exec( 'set finddistance 3' )
While UO.SkillVal( 'Camping' ) < 1000
fin = 0
UO.UseSkill( 'Meditation' )
UO.FindType ( Hvorost )
While ( UO.FindCount() > 0 ) AND ( fin == 0 )
myx = UO.GetX()
myy = UO.GetY()
myz = UO.GetZ()
UO.MoveItem('finditem', '1', 'ground', str(myx-1), str(myy), str(myz))
wait(1000)
CheckLag()
UO.FindType ( Hvorost )
UO.MoveItem('finditem', '1', 'ground', str(myx), str(myy+1), str(myz))
wait(1000)
CheckLag()
UO.FindType ( Hvorost )
UO.MoveItem('finditem', '1', 'ground', str(myx), str(myy-1), str(myz))
wait(1000)
CheckLag()
UO.Findtype( Hvorost, -1, 1 )
While UO.FindCount() > 0 AND NOT UO.InJournal( "You can't ignite several" )
repeat
flag = 1
DeleteJournal( "You fail to ignite" )
DeleteJournal( "You can't ignite several" )
DeleteJournal( "You must wait" )
UO.UseFromGround( Hvorost )
wait(1000)
CheckLag()
If UO.InJournal( "You must wait" ) OR UO.InJournal( "You fail to ignite" ) Then
flag = 0
wait(1000)
Endif
If UO.InJournal( "You can't ignite several" ) Then
UO.FindType( Hvorost, -1, 1 )
While UO.FindCount() > 0
If UO.GetQuantity( 'finditem' ) > 1 Then
UO.Grab( str( UO.GetQuantity( 'finditem' ) - 1 ), 'finditem' )
wait(1000)
CheckLag()
Endif
UO.Ignore( 'finditem' )
UO.FindType( Hvorost, -1, 1 )
Wend
UO.IgnoreReset()
Endif
until flag
UO.Findtype( Hvorost, -1, 1 )
Wend
While ( UO.GetX() < myx + 1 ) AND ( fin == 0 )
UO.Press( 34 )
wait(300)
CheckLag()
If UO.GetX() == FinalX Then
fin = 1
Endif
Wend
UO.FindType ( Hvorost )
Wend
; достигли конца маршрута или кончился хворост
Recalling( 'CommonRunbook', RuneToBase )
UO.UseObject( Sunduk )
wait(1000)
CheckLag()
for i = 0 To 2
If UO.Count( Regs[i] ) < 6 Then
; этого рега меньше 6
UO.FindType( Regs[i], '-1', Sunduk )
UO.Grab( str( 6 - UO.Count( Regs[i] ) ), 'finditem' )
Wait( 1000 )
CheckLag()
Endif
next
If UO.Count( Hvorost ) < 200 Then
; хвороста меньше 200
UO.FindType( Hvorost, '-1', Sunduk )
UO.Grab( str( 200 - UO.Count( Hvorost ) ), 'finditem' )
Wait( 1000 )
CheckLag()
Endif
; EatChar( Sunduk, 2, 1, 60 )
Recalling( 'CommonRunbook', RuneToFire )
Wend
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
#####################################################################
Sub Recalling( Runbk, NRune )
; Runbk - сериал или ссылка на объект рунбуки
; NRune - десятичный номер (текстом) руны для реколла
VAR myx = UO.GetX()
VAR myy = UO.GetY()
VAR OldMana = UO.Mana
VAR i = 0
DeleteJournal( 'fizzles' )
UO.Exec("recall " + Runbk + " " + NRune)
repeat
CheckLag()
wait(1000)
i = i + 1
until ( i > 6 ) OR ( UO.Mana < OldMana - 8 ) OR UO.InJournal( 'fizzles' )
wait(500)
If myx == UO.GetX() AND myy == UO.GetY() Then
UO.WarMode( 'flip' )
wait(100)
UO.WarMode( 'flip' )
Recalling( Runbk, NRune )
Endif
endsub