баг uo.findtype

Requests of new features and reports on bugs needs to be fixed

Moderators: Murderator+, Murderator

doomstar
Posts: 18
Joined: 2005-05-21 00:16:16

баг uo.findtype

Post by doomstar »

я давно страдаю от одного бага, при котором обьекты изначально имеют правильный ID а потом вдруг имеют ID 0xFFFFFFFF.
Я решил подробнее разобраться с проблемой, вот мои результаты:

Кладу на землю кувшинчик:

Code: Select all

ID=0x400F4C9A Type=0x1F9D WUKWLMD Name=
Quantity: 1  Colour: 0x0000  Layer: 0  Has: 0
X=1426 Y=1695 Z=0 C=0xFFFFFFFF F=0x20


делаю в консоле ,ignore 0x400F4C9A. смотрим его опять:

Code: Select all

ID=0x400F4CA4 Type=0x0FF6 YUKWLMD Name=
Quantity: 1  Colour: 0x0000  Layer: 0  Has: 0
X=1427 Y=1696 Z=0 C=0xFFFFFFFF F=0x20 ignored


Теперь перетаскиваем этот кувшинчик себе в пак:

Code: Select all

ID=0xFFFFFFFF Type=0x0FF6 6? Name=
Quantity: 1  Colour: 0x0000  Layer: 0  Has: 1
X=129 Y=67 Z=0 C=0x40141BAA F=0x20 ignored


И видим ужасную вещь... ID кувшинчика почемуто решило умереть.
Этот глюк возникает иногда по непонятным причинам (тоесть не только при таскании кувшинчиков).

Пожалуйста разбиритесь, ибо ignore("finditem") такие ID не игнорит и цикл поиска через fyndtype зацикливается на этой веще до бесконечности...

А вообще в идеале, чтобы создавался массив FindItems[n]
Тогда проблем с зацикливанием не будет
Да и в перловом скрипт-модуле будет больше возможностей! )
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

тип после игнора изменяется. Посмотри сам
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

flake wrote:Скорее он изменяется после перетаскивания. Игнор никак не может изменить тип вещи.


я так понимаю автор ищет командой uo.FindType по первому типу, но по его кодам-во 2 ом и 3ем случае он изменённый.
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Уже как то была похожая тема, там кто-то обьяснил эту проблему. Щас поищу.
doomstar
Posts: 18
Joined: 2005-05-21 00:16:16

Post by doomstar »

ой, с выводами INFO запутался мальца, просто один кувшинчиков у меня была туча и некоторые были заполненые некоторые нет.
Но идея вобщем остаётся такойже.. если вещь заигнорена и её перетащить с земли в пак, то её ID умрёт
doomstar
Posts: 18
Joined: 2005-05-21 00:16:16

Post by doomstar »

Пока разбирался с этой проблемой нашёл выход...
перед перетаскиванием в пак снять с вещи игнор, потом перетащить в пак, потом проверить наличие вещи в паке. Если вещи в паке нету - вернуть игнор на место.

Code: Select all

sub TakeAllFromGround() {
   uo::ignorereset();
   $bpack=uo::getserial('backpack');
   uo::set("finddistance","1");
   uo::findtype("-1","-1","ground");
   while(uo::findcount()) {
      $ser=uo::getserial("finditem");
      uo::print($ser);
      if($ser ne uo::getserial('self')) {
         uo::ignore($ser,"off");
         uo::grab(0,$ser);
         &wait(650);
      }
      if(uo::containerof($ser) ne $bpack) {
         uo::ignore("finditem","on");
         uo::print("Can't GET");
      }
      uo::findtype("-1","-1","ground");
   }
   uo::ignorereset();
}


Сори за синтаксис, перехожу на перловый script.dll :)
(кстати всем рекомендую)
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Скоро будудома;) добъю трасивовку%)
admir
Posts: 528
Joined: 2005-01-13 07:20:54

Post by admir »

Code: Select all

uo::containerof($ser)

что это ?
все понял )
Возвращает параметр обьекта object (по умолчанию - персонажа игрока) - контейнер, в котором находится. 0xFFFFFFFF означает неизвестно или на земле.
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Я чего скажу, после длительного поиска с игнором одних и тех же объектов в сумочке на полу, они стали иметь ID = 0xFFFFFFF и помог мне перезапуск Injection.

Массив найденных вещей я организовал тут: viewtopic.php?p=40604#40604
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Ресенд не пробовали в качестве лекарства?
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Edred wrote:Ресенд не пробовали в качестве лекарства?

Не лечит. Пробывал.
doomstar
Posts: 18
Joined: 2005-05-21 00:16:16

Post by doomstar »

угу, нелечит...
YOKO, замути нам командочку обнуления памяти инжекта, чтобы глюки оттуда убирать.
Типа обнуляем память, потом делаем resend, открываем все сумки заного и опана - инжа в здравой памяти ))
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

для зануления когдато был такой форгет... но сработает ли...
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Grin wrote:для зануления когдато был такой форгет... но сработает ли...

Форгет - забывает что-то там в инже, т.е. с параметром, а что я ему дам в качестве параметра?
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Так просили зануление вот и держите;)
может в в сочетании с игнором оно както работать будет более норм..
у меня нету "свежих" исходников...
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Grin wrote:Так просили зануление вот и держите;)
может в в сочетании с игнором оно както работать будет более норм..
у меня нету "свежих" исходников...

Кто бы сомневался :-D

Нифига оно не поможет. Что мы будем забывать? FindItem? А он у нас 0xFFFFFFF...
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Эх..
Ну ты прежде чем игнорить зная обаге возми да и запомни серийник...
а можеи и за игнореное сразу забыть;)
а может...
Короче нужен штат людей что бы проверить все варианты;)
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Grin wrote:Эх..
Ну ты прежде чем игнорить зная обаге возми да и запомни серийник...
а можеи и за игнореное сразу забыть;)
а может...
Короче нужен штат людей что бы проверить все варианты;)

Кароче этот штат людей всё проверил и отправляется в Request всем топиком.
doomstar
Posts: 18
Joined: 2005-05-21 00:16:16

Post by doomstar »

А реально ваще промутить всё это дело, чтобы не терялис ID объектов в инже? А то стабильность макросов сильно снижается из-за этого лага... Вот у мя макрос только от этого дела и останавливается. Потомучто нистого ни ссиго обект с которым он работает теряет ID и всё ( имее зацикл.
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

все реально только руки связаны;)
Post Reply