Page 1 of 1

Проверка

Posted: 2010-03-30 12:27:16
by XpyCmuK
Помогите написать и вставить в скрипт проверку на голод

Code: Select all

if uo.InJournal('are hungry') then
ищем в сумке ('молоко')
если меньше трех добираем из сундука
кушаем пока в журнале не будет надписи- Water: You can't drink more.
ищем в сумке ('бекон')
если меньше двух добираем из сундука
кушаем пока в журнале не будет надписи- Hungry: Your are stuffed!

надо вставить в этот скрипт:

Code: Select all

##################################################################### 
; Tinker. v.1.00b (c) Edred
;
; Чар берет из сундука инготы, крафтит из них бутылки
; и складывает эти бутылки в этот же сундук.
; Если инги закончились - выход.
;
sub tinker()
VAR Sunduk = '0x40018837' ; Сериал сундука
VAR Ingi = '0x1BDD' ; Тип ингов
VAR Instrum = '0x1034' ; Тип инструмента тинкера
VAR Bottle = '0x0E34' ; Тип бутылки
VAR Kolvo = 300 ; Брать ингов
VAR k = 0
While TRUE
UO.FindType( Ingi, -1, Sunduk ) ; Ищем инги в сундуке
If UO.FindCount() == 0 Then
UO.Print("Iron Ingots not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' )
wait( 2000 )
While UO.Count( Ingi ) > 5
; Пока в паке есть инги
UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
UO.DeleteJournal()
uo.findtype('0x1034','0x0000','backpack')
if uo.findcount() then
uo.recall('finditem','3')
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
k = k + 1
wait(500)
wend
if UO.Count( Bottle ) > 30 then
UO.FindType( Bottle, -1, -1 )
UO.MoveItem( 'finditem', 0, Sunduk )
wait( 1000 )
UO.Print( 'Bottle moved' )
end if
Wend
Wend
end sub

Re: Проверка

Posted: 2010-03-30 12:43:53
by Beyonder
Так детально расписал алгоритм что мог бы уже и сам написать скрипт :)

Что-то вроде такого:

Code: Select all

var moloko = '0x1234'
var beckon = '0x4321'
var sunduk = '0x12345678'

Sub eat()
    if uo.InJournal('are hungry') then
        ;ищем в сумке ('молоко')
        ;если меньше трех добираем из сундука
        if (UO.Count(moloko)<3) then
            ;открываем сундук
            UO.UseObject(sunduk)
            Wait(500)
            ;ищем в нём молоко
            UO.FindType(moloko,-1,sunduk)
            ;перемещаем 10 штук в рюкзак
            UO.MoveItem('finditem',10,'backpack')
        endif
        UO.DeleteJournal()
        ;кушаем пока в журнале не будет надписи- Water: You can't drink more.
        while (NOT UO.InJournal("Water: You can't drink more."))
            UO.UseType(moloko)
            Wait(500)
        wend

        ;ищем в сумке ('бекон')
        ;если меньше двух добираем из сундука
        if (UO.Count(beckon)<2) then
            ;открываем сундук
            UO.UseObject(sunduk)
            Wait(500)
            ;ищем в нём бекон
            UO.FindType(beckon,-1,sunduk)
            ;перемещаем 10 штук в рюкзак
            UO.MoveItem('finditem',10,'backpack')
        endif
        UO.DeleteJournal()
        ;кушаем пока в журнале не будет надписи- Hungry: Your are stuffed!
        while (NOT UO.InJournal('Hungry: Your are stuffed!'))
            UO.UseType(beckon)
            Wait(500)
        wend
    endif
endsub

Re: Проверка

Posted: 2010-03-30 12:50:46
by XpyCmuK
Beyonder wrote:Так детально расписал алгоритм что мог бы уже и сам написать скрипт :)


Да еслибы мог не просил бы помощи :)

Можешь склейт свой скрипт со скриптом на тинкер, сам я точно несмогу.

Code: Select all

while (NOT UO.InJournal('Water: You can't drink more.') 


вот на этой строчке он ошибку выдает

Re: Проверка

Posted: 2010-03-30 13:16:36
by Beyonder
Ошибку исправил в верхнем своём сообщении.

Воткнуть в тинкер примерно вот так:

Code: Select all

While UO.Count( Ingi ) > 5
; Пока в паке есть инги


Между строками нужно воткнуть eat()

Code: Select all

While UO.Count( Ingi ) > 5
eat()
; Пока в паке есть инги

Re: Проверка

Posted: 2010-03-30 13:25:41
by XpyCmuK
Beyonder wrote:Ошибку исправил в верхнем своём сообщении.

Воткнуть в тинкер примерно вот так:

Code: Select all

While UO.Count( Ingi ) > 5
; Пока в паке есть инги


Между строками нужно воткнуть eat()

Code: Select all

While UO.Count( Ingi ) > 5
eat()
; Пока в паке есть инги


Всеравно на той же строчке ругается :(

Re: Проверка

Posted: 2010-03-30 13:34:33
by Beyonder
Точно, там 2 ошибки было а не одна. Теперь должно работать :)

Re: Проверка

Posted: 2010-03-30 13:42:14
by XpyCmuK
Как в журнале выскакивет hungry начинает писать no item found
Типы все прописал

Re: Проверка

Posted: 2010-03-30 13:50:52
by Beyonder
Сундука ты точно верный ID указал? Надо было именно ID а не тип.

Re: Проверка

Posted: 2010-03-30 13:54:31
by XpyCmuK
Beyonder wrote:Сундука ты точно верный ID указал? Надо было именно ID а не тип.


Ид вставил,
VAR Sunduk = '0x40018837'

А есть разница sunduk или Sunduk?

Re: Проверка

Posted: 2010-03-30 13:58:41
by Beyonder
Нет, разницы нету.

Судя по всему, он не может найти молоко у тебя в рюкзаке. Ты точно верный тип молока прописал?

Re: Проверка

Posted: 2010-03-30 14:02:38
by XpyCmuK
Beyonder wrote:Нет, разницы нету.

Судя по всему, он не может найти молоко у тебя в рюкзаке. Ты точно верный тип молока прописал?


Все верно, щас он его стал брать только перед тем как взять все равно выдает no item found

Может дело в том что молоко нескладывается в кучку?