; Берем в пак 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
|
21.04.2010
Респект....