Oskom Forums

Oskom Forums


Добро пожаловать на Oskom Forums.
 
 
Сейчас на шардах UO Oskom
 
+ Ответить в теме
Показано с 1 по 6 из 6
  1. #1

    По умолчанию В UOScript зависает цикл вида...

    Сабж:

    repeat
    [действия]
    Until(FindObject(PackIndex, 3577, HlopokID) = False);

    Т.е. проходит внешний цикл раза два-четыре после чего мёртвой хваткой отказывается выходить из данного цикла, кто-нибудь сталкивался?
    ЗЫ: При использовании нагрузка на проц мгновенно взлетает до 100 процентов, к чему бы это?

  2. Master

    Регистрация
    25.05.2002
    Адрес
    одинокая Сволочь <Причинять добро и наносить пользу>
    Сообщений
    1,439
    #2

    По умолчанию

    эм...
    FindObject пробегает по всему списку предметов в контейнере и ищет первый попавшийся с заданными параметрами...
    список предметов "у ей унутрё" организован так, что каждый элемент списка имеет ссылку на последующий...
    так вот оччень НЕ рекомендуется вызывать функции поиска и получения списков, если в этот момент может измениться общее количество предметов в контейнере...
    т.к. в этом случае поиск может пойти по несуществующим ссылкам в космос...
    что, собственно, как я понял, он и делает...

  3. #3

    По умолчанию

    Не знаю даже, в контейнере принципиально один предмет такого типа - это хлопок, его количество изменяется но кучка вроде как одна... Видимо ваше замечание действительно и в отношении количества в стопке?

  4. #4

    По умолчанию

    Он не совсем виснет, он зацикливается, т.е. при полном отсутствии хлопка функция не возвращает трую что немножко странно... Конечно избежать таких трипов проверками элементарно, просто стало интерестно а как это он так...

  5. Master

    Регистрация
    25.05.2002
    Адрес
    одинокая Сволочь <Причинять добро и наносить пользу>
    Сообщений
    1,439
    #5

    По умолчанию

    тогда вообще-то так...
    если в этот раз я правильно понял...

    repeat
    [действия]
    Until not FindObject(PackIndex, 3577, HlopokID);

    и еще...
    при полном отсутствии хлопка она True и не вернет...

  6. #6

    По умолчанию

    Фалс я хотел сказать, очепятка... Спасибо ещё раз! Вы меня просто спасаете...

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения