
В скриптах понимаю не шибко, посему и обращаюсь.
Вобщем вот
Code: Select all
sub Fish()
VAR Ms0 = "You can't see"
VAR Ms1 = "You can't fish there!"
VAR Ms2 = "That is too far away"
VAR Ms3 = "There are no fish here"
VAR Ms4 = "There doesn't seem to be any fish here"
VAR Ms5 = "Next"
VAR Ms6 = "That location is not in your line of sight!"
VAR t, v, x, y, k
VAR MaxTime = 800
For y = -3 To -3
For x = -3 To 3
k = 1
repeat
If UO.Dead() Then
Wait(70000)
Endif
uo.DeleteJournal(ms0)
uo.DeleteJournal(ms1)
uo.DeleteJournal(ms2)
uo.DeleteJournal(ms3)
uo.DeleteJournal(ms4)
uo.DeleteJournal(ms6)
t = UO.Timer()
If UO.Waiting() Then
UO.CancelTarget()
Endif
UO.WaitTargetTile( '0', STR( UO.GetX() + x ), STR( UO.GetY() + y ), '251')
UO.UseType('0x0DBF')
repeat
wait(100)
until UO.InJournal(ms0) OR UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms6) OR UO.InJournal(ms5) OR ((t + MaxTime) < UO.Timer())
If UO.Dead() Then
Wait(70000)
Endif
until UO.InJournal(ms0) OR UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms6) OR UO.InJournal(ms5)
#UO.Say('Next')
k = k + 1
Wait(500)
If UO.Injournal(ms5) then
k = k + 1
#UO.Deletejournal(ms5)
Endif
Wait(500)
If k == 5 then
UO.Exec('exec boat')
else
UO.Print('Do perehoda '+Str(5 - k)+' kletok')
endif
Wait(500)
If UO.Dead() Then
Wait(70000)
Endif
Next
Next
endsub
sub boat()
UO.Print("I am capitan!")
UO.Exec('terminate Fish')
Wait(100)
UO.SayU("Raise anchor")
Wait(200)
UO.SayU("Forward full")
Wait(10000)
UO.SayU("Stop")
Wait(200)
UO.SayU("Drop anchor")
Wait(500)
UO.Exec('exec Fish')
endsub
Проблемка в том что при переходе первый раз на следующую точку к переменной 'k' прибавляется 1, но в дальнейшем значение остается прежним

За корявость прошу сильно не ругать, буду благодарен за любую помощь

З.Ы. Заодно не подскажите ли как "научить" инжект распознавать кириллицу (качал файлик fonts.mul с русским шрифтом - не помогло
