Code: ; Рыбачим с корабля. Выловленное перерабатываем и складываем в сундуки на ; палубе. Если вокруг все выловлено - плывем вперед или назад (по кругу). ; Считаем итемы (раздельные) в сундуках. Если их больше 250 - останавливаем ; скрипт. В один из сундуков на палубе положить мед (если вы хотите ; подкармливать чара по дороге). Для начала рыбалки сорентируйте корабль по ; оси Y в направлении увеличения (справа налево наискосок вниз). ; Встаньте на трап и большого улова! ; ; НЕ ЗАБУДЬТЕ ВКЛЮЧИТЬ 'Track world items'!!! ; ; History: ; ; History: ; ; 1.01 - считаем физлы ловли. Если 10 - переходим к след. тайлу ; 1.02 - попытка защититься от элемов. Пока - простейшая - если чар мертв ; ждем ресса и берем в руки оружие. ; 1.03 - переработка рыбы, автоматическая подкормка раз в час. ; 1.04 - на фиг старую защиту, счас параллельный скрипт, который отрубает ; фишинг если здоровье чара меньше силы. ; 1.05 - Разобрались с оружием в руках и паке ; 1.06 - пропуск пустых респов элемов, сообщение о прерывании скрипта ; поверх всех окон в виндоус, мелкие правки. ; 1.07 - лечим изменения. Плюс прячем лишние процедуры :) ; 1.08 - из-за ловли с трапа изменил матрицу лова. Теперь нет точек ; где не ловится (чар в них и не пытается) ; 1.09 - открываем ракушки ; 1.10 - Теперь удочку и оружие со щитом храним не в паке, а в мешке на палубе - ; защита от лута ПК (если кто подплывет и кильнет, фиг слутит удочку) ; 1.11 - Зациклил скрипт. Теперь в случае элема - скрипт встает на паузу и ждет ; пока здоровье не восстановится, а потом перезапускается. Лечения с бинтов ; пока нету. ; 1.12 - Начинаем вводить ловлю по кругу. Для начала ловли корабль должен быть ; ориентирован по оси Y как и раньше, бум так ловить 10 шагов, потом ; разворачивать корабль и столько же шагов ловить обратно. ; 1.13 - мелкая правка, заодно мувим жемчуг в трюм. ; 1.14 - Соптимизировал ожидание во время килла элема, ввел лечение с бинтов после, ; ввел лут элема. Пока просто в пак. ; 1.15 - правим бой и лут элема ; 1.16 - ввел новое условие для проверки кила элема - что где-то рядом с чаром ; появился пак. Теперь работает как часы. ; 1.17 - ввел еще один мешок для лута с элема и карт. Чтобы не было переполнений. ; Для нормальной кормежки чуть переделал структуру скрипта. ; v. 2.00b - полная переработка скрипта: восстановление четкой структуры, ; изменение принципов реакции на элемов (их может быть больше ; одного), подхиливание чара во время битвы, изменение принципов ; плавания по кругу. Оружие должно быть в руках или паке. ; Удочка должна быть в руках или паке. Кроме того, можно положить ; еще удочек в сундук или пак. ; v. 2.01b - правим подхил с бинтов и атаку последнего элема в случае смерти. ; v. 2.02b - пропускаем паки элемов, которые не можем взять ; v. 2.03b - реагируем на морского монстра. Реакция простая - сразу прекращаем ; ловить и сидим в хайде пока монстр не уплывет! Гадость какая... ; Для этого придется ввести еще один скрипт - FightMonster ; v. 2.04b - Поправляем мелкие глючки, изменяем названия функций на понятные ; v. 2.05b - добавлен сундук с разбитого корабля ; v. 2.06b - Некоторые правки в технологии подхилла в сражении. ; ; Временно отключена процедура снятия курсы с чара. ; ; ver. 2.06b (c) Edred ; VAR Trum = '0x401DE221' ; сундук для основного улова VAR Trum2 = '0x4058CF23' ; сундук/мешок для лута элема VAR Trum3 = '0x401DE1C6' ; сундук / ящик для паков элемов VAR Pole = '0x0DBF' ; удочка VAR Fork = '0x1404' ; оружие # VAR Fork = '0x0F5C' ; mace - хочу качать мэйсу VAR Shield = '0x1B76' ; щит VAR Shag = 1 ; первый шаг при ловле вперед. При ловле вперед ; прибавляем по 1, при ловле назад будем ставить ; отрицательные числа. VAR Elem = '0x0010' ; Тип водного элементаля VAR ElemPack = '0x0E75' ; Тип пака водного элементаля VAR Monster = '0x005F' ; Тип морского монстра VAR Bandag = '0x0E21' ; Тип бинтов VAR BlBandag = '0x0E20' ; Тип кровавых бинтов VAR ElemSer ; сериал элема VAR MChest = '0x09AB' ; тип сундука с затонувшего корабля ; ================================================================ ; FightMonster() - Сканируем вокруг в поисках морского монстра, прячемся ; Sub FightMonster() repeat wait(500) UO.FindType( Monster, -1, 1 ) until UO.FindCount() > 0 ; Нашли! UO.Exec( 'terminate Fishing' ) UO.Exec( 'terminate FightElem' ) UO.SayU( 'stop' ) UO.WarMode( 0 ) Hide() repeat wait(1000) If UO.Dead() Then repeat wait(1000) until UO.Dead() == 0 Endif UO.FindType( Monster, -1, 1 ) until UO.FindCount() == 0 ; Ушел! UO.SayU( 'stop' ) UO.Exec( 'exec FightElem' ) UO.Exec( 'exec Fishing' ) endsub ; ================================================================ ; FightElem() - Сканируем вокруг в поисках элемов, вооружаемся ; Sub FightElem() VAR Nom, PackSer, MultiElem While TRUE UO.Exec('set finddistance 10') UO.FindType( Elem, -1, 1 ) While UO.FindCount() == 0 wait(500) UO.FindType( Elem, -1, 1 ) Wend ; нашли элема недалеко от нас ElemSer = UO.GetSerial( 'finditem' ) UO.Exec( 'terminate Fishing' ) UO.Exec( 'terminate FightMonster' ) UO.SayU( 'stop' ) DropPole() wait(1000) GetWeapon() UO.WarMode( 1 ) UO.FindType( Bandag, -1, Trum ) If UO.FindCount() > 0 Then UO.MoveItem( 'finditem', '10' ) wait(1000) Endif UO.Print( 'TEST. I fighting with elem' ) UO.Attack( ElemSer ) MultiElem = 0 repeat wait(1000) If UO.Dead() Then CharDead() Endif ; тут введем еще подхиливание чара UO.Print( 'Idem v podhil ' + str( UO.Life ) ) If UO.Life < ( UO.Str - 30 ) Then UO.Print( 'TEST. Restore chars...' ) RestoreChar( 0 ) UO.Print( 'TEST. Get weapons back...' ) GetWeapon() Endif If UO.Dead() Then CharDead() Endif UO.FindType( Elem, -1, 1 ) until UO.FindCount() == 0 ; Элем мертв и вокруг нет других UO.FindType( ElemPack, -1, 1 ) While UO.FindCount() > 0 PackSer = UO.GetSerial( 'finditem' ) DeleteJournal( "You can't reach" ) UO.MoveItem( PackSer ) wait(2000) If UO.InJournal( "You can't reach" ) Then UO.Ignore( 'finditem' ) Else UO.UseObject( PackSer ) wait(2000) FishLoot( PackSer ) Endif UO.FindType( ElemPack, -1, 1 ) Wend UO.IgnoreReset() UO.Exec( 'exec Fishing' ) Wend endsub
Sub CharDead() ; нащи действия из-за смерти чара ; для начала ждем-с... repeat wait(300) Until UO.Dead() == 0 ; чар ожил RestoreChar( 1 ) UO.FindType( Bandag, -1, Trum ) If UO.FindCount() > 0 Then UO.MoveItem( 'finditem', '10' ) wait(1000) Endif GetWeapon() UO.WarMode( 1 ) UO.Attack( 'lastattack' ) endsub
; ================================================================ ; StartFishing() - Запуск фишинга. Сделано в виде отдельной процедуры, ; чтобы не переустанавливать лишний раз глобалку sub StartFishing() UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) ) UO.Exec( 'exec FightElem' ) UO.Exec( 'exec Fishing' ) endsub
; ================================================================ ; Fishing() - Основная процедура фишинга ; Sub Fishing() DropWeapon() RestoreChar( 1 ) UO.WarMode( 0 ) wait(500) UO.Exec( 'exec FightMonster' ) While TRUE FishForward() If UO.Dead() Then return Endif If CountTrum( Trum ) > 250 OR CountTrum( Trum2 ) > 250 Then return Endif Wend endsub
; ================================================================ ; FishForward() - Процедура ловли вокруг лодки и сдвига корабля ; Sub FishForward() VAR x, y repeat For y = -4 To 4 For x = -4 To -1 FishTile( x, y ) If UO.Dead() Then return Endif Next Next EatChar( Trum, 2, 1, 60 ) If Shag > 10 Then ; пока сделаем плыть назад UO.SayU( 'back' ) wait(40000) UO.SayU( 'stop' ) Shag = 0 Endif Shag = Shag + 1 UO.SayU( 'forward' ) wait( 4000 ) UO.SayU( 'stop' ) until UO.Dead() endsub
; ================================================================ ; FishTile() - Процедура ловли в заданном тайле ; Sub FishTile( x, y ) VAR Ms0 = "You can't see" ; не можем ловит здесь VAR Ms1 = "You can't fish under the ship" ; не можем ловить здесь VAR Ms2 = "You are too far away" ; далеко VAR Ms3 = "There are no fish here" ; кончилось тут VAR Ms4 = "You fish a while, but fail to catch anything" ; физл VAR Ms5 = "You pull out" ; поймал что-то VAR k, t, v VAR MaxTime = 300 k = 0 repeat If UO.Dead() Then return Endif DeleteJournal(ms0) DeleteJournal(ms1) DeleteJournal(ms2) DeleteJournal(ms3) DeleteJournal(ms4) DeleteJournal(ms5) t = UO.Timer() GetPole() If UO.Waiting() Then UO.CancelTarget() Endif UO.WaitTargetTile( '0', STR( UO.GetX() + x ), STR( UO.GetY() + y ), '251') UO.UseObject( UO.GetSerial( UO.ObjAtLayer( 'Lhand' ) ) ) repeat wait(300) until UO.InJournal(ms0) OR UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR ((t + MaxTime) < UO.Timer()) If UO.InJournal(ms0) OR UO.InJournal(ms1) OR UO.InJournal(ms2) Then wait(3000) Endif k = k + 1 If UO.InJournal(ms5) Then k = 0 Endif If UO.Dead() Then return Endif If UO.InJournal( ms5 ) Then GetResultFish() repeat v = Recycle() until v == 0 If CountTrum( Trum ) > 250 OR CountTrum( Trum2 ) > 250 Then return Endif Endif until UO.InJournal(ms0) OR UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR (k > 6) endsub
; ================================================================ ; GetResultFish() - Процедура подбора рузультатов лова ; Sub GetResultFish() ; ------- улов ------- DIM Fish[18] Fish[0] = '0x170B' ; сапоги Fish[1] = '0x170F' ; тапки Fish[2] = '0x170D' ; сандалии Fish[3] = '0x1711' ; сапоги Fish[4] = '0x09CC' ; тип рыбы 1 Fish[5] = '0x09CD' ; тип рыбы 2 Fish[6] = '0x09CE' ; тип рыбы 3 Fish[7] = '0x09CF' ; тип рыбы 4 Fish[8] = '0x0FC4' ; ракушка, тип 1 Fish[9] = '0x0FC5' ; ракушка, тип 2 Fish[10] = '0x0FC6' ; ракушка, тип 3 Fish[11] = '0x0FC7' ; ракушка, тип 4 Fish[12] = '0x0FC8' ; ракушка, тип 5 Fish[13] = '0x0FC9' ; ракушка, тип 6 Fish[14] = '0x0FCA' ; ракушка, тип 7 Fish[15] = '0x0FCB' ; ракушка, тип 8 Fish[16] = '0x0FCC' ; ракушка, тип 9 Fish[17] = '0x14ED' ; карта VAR Razmer = 17 ; размер массива - 1 VAR i ; Ищем что у нас валяется под ногами, если надо перерабатываем ; и складируем в трюм. Потом введем всякие мешочки разные и ящички. For i=0 To Razmer UO.FindType( Fish[i], -1, 'ground' ) If UO.FindCount() > 0 Then UO.Grab( 0, 'finditem' ) Wait( 2000 ) Endif Next UO.FindType( MChest, -1, 'ground' ) If UO.FindCount() > 0 Then UO.Grab( 0, 'finditem' ) Wait( 2000 ) Endif endsub
; ================================================================ ; Recycle() - Процедура переработки рузультатов лова ; Sub Recycle() ; ------- улов ------- DIM Fish[18] Fish[0] = '0x170B' ; сапоги Fish[1] = '0x170F' ; тапки Fish[2] = '0x170D' ; сандалии Fish[3] = '0x1711' ; сапоги Fish[4] = '0x09CC' ; тип рыбы 1 Fish[5] = '0x09CD' ; тип рыбы 2 Fish[6] = '0x09CE' ; тип рыбы 3 Fish[7] = '0x09CF' ; тип рыбы 4 Fish[8] = '0x0FC4' ; ракушка, тип 1 Fish[9] = '0x0FC5' ; ракушка, тип 2 Fish[10] = '0x0FC6' ; ракушка, тип 3 Fish[11] = '0x0FC7' ; ракушка, тип 4 Fish[12] = '0x0FC8' ; ракушка, тип 5 Fish[13] = '0x0FC9' ; ракушка, тип 6 Fish[14] = '0x0FCA' ; ракушка, тип 7 Fish[15] = '0x0FCB' ; ракушка, тип 8 Fish[16] = '0x0FCC' ; ракушка, тип 9 Fish[17] = '0x14ED' ; карта VAR Razmer = 17 ; размер массива - 1 ; ------- инструмент ------- VAR Scissor = '0x0F9E' ; тип ножниц VAR Cleaver = '0x0EC2' ; кливер ; ------- конечный продукт ------- VAR Pearl = '0x0F7A' ; жемчуг VAR PearlColor = '0x05B2' ; цвет жемчуга VAR Steak = '0x097A' ; рыбное филе VAR i, Rakush, RetValue = 0
For i=0 To Razmer UO.FindType( Fish[i] ) If UO.FindCount() > 0 Then RetValue = 1 If i < 4 Then ; сапоги и тапки ; режем ножницами на бинты и скидываем бинты UO.WaitTargetObject( 'finditem' ) UO.UseType( Scissor ) Wait( 3000 ) ; Скинем бинты в трюм UO.FindType( Bandag ) If UO.FindCount() > 0 Then UO.MoveItem( 'finditem', '0' , Trum ) wait( 2000 ) Endif Endif If i > 3 AND i < 8 Then ; рыба ; режем кливером в филе и сбрасываем филе ; кливер берется в руки, поэтому потом ; снова берем удочку UO.WaitTargetObject( 'finditem' ) UO.UseType( Cleaver ) Wait( 3000 ) UO.FindType( Steak ) If UO.FindCount() > 0 Then UO.MoveItem( 'finditem', '0' , Trum ) wait( 2000 ) Endif UO.UseType( Pole ) Endif If i > 7 AND i < 17 Then ; ракушки ; дабл клик на них, если появился жемчуг Rakush = UO.GetSerial( 'finditem' ) UO.UseObject( Rakush ) wait( 1000 ) UO.FindType( Pearl, PearlColor ) If UO.FindCount() > 0 Then UO.MoveItem( 'finditem', '0' , Trum ) wait( 2000 ) Endif Endif If i == 17 Then ; карта UO.MoveItem( 'finditem', '0', Trum2 ) wait( 2000 ) Endif Endif Next return RetValue endsub
; ================================================================ ; Процедура подкормки чара. Параметры: сериал контейнера с медом, номер ; сообщения до которого кормить, сколько съесть меда после сообщения, ; как часто кормить чара. ; Прохождение последнего периода контролируется через глобальную переменную ; TimeProcess. ; ; ver. 1.03 (c) Edred ; Sub EatChar( Sunduk, Nom, Add, TimeWait ) ; сообщения при кормежке UO.Print( 'TEST: eat ' + str( Nom ) + ' message ' + str( Add ) + ' add ' + str( TimeWait ) + ' minutes' ) VAR Eat1 = 'You eat the food, but are still extremely hungry' VAR Eat2 = 'After eating the food, you fell much less hungry' VAR Eat3 = 'You eat the food, and begin to feel more satiated' VAR Eat4 = 'You are nearly stuffed, but manage to eat the food' VAR Eat5 = 'You fell quite full after consuming the food' VAR Eat6 = 'You are stuffed!' VAR Eat7 = 'You are simply too full to eat any more!' VAR Med = '0x09EC' ; тип меда для подкормки VAR i, Eat, j ; проверим, пора ли кормиться i = Val( UO.GetGlobal( 'TimeProcess' ) ) i = ( UO.Timer() - i ) / 600 If i < TimeWait Then ; рано кормиться return Endif ; пора кормиться If Nom == 1 Then Eat = Eat1 Endif If Nom == 2 Then Eat = Eat2 Endif If Nom == 3 Then Eat = Eat3 Endif If Nom == 4 Then Eat = Eat4 Endif If Nom == 5 Then Eat = Eat5 Endif If Nom == 6 Then Eat = Eat6 Endif If Nom == 7 Then Eat = Eat7 Endif UO.FindType( Med, '-1', Sunduk ) If UO.FindCount() == 0 Then ; мед кончился UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) ) return Endif UO.Grab( '60', 'finditem' ) Wait( 1000 ) repeat DeleteJournal( Eat ) UO.UseType( Med ) Wait( 1000 ) until NOT UO.InJournal( Eat ) If Add > 0 Then For j = 1 To Add UO.UseType( Med ) Wait( 1000 ) Next Endif ; хватит кормиться ; выгрузим остатки меда обратно UO.Findtype( Med, '-1', 'backpack' ) UO.MoveItem( 'finditem', 0, Sunduk ) Wait( 1000 ) ; Сбросим счетчик UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) ) endsub
; ================================================================ ; Функция FishLoot() - переложить из указанного пака все в трюм 2 ; и переложить сам пак в трюм 3 Sub FishLoot( Cont ) ; лутим все подряд из Cont и скидываем в Trum ; потом скидываем пустой Cont в TrumTrash UO.FindType( '-1', '-1', Cont ) while UO.FindCount() UO.MoveItem( 'finditem', 0, Trum2 ) wait(1000) UO.FindType( '-1', '-1', Cont ) wend UO.MoveItem( Cont, 0, Trum3 ) wait(500) endsub
; ================================================================ ; Функция CountTrum() - подсчитать кол-во итемов в указанном трюме ; Sub CountTrum( cont ) ; Считаем кол-во любых итемов (или кучек) в cont ; и возвращаем результат UO.FindType( -1, -1, cont ) return UO.FindCount() endsub
; ================================================================ ; Функция GetWeapon() - взять в руки оружие и щит ; Sub GetWeapon() ; берем в руки оружие и щит. Динамические паузы и оптимитизация. If UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) == Shield Then If UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) == Fork Then ; уже в руках все return Else ; надо взять в руки только оружие, щит не надо UO.Equipt( 'Rhand', Fork ) repeat wait(100) until UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) == Fork Endif Else If UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) == Fork Then ; в руках только оружие, надо еще щит взять UO.Equipt( 'Lhand', Shield ) repeat wait(100) until UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) == Shield Else ; в руках нет ни оружия, ни щита UO.Equipt( 'Rhand', Fork ) repeat wait(100) until UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) == Fork UO.Equipt( 'Lhand', Shield ) repeat wait(100) until UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) == Shield Endif Endif endsub
; ================================================================ ; Функция DropWeapon() - сбросить оружие и щит в пак ; Sub DropWeapon() UO.UnEquip( 'Lhand' ) wait(500) UO.UnEquip( 'Rhand' ) wait(500) endsub
; ================================================================ ; Функция GetPole() - взять удочку из пака или сундука ; Sub GetPole() If UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) <> Pole Then UO.FindType( Pole ) If UO.FindCount() == 0 Then UO.FindType( Pole, -1, Trum ) If UO.FindCount() == 0 Then UO.Print( 'Pole not found. Script terminated...' ) UO.Exec( 'terminate FightElem' ) UO.Exec( 'terminate Fishing' ) return Endif UO.MoveItem( 'finditem' ) repeat wait(100) until UO.Count( Pole ) > 0 Endif UO.Equipt( 'Lhand', Pole ) repeat wait(100) until UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) == Pole Endif endsub
; ================================================================ ; Функция DropPole() - сбросить удочку из рук в сундук ; Sub DropPole() VAR i = UO.Count( Pole ) VAR j If i == 0 Then return Endif While i > 1 UO.FindType( Pole ) UO.MoveItem( 'finditem', 0 , Trum ) j = i - 1 repeat wait(100) until j == UO.Count( Pole ) i = i - 1 Wend If UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) == Pole Then DeleteJournal( 'You put the fishing pole' ) UO.UnEquip( 'Lhand' ) wait(500) Endif ; UO.FindType( Pole ) ; UO.MoveItem( 'finditem', 0, Trum ) ; repeat ; wait(100) ; until UO.Count( Pole ) == 0 endsub
; ================================================================ ; Функция CastSpell() - кастуем на себя заклинание ; Sub CastSpell( nam ) If nam == 'Bless' Then GetRegs( 'GL', 1 ) GetRegs( 'MR', 1 ) UO.WaitTargetSelf() UO.Cast( 'Bless' ) Endif If nam == 'Dispel' Then GetRegs( 'GL', 1 ) GetRegs( 'MR', 1 ) GetRegs( 'SA', 1 ) UO.WaitTargetSelf() UO.Cast( 'Bless' ) Endif wait(4000) endsub
; ================================================================ ; Функция GetRegs() - взять нужный рег в нужном колве из сундука 2 ; Sub GetRegs( nam, kolvo ) VAR BP = '0x0F7A' ; Black Pearl VAR BM = '0x0F7B' ; Bood Moss VAR GA = '0x0F84' ; garlic VAR GI = '0x0F85' ; Ginseng VAR MR = '0x0F86' ; Mandrake Root VAR NS = '0x0F88' ; Night Shade VAR SA = '0x0F8C' ; Sulphorous Ash VAR SS = '0x0F8D' ; Spiders Silk If nam == 'BP' Then UO.FindType( nam, '0x0000', Trum2 ) Else UO.FindType( nam, -1, Trum2 ) Endif If UO.FindCount() == 0 Then return Else UO.MoveItem( 'finditem', kolvo ) repeat wait(100) until UO.Count( nam ) == kolvo Endif endsub
; ================================================================ ; Функция RemoveRegs() - сбросить все лишние реги в сундук 2 ; Sub RemoveRegs() DIM Regs[8] Regs[0] = '0x0F7A' ; Black Pearl Regs[1] = '0x0F7B' ; Bood Moss Regs[2] = '0x0F84' ; garlic Regs[3] = '0x0F85' ; Ginseng Regs[4] = '0x0F86' ; Mandrake Root Regs[5] = '0x0F88' ; Night Shade Regs[6] = '0x0F8C' ; Sulphorous Ash Regs[7] = '0x0F8D' ; Spiders Silk VAR i For i = 0 To 7 UO.FindType( Regs[i] ) While UO.FindCount() > 0 UO.MoveItem( 'finditem', -1, Trum2 ) wait(1000) UO.FindType( Regs[i] ) Wend Next endsub
; ================================================================ ; Функция RestoreChar() - вылечить чара, снять курсу если надо ; (диспел, потом блесс) Sub RestoreChar( flag ) If flag == 0 Then If UO.Count( Bandag ) > 0 Then UO.Bandageself() wait( 300 ) Endif return Endif If UO.Life == 150 Then return Endif ; посмотрим, надо ли снимать курсу с чара # If UO.Str < 150 Then # ; на нас курса, надо взять реги из трюма-2 и наложить # ; на себя сначала диспел, потом блесс # CastSpell( 'Bless' ) # CastSpell( 'Dispel' ) # RemoveRegs() # Endif ; теперь лечим чара до упора UO.FindType( Bandag, -1, Trum ) If UO.FindCount() > 0 Then UO.MoveItem( 'finditem', '10' ) wait(1000) repeat UO.Bandageself() wait(3000) until UO.Life == 150 ; скинем в трюм остаток бинтов и использованные бинты UO.FindType( Bandag ) If UO.FindCount() > 0 Then UO.MoveItem( 'finditem', 0, Trum ) wait(1000) Endif UO.FindType( BlBandag ) If UO.FindCount() > 0 Then UO.MoveItem( 'finditem', 0, Trum ) wait(1000) Endif Else repeat wait(500) until UO.Life == 150 Endif endsub
Sub DeleteJournal( string1 ) VAR nom = UO.InJournal( string1 ) If nom > 0 Then UO.SetJournalLine( Nom - 1, 'string replaced' ) DeleteJournal( string1 ) Endif endsub
; ============= HIDE === ; заходим в хайд или контролируем его. ; sub Hide() While UO.Dead() wait(100) Wend While not UO.Hidden() UO.UseSkill('Hiding') Wait(4000) Wend endsub
sub test1() If UO.Life < 150 Then UO.Print( 'TEST. Restore chars...' ) RestoreChar( 0 ) UO.Print( 'TEST. Get weapons back...' ) GetWeapon() Endif endsub
##################################################################### ; Remember armor & weapon, disarm, healing from bandages, arm sub Bandag() UO.SetArm('CWeapon') UO.Exec('bandageself') wait(300) UO.Arm('CWeapon') endsub
sub test2() UO.Print( str( UO.Str ) ) endsub
Sam nesmotrel takshto jesli nepa6it to sorry!!!!
|