???
Математика на уровне МГУ

Показано с 151 по 175 из 789

Тема: Вопросы.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #6
    3GIAP.ru Аватар для -atas-
    Регистрация
    26.12.2001
    Адрес
    Москва
    Возраст
    54
    Сообщений
    2,992
    Записей в дневнике
    1

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    да, корабль - это AiGroundActor и AiGroundGroup ,с типом Ship , всех кораблей страны найти можно так :
    Код:
    foreach (AiGroundGroup gg in GamePlay.gpGroundGroups(army))
            {
                if (gg.Type == AiGroundGroupType.Ship)
                      {// тут делаем с ними что нам нужно, например 
                                if (gg != null) 
                                       (gg as AiGroundActor).Destroy();  // уничтожаем
                      }
            }
    Тогда получается, что уничтожаем через 55 минут после рождения так?

    Код:
        //Ships will die after 55 min when counted from their birth
        public override void OnActorCreated(int missionNumber, string shortName, AiActor actor)
        {
            foreach (AiGroundGroup gg in GamePlay.gpGroundGroups(army))
            {
                if (gg.Type == AiGroundGroupType.Ship)
                      {// тут делаем с ними что нам нужно, например 
                            Timeout (3300, () =>     
                            {    if (gg != null) 
                                       (gg as AiGroundActor).Destroy();  // уничтожаем
                            }
                      }
            }
        }
    OnActorCreated относится к акторам, а gg.Type к группам. Актор он же каждый по отдельности создается OnActorCreated, тогда зачем их всех перебирать foreach ? Перебор foreach пойдет только по созданной группе или по всем, что есть на карте уже? Если так, тогда они все и уничтожатся через 55 минут, а этого не нужно.

    upd.
    А так не будет работать? Похожим скриптом машинки уничтожаются нормально.

    Код:
        public override void OnActorCreated(int missionNumber, string shortName, AiActor actor)
        {
            base.OnActorCreated(missionNumber,shortName,actor);
            //ships will die after 55 min when counted from their birth
            if ((actor as AiGroundActor).Type() == maddox.game.world.AiGroundActorType.Ship)  
                    Timeout (3300, () => 
                                        { if (actor != null)
                                            { (actor as AiGroundActor).Destroy(); }
                                        }
                            );
        }
    Крайний раз редактировалось -atas-; 27.05.2011 в 22:08.
    ...зелёные горят.
    ----------------------

    i7-860@3.8, 4GB, ati4890-2GB, 1680x1050, Win7-64.

Ваши права

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