Page 1 of 1

Старый добрый ламбер.

Posted: 2009-06-21 02:33:24
by Stiv
Ветровский ламбер, все его уже на изусть наверно знают. Проблема такая
[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]

Posted: 2009-06-22 08:16:27
by Mirage
зачем писать сообщения полностью?

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'

Вот так пробуй.

Потому что даже отсутствие или присутствие точки вызывает невидимость заданного сообщения.

Posted: 2009-06-22 21:31:15
by $!@m
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

Потому что даже отсутствие или присутствие точки вызывает невидимость заданного сообщения.

не говоря уже о опечатках/неправильном регистре.

Posted: 2009-06-22 22:07:30
by Stiv
Незнаю мне это не помогло... Помог только такой способ:
[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]
Так и не понял почему инжа не принимала стаый код, впринципе тут тоже самое но прописано по отдельности... Странности какие то :)

Posted: 2009-06-23 13:07:37
by zimglads
эм кинь полный скрипт правельный .. у меня также проблема .. =(

Posted: 2009-06-25 13:08:24
by Mirage
все чудесатее и чудесатее :D

Если ты используешь простые сообщения то можно делать так

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