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

Показано с 1 по 25 из 789

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

Комбинированный просмотр

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

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение

    так вот же - http://www.sukhoi.ru/forum/showthrea...=1#post1608824 скрипт с проверкой в многоместных самолётах. Оттуда проверку можно взять.
    Тот скрипт не работал на выделенном сервере, а тольк на невыделенном, поэтому от него отказались.

    В том скрипте проверка:
    Код:
            public void _DespawnEmptyPlane(AiActor actor)
            {
                if (actor == null)
                { return; }
    
                Player[] Players = GamePlay.gpRemotePlayers();
    
                bool PlaneIsEmpty = true;
    
                foreach (Player i in Players)
                {
                    if ((i.Place() as AiAircraft) == (actor as AiAircraft))
                    {
                        PlaneIsEmpty = false;
                        break;
                    }
                }
    В нашем текущем скрипте проверка:
    Код:
       private bool isAiControlledPlane (AiAircraft aircraft) 
        {
    		if (aircraft == null) 
            { 
    			return false;
    		}
    
    		Player [] players = GamePlay.gpRemotePlayers ();
    		foreach (Player p in players) 
            {    
    			if (p != null && (p.Place () is AiAircraft) && (p.Place () as AiAircraft) == aircraft)
                { 
    				return false;
    			}
    		}
    
    		return true;
    	}
    Не могу увидеть разницы.
    p.Place () is AiAircraft должно подтвердить, что ирок все еще в самолете, если даже он сел на место штурмана?
    Или не выполняется условие p.Place () as AiAircraft) == aircraft?

    Как правильно?

    Полный код http://www.sukhoi.ru/forum/showthrea...=1#post1627122

    --- Добавлено ---

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Вот так попробуй
    Спасибо. А в чем разница, искать их как группы или как акторов? Должно быть все равно, так как:

    Сообщение от naryv Посмотреть сообщение
    да, корабль - это AiGroundActor и AiGroundGroup ,с типом Ship
    Просто интересно разобраться, почему нужно их искать через foreach и почему (с чего всё началось) этот скрипт всё кроме кораблей уничтожает, если корабли тоже AiGroundActor?

    Код:
        //Ground objects (except AA Guns) will die after 55 min when counted from their birth
    
        public override void OnActorCreated(int missionNumber, string shortName, AiActor actor)
        {
            base.OnActorCreated(missionNumber, shortName, actor);
            //Ground objects (except AA Guns) will die after 55 min when counted from their birth
            if (actor is AiGroundActor)
                if ((actor as AiGroundActor).Type() != maddox.game.world.AiGroundActorType.AAGun)
                    Timeout(3300, () =>
                    {
                        if (actor != null)
                        { (actor as AiGroundActor).Destroy(); }
                    }
                            );
        }
    ...зелёные горят.
    ----------------------

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

  2. #2

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Спасибо. А в чем разница, искать их как группы или как акторов? Должно быть все равно, так как...
    Неверно. Деталь в методе Type(). Для AiGroundActor он возвращает AiGroundActorType, для AiGroundGroup - AiGroundGroupType.
    В первом случае проверки другие, и их целая пачка:
    ShipMisc,
    ShipTransport,
    ShipSmallWarship,
    ShipDestroyer,
    ShipCruiser,
    ShipBattleship,
    ShipCarrier,
    ShipSubmarine

    Акторов у нас 39 типов, а групп всего 6.

Ваши права

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