Alchemy for o1. Need help.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Dron D.
Posts: 190
Joined: 2004-12-13 01:27:00

Alchemy for o1. Need help.

Post by Dron D. »

Имеется скрипт на прокачку алхимии, собственного производства.
По идее, при количестве сваренных бутлей в паке >10, они должны выкидыватся в сундук, но почему то в етот момент пишется Targeting Cancelled и леззер падает мне под ноги. А иногда вообще не перекидывает...
Вот часть скрипта, отвечающяя за переброс:

Code: Select all


;completed bottles moved to pack
	UO.DeleteJournal() 
	UO.FindType('0x0F0D','0x0000','backpack') 
			If uo.findcount()>15 Then 
			  checklag()
			  uo.moveitem('0x0F0D','all',chest) 
			 endif
	wait(1000) 

Boris
Posts: 24
Joined: 2005-06-18 15:55:25

Re: Alchemy for o1. Need help.

Post by Boris »

Dron D. wrote:Имеется скрипт на прокачку алхимии, собственного производства.
По идее, при количестве сваренных бутлей в паке >10, они должны выкидыватся в сундук, но почему то в етот момент пишется Targeting Cancelled и леззер падает мне под ноги. А иногда вообще не перекидывает...
Вот часть скрипта, отвечающяя за переброс:

Code: Select all


;completed bottles moved to pack
	UO.DeleteJournal() 
	UO.FindType('0x0F0D','0x0000','Bpack') 
         wait(200)
		If uo.findcount()>10 then                          # Почему здесь 15 ?  ты же вроде написал что больше 10 надо чтобы перекладывал
			  checklag()
			  uo.moveitem('0x0F0D','-1','chest')      # А что ты перекладываешь кстати ? 
			 endif
	wait(1000) 


пс если ты перекладываешь бутылки то вроде как All не канает, это для стыкуемых предметов, хотя могу и ошибаться
Dron D.
Posts: 190
Joined: 2004-12-13 01:27:00

Post by Dron D. »

см ниже.
Last edited by Dron D. on 2006-02-19 17:29:18, edited 2 times in total.
Boris
Posts: 24
Joined: 2005-06-18 15:55:25

Post by Boris »

Dron D. wrote:10 или 15 не имеет большого значения.
А значение -1 - означает все айтемы.

Но все равно не кидает.
-1 означает все айтемы для стыкуемух предметов
Boris
Posts: 24
Joined: 2005-06-18 15:55:25

Re: Alchemy for o1. Need help.

Post by Boris »

Code: Select all


;completed bottles moved to pack
	UO.DeleteJournal() 
	UO.FindType('0x0F0D','-1','Bpack') 
         wait(200)
	If uo.findcount() > 10 then                      
	   while uo.count('0x0F0D') > 0         #тип бутылки
                    UO.FindType('0x0F0D','-1','Bpack')  
                    wait(200)
                    uo.moveitem('finditem','-1','chest')      
                    wait(200)
            wend
         endif
	wait(1000) 

пробуй так
Dron D.
Posts: 190
Joined: 2004-12-13 01:27:00

Post by Dron D. »

Вобщем тут нужно весь скрипт коцать я так понял.
Алгоритм:

Code: Select all

1 .Нашли рег (0x0F7B) в сундуке (0x4172E101) 
2 .Нашли бутылки (0x0F0E) в суднуке 
3 .Взяли и то и другое 100 и 30 соответсвенно.
4 .Варим Agility  (0x0F08, 0x0000) 
5 .Если бутлей меньше 2, тогда берем еще 30.
6 .Если рега меньше 5, тогда берем еще 90.
7 .Если бутылок с готовой продукцией в паке больше 25 тогда перекидываем их в сундук.
Вот сам скрипт, но плохо функионирует:

Code: Select all

sub alchemytrain() ; качб алхимии.
VAR Exit=0, LastTimer
var reg='0x0F8C'
var chest='0x4172E101'

while not uo.dead()
;empty bottles grab
	UO.FindType('0x0F0E','-1','backpack') 
	If UO.GetQuantity('finditem')<10 then
	   Uo.usefromground('0x4172E101')
	   wait(50)
	   UO.FindType('0x0F0E','-1','0x4172E101') 
	   wait(1000) 
	   UO.Grab('30','finditem') 
	   wait(1000) 
	Endif 
