Yoko

All sides of Injection
It is currently 2025-10-24 10:31:58

All times are UTC+02:00




Post new topic  Reply to topic  [ 1 post ] 
Author Message
PostPosted: 2008-01-24 22:23:40 
Offline

Joined: 2008-01-24 22:13:13
Posts: 1
помогите со скриптом хочу чтоб он лутал автоматически трупы при ловле
тоесть к примеру я поймал sea serpent когда его убивал автоматически резал и лутал потом снова брал бы удку и продолжал ловить


; Рыбачим с корабля. Выловленное перерабатываем и складываем в сундуки на
; палубе. Если вокруг все выловлено - плывем вперед или назад (по кругу).
; Считаем итемы (раздельные) в сундуках. Если их больше 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 = '0x4186567E' ; сундук для основного улова
VAR Trum2 = '0x4186567E' ; сундук/мешок для лута элема
VAR Trum3 = '0x4186567E' ; сундук / ящик для паков элемов
VAR Pole = '0x0DBF' ; удочка
VAR Fork = '0x13FE' ; оружие
VAR Shield = '0x1B78' ; щит
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

заранее благодарен


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 2 guests


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:  
Powered by phpBB® Forum Software © phpBB Limited