Page 1 of 1

Drag...

Posted: 2004-05-15 12:45:54
by Xoma
How can i drag many items from the floor? Is there any function which take all the items near my character? I tryed to do it so:

Code: Select all

sub move()
   var obj
   var cont
   uo.addobject("cont")
   while uo.targeting()
      wait(50)
   wend
   uo.addtype("obj")
   while uo.targeting()
      wait(50)
   wend
   uo.set("finddistance","1")
   uo.setreceivingcontainer("cont")
   uo.findtype("obj","-1","ground")
   while uo.findcount() > 0
      uo.findtype("ob","-1","ground")
      UO.grab(0,"finditem")
      uo.print("Found "+str(uo.findcount()))    
      wait(1000)
   wend
   end sub

but it didn't pick up all the items... It takes only 5-6 and then i get so message "You can't pick up it"... Could any explain me, where is my mistake??? Or write well variant..... Thanks....

Posted: 2004-05-15 17:04:23
by Xoma
Как я могу перетащить много однотиных вещей с пола к себе??? Ессть ли какаянить функция что бы собрать все вещи около чара? Я пробовал сделать так:

Code: Select all

   
sub move()
   var obj
   var cont
   uo.addobject("cont")
   while uo.targeting()
      wait(50)
   wend
   uo.addtype("obj")
   while uo.targeting()
      wait(50)
   wend
   uo.set("finddistance","1")
   uo.setreceivingcontainer("cont")
   uo.findtype("obj","-1","ground")
   while uo.findcount() > 0
      uo.findtype("ob","-1","ground")
      UO.grab(0,"finditem")
      uo.print("Found "+str(uo.findcount()))     
      wait(1000)
   wend
   end sub
   

но так не получается, Он поднимает тока 5-6 вещей а потом говорит типа "I can't pick up". Причем после этого, получается такой баг, что он вобще больше ничего сдвинуть не может... Ктонить может объяснить мне, что там такое??? Илинапишите правильный вариант... Спасибо....

Posted: 2004-05-16 09:59:11
by Xpol
это не баг :) просто ты пытаешься поднять что-то что прибито к полу и не можешь а после этого пытаешся поднять еще вещь только у тебя в руках та что ты не смог поднять :)
нада сначала посмотреть все что нашел и записать в игнор то что не можешь поднять ... как-то так наверное
а вообше попробуй поставить задержку после файнда перед грабом может поможет и ничего не перетаскивай руками во время работы скрипта иначе получишь месагу типа олреди холдинг эн айтем (про этот баг говоришь ?) просто нельзя одновременно перетаскивать более одного предмета :)

Posted: 2004-05-16 15:15:25
by Lord Ruslan Nightmare

Code: Select all

sub move() 
   var obj
   var cont
   var i
   uo.addobject("cont")
   while uo.targeting()
      wait(50)
   wend
   uo.addtype("obj")
   while uo.targeting()
      wait(50)
   wend
   uo.set("finddistance","1")
   uo.setreceivingcontainer("cont")
   uo.ignorereset()
   uo.findtype("obj","-1","ground")
   while uo.findcount() > 0
      UO.grab(0,"finditem")
      uo.print("Found "+str(uo.findcount()))     
      uo.ignore("finditem")
      i = 0
      while uo.containerof("finditem") <> uo.getserial("cont") and i < 10
        i = i + 1
        wait(100)
      wend
      uo.findtype("obj","-1","ground")
   wend
   uo.ignorereset()
end sub

Posted: 2004-05-16 22:38:54
by Yoko
Xoma wrote:

Code: Select all

   
   uo.findtype("obj","-1","ground")
   while uo.findcount() > 0
      uo.findtype("ob","-1","ground")
      UO.grab(0,"finditem")
      wait(1000)
   wend


согласно твоему коду даже если не существует вторая например вещь ты всё равно один раз делаешь граб на неё.
правильный вариант:

Code: Select all

   
   uo.findtype("obj","-1","ground")
   while uo.findcount() > 0
      UO.grab(0,"finditem")
      wait(1000)
      uo.findtype("ob","-1","ground")
   wend

ну и конечно лучше сделать не конкретную задержку а проверять пока вещь не положится, как писалолсь выше

Posted: 2004-05-16 23:16:42
by Xoma
точно.... ступил.... спасибо...=)