Просмотр полной версии : В UOScript зависает цикл вида...
Сабж:
repeat
[действия]
Until(FindObject(PackIndex, 3577, HlopokID) = False);
Т.е. проходит внешний цикл раза два-четыре после чего мёртвой хваткой отказывается выходить из данного цикла, кто-нибудь сталкивался?
ЗЫ: При использовании нагрузка на проц мгновенно взлетает до 100 процентов, к чему бы это? :)
Alex M.A.
31.05.2004, 14:21
эм...
FindObject пробегает по всему списку предметов в контейнере и ищет первый попавшийся с заданными параметрами...
список предметов "у ей унутрё" организован так, что каждый элемент списка имеет ссылку на последующий...
так вот оччень НЕ рекомендуется вызывать функции поиска и получения списков, если в этот момент может измениться общее количество предметов в контейнере...
т.к. в этом случае поиск может пойти по несуществующим ссылкам в космос...
что, собственно, как я понял, он и делает...
Не знаю даже, в контейнере принципиально один предмет такого типа - это хлопок, его количество изменяется но кучка вроде как одна... :) Видимо ваше замечание действительно и в отношении количества в стопке? :)
Он не совсем виснет, он зацикливается, т.е. при полном отсутствии хлопка функция не возвращает трую что немножко странно... :) Конечно избежать таких трипов проверками элементарно, просто стало интерестно а как это он так... :)
Alex M.A.
31.05.2004, 14:42
тогда вообще-то так...
если в этот раз я правильно понял...
repeat
[действия]
Until not FindObject(PackIndex, 3577, HlopokID);
и еще...
при полном отсутствии хлопка она True и не вернет...
Фалс я хотел сказать, очепятка... :) Спасибо ещё раз! :) Вы меня просто спасаете... :)
Powered by vBulletin™ Version 4.0.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot