Привет.
Помогите переделать любой скрипт который лежит на форуме или написать новый так чтобы:
1. Ловил рыбу в локации 13х13 клеток.
2. Когда чар дошел до последнего тайла (-6 -6) делал остановку и включал функцию (Передвижения кораблем).
3. Если чар доходил до максимального веса....выкладывал рыбу...после чего продолжал ловить с последнего места ловли.
4. Всю выловленную рубу складывал в трюм корабля.
5. Проверка на лаги.
6. Зашита от канлоста.
7. Когда скил Фишинг равен 100% проигрывал звуквой сигнал после чего закрывал УО.
Пояснения:
1. При ловле рыбы....все спокойно т.е водных монстров нет! выловить их нельзя.
2. Ловится только рыба....ни каких карт итд нету.
3. Все сообщения при ловле рыбы стандартные.
4. Функция: Передвижения кораблем-очень проста чар пишет Forward ждет 10 секунд после чего пишет Stop и переходит к ловле рыбы в новом месте.
5. Обновление тайла происходит рандомно в этом промежутке от 1-2 часов.
PS. Очень сильно Вас прошу напиши такой скрипт чтобы прокачать Фишинг.
Фишинг с кораблем.
Moderators: Murderator+, Murderator
-
- Posts: 104
- Joined: 2005-04-16 23:33:13
- Contact:
-
- Posts: 104
- Joined: 2005-04-16 23:33:13
- Contact:
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!!!!
-
- Posts: 104
- Joined: 2005-04-16 23:33:13
- Contact:
Мне бы этот скрипт очень бы пригодился!
Крч проблема в том что как я запускаю его показивайт -
You remove 0 Lhand FINDDIST=10
You have no Rhand.
и далле всё время без остановке показивайт -
Item found: 0
Помогите!
Крч проблема в том что как я запускаю его показивайт -
You remove 0 Lhand FINDDIST=10
You have no Rhand.
и далле всё время без остановке показивайт -
Item found: 0
Помогите!
Да поможет вам Литр , да сохронит вас Второй , во имя Стакана , Бутылки , и святого Огурца - Аминь!
Yoko Повер нах )
Yoko Повер нах )