Yoko

All sides of Injection
It is currently 2025-10-22 11:47:50

All times are UTC+02:00




Post new topic  Reply to topic  [ 8 posts ] 
Author Message
PostPosted: 2005-08-31 19:44:44 
Offline

Joined: 2005-04-16 23:33:13
Posts: 104
Привет.

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

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

Пояснения:

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

PS. Очень сильно Вас прошу напиши такой скрипт чтобы прокачать Фишинг.


Top
   
 Post subject:
PostPosted: 2005-09-09 04:50:00 
Offline

Joined: 2005-04-16 23:33:13
Posts: 104
Парни ну что нет умельцев желающих помочь?


Top
   
 Post subject:
PostPosted: 2005-09-09 12:54:14 
Offline
User avatar

Joined: 2005-05-03 22:22:31
Posts: 15
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!!!!


Top
   
 Post subject:
PostPosted: 2005-09-10 04:48:28 
Offline

Joined: 2005-04-16 23:33:13
Posts: 104
2Ashes: Огромное спасибо


Top
   
 Post subject:
PostPosted: 2007-05-01 20:21:35 
Offline
User avatar

Joined: 2004-08-12 19:50:48
Posts: 40
Location: И-нет клуб "Мусорка"
Мне бы этот скрипт очень бы пригодился!
Крч проблема в том что как я запускаю его показивайт -
You remove 0 Lhand FINDDIST=10
You have no Rhand.
и далле всё время без остановке показивайт -
Item found: 0
Помогите!

_________________
Да поможет вам Литр , да сохронит вас Второй , во имя Стакана , Бутылки , и святого Огурца - Аминь!
Yoko Повер нах )


Top
   
 Post subject:
PostPosted: 2007-05-05 10:42:51 
Offline
User avatar

Joined: 2004-08-12 19:50:48
Posts: 40
Location: И-нет клуб "Мусорка"
АП!

_________________
Да поможет вам Литр , да сохронит вас Второй , во имя Стакана , Бутылки , и святого Огурца - Аминь!

Yoko Повер нах )


Top
   
 Post subject:
PostPosted: 2008-11-07 07:43:38 
Offline

Joined: 2008-09-25 07:16:59
Posts: 3
Location: Russia
Qmer wrote:
АП!

почему то именно такая ошибка проявилась и у меня при навыке фишинга 30, решил проверить при 60ти - все заработало, тема старая, но мб кому пригодится....


Top
   
 Post subject:
PostPosted: 2009-08-09 12:33:18 
Offline

Joined: 2008-09-20 16:54:28
Posts: 25
У меня чёт не хочет работать он.
Надо другой поискать.

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

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 8 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited