Page 1 of 1
Alchemy for o1. Need help.
Posted: 2006-02-19 16:31:51
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)
Re: Alchemy for o1. Need help.
Posted: 2006-02-19 16:55:15
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 не канает, это для стыкуемых предметов, хотя могу и ошибаться
Posted: 2006-02-19 17:02:35
by Dron D.
см ниже.
Posted: 2006-02-19 17:17:13
by Boris
Dron D. wrote:10 или 15 не имеет большого значения.
А значение -1 - означает все айтемы.
Но все равно не кидает.
-1 означает все айтемы для стыкуемух предметов
Re: Alchemy for o1. Need help.
Posted: 2006-02-19 17:20:28
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)
пробуй так
Posted: 2006-02-19 17:29:31
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
Posted: 2006-02-20 01:18:59
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 Ничего настроивать не надо... (кроме если только журнала)
Posted: 2006-02-20 19:32:17
by Dron D.
Большое спасибо.
Posted: 2006-02-21 20:39:41
by Dron D.
Спасибо.
Но видимо особенность шарда о1, в том что на нём пролагивает частенько и скрипт запарывается.
А происходит ето во время когда что-то куда-то перетаскивается.
Если сваренный поушн начинаем перетаскивать, то он пропадает в никуда и скрипт останавливается, если потянуть за любой айтем то етот поушн выпадает под ноги и чтобы скрипт запахал, нужно поушн кинуть в сундук. Или аналогичная ситуация при grab`e регов\бутлей. Даже хз как с етим боротся)
Posted: 2006-02-22 00:03:34
by Grin
странно с бутылками... хотелось постестить... давно там не грал но никогда таких траблов небыло;) а тот бай порой юзал чтобы тоскатьвещи которые в пак не лезли(из за перевеса). Точно такжи класно прятались вещи от не прощареных гмов%)