фишинг на корабле качаю.
глалочка выключена...
вот конечный скрипт:
Code:
; НЕ ЗАБУДЬТЕ ВКЛЮЧИТЬ 'Track world items'!!!
VAR Trum = '0x40068094' ; сундук для основного улова
VAR Shag = 1 ; первый шаг при ловле вперед. При ловле вперед
; прибавляем по 1, при ловле назад будем ставить
; отрицательные числа.
; ================================================================
; StartFishing() - Запуск фишинга. Сделано в виде отдельной процедуры,
; чтобы не переустанавливать лишний раз глобалку
sub StartFishing()
UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
UO.Exec( 'exec Fishing' )
wait(100)
UO.Exec('terminate Reconnector')
wait(100)
UO.Exec('exec Reconnector')
uo.useobject('backpack')
wait(1000)
endsub
; ================================================================
; Fishing() - Основная процедура фишинга
;
Sub Fishing()
UO.WarMode( 0 )
wait(500)
While TRUE
FishForward()
If UO.Dead() 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
If Shag > 10 Then
; пока сделаем плыть назад
UO.SayU( 'back' )
wait(40000)
UO.SayU( 'stop' )
Shag = 0
Endif
Shag = Shag + 1
UO.SayU( 'forward' )
wait( 10000 )
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()
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()
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[7]
Fish[0] = '0x09CC' #fish1
Fish[1] = '0x09CD' #fish2
Fish[2] = '0x09CE' #fish3
Fish[3] = '0x09CF' #fish4
Fish[4] = '0x0DD6' #Truly or Prize Rare Fish
Fish[5] = '0x14EB' #Tattered Treasure map
Fish[6] = '0x0DCA' #Fishing Net
VAR Razmer = 6 ; размер массива - 1
VAR i,RetValue = 0
For i=0 To Razmer
UO.FindType( Fish[i], -1, 'ground' )
CheckLag()
If UO.FindCount() > 0 Then
RetValue = 1
If i < 7 Then
UO.MoveItem( 'finditem', '0', Trum )
CheckLag()
wait( 2000 )
Endif
Endif
Next
return RetValue
endsub
Sub DeleteJournal( string1 )
VAR nom = UO.InJournal( string1 )
If nom > 0 Then
UO.SetJournalLine( Nom - 1, 'string replaced' )
DeleteJournal( string1 )
Endif
endsub
sub CheckLag()
uo.DeleteJournal()
uo.Click('backpack')
repeat
wait(50)
until uo.InJournal('backpack')
end sub
sub Reconnector()
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
ReconnectTime = MakeTime()
RFlag = 0
endif
Wait(20000) # WorldSave Protection
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
Wait(3000)
WEnd
Wait(3000)
if (RFlag == 0) and (ReconnectTime <> '0') Then
UO.Exec('terminate StartFishing')
wait(1000)
UO.Exec('exec StartFishing')
UO.TextOpen()
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
RFlag = 1
ReconnectTime = '0'
endif
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
EndIf
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
EndIf
Next
Ret = T + " @ " + D
RETURN Ret
end sub
не могу понять в чём проблема.
мне кажется где-т тут что-то не в порядке
Code:
; ================================================================
; GetResultFish() - Процедура подбора рузультатов лова
;
Sub GetResultFish()
; ------- улов -------
DIM Fish[7]
Fish[0] = '0x09CC' #fish1
Fish[1] = '0x09CD' #fish2
Fish[2] = '0x09CE' #fish3
Fish[3] = '0x09CF' #fish4
Fish[4] = '0x0DD6' #Truly or Prize Rare Fish
Fish[5] = '0x14EB' #Tattered Treasure map
Fish[6] = '0x0DCA' #Fishing Net
VAR Razmer = 6 ; размер массива - 1
VAR i,RetValue = 0
For i=0 To Razmer
UO.FindType( Fish[i], -1, 'ground' )
CheckLag()
If UO.FindCount() > 0 Then
RetValue = 1
If i < 7 Then
UO.MoveItem( 'finditem', '0', Trum )
CheckLag()
wait( 2000 )
Endif
Endif
Next
return RetValue
endsub
или с передвижение корабля:
Code:
; ================================================================
; 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
If Shag > 10 Then
UO.SayU( 'back' )
wait(40000)
UO.SayU( 'stop' )
Shag = 0
Endif
Shag = Shag + 1
UO.SayU( 'forward' )
wait( 10000 )
UO.SayU( 'stop' )
until UO.Dead()
endsub
или не правильно реконнектор с чеклагом использовал....
а остально точно в порядке.