Code: Select all
delete
Moderators: Murderator+, Murderator
Code: Select all
delete
Code: Select all
sub Recall(rune)
var lastX=uo.getX(),lastY=uo.getY()
while uo.getX()==LastX and uo.getY()==LastY
CheckLag()
while UO.MANA < 20
UO.UseSkill('Meditation')
wait(5000)
wend
uo.waittargetobject(rune)
uo.cast('Recall')
repeat
wait(1000)
until uo.getX()<>LastX or uo.getY()<>LastY or UO.InJournal(uo.getname()+": The spell fizzles.") or UO.InJournal('You lack') or UO.Dead()
if UO.InJournal('You lack') or UO.Dead() then
return 1
end if
wend
return Markrune(rune)
end sub
sub markRune(rune)
var k
repeat
UO.Click(rune)
while not UO.InJournal(" charges")
wait(50)
wend
k = UO.Journal(UO.InJournal(" charges")-1)
if k[2] <> ' ' then
return 0
end if
if val(k[1]) > 4 then
return 0
end if
CheckLag()
while UO.MANA < 20
UO.UseSkill('Meditation')
wait(5000)
wend
uo.waittargetobject(rune)
UO.DeleteJournal()
uo.cast('Mark')
wait(5000)
if UO.InJournal('You lack') or UO.Dead() then
return 1
end if
CheckLag()
until UO.Dead()
end sub
Code: Select all
; Рыбачим с корабля. Выловленное перерабатываем и складываем в трюм.
; Если вокруг все выловлено - плывем вперед. Считаем итемы (раздельные)
; в трюме. Если их больше 250 - останавливаем скрипт.
;
; ver. 1.04b (c) Edred
;
VAR Trum = '0x416663B4' ; трюм корабля
VAR Pole = '0x0DBF' ; удочка
VAR Fork = '0x1404' ; оружие
VAR Shield = '0x1B76' ; щит
var Reconnect=1 ## 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект.
sub Fishing()
if Reconnect==1 then
uo.Exec('exec Reconnect')
end if
If UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) <> Pole Then
UO.UseType( Pole )
Endif
UO.WarMode( 0 )
While TRUE
FishForward()
If UO.Dead() Then
; ждем
return
Endif
If CountTrum() > 250 Then
return
Endif
Wend
endsub
sub FishForward()
VAR x, y
repeat
For y = -4 To 4
For x = -4 To 4
UO.Print( 'TEST: ' + str( x ) + ', ' + str( y ) + ' coord' )
FishTile( x, y )
If UO.Dead() Then
return
Endif
Next
Next
; пока смена дислокации по-тупому
UO.Print( 'TEST: forward' )
UO.SayU( 'forward' )
wait( 8000 )
UO.SayU( 'stop' )
Recycle()
until UO.Dead()
endsub
sub FishTile( x, y )
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 Ms6 = "You can`t see" ; treasure map level 1 - 5
; VAR Ms7 = " " ; water elemental
; VAR Ms8 = " " ; rare water shell
; VAR Ms9 = " " ; сундук с разбитого корабля
; VAR Ms10 = " " ; морской монстр
VAR k, t
VAR MaxTime = 300
If (x > -3) AND (x < 3) AND (y > -3) AND (y < 3) Then
; это, похоже, считается под лодкой
return
Endif
k = 0
repeat
If UO.Dead() Then
return
Endif
UO.DeleteJournal()
t = UO.Timer()
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(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(ms4) Then
k = k + 1
Endif
If UO.Dead() Then
return
Endif
##If UO.InJournal( ms5 ) Then
##Recycle()
If CountTrum() > 250 Then
return
## Endif
Endif
until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR (k > 9)
endsub
sub CountTrum()
; Считаем кол-во любых итемов (или кучек) в трюме
; и возвращаем результат
UO.FindType( -1, -1, Trum )
return UO.FindCount()
endsub
sub Recycle()
; ------- улов -------
DIM Fish[17]
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
VAR Razmer = 16 ; размер массива - 1
; ------- инструмент -------
VAR Scissor = '0x0F9E' ; тип ножниц
VAR Cleaver = '0x0F51' ; кливер
; ------- конечный продукт -------
VAR Bandag = '0x0E21' ; тип бинтов
VAR Pearl = '0x0F7A' ; жемчуг
VAR Steak = '0x097A' ; рыбное филе
VAR i
; Ищем что у нас валяется под ногами, если надо перерабатываем
; и складируем в трюм. Потом введем всякие мешочки разные и ящички.
For i=0 To Razmer
UO.FindType( Fish[i], -1, 'ground' )
If UO.FindCount() > 0 Then
UO.Grab( 0, 'finditem' )
Wait( 1500 )
; Взяли в пак. Теперь разберемся что это
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.UseType( '0x097B' )
Wait( 200 )
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 Then
; ракушки
; дабл клик на них, если появился жемчуг
; сбросим его, если ракушка не исчезла
; значит рар - сбросим ее
UO.UseType( 'finditem' )
wait( 1000 )
If NOT UO.InJournal( 'This shell is empty' ) Then
; UO.FindType( Pearl )
; If UO.FindCount() > 0 Then
; UO.MoveItem( 'finditem', '0' , Trum )
; wait( 2000 )
; Else
UO.MoveItem( 'finditem', '0' , Trum )
wait( 2000 )
; Endif
Endif
Endif
Endif
Next
endsub
; ----------------------------
; blank scroll - 0x0E34
; ginseng - 0x0F85
; gold coin - 0x0EED
; nightshade - 0x0F88
; blood moss - 0x0F7B
; mandrake root - 0x0F86
#===================================================================#
# Процедура контроля за приходом элема #
#===================================================================#
;
sub Trevoga()
repeat
Wait(100)
until UO.Life < 150
UO.Exec( 'terminate Fishing' )
UO.UnEquip( 'Lhand' )
wait( 500 )
UO.UseType( Fork )
wait( 500 )
UO.UseType( Shield )
wait( 500 )
UO.WarMode( 1 )
endsub
sub Reconnect()
var ReconnectTime,rFlag
ReconnectTime='0'
rFlag=1
repeat
while (uo.ObjAtLayer('Bpack')=='')
if rFlag then
ReconnectTime=MakeTime()
rFlag=0
end if
wait(200000)
uo.Say('')
wait(10000)
uo.Say('')
wait(10000)
uo.Say('')
wait(10000)
uo.LDblClick(357,164)
uo.LClick(616,459)
wait(10000)
wend
wait(10000)
if (rFlag==0) and (ReconnectTime<>'0') then
uo.TextOpen()
uo.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
rFlag=1
ReconnectTime='0'
end if
until false
end sub
sub MakeTime()
var d,t,ret,i
ret=str(uo.Time())
t=""
for i=0 to Len(ret)
t=ret[Len(ret)-i]+t
if (i==2) or (i==4) then
t=":"+t
end if
next
ret=str(uo.Date())
d=""
for i=0 to Len(ret)
d=ret[Len(ret)-i] + d
if (i==2) or (i==4) then
d="."+d
end if
next
ret=t+" @ "+d
return ret
end sub