Discussion:______________
http://yoko.netroof.net/forum/viewtopic.php?t=1713
Author or poster:_________
Edred,
tercia@spb.lanck.net
Tested on:_______________
Цитадель
http://ultima.e-burg.ru
Must work:_______________
Sphere emu
Customization required:____
Yes/place (serial Sunduk, runebook, rune to town, FinalX coordinate; also check up types)
Description:______________
Берем в пак 200 хвороста и реги, реколлимся по руне туда где можно жечь костры, врубаем медитацию, отделяем по 1 шт. хвороста, кладем их вокруг чара с трех сторон, дважды щелкаем по этим кучкам хвороста для их разжигания (с повторами в случае физлов). Отходим назад (направление на правый нижний угол - клавиша "3" на нумпаде). Повторям последнюю операцию пока чар не придет в точку FinalX. Реколлимся на базу, добираем из ящика хворост и реги. И по кругу.
Разметьте руну где-нибудь в непосещаемом городе, прогуляйтесь шагов на 30-50 по диагонали по направлению цифры 3 на нумпаде, занесите координату X этой точки в FinalX (для надежности и защиты от лагов будет лучше если в этой точке чар упрется в стенку). На базе рядом с реколлкой поставьте сундук и в него положите много хвороста (можно одной "неподьъемной" кучкой и побольше регов для реколла. Занесите руну в этот город в ту же рунбуку, где и руна на базу.
Yoko comment:___________
none
________________________
Code:
#===================================================================#
# CAMPING #
#===================================================================#
# v.1.04b (с) Edred #
#===================================================================#
; Берем в пак 200 хвороста и реги, реколлимся по руне туда где можно
; жечь костры, врубаем медитацию, отделяем по 1 шт. хвороста, кладем их
; вокруг чара с трех сторон, дважды щелкаем по этим кучкам хвороста
; для их разжигания (с повторами в случае физлов). Отходим назад
; (направление на правый нижний угол - клавиша "3" на нумпаде).
; Повторям последнюю операцию пока чар не придет в точку FinalX.
; Реколлимся на базу, добираем из ящика хворост и реги. И по кругу.
;
; Разметьте руну где-нибудь в непосещаемом городе, прогуляйтесь шагов
; на 30-50 по диагонали по направлению цифры 3 на нумпаде, занесите
; координату X этой точки в FinalX (для надежности и защиты от лагов
; будет лучше если в этой точке чар упрется в стенку). На базе рядом
; с реколлкой поставьте сундук и в него положите много хвороста (можно
; одной "неподьъемной" кучкой и побольше регов для реколла.
; Занесите руну в этот город в ту же рунбуку, где и руна на базу.
;
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 = 1350
VAR Sunduk = '0x40591B82'
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