помогите пожалуйста
Code: Select all
; Ðûáà÷èì ñ êîðàáëÿ. Âûëîâëåííîå ïåðåðàáàòûâàåì è ñêëàäûâàåì â òðþì.
; Åñëè âîêðóã âñå âûëîâëåíî - ïëûâåì âïåðåä. Ñ÷èòàåì èòåìû (ðàçäåëüíûå)
; â òðþìå. Åñëè èõ áîëüøå 250 - îñòàíàâëèâàåì ñêðèïò.
;
; ver. 1.04b (c) Edred
;
VAR Trum = '0x4002CEF9' ; òðþì êîðàáëÿ
VAR Pole = '0x0DBF' ; óäî÷êà
VAR Fork = '0x0F60' ; îðóæèå
VAR Shield = '0x1B76' ; ùèò
var TryToHide=1 ## 1 - yes, 0 - no.
sub Fishing()
UO.Exec( 'exec Trevoga' )
If UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) == Shield Then
UO.UnEquip( 'Lhand' )
wait( 500 )
Endif
If UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) == Fork Then
UO.UnEquip( 'Rhand' )
wait( 500 )
Endif
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 = -6 To 6
For x = -6 To 6
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( 4000 )
UO.SayU( 'stop' )
until UO.Dead()
endsub
sub FishTile( x, y )
VAR Ms1 = "You can't fish under the ship" ; íå ìîæåì ëîâèòü çäåñü
VAR Ms2 = "That is 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 = " " ; 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] = '0x0DCA' ; ðàêóøêà, òèï 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 = '0x0DCA' ; òèï áèíòîâ
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.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()
wait(500)
endsub