Page 1 of 1

Помогите решить проблему с крафт меню.

Posted: 2009-03-20 14:57:46
by Hydromarine
Помогите пожалуйста разобраться. Был скрипт на тэйлоринг я немного начал переделывать его под Алхимию. Проблема в том что он открывает крафт меню, но бутылку поизона делать не хочет.

Code: Select all

var EQ,RQ1,RQ2,QB 
var Eat='0x097B' ; Type Åäà (Ðûáà) 
var Res1='0x0F88' ; Type Ðåñóðñ 1 (Ðåã) 
var Res2='0x0F0E' ; Type Ðåñóðñ 2 (Áóòûëêà) 
var Kit='0x0E9B' ; Type Èíñòðóìåíòà êðàôòà (Ñòóïêà) 
var Items='0x0F0A' ; Type Âûõîäíîãî ìàòåðèàëà 
EQ=50 ; Êîëè÷åñòâî åäû 
RQ1=200 ; Êîëè÷åñòâî ðåñóðñà 1 
RQ2=100 ; Êîëè÷åñòâî ðåñóðñà 2 

;|---------------------------------| 
;| Îïèñàíèå ïåðåìåííûõ êîíòåéíåðîâ | 
;|---------------------------------| 

var ContainerRes='0x4032A7CA' ; Object Êîíòåéíåð ñ ðåñóðñàìè 
var ContainerBag='0x4058E631' ; Object Êîíòåéíåð ñ ñóìêàìè 
var BagCount='0x0E76' ; Type ñóìîê â êîíòåéíåðå ContainerBag 


sub Main() 
uo.Set('quiet','1') 
uo.Exec('exec Craft') 
uo.IgnoreReset() 
end sub 

sub OpenBag() 
var i,BagID 
uo.UseObject(ContainerBag) 
uo.UseObject(ContainerRes) 
uo.IgnoreReset() 
repeat 
uo.DeleteJournal() 
wait(1000) 
uo.FindType(BagCount,'-1',ContainerBag) 
if uo.FindCount('finditem') > 1 then 
i=(uo.FindCount('finditem') +1) 
uo.Click('finditem') 
if uo.InJournal("a bag") Then 
BagID=uo.JournalSerial(uo.InJournal("a bag")-1) 
uo.SetJournalLine(uo.InJournal("a bag")-1,"") 
uo.FindType(Items,'-1',BagID) 
uo.UseObject(BagID) 
wait(2000) 
uo.Hide(BagID) 
uo.Ignore(BagID,'on') 
end if 
end if 
i=(i-1) 
until i==0 
uo.Hide(ContainerBag) 
uo.Hide(ContainerRes) 
uo.Resend() 
wait(3000) 
uo.IgnoreReset() 
end sub 


sub Craft() 
var Last=0,LastTimer 
OpenBag() 
While not uo.Dead() 

;|-----------------------------------| 
;| Search of resources and Take them | 
;|-----------------------------------| 

uo.FindType(Eat,'-1','me') 
if uo.GetQuantity('finditem')<1 then 
uo.FindType(Eat,'-1',ContainerRes) 
if uo.GetQuantity('finditem')>1 then 
ToTake(3) 
else 
uo.Exec('Terminate Craft') 
end if 
else 
ToEat() 
end if 
uo.FindType(Res1,'-1','me') 
if uo.GetQuantity('finditem')<45 then 
uo.FindType(Res1,'-1',ContainerRes) 
if uo.GetQuantity('finditem')>1 then 
ToTake(1) 
else 
uo.Exec('Terminate Craft') 
end if 
end if 
uo.FindType(Res2,'-1','me') 
if uo.GetQuantity('finditem')<1 then 
uo.FindType(Res2,'-1',ContainerRes) 
if uo.GetQuantity('finditem')>1 then 
ToTake(2) 
else 
uo.Exec('Terminate Craft') 
end if 
end if 

;|-------------| 
;| Craft Items | 
;|-------------| 

uo.DeleteJournal() 
uo.WaitTargetType(Res1) 
uo.UseType(Kit) 
uo.WaitMenu ('what sort of potion','Poison') ; Íàçâàíèå ÊðàôòÌåíþ1(Cloth),ÏîäÌåíþ2(Shirts) -> ÊðàôòÌåíþ2(Shirts),ÏîäÌåíþ2(Robe) 
LastTimer=UO.Timer() 
repeat 
wait(100) 
until uo.InJournal("You put") or uo.InJournal("Alchemy") or LastTimer+150<uo.Timer() 
UnLoadItem() 
wend 
end sub 

sub ToTake(i) 
var G,F 
if i==1 then 
G=RQ1 
F=Res1 
end if 
if i==2 then 
G=RQ2 
F=Res2 
end if 
if i==3 then 
G=EQ 
F=Eat 
end if 
uo.FindType(F,'-1',ContainerRes) 
if uo.GetQuantity('finditem')>1 then 
uo.Grab(''+str(G)+'','finditem') 
uo.DeleteJournal() 
repeat 
uo.FindType(F,'-1','me') 
wait(1500) 
until uo.InJournal("That is too") or uo.GetQuantity('finditem') > 1 
end if 
end sub 

sub ToEat() 
uo.UseType(Eat) 
end sub 

sub UnLoadItem() 
var BagID 
var i=0 
var m=0 
repeat 
uo.DeleteJournal() 
uo.FindType(BagCount,'-1',ContainerBag) 
uo.Click('finditem') 
m=0 
repeat 
wait(1000) 
until uo.InJournal("a bag") 
if uo.InJournal("a bag") Then 
BagID=uo.JournalSerial(uo.InJournal("a bag")-1) 
uo.SetJournalLine(uo.InJournal("a bag")-1,"") 
uo.FindType('-1','-1',BagID) 
if uo.FindCount('finditem')<50 then 
m=uo.FindCount('finditem') 
uo.SetReceivingContainer(BagID) 
uo.FindType(Items,'-1','me') 
uo.Grab('0','finditem') 
uo.ConColor('0x0021') 
uo.Set('quiet','0') 
uo.Print(uo.Print('In BagPack#'+Str(i+1)+' items '+Str(m)+'')) 
uo.Set('quiet','1') 
uo.ConColor('0x0035') 
wait(1000) 
uo.UnSetReceivingContainer() 
else 
i=i+1 
uo.Ignore(BagID, 'on') 
end if 
end if 
if i==QB then 
uo.IgnoreReset() 
i=0 
end if 
uo.FindType(Items,'-1','me') 
until uo.FindCount('finditem') < 1 
end sub
[/code]

Posted: 2009-03-22 20:10:13
by Hydromarine
Апаньки.

Posted: 2009-03-24 08:33:19
by Hydromarine
Апаньки.

Posted: 2009-03-24 08:41:30
by Ever1x
I think your problem is
uo.WaitTargetType(Res1)
uo.UseType(Kit)
uo.WaitMenu ('what sort of potion','Poison')
LastTimer=UO.Timer()

change to:

Code: Select all

uo.waitMenu('What sort of potion','Poison')
uo.waittargettype(res1)
uo.usetype(kit)
lasttimer=uo.timer()
But do in your shard is like this?

Use Mortal Pastle -> Target on Reg -> Select from Menu!?
Or like this? Use Reg -> Select from menu!?
If the second, then

Code: Select all

uo.waitmenu('......','....')
uo.usetype(Nightshade)

Posted: 2009-03-24 20:17:27
by Hydromarine
I play on shard Oskom. Here to receive a potion it is necessary to make it: Use Mortal Pastle-> Target on Reg-> Select from Menu. The script stops on that that the menu with poison small bottles opens, but it thus does not do them.

Posted: 2009-03-24 20:19:17
by Hydromarine
Any of variants did not begin to work.

Posted: 2009-03-25 12:53:16
by Hydromarine
Рассматриваются любые алтернативы алхимии, главное чтобы не собералась в бэкпаке.

Posted: 2009-03-25 13:34:41
by Savage
Я так понимаю, что после открытия меню алхимии, нужно выбрать тип пойзона. Так вот, если по текстовому определению меню не срабатывает, можно использовать номера пунктов меню. Подробнее читай в хэлпе по вайтменю.
И кстати да, вайтменю должно быть раньше чем юз мортара.

Posted: 2009-03-25 14:19:19
by Hydromarine
Savage wrote:Я так понимаю, что после открытия меню алхимии, нужно выбрать тип пойзона. Так вот, если по текстовому определению меню не срабатывает, можно использовать номера пунктов меню. Подробнее читай в хэлпе по вайтменю.
И кстати да, вайтменю должно быть раньше чем юз мортара.
Не '(2)' , не '(last)' не помогли.

Posted: 2009-03-25 16:05:13
by Savage
Значит неправильно обозначен заголовок самого меню, первый параметр.

Posted: 2009-03-25 16:33:22
by Hydromarine
Savage wrote:Значит неправильно обозначен заголовок самого меню, первый параметр.
Перепроверял уже неоднократно. Большие и маленькие буквы учитываются?

Posted: 2009-03-25 16:43:29
by Savage
Да. Пробелы всякие тоже...

Posted: 2009-03-25 16:43:51
by Savage
скрин меню кинь.

Posted: 2009-03-25 17:13:53
by Hydromarine
Savage wrote:Да. Пробелы всякие тоже...
Все сделал. Огромное спасибо за подсказку на счет больших букв, не знал. Меню у меня начиналось с маленькой. Теперь все работает как нужно.
Еще раз огромное спасибо.

Топ клоуз.