Показать сообщение отдельно
Старый 16.12.2007, 01:11   #2
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Re: Перебор нескольких списков за цикл

Рекомендую следовать такой логике:
FOR Friend.Units=EACH Units

 ;...Тут управляем всеми юнитами: своими и чужими...

 ;Боевой ИИ (вызывается не постоянно, а изредка, 
 ;или даже вообще- только по необходимости. Тут показан простой пример.)
 IF Friend\AIDelay<MILLISECS() THEN
 Friend\AIDelay=MILLISECS()+MaxAIDelay

  ;Проверяем всех юнитов, вычленяя из списка врагов (или друзей и прочих нужных)
  For Enemy.Units=EACH Units
   IF Enemy\Nation<>Friend\Nation THEN

    ;...Тут проверяем, видит ли наш юнит врага, и задаём ему 
    ;корректные задачи в соответствии с результатом...

   ENDIF
  NEXT

  END IF

NEXT
P.S. Набирал в окне браузера, возможны опечатки.
(Offline)
 
Ответить с цитированием