Quote:
Посмотрел скрпит, да действительно он хорошо работает. Так что кто будет читать этот топик рекомендую!
Это хорошо, т.к. скрипт я писал прямо в окне ответа на базе твоего скрипта и ни разу его не проверял
Quote:
чтобы чар время от времени ел
Еду я-бы добавил где-то так:
(Предупреждаю, это я тоже писал в окне ответа и не проверял
).
Кстати, функцию еды можно использовать в любом скрипте, она вроде как универсальная (если конечно работает).
Code:
sub main()
while not UO.Dead()
hide()
UO.Press(37,2,300)
Wait(300) ; После второго нажатия паузы не будет, так что нужно добавить её вручную
hide()
UO.Press(39,2,300)
Wait(300)
checkFood()
wend
end sub
Sub hide()
var failMessage = "You fail|You don't|You can't"
var timeLeft = 0
while not UO.Hidden() ; Если мы уже спрятались - не крутим цикл
UO.Useskill("Hiding") ; Пытаемся спрятаться
DeleteJournal(failMessage) ;Удаляем все сообщения об неудачах с журнала
timeLeft = 3000 ;Обнуляем счётчик ожидания скилла
while (not UO.Hidden()) AND (timeLeft > 0) AND (UO.InJournal(failMessage) == 0) ;Ждём пока не захайдимся, либо не получим сообщение об неуспешном хайде, либо пока не истекут 3 секунды выделенные на хайд.
timeLeft = timeLeft - 100
wait(100)
wend
wend
endsub
Sub DeleteJournal( string1 )
VAR nom = UO.InJournal( string1 )
If nom > 0 Then
UO.SetJournalLine( Nom - 1, 'string replaced' )
DeleteJournal( string1 )
Endif
endsub
var eatDelay = 10*60*1000 ; Задержка между едой. В данном случае - 10 минут
Sub checkFood()
var foodCount = 5
dim foodArray[val(str(foodCount))] ; Без изврата с val(str()) иногда крашит массивы
foodArray[0] = '0x0001' ; Сюда забить типы еды
foodArray[1] = '0x0001'
foodArray[2] = '0x0001'
foodArray[3] = '0x0001'
foodArray[4] = '0x0001'
var lastEatTime = val(UO.GetGlobal('lastEatTime'))
var i
if (lastEatTime+(eatDelay/10) > UO.Timer()) then ; Делим на 10 т.к. UO.Timer() даёт нам не тысячные а сотые доли секунды
for i=0 to foodCount
if (UO.Count(foodArray[i]) > 0) then
UO.UseType(foodArray[i])
i=foodCount-1 ;Чтобы на следующем обороте выйти из цикла
endif
next
UO.SetGlobal('lastEatTime',str(UO.Timer()))
endif
endsub