помогите с бовкрафтом
Moderators: Murderator+, Murderator
-
- Posts: 7
- Joined: 2010-02-10 22:01:28
помогите с бовкрафтом
незнаю что сделать.. логи не берет из сундука. ( вернее берет но только когда запускаешь скрипт,а как доходит до 10 или менее логов просто стоит и тупит.. помогите доделать плз..
#####################################################################
;
; Чар берет из сундука логи, крафтит луки
; и кидает их в трэш.
; Если логи закончились - выход.
;
sub bow()
VAR Musor = '0x4038A724'
VAR Sunduk = '0x4018F0BA' ; Сериал сундука
VAR Logi = '0x1BDD' ; Тип логов
VAR Instrum = '0x0F51' ; Тип ножика
VAR Bow = '0x13B1' ; Тип лука
VAR Kolvo = 200 ; Брать логов
VAR k = 0
While TRUE
if not uo.count('0x0FA0') then
uo.findtype('0x0FA0','0x0000',Sunduk)
if uo.findcount() then
uo.moveitem('finditem','200','backpack')
wait(1000)
else
uo.print('NITKI ZAKONCHILIS')
return
endif
endif
if not uo.count(Logi) then
UO.FindType(Logi,' -1',Sunduk) ; Ищем логи в сундуке
If UO.FindCount() == 0 then
UO.Print("Logs not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' )
wait( 2000 )
endif
While UO.Count( Logi ) > 10
; Пока в паке есть логи
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logs' )
UO.DeleteJournal()
uo.waitmenu('What do you want to carve','bow')
uo.waittargettype(Logi)
UO.UseType( Instrum )
repeat
wait(500)
until UO.InJournal('You put the bow in your pack.') or UO.InJournal('You fail to create the item')
if UO.Count( Bow ) > 0 then
UO.FindType( Bow, -1, -1 )
UO.MoveItem( 'finditem', 0, Musor )
wait( 1000 )
UO.Print( 'Bow moved' )
end if
Wend
Wend
end sub
#####################################################################
;
; Чар берет из сундука логи, крафтит луки
; и кидает их в трэш.
; Если логи закончились - выход.
;
sub bow()
VAR Musor = '0x4038A724'
VAR Sunduk = '0x4018F0BA' ; Сериал сундука
VAR Logi = '0x1BDD' ; Тип логов
VAR Instrum = '0x0F51' ; Тип ножика
VAR Bow = '0x13B1' ; Тип лука
VAR Kolvo = 200 ; Брать логов
VAR k = 0
While TRUE
if not uo.count('0x0FA0') then
uo.findtype('0x0FA0','0x0000',Sunduk)
if uo.findcount() then
uo.moveitem('finditem','200','backpack')
wait(1000)
else
uo.print('NITKI ZAKONCHILIS')
return
endif
endif
if not uo.count(Logi) then
UO.FindType(Logi,' -1',Sunduk) ; Ищем логи в сундуке
If UO.FindCount() == 0 then
UO.Print("Logs not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' )
wait( 2000 )
endif
While UO.Count( Logi ) > 10
; Пока в паке есть логи
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logs' )
UO.DeleteJournal()
uo.waitmenu('What do you want to carve','bow')
uo.waittargettype(Logi)
UO.UseType( Instrum )
repeat
wait(500)
until UO.InJournal('You put the bow in your pack.') or UO.InJournal('You fail to create the item')
if UO.Count( Bow ) > 0 then
UO.FindType( Bow, -1, -1 )
UO.MoveItem( 'finditem', 0, Musor )
wait( 1000 )
UO.Print( 'Bow moved' )
end if
Wend
Wend
end sub
Re: помогите с бовкрафтом
неправильно условие добора выставленно
While UO.Count( Logi ) > 10 делает лук пока логов больше 10- правильно НО выше
if not uo.count(Logi) then
добирает ЕСЛИ логов вообще нет. Цикл убивает себе мозг.
if uo.count(Logi)<10 then
While UO.Count( Logi ) > 10 делает лук пока логов больше 10- правильно НО выше
if not uo.count(Logi) then
добирает ЕСЛИ логов вообще нет. Цикл убивает себе мозг.
if uo.count(Logi)<10 then
-
- Posts: 7
- Joined: 2010-02-10 22:01:28
Re: помогите с бовкрафтом
спасибо большое )) все работает
-
- Posts: 7
- Joined: 2010-02-10 22:01:28
Re: помогите с бовкрафтом
ааааааа((( логи брать стал а нитки перестал (( и когда логов ровно 10 остаетьсся чар просто становиться и все ни чего не делаеть.. можно как нибудь сделать чтоб и 10 было включительно??
Re: помогите с бовкрафтом
опять же не правильное условие но теперь в
While UO.Count( Logi ) > 10
нет условия на конец ниток
While UO.Count( Logi ) > 10 or UO.Count( 'тип ниток' ) > 10
While UO.Count( Logi ) > 10
нет условия на конец ниток

While UO.Count( Logi ) > 10 or UO.Count( 'тип ниток' ) > 10
-
- Posts: 7
- Joined: 2010-02-10 22:01:28
Re: помогите с бовкрафтом
вообше ничего недобирает теперь )))) незнаю мож я что то не так делаю,совсем дуб.. вобщем вот так )
#####################################################################
;
; Чар берет из сундука логи, крафтит луки
; и кидает их в трэш.
; Если логи закончились - выход.
;
sub bow()
VAR Musor = '0x413C2D8D'
VAR Sunduk = '0x4018F0BA' ; Сериал сундука
VAR Logi = '0x1BDD' ; Тип логов
VAR Instrum = '0x0F51' ; Тип ножика
VAR Bow = '0x13B1' ; Тип лука
VAR Kolvo = 200 ; Брать логов
VAR k = 0
While TRUE
if not uo.count('0x0FA0') then вот же вроде на окончанее ниток...
uo.findtype('0x0FA0','0x0000',Sunduk)
if uo.findcount() then
uo.moveitem('finditem','200','backpack')
wait(1000)
else
uo.print('NITKI ZAKONCHILIS')
return
endif
endif
if uo.count(Logi)< 10 then
UO.FindType(Logi,' -1',Sunduk) ; Ищем логи в сундуке
If UO.FindCount() == 0 then
UO.Print("Logs not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' )
wait( 2000 )
endif
While UO.Count( Logi ) > 10
; Пока в паке есть логи
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logs' )
UO.DeleteJournal()
uo.waitmenu('What do you want to carve','bow')
uo.waittargettype(Logi)
UO.UseType( Instrum )
repeat
wait(500)
until UO.InJournal('You put the bow in your pack.') or UO.InJournal('You fail to create the item')
if UO.Count( Bow ) > 0 then
UO.FindType( Bow, -1, -1 )
UO.MoveItem( 'finditem', 0, Musor )
wait( 1000 )
UO.Print( 'Bow moved' )
end if
Wend
Wend
end sub
#####################################################################
;
; Чар берет из сундука логи, крафтит луки
; и кидает их в трэш.
; Если логи закончились - выход.
;
sub bow()
VAR Musor = '0x413C2D8D'
VAR Sunduk = '0x4018F0BA' ; Сериал сундука
VAR Logi = '0x1BDD' ; Тип логов
VAR Instrum = '0x0F51' ; Тип ножика
VAR Bow = '0x13B1' ; Тип лука
VAR Kolvo = 200 ; Брать логов
VAR k = 0
While TRUE
if not uo.count('0x0FA0') then вот же вроде на окончанее ниток...
uo.findtype('0x0FA0','0x0000',Sunduk)
if uo.findcount() then
uo.moveitem('finditem','200','backpack')
wait(1000)
else
uo.print('NITKI ZAKONCHILIS')
return
endif
endif
if uo.count(Logi)< 10 then
UO.FindType(Logi,' -1',Sunduk) ; Ищем логи в сундуке
If UO.FindCount() == 0 then
UO.Print("Logs not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' )
wait( 2000 )
endif
While UO.Count( Logi ) > 10
; Пока в паке есть логи
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logs' )
UO.DeleteJournal()
uo.waitmenu('What do you want to carve','bow')
uo.waittargettype(Logi)
UO.UseType( Instrum )
repeat
wait(500)
until UO.InJournal('You put the bow in your pack.') or UO.InJournal('You fail to create the item')
if UO.Count( Bow ) > 0 then
UO.FindType( Bow, -1, -1 )
UO.MoveItem( 'finditem', 0, Musor )
wait( 1000 )
UO.Print( 'Bow moved' )
end if
Wend
Wend
end sub
Re: помогите с бовкрафтом
алгоритм у тебя
если нет ниток то добираем (1-норазовая проверка)
если логов меньше 10 то добираем (1-норазовая проверка)
делаем луки пока ЛОГОВ больше 10... (цикл)
на последнем цикли и зависает так как обязательно условие - отсутствие ЛОГОВ а не логов или ниток. Смотри последнюю стоку в моем предыдущем сообщении.
если нет ниток то добираем (1-норазовая проверка)
если логов меньше 10 то добираем (1-норазовая проверка)
делаем луки пока ЛОГОВ больше 10... (цикл)
на последнем цикли и зависает так как обязательно условие - отсутствие ЛОГОВ а не логов или ниток. Смотри последнюю стоку в моем предыдущем сообщении.
-
- Posts: 7
- Joined: 2010-02-10 22:01:28
Re: помогите с бовкрафтом
я так делал уже.. но все равно что то не то ( когда вставляешь это строчку. он перестает логи брать... и нитки.. только при запуске берет раз а в процессе нет ..
смотри все так?
sub bow()
VAR Musor = '0x41550379'
VAR Sunduk = '0x4018F0BA' ; Сериал сундука
VAR Logi = '0x1BDD' ; Тип логов
VAR Instrum = '0x0F51' ; Тип ножика
VAR Bow = '0x0F4F' ; Тип лука
VAR Kolvo = 200 ; Брать логов
VAR k = 0
While TRUE
if not uo.count('0x0FA0') then
uo.findtype('0x0FA0','0x0000',Sunduk)
if uo.findcount() then
uo.moveitem('finditem','200','backpack')
wait(1000)
else
uo.print('NITKI ZAKONCHILIS')
return
endif
endif
if uo.count(Logi)< =12 then
UO.FindType(Logi,' -1',Sunduk) ; Ищем логи в сундуке
If UO.FindCount() == 0 then
UO.Print("Logs not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' )
wait( 2000 )
endif
While UO.Count( Logi )>12 or UO.Count( '0x0FA0' )>12
; Пока в паке есть логи
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logs' )
UO.DeleteJournal()
uo.waitmenu('What do you want to carve','Exceptional Bows','Exceptional Bows','Superior Crossbow')
uo.waittargettype(Logi)
UO.UseType( Instrum )
repeat
wait(500)
until UO.InJournal('You put the Superior Crossbow in your pack.') or UO.InJournal('You fail to create the item')
if UO.Count( Bow ) > 0 then
UO.FindType( Bow , -1, -1 )
UO.MoveItem( 'finditem', 0, Musor )
wait( 1000 )
UO.Print( 'Bow moved' )
end if
Wend
Wend
end sub
смотри все так?
sub bow()
VAR Musor = '0x41550379'
VAR Sunduk = '0x4018F0BA' ; Сериал сундука
VAR Logi = '0x1BDD' ; Тип логов
VAR Instrum = '0x0F51' ; Тип ножика
VAR Bow = '0x0F4F' ; Тип лука
VAR Kolvo = 200 ; Брать логов
VAR k = 0
While TRUE
if not uo.count('0x0FA0') then
uo.findtype('0x0FA0','0x0000',Sunduk)
if uo.findcount() then
uo.moveitem('finditem','200','backpack')
wait(1000)
else
uo.print('NITKI ZAKONCHILIS')
return
endif
endif
if uo.count(Logi)< =12 then
UO.FindType(Logi,' -1',Sunduk) ; Ищем логи в сундуке
If UO.FindCount() == 0 then
UO.Print("Logs not found, script terminated")
return
Endif
UO.Grab( Str( Kolvo ), 'finditem' )
wait( 2000 )
endif
While UO.Count( Logi )>12 or UO.Count( '0x0FA0' )>12
; Пока в паке есть логи
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logs' )
UO.DeleteJournal()
uo.waitmenu('What do you want to carve','Exceptional Bows','Exceptional Bows','Superior Crossbow')
uo.waittargettype(Logi)
UO.UseType( Instrum )
repeat
wait(500)
until UO.InJournal('You put the Superior Crossbow in your pack.') or UO.InJournal('You fail to create the item')
if UO.Count( Bow ) > 0 then
UO.FindType( Bow , -1, -1 )
UO.MoveItem( 'finditem', 0, Musor )
wait( 1000 )
UO.Print( 'Bow moved' )
end if
Wend
Wend
end sub
Re: помогите с бовкрафтом
пропиши свои типы.
2 или 3 сундука. в одном пустые мешки, в другом полные с луками. Еда (рыба) логи нитки.Тесть
2 или 3 сундука. в одном пустые мешки, в другом полные с луками. Еда (рыба) логи нитки.Тесть

Code: Select all
VAR Container = '0x40C0E9A6' ;айрон, рыба, инструменты, может быть равен Sunduk 1
VAR Sunduk1 = '0x407ADC1A' ;пустые мешки
VAR Sunduk2 = '0x407ADE6A' ;полные
VAR log = '0x1BDD'
VAR Dagger = '0x0F51'
VAR Bow = '0x13B1' #лук#
VAR spool = '0x0FA0' #нитки#
VAR Meshok = '0x0E76';тип мешка
VAR MeshSer, d, LastTimer
var havka = '0x097B'
var colbow = 50 ; количество луков в 1 мешке
###################
sub Bowcraft()
WHILE NOT UO.Dead()
UO.FindType( Meshok, '-1', Sunduk1 )
MeshSer = UO.GetSerial( 'finditem' )
UO.MoveItem( MeshSer, 0, Sunduk2 )
checklag()
uo.useobject( MeshSer )
eat()
REPEAT
GET(log, Container, 10, 200)
GET(spool, Container, 5, 100)
Repeat
UO.DeleteJournal()
LastTimer=UO.Timer()
UO.WaitMenu ('What do you','Exceptional Bows','Exceptional Bows','Superior Crossbow')
UO.waittargettype ( log )
UO.Usetype( Dagger )
repeat
wait( 100 )
until UO.InJournal("You put|положили|fail|не удалось|You broke|сломали") or UO.Timer()>LastTimer+150
Until UO.Count( Bow )>0
checklag()
PUT(Bow, MeshSer)
UO.FindType( Bow, -1, MeshSer)
UO.Print('Сделано луков: ' + Str( UO.FindCount( Bow ) ) )
UNTIL UO.FindCount()>=colbow
UO.Print('Берем другую сумку' )
wait( 300 )
WEND
end sub
###################
Sub eat()
GET(havka, Container, 1, 20)
REPEAT
UO.DeleteJournal()
LastTimer=UO.Timer()
UO.findtype(havka,-1,'backpack')
If UO.FindCount() > 0 Then
UO.Useobject('finditem')
wait(200)
Else
UO.Print( 'кончилась рыба' )
return 0
end if
Until UO.InJournal("stuffed!|think|found|Вы ничего не можете") OR UO.Timer()>LastTimer+200
PUT(havka, Container)
end sub
Sub GET(item, cont, min, max) ; предмет, откуда, минимум, сколько брать
If UO.Count( item ) < min Then
# UO.Print("Кончилось сырье в рукзаке")
UO.FindType( item, '-1', cont )
if UO.FindCount() > 0 Then
# UO.Print('Сырья в сундуке: ' + Str( UO.FindCount( item ) ) )
uo.moveitem('finditem', max, 'backpack')
checklag()
else
UO.Print( 'Полностью кончилось сырье' )
UO.CancelMenu()
MyTerminate()
endif
Endif
end sub
Sub PUT(item, cont)
while UO.Count( item ) > 0
UO.FindType( item, -1, -1 )
UO.MoveItem( 'finditem', 0, cont )
checklag()
wend
end sub
Sub DeleteJournal(msg)
While UO.InJournal(msg)
UO.SetJournalLine(UO.InJournal(msg) - 1,'')
wend
endsub
Sub MyTerminate()
UO.Set('quiet','1')
UO.CancelMenu()
UO.IgnoreReset()
UO.Set('quiet','0')
UO.Exec('terminate all')
end sub
Sub checklag()
DeleteJournal("ackpack")
UO.Click("backpack")
repeat
wait(100)
until UO.InJournal("ackpack")
end sub
-
- Posts: 7
- Joined: 2010-02-10 22:01:28
Re: помогите с бовкрафтом
он почему то пытаеться взять все логи... и тупит пытаясь их себе в пак перекинуть
-
- Posts: 7
- Joined: 2010-02-10 22:01:28
Re: помогите с бовкрафтом
мне бы тот скрипт первый что я кидал... он просто по проще.. вот только нитки не берет..((