;regs grab
	UO.FindType(reg,'-1','backpack') 
	If UO.GetQuantity('finditem')<20 then 
	   UO.FindType(reg,'-1',chest) 
	   wait(1000) 
	   UO.Grab('250','finditem') 
	   wait(1000) 
	Endif 

	LastTimer=UO.Timer() 
	UO.DeleteJournal() 
;toss
	UO.UseType(reg) 
	UO.WaitMenu('What','Agility')        
	while NOT UO.InJournal("You put") AND NOT UO.InJournal("You toss the failed") 
	wait(500) 
	wend 
	If UO.InJournal("You toss the failed") then 
	   repeat 
	   wait(100) 
	   until UO.InJournal("You put")
       Else 
	EndIf 
;completed bottles moved to pack
    uo.setreceivingcontainer('0x4172E101')
	UO.FindType('0x0F0D','0x0000','backpack') 
	wait(100)
	uo.moveitem('finditem','-1','0x4172E101')
	wait(1000) 
wend    
end sub   
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Code: Select all

sub OpenContainer(container)
	if uo.GetSerial('lastcontainer') == container then
		uo.UseObject('backpack')
		while uo.GetSerial('lastcontainer') <> uo.GetSerial('backpack')
			wait(100)
		wend
	end if
	uo.UseObject(container)
	while uo.GetSerial('lastcontainer') <> container
		wait(100)
	wend
end sub

sub CountContainer(type, color, container)
	uo.FindType(type, color, container)
	return uo.FindCount()
end sub
	
sub main()
var PotionNeed=3
var PotionType='0x0F08'
var PotionColor='0x0000'
var RegType='0x0F7B'
var Container=''
var tempCount=0
	if uo.Targeting() then
		uo.canceltarget()
	end if
	uo.Print('Выбери контейнер с ресурсами')
	uo.Info()
	while uo.Targeting()
		wait(100)
	wend
	Container=uo.GetSerial('lasttarget')
	OpenContainer(Container)
	while not uo.Dead()
		if not uo.count('0x0f0e', 0) then
			if CountContainer('0x0f0e', 0, Container) then
				uo.Grab('100', 'finditem')
				while  not uo.Count('0x0f0e', 0)
					wait(100)
				wend
			else
				uo.Print('Закончились банки')
				Return
			end if
		end if
		if uo.count(RegType) < PotionNeed then
			if CountContainer(RegType, 0, Container) then
				tempCount=uo.Count(RegType)
				uo.Grab('100', 'finditem')
				while  uo.Count(RegType) == tempCount
					wait(100)
				wend
				if uo.count(RegType) < PotionNeed then
					uo.Print('Нехватает регов')
					Return
				end if
			else
				uo.Print('Закончились реги')
				Return
			end if
		end if
		uo.WaitMenu('What', 'Agility')
		uo.WaitTargetType(RegType)
		uo.DeleteJournal()
		uo.usetype('0x0E9B')
		while not uo.InJournal('put|toss')
			wait(100)
		wend
		while CountContainer(PotionType, PotionColor, 'backpack')
			uo.moveitem('finditem', 0, Container)
			while uo.ContainerOf('finditem') <> Container
				wait(100)
			wend
		wend
	wend
end sub
Что делает:
Берет бутылки если нет
Берет рег если его не хватает на изготовления 1 зелья
Скидывает сразу получившиюся продукцию

Скрипт настроен под агилки Сундук выбирается вручную.

PS Ничего настроивать не надо... (кроме если только журнала)
Dron D.
Posts: 190
Joined: 2004-12-13 01:27:00

Post by Dron D. »

Большое спасибо.
Dron D.
Posts: 190
Joined: 2004-12-13 01:27:00

Post by Dron D. »

Спасибо.
Но видимо особенность шарда о1, в том что на нём пролагивает частенько и скрипт запарывается.
А происходит ето во время когда что-то куда-то перетаскивается.
Если сваренный поушн начинаем перетаскивать, то он пропадает в никуда и скрипт останавливается, если потянуть за любой айтем то етот поушн выпадает под ноги и чтобы скрипт запахал, нужно поушн кинуть в сундук. Или аналогичная ситуация при grab`e регов\бутлей. Даже хз как с етим боротся)
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

странно с бутылками... хотелось постестить... давно там не грал но никогда таких траблов небыло;) а тот бай порой юзал чтобы тоскатьвещи которые в пак не лезли(из за перевеса). Точно такжи класно прятались вещи от не прощареных гмов%)
Post Reply