uo.moveitem нужна помощь... срочно :)

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
GrandMaster Ranger
Posts: 73
Joined: 2005-01-14 13:41:05
Location: Одесса - мама
Contact:

uo.moveitem нужна помощь... срочно :)

Post by GrandMaster Ranger »

на строчке в скрипте там где у меня moveitem выдает Runtime Error

UO.MoveItem("finditem",0,'Ground',x1,y1,'0')

х1,у1, дано заранее. за пару строчек до мувеитема идет uo.FindType(ruda,-1,'backpack') руда записана в VAR'e
GrandMaster Ranger
Posts: 73
Joined: 2005-01-14 13:41:05
Location: Одесса - мама
Contact:

Post by GrandMaster Ranger »

даже такой вариант не пашет
UO.MoveItem('finditem','-1',x1,y1,z) ( заранее приравнял z нулю )
такой вариант мувеитема я стыбзил с другого скрипта, судя по всему рабочего. в чём же тогда дело?
Mihail
Expert!
Posts: 548
Joined: 2005-05-20 20:30:10
Contact:

Post by Mihail »

ваще есть спец. команда для этого
,drop
а так проверь чтобы x1, y1 были в виде текста
GrandMaster Ranger
Posts: 73
Joined: 2005-01-14 13:41:05
Location: Одесса - мама
Contact:

Post by GrandMaster Ranger »

Mihail wrote:ваще есть спец. команда для этого
,drop
а так проверь чтобы x1, y1 были в виде текста

в смысле в виде текста? это же должны быть числа... кароче я уже переделал скрипт и получил новую проблему :)
чар должен брать в радиусе 1 клетки руду заданного цвета, затем он должен ложить ее в стопку которая находиться в радиусе больше 1 но меньше 3... специально зделал пару uo.print. ... скрипт флудит ishu... и не находит руду хотя она в радиусе 2 клеток есть... что за бред??? ( все это делается, опять же, с целью того чтобы стекирование не заглючивало на 1 стопке ( то естьвзяла со стопки, обратно в нее дропнуло и так вечно ) действовал методом редактирования стандартной функции sub Stack(StackType,Color)

Code: Select all

sub main()
var ruda = '0x19B9'
var x,i
dim rudac[10]
rudac[1]=0x0602 #cooper
rudac[2]=0x0000 #iron
rudac[3]=0x0231       #steel
rudac[4]=0x045E      #anra
rudac[5]=0x0585      #valurit
rudac[6]=0x006F      #lavarok   
rudac[7]=0x0481   #icerok
rudac[8]=0x0386      #shadow
rudac[9]=0x0042   #azurie
rudac[10]=0x003D #doom
for x=1 to 10
uo.FindType(ruda,rudac[x],'ground')
while UO.FindCount() >= 1
UO.exec('set distance 1')
UO.exec('set finddistance 1')
uo.FindType(ruda,rudac[x],'ground')
if UO.FindCount() >= 1 then
UO.Grab( '190', 'finditem' )
checklag()
Stack(ruda,rudac[x])
end if
wend
next
end sub

Sub checklag()
deljournal("ackpack")
uo.click("backpack")
repeat
wait(50)
until uo.injournal("ackpack")
endsub

Sub deljournal(msg)
while uo.injournal(msg)
uo.setjournalline(uo.injournal(msg)-1,"")
wend
endsub

sub Stack(StackType,Color)
var GroundItem, PackItem, GrndTmp , yes
UO.exec('set distance 3')
UO.exec('set finddistance 3')
PackItem = ''
GroundItem = ''
if UO.Count(StackType) then
PackItem = '^'+StackType
endif
if UO.CountGround(StackType) then
UO.IgnoreReSet()
repeat
UO.FindType(StackType,Color,'ground')
wait(50)
yes = UO.GetDistance('finditem')
uo.print("ishu...")
if yes > 1 AND yes < 3  then
uo.print("Nashel item v radiuse 2!")
GrndTmp = UO.GetSerial('finditem')
if (UO.GetQuantity(GrndTmp) > 55000) then
UO.Ignore(GrndTmp)
else
GroundItem = GrndTmp
endif
endif
UO.FindType(StackType,Color,'ground')
until ((UO.FindCount() == 0) or (GroundItem <> ''))
endif
if ((PackItem <> '') and (GroundItem <> '')) then
UO.MoveItem(PackItem,STR(UO.GetQuantity(PackItem)),GroundItem,'0','0','0')
else
UO.DropHere('^'+StackType)
Endif
end sub

если хотите видеть что я отредактировал в функции, вот исходник

Code: Select all

sub Stack(StackType,Color) 
var GroundItem, PackItem, GrndTmp
PackItem = ''
GroundItem = ''
if UO.Count(StackType) then
PackItem = '^'+StackType
endif
if UO.CountGround(StackType) then
UO.IgnoreReSet()
repeat
UO.FindType(StackType,Color,'ground')
if UO.FindCount() then
GrndTmp = UO.GetSerial('finditem')
if (UO.GetQuantity(GrndTmp) > 55000) then
UO.Ignore(GrndTmp)
else
GroundItem = GrndTmp
endif
endif
UO.FindType(StackType,Color,'ground')
until ((UO.FindCount() == 0) or (GroundItem <> ''))
endif
if ((PackItem <> '') and (GroundItem <> '')) then
UO.MoveItem(PackItem,STR(UO.GetQuantity(PackItem)),GroundItem,'0','0','0')
else
UO.DropHere('^'+StackType)
Endif
end sub
GrandMaster Ranger
Posts: 73
Joined: 2005-01-14 13:41:05
Location: Одесса - мама
Contact:

Post by GrandMaster Ranger »

мдэ. очень мило. врубил только что еще раз скрипт. он собрал кучки купера по 10-150 в 1 кучу в которой стало 15000 ка купера за 40 секунд. не плохой результат. затем он взял руду другго цвета ( так как вы скрипте цикл фор ) и опять застрял на надписи ищу... в чем же все таки недочет ? :)
Mihail
Expert!
Posts: 548
Joined: 2005-05-20 20:30:10
Contact:

Post by Mihail »

GrandMaster Ranger wrote:это же должны быть числа...

Code: Select all

uo.moveitem(object,[quantity,containerobject/ground,[x,y,z]])
GrandMaster Ranger
Posts: 73
Joined: 2005-01-14 13:41:05
Location: Одесса - мама
Contact:

Post by GrandMaster Ranger »

Mihail wrote:
GrandMaster Ranger wrote:это же должны быть числа...

Code: Select all

uo.moveitem(object,[quantity,containerobject/ground,[x,y,z]])

дяяяя :lol: нереально ты мне помог, дружище...
решение проблемы нашел... в функции стака в цикле репит нужно было сделать дополнительный цикл вайл с условием нахождения итема ЗА радусом 1......... а в самом цикле сначала игнор файнд итем а потом поиск......
помошнички , блин, сам уже все сделал :wink:
Post Reply