Помогите пожалуйста скриптик до ума довести
13 лет
Dragonstalker
Сообщений: 435
Рег. 19.05.2010
22 мая 2010 16:24
Сообщение #1
ловит, режет, все норм... удочки хватает на ~1800-2000 стейков дальше она ломается и чар тупо стоит, нужно чтобы он брал из пака вторую удочку и ловил дальше, потом третью и еще ловил...

Заранее спасибо большое...

 var MaxFailure=8
sub FishingAround()
var iX,iY
for var iStep=0 to 1000
for iX=-6 to 6
for iY=-6 to 6
GetAllFish(UO.GetX()+iX,UO.GetY()+iY)
next
next
next
end sub

Sub GetAllFish(iX,iY)
var counter=0
repeat
counter=counter+1
UO.DeleteJournal()
UO.WaitTargetTile(0,iX,iY,0)
UO.UseType('0x0DBF')
while not UO.InJournal('You pull out a fish!') and not UO.InJournal('You fish a while, but fail to catch anything') and not UO.InJournal('There are no fish here.') and not UO.InJournal('Try fishing elsewhere') and not UO.InJournal('That is too far away')
wait(100)
wend
if UO.InJournal('There are no fish here.') OR UO.InJournal('Try fishing elsewhere') OR UO.InJournal('That is too far away') then
return
end if
if UO.InJournal('You pull out a fish!') then
counter=0
GetFish()
end if
until UO.Injournal('There are no fish here.') OR UO.InJournal('Try fishing elsewhere') OR UO.InJournal('That is too far away') OR counter>MaxFailure
end sub

Sub GetFish()
UO.set('finddistance',0)
UO.IgnoreReset()
UO.Ignore('self')
UO.FindType('0x352D',-1,'ground')
UO.Ignore('finditem')
UO.FindType(-1,-1,'ground')
while UO.FindCount()>0
UO.WaitTargetObject('finditem')
UO.UseType('0x0F51')
UO.Ignore('finditem')
wait(500)
UO.FindType(-1,-1,'ground')
wend
UO.Ignorereset()
UO.Ignore('self')
UO.FindType('0x352D',-1,'ground')
UO.Ignore('finditem')
UO.FindType(-1,-1,'ground')
while UO.FindCount()>0
UO.Grab(0,'finditem')
wait(100)
UO.FindType(-1,-1,'ground')
wend
UO.Ignorereset()
end sub



Frozen
23 мая 2010 12:18
Сообщение #2
пиши в тегах [quote'] или [code'] а то сложно читать
13 лет
Dragonstalker
Сообщений: 435
Рег. 19.05.2010
23 мая 2010 13:43
Сообщение #3

ок, в следущий раз попробую разобраться и писать нормально... =)

 

тему можно закрывать, уже не актуально =)

Старший Прапорщик (2428217)14 лет
Druid
Сообщений: 887
Рег. 4.03.2010
24 мая 2010 07:52
Сообщение #4
А каким было решение? потому что у меня тож такая проблемка)

Frozen
24 мая 2010 09:07
Сообщение #5
Ну решений тута много, но проще добавь в цикл:
while not UO.InJournal('You pull out a fish!') and not UO.InJournal('You fish a while, but fail to catch anything') and not UO.InJournal('There are no fish here.') and not UO.InJournal('Try fishing elsewhere') and not UO.InJournal('That is too far away')
wait(100)
wend

Сообщение о поломки удочки, судя по все когда удочка сломается он зависает тута.

Или вообще удали этот цикл и поставь нормальную задержку. И все будет работать.

 

 

13 лет
Dragonstalker
Сообщений: 435
Рег. 19.05.2010
24 мая 2010 11:25
Сообщение #6
а решения и небыло )) просто наловил много рыбки перезапуская скрипт когда ломалась удочка и все хватит мне рыбки =)

Frozen
24 мая 2010 12:00
Сообщение #7
Гы, а попробуй, так сработает?

UO.WaitTargetTile(0,iX,iY,0)
UO.FindType('
0x0DBF',-1,'backpack')
If UO.FindCount() > 0 Then
UO.UseObject('finditem')
else
uo.canceltarget()
uo.print('жопа, удочки кончились')
endif

то есть
1) положить несколько удочек в рукзак
2) перед забросом поискать похрену какую удочку в рюкзаке
3) если хоть какая-ниюудь есть, ловить?

При качании анималлора на "какой-нибудь любой" вороне на хлопковом поле работает :)

ps написал сначала гетквонтити, подумал, что не прокатит, поменял на
файндкаунт, а форум слэшей наставил :( слэши перед кавычками не нужны.

Frozen
26 мая 2010 12:43
Сообщение #8
а разве не просто
if uo.findcount() then

?

Frozen
26 мая 2010 18:49
Сообщение #9
Замени это
while not UO.InJournal('You pull out a fish!') and not UO.InJournal('You fish a while, but fail to catch anything') and not UO.InJournal('There are no fish here.') and not UO.InJournal('Try fishing elsewhere') and not UO.InJournal('That is too far away')


На это
while not UO.InJournal('You pull out a fish!') and not UO.InJournal('You fish a while, but fail to catch anything') and not UO.InJournal('There are no fish here.') and not UO.InJournal('Try fishing elsewhere') and not UO.InJournal('That is too far away') and not UO.InJournal('unsuitable!')
Старший Лейтенант (5889885)14 лет
Necromancer
Сообщений: 1234
Рег. 1.05.2010
30 мая 2010 23:51
Сообщение #10
А не проще ли сделать функцию ожидания сообщений в журнале с таймаутом? Статическая задеркжа тут не гут

Frozen
31 мая 2010 12:15
Сообщение #11
Chimera,глупо написал, проблемы это вообще не решит, разницы не какой проверил ты перед использованием предмета на наличие или нет. В любом случае, если его нет то он его не использует независимо от проверки, тута стоит юз по типу, что означает персонаж должен использовать удочки пока они есть в паке, в данном случае удочка ломается и скрипт ждет в цикле определленного сообщения, а сообщение о поломке удочки тут не прописано.
« · Таверна · »
Последние посетители (0):

 
Сейчас: 15 мая 2024 05:51