Ветровский ламбер, все его уже на изусть наверно знают. Проблема такая
[code]
Sub WaitForChange()
var Text1=uo.GetName()+': You hack at the tree for a while, but fail to produce any useable wood.'
var Text2='There are no logs here to chop.'
var Text3="You can't reach this."
var Text4="That is too far away."
var Text5="You can't do much in your current state."
var Text6='There is no wood left to harvest.'
var mess
for var i=0 to 200
mess=uo.Journal(0)
if uo.Journal(0)==Text2 or uo.Journal(0)==Text3 or uo.Journal(0)==Text4 OR uo.Journal(0)==Text6 then
return 1
end if
if uo.Journal(0)==Text1 then
return 0
end if
if mess[0]=='Y' and mess[1]=='o' and mess[2]=='u' and mess[4]=='p' and mess[5]=='u' and mess[6]=='t' then
return 0
end if
wait(50)
next
return 0
end sub
[/code]
Когда с дерева срубается лог без задержки он начинает рубить заново, когда в дереве нет больше логов он идет к другому....
Когда же возникла неудачная попытка срубки лога, возникает дикая задержка... Перечитал текст сообщения раз 20, писал от руки, смотрел в другие скрипты, результата нету, кто нить мне подскажет чего я не досмотрел? Может надо поставить скобки?[/code]
Старый добрый ламбер.
Moderators: Murderator+, Murderator
Mirage wrote:зачем писать сообщения полностью?
var Text1='any useable wood'
var Text2='no logs'
var Text3='reach this'
var Text4='far away'
var Text5='current state'
var Text6='left to harvest'
Вот так пробуй.
+1
Потому что даже отсутствие или присутствие точки вызывает невидимость заданного сообщения.
не говоря уже о опечатках/неправильном регистре.
Незнаю мне это не помогло... Помог только такой способ:
[code]sub WaitForChange()
var mess
for var i=0 to 200
mess=uo.Journal(0)
if uo.injournal('There are no logs left here to chop.') then
return 1
endif
if uo.injournal('away to chop.') then
return 1
endif
if uo.injournal('reach this') then
return 1
endif
if uo.InJournal('but fail') then
return 0
end if
if mess[0]=='Y' and mess[1]=='o' and mess[2]=='u' and mess[4]=='p' and mess[5]=='u' and mess[6]=='t' then
return 0
end if
wait(50)
next
return 0
end sub[/code]
Так и не понял почему инжа не принимала стаый код, впринципе тут тоже самое но прописано по отдельности... Странности какие то :)
[code]sub WaitForChange()
var mess
for var i=0 to 200
mess=uo.Journal(0)
if uo.injournal('There are no logs left here to chop.') then
return 1
endif
if uo.injournal('away to chop.') then
return 1
endif
if uo.injournal('reach this') then
return 1
endif
if uo.InJournal('but fail') then
return 0
end if
if mess[0]=='Y' and mess[1]=='o' and mess[2]=='u' and mess[4]=='p' and mess[5]=='u' and mess[6]=='t' then
return 0
end if
wait(50)
next
return 0
end sub[/code]
Так и не понял почему инжа не принимала стаый код, впринципе тут тоже самое но прописано по отдельности... Странности какие то :)
все чудесатее и чудесатее
Если ты используешь простые сообщения то можно делать так
Если задаешь константы на каждое сообщение то надо разделять либо как у Ветра либо как у Дестракшена:

Если ты используешь простые сообщения то можно делать так
Code: Select all
f uo.injournal('There are no logs left here to chop|away to chop|reach this') then
return 1
endif
Если задаешь константы на каждое сообщение то надо разделять либо как у Ветра либо как у Дестракшена:
Code: Select all
var Text1='no logs'
var Text2="reach this"
if uo.Journal(Text1 +'|' +Text2) then
return 1
end if