на строчке в скрипте там где у меня moveitem выдает Runtime Error
UO.MoveItem("finditem",0,'Ground',x1,y1,'0')
х1,у1, дано заранее. за пару строчек до мувеитема идет uo.FindType(ruda,-1,'backpack') руда записана в VAR'e
uo.moveitem нужна помощь... срочно :)
Moderators: Murderator+, Murderator
-
- Posts: 73
- Joined: 2005-01-14 13:41:05
- Location: Одесса - мама
- Contact:
-
- Posts: 73
- Joined: 2005-01-14 13:41:05
- Location: Одесса - мама
- Contact:
-
- Posts: 73
- Joined: 2005-01-14 13:41:05
- Location: Одесса - мама
- Contact:
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
-
- Posts: 73
- Joined: 2005-01-14 13:41:05
- Location: Одесса - мама
- Contact:
GrandMaster Ranger wrote:это же должны быть числа...
Code: Select all
uo.moveitem(object,[quantity,containerobject/ground,[x,y,z]])
-
- Posts: 73
- Joined: 2005-01-14 13:41:05
- Location: Одесса - мама
- Contact:
Mihail wrote:GrandMaster Ranger wrote:это же должны быть числа...Code: Select all
uo.moveitem(object,[quantity,containerobject/ground,[x,y,z]])
дяяяя

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