Фишинг с кораблем.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Qualis Eram
Posts: 104
Joined: 2005-04-16 23:33:13
Contact:

Фишинг с кораблем.

Post by Qualis Eram »

Привет.

Помогите переделать любой скрипт который лежит на форуме или написать новый так чтобы:

1. Ловил рыбу в локации 13х13 клеток.
2. Когда чар дошел до последнего тайла (-6 -6) делал остановку и включал функцию (Передвижения кораблем).
3. Если чар доходил до максимального веса....выкладывал рыбу...после чего продолжал ловить с последнего места ловли.
4. Всю выловленную рубу складывал в трюм корабля.
5. Проверка на лаги.
6. Зашита от канлоста.
7. Когда скил Фишинг равен 100% проигрывал звуквой сигнал после чего закрывал УО.

Пояснения:

1. При ловле рыбы....все спокойно т.е водных монстров нет! выловить их нельзя.
2. Ловится только рыба....ни каких карт итд нету.
3. Все сообщения при ловле рыбы стандартные.
4. Функция: Передвижения кораблем-очень проста чар пишет Forward ждет 10 секунд после чего пишет Stop и переходит к ловле рыбы в новом месте.
5. Обновление тайла происходит рандомно в этом промежутке от 1-2 часов.

PS. Очень сильно Вас прошу напиши такой скрипт чтобы прокачать Фишинг.
Qualis Eram
Posts: 104
Joined: 2005-04-16 23:33:13
Contact:

Post by Qualis Eram »

Парни ну что нет умельцев желающих помочь?
Ashes
Posts: 15
Joined: 2005-05-03 22:22:31

Post by Ashes »

Code: Select all

; Рыбачим с корабля. Выловленное перерабатываем и складываем в сундуки на
; палубе. Если вокруг все выловлено - плывем вперед или назад (по кругу).
; Считаем итемы (раздельные) в сундуках. Если их больше 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!!!!
Qualis Eram
Posts: 104
Joined: 2005-04-16 23:33:13
Contact:

Post by Qualis Eram »

2Ashes: Огромное спасибо
Qmer
Posts: 40
Joined: 2004-08-12 19:50:48
Location: И-нет клуб "Мусорка"
Contact:

Post by Qmer »

Мне бы этот скрипт очень бы пригодился!
Крч проблема в том что как я запускаю его показивайт -
You remove 0 Lhand FINDDIST=10
You have no Rhand.
и далле всё время без остановке показивайт -
Item found: 0
Помогите!
Да поможет вам Литр , да сохронит вас Второй , во имя Стакана , Бутылки , и святого Огурца - Аминь!
Yoko Повер нах )
Qmer
Posts: 40
Joined: 2004-08-12 19:50:48
Location: И-нет клуб "Мусорка"
Contact:

Post by Qmer »

АП!
Да поможет вам Литр , да сохронит вас Второй , во имя Стакана , Бутылки , и святого Огурца - Аминь!
Yoko Повер нах )
solidol
Posts: 3
Joined: 2008-09-25 07:16:59
Location: Russia
Contact:

Post by solidol »

Qmer wrote:АП!

почему то именно такая ошибка проявилась и у меня при навыке фишинга 30, решил проверить при 60ти - все заработало, тема старая, но мб кому пригодится....
robchik
Posts: 25
Joined: 2008-09-20 16:54:28

Post by robchik »

У меня чёт не хочет работать он.
Надо другой поискать.

У меня был скрипт, что когда долавливает - едет дальше и патом катается и ловит. Только скрипт где-то потерялся.

И ещё хотелось бы что бы он только карты слаживал с сундук а не всяких рыбок и фишинг поле.
Post Reply