Проверка

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
XpyCmuK
Posts: 62
Joined: 2004-10-20 06:04:42

Проверка

Post 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
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

Re: Проверка

Post 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
Last edited by Beyonder on 2010-03-30 13:34:13, edited 2 times in total.
XpyCmuK
Posts: 62
Joined: 2004-10-20 06:04:42

Re: Проверка

Post by XpyCmuK »

Beyonder wrote:Так детально расписал алгоритм что мог бы уже и сам написать скрипт :)


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

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

Code: Select all

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


вот на этой строчке он ошибку выдает
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

Re: Проверка

Post by Beyonder »

Ошибку исправил в верхнем своём сообщении.

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

Code: Select all

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


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

Code: Select all

While UO.Count( Ingi ) > 5
eat()
; Пока в паке есть инги
XpyCmuK
Posts: 62
Joined: 2004-10-20 06:04:42

Re: Проверка

Post by XpyCmuK »

Beyonder wrote:Ошибку исправил в верхнем своём сообщении.

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

Code: Select all

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


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

Code: Select all

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


Всеравно на той же строчке ругается :(
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

Re: Проверка

Post by Beyonder »

Точно, там 2 ошибки было а не одна. Теперь должно работать :)
XpyCmuK
Posts: 62
Joined: 2004-10-20 06:04:42

Re: Проверка

Post by XpyCmuK »

Как в журнале выскакивет hungry начинает писать no item found
Типы все прописал
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

Re: Проверка

Post by Beyonder »

Сундука ты точно верный ID указал? Надо было именно ID а не тип.
XpyCmuK
Posts: 62
Joined: 2004-10-20 06:04:42

Re: Проверка

Post by XpyCmuK »

Beyonder wrote:Сундука ты точно верный ID указал? Надо было именно ID а не тип.


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

А есть разница sunduk или Sunduk?
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

Re: Проверка

Post by Beyonder »

Нет, разницы нету.

Судя по всему, он не может найти молоко у тебя в рюкзаке. Ты точно верный тип молока прописал?
XpyCmuK
Posts: 62
Joined: 2004-10-20 06:04:42

Re: Проверка

Post by XpyCmuK »

Beyonder wrote:Нет, разницы нету.

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


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

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