Yoko

All sides of Injection
It is currently 2025-11-08 08:35:09

All times are UTC+02:00




Post new topic  Reply to topic  [ 4 posts ] 
Author Message
PostPosted: 2006-09-06 08:31:45 
Offline

Joined: 2005-07-16 21:23:21
Posts: 6
Вот, собственно, чуть изменённый моими кривыми ручками скрипт :
Code:
sub Blacksmithing() 
var Exit=0, LastTimer
var food= '0x097B'
var Timer=UO.Timer()

while Exit<>1
 
ToHide()

if UO.Timer()>(Timer+1200) then
repeat     
CheckLag()
uo.UseType(food)
while not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not uo.Dead()
wait(100)       
wend
until uo.InJournal('too full') or uo.Dead()
Timer=UO.Timer()
wait(3000)
end if

uo.FindType('0x1BEF',-1,'backpack')
if uo.GetQuantity('finditem')<10 then
uo.FindType('0x1BEF','0x0000','0x401C6058')
wait(1000)
uo.Grab('200','finditem')
Endif
wait(1000)

uo.DeleteJournal()
LastTimer=uo.Timer()
uo.WaitMenu('Blacksmithing','Shield','Shield','buckler')
uo.UseType('0x1BEF')
 
while not uo.InJournal('You put') and not uo.InJournal('You have failed')
wait(500)
wend

if uo.InJournal('You have failed') then
repeat
wait(100)
until uo.Timer()>=LastTimer+100
end if

uo.FindType('0x1B73',-1,'backpack')
wait(500)

if uo.GetQuantity('finditem') then
uo.WaitTargetObject('finditem')
uo.UseObject('0x40058A35')
wait(1000)
end if

wend   
end sub

sub ToHide()
while not uo.Hidden()
uo.Useskill('Hiding')
wait(4000)
wend



Трабл состоит в том, что скрипт иногда тупо застревает и не делает ничего, пытался выяснить в каком месте он ступорится - так ничего и не понял... Может где неадо чеклаг или вейт по-больше прописать?


Top
   
 Post subject:
PostPosted: 2006-09-06 09:09:24 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Навскидку: в динамические паузы на ожидание сообщения нужно ввести еще ограничение по времени. То есть сюда:

Code:
while not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not uo.Dead() 
wait(100)       
wend


и сюда:

Code:
until uo.InJournal('too full') or uo.Dead()


и сюда:

Code:
while not uo.InJournal('You put') and not uo.InJournal('You have failed') 
wait(500)
wend


Организовать просто (можешь посмотреть в моих скриптах). Введи переменную, обнули ее перед циклом ожидания сообщения, а внутри цикла наращивай ее. Ну и в проверку окончания цикла добавь чтобы эта переменная не была больше чего-либо. Это зависит от того, насколько долго то или иное действие у вас на шарде (максимальное время). Скажем, максимум за 3 минуты любая же вещь скрафтится? Значит, такого времени с избытком хватит. Так что если скрипт по какой-либо причине не поймал мессагу, то он не будет тупо висеть в ожидании этой мессаги.

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

Второе: После граба и ожидания 1000 мс (это ожидание лучше перенести в if, почему оно снаружи), надо добавить чеклаг.

Третье: граб желательно сделать циклом с проверкой на то, что что-то перемещено. Посмотри, если скрипт у тебя "тупо застревает" при том, что ингов в паке нету - то тогда все понятно. Просто граб из-за лага или сэйва мира не прошел, а дальше у тебя скрипт пытается крафтить, ты получаешь мессагу, что не из чего, но такая мессага у тебя отсутствует - вот скрипт стоит и ждет непонятно чего.

Дерзай. А "кривые ручки" лечатся практикой. У всех вначале были кривые.

_________________
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2006-09-07 09:02:09 
Offline

Joined: 2005-07-16 21:23:21
Posts: 6
Ужасть, все-равно какие-то ужасы... виснет, блин.. сволочь.. даж не оставить скрипт без пресмотра.. может выложите отредакченый, а-то фто-то никак у меня мозги не домысливают до-конца чего и где править... =( а шард у нас дрв


Top
   
 Post subject:
PostPosted: 2006-09-08 18:18:52 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Кидай исправленный. Отлови висы на чем происходят и кидай сюда.

ЗЫ: На ДРВ не играл и не буду.

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 4 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited