Page 1 of 1
И снова перемещение объектов
Posted: 2010-04-16 11:31:25
by Login9000
Нашел тут скрипт под тинкера, который делает ключи. Вооружившись предыдущим опытом, решил написать перемещение ключей из бекпака в мешок. Но... увы и ах, "No items found!" Хотя данные мешка и ключей проверял 100500 раз. Помогите, кому не лень.
Code: Select all
sub main()
var Meshok = '0x40F85A6A'
var Key = '0x1010'
var timeout=0
UO.deletejournal()
while UO.SkillVal("Tinkering",1) < 100000
UO.Exec("waitmenu 'Tinkering' 'Keys' 'Iron key'")
UO.usetype("0x1EBC")
repeat
timeout=timeout+500
wait(500)
until UO.injournal("You put") OR (timeout>10000)
timeout=0
if UO.injournal("You put") then
UO.waittargettype("0x1053")
wait(1500)
endif
UO.deletejournal()
wend
uo.FindType(Key,'-1','backpack')
if uo.FindCount() then
uo.moveitem('finditem','all',Meshok)
wait(500)
end if
until UO.Dead()
end sub
Re: И снова перемещение объектов
Posted: 2010-04-16 13:05:53
by Beyonder
Если он делает ключ и выдаёт эту ошибку, то ошибка здесь:
var Key = '0x1010'
Если он НЕ делает ключ и выдаёт эту ошибку, то проблема здесь:
UO.usetype("0x1EBC")
Re: И снова перемещение объектов
Posted: 2010-04-16 13:06:57
by Андрюха из Одессы
Из старых запасов скрипт. Не знаю, кто его автор.
Скрипт простой, но хороший.
Code: Select all
sub tink()
VAR Sunduk = '0x4004411D' ; Сериал сундука, из которого брать инготы и сбрасывать готовые ключи.
VAR Ingi = '0x1BF2' ; Тип ингов
VAR Instrum = '0x1EBC' ; Тип инструмента тинкера
VAR Key = '0x100E' ; Тип ключа
VAR Kolvo = 100 ; Брать ингов
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 ) > 0
; Пока в паке есть инги
UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
UO.DeleteJournal()
UO.CancelMenu()
UO.WaitMenu ('Tinkering' 'Keys' 'Iron key') # Подставил твое меню. Периодически проверяй, не изминился ли порядок выбора, в меню.
UO.UseType( Instrum )
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( Key ) > 0 then
UO.FindType( Key, -1, -1 )
UO.MoveItem( 'finditem', 0, Sunduk )
wait( 1000 )
UO.Print( 'Key moved' )
end if
Wend
Wend
end sub
Re: И снова перемещение объектов
Posted: 2010-04-16 13:09:06
by Андрюха из Одессы
Ой....промахнулся слегка.
Если я начинаю цитировать сам себя - это мания величия?

З.Ы. Я не могу понять, за что у тебя отвечает данное условие:
Code: Select all
if UO.injournal("You put") then
UO.waittargettype("0x1053")
wait(1500)
endif
0x1053 - это что за предмет такой?
З.Ы.Ы.
Beyonder, А что означает единица после скила:
UO.SkillVal("Tinkering",
1)
Я догадываюсь, но проверить негде.
Re: И снова перемещение объектов
Posted: 2010-04-16 15:41:56
by Login9000
Скрипт не мой =)
Изначально скрипт был делать бутылки. Я пытался дописать, чтобы делались ключи, а не бутыли, и чтобы клались они в мешок.
Re: И снова перемещение объектов
Posted: 2010-04-16 16:07:36
by Login9000
Допишите, пожалуйста, этот скрипт так, чтобы он складывал в мешок.
Code: Select all
sub main()
var timeout=0
UO.deletejournal()
while UO.SkillVal("Tinkering",1) < 100000
UO.Exec("waitmenu 'Tinkering' 'Keys' 'Keys' 'Iron key'")
UO.usetype("0x1EBC")
repeat
timeout=timeout+500
wait(500)
until UO.injournal("You put") OR (timeout>10000)
timeout=0
if UO.injournal("You put") then
UO.waittargettype("0x1010")
UO.usefromground("0x1996")
wait(1500)
endif
UO.deletejournal()
wend
end sub
Re: И снова перемещение объектов
Posted: 2010-04-16 17:24:03
by Beyonder
Андрюха из Одессы wrote:З.Ы.Ы.
Beyonder, А что означает единица после скила:
UO.SkillVal("Tinkering",
1)
Я догадываюсь, но проверить негде.
Вот тут можно проверить:
http://yoko.com.ua/help/help.php?lang=r ... m=SkillVal
Re: И снова перемещение объектов
Posted: 2010-04-16 18:10:28
by Андрюха из Одессы
Спасибо. Догадка подтвердилась.
Re: И снова перемещение объектов
Posted: 2010-04-16 19:13:46
by Login9000
Блин, можете просто дописать тот скриптик и все?

Re: И снова перемещение объектов
Posted: 2010-04-17 17:30:52
by Login9000
Ну помогите, пожалуйста...
Re: И снова перемещение объектов
Posted: 2010-04-17 18:35:43
by kostjan
Code: Select all
if uo.count(Key) > 0 then
uo.findtype( Key, -1, -1 )
uo.moveItem( 'finditem', 0, Bag )
wait(100)
uo.print('Key in the bag')
end if
Зачем через exec ?
Code: Select all
UO.Exec("waitmenu 'Tinkering' 'Keys' 'Keys' 'Iron key'")
Code: Select all
UO.WaitMenu('Tinkering', 'Keys', 'Keys', 'Iron key')
Re: И снова перемещение объектов
Posted: 2010-04-17 18:46:34
by Login9000
Зачем через exec ?
Code: Select all
UO.Exec("waitmenu 'Tinkering' 'Keys' 'Keys' 'Iron key'")
Да откдуа я знаю, не мой скрипт =)
Re: И снова перемещение объектов
Posted: 2010-04-17 18:55:33
by kostjan
Вот и помогай таким.

Re: И снова перемещение объектов
Posted: 2010-04-18 06:06:58
by Mirage
смарите что я наваял. Если шарды похожие - пользуйтесь на здоровье.
2-3 сундука. 1 еда инги инструменты можно прописать пустые мешки. в другом полные мешки будут. Перед запуском надо открыть сундуки. Проверить сообщения на сервере (хотя я писал для 3 серваков месаги вроде).
Code: Select all
VAR Container = '0x40B5267F' ;айрон, рыба, инструменты, может быть равен Sunduk 1
VAR Sunduk1 = '0x40B5267F' ;пустые мешки
VAR Sunduk2 = '0x40B52599' ;полные
VAR Instrum = '0x1EBC' ;набор жестянщика
VAR Ing = '0x1BEF'
VAR key = '0x1010'
VAR Meshok = '0x0E76' ;тип мешка
var havka = '0x097B'
VAR MeshSer, d, LastTimer, timemove, itemM
var quantity = 150; количество предметов в 1 мешке
var msg ='You put|положили|fail|не удалось|You broke|сломали'
var printcolour = '1069'
VAR HIDE = 1; если 1 прячемся, если 0 нет.
###################
sub TinkKey()
var menu = "waitmenu 'Tinkering' 'Keys' 'Keys' 'Iron key'"
var item = key
UO.CancelMenu()
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(ing, Container, 20, 100)
GET(Instrum, Container, 2, 2)
Repeat
Hide()
UO.DeleteJournal()
LastTimer=UO.Timer()
UO.exec( menu )
UO.Usetype( Instrum )
repeat
wait( 300 )
until UO.InJournal( msg ) or UO.Timer()>LastTimer+150
Until UO.Count( item ) > 0
checklag()
PUT( item, MeshSer )
UO.FindType( item, -1, MeshSer )
uo.charprint(printcolour,'Ключей в мешке: '+Str( UO.FindCount()))
UNTIL UO.FindCount()>=quantity
uo.charprint(printcolour,'Берем другую сумку')
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.charprint(printcolour, 'кончилась рыба' )
return 0
end if
Until UO.InJournal("simply too full to eat|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.FindType( item, '-1', cont )
if UO.FindCount() > 0 Then
uo.charprint(printcolour,'Сырья в сундуке: '+Str(UO.GetQuantity('finditem')) )
itemM=UO.GetSerial('finditem')
timemove=UO.Timer()
while UO.ContainerOf(itemM)==cont && timemove+20>UO.Timer()
uo.moveitem('finditem', max, 'backpack')
wait(300)
wend
else
uo.charprint(printcolour, 'Полностью кончилось сырье' )
UO.CancelMenu()
MyTerminate()
endif
Endif
end sub
Sub PUT(item, cont)
while UO.Count( item ) > 0
UO.FindType( item, -1, -1 )
itemM=UO.GetSerial('finditem')
timemove=UO.Timer()
UO.MoveItem( 'finditem', 0, cont )
while UO.ContainerOf(itemM)=='my' && timemove+20>UO.Timer()
wait(300)
wend
wend
end sub
Sub Hide()
VAR LastTimer, n=0, HidFlag=1
if UO.Hidden() then
HidFlag=0
else
end if
while HidFlag
DeleteJournal("can't seem to hide|to perform|stop trying|прекратили|не удалось|удачно|You have hidden yourself well")
LastTimer=UO.Timer()
UO.WarMode(0)
UO.UseSkill('Hiding')
repeat
wait(50)
until UO.InJournal("can't seem to hide|to perform|stop trying|прекратили|не удалось|удачно|You have hidden yourself well") || LastTimer+50<UO.Timer()
if UO.InJournal("0xA5F8|удачно|You have hidden yourself well") then
HidFlag=0
else
n=n+1
if n>3 then
UO.Set('quiet','0')
uo.charprint(printcolour,'Спрятаться не получается, происходит что-то тревожное и непонятное, готовься к смерти, неудачнег!')
UO.Set('quiet','1')
MyTerminate()
end if
end if
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