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

Страница 7 из 7 ПерваяПервая ... 34567
Показано с 151 по 168 из 168

Тема: Полный редактор и скрипты.

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Re: Полный редактор и скрипты.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Видимо так) Мы же не имеем доступа к компьютеру игрока? Кодиак вроде для радара сделал голосовые сообщения, но там средствами игры как я понял(и сэмплы из игры)
    Нет, пока не имеем. Тьфу блин, страшное слово то какое ). А семплы из игры через SayToGroup() насколько я помню, играются.
    Просто скриптом сервер будет играть музыку только сам себе. )

  2. #2

    Re: Полный редактор и скрипты.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    А самих игроков тоже удалит? Вот пробовал вчера по образу Dogfight_01, наземка удалялась, спасибо. Dogfight_02 буду посмотреть

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

    Смотрю Dogdfight_02. Интересно, до этого думал, что MissionNumberListener = -1 это только для "прослушки" триггеров в подмиссиях...

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

    Вот пробовал вчера к подмиссиям .cs приписывать, чтобы там указать подчистку объектов и делать перезагруз самой себя, ты как-то высказывал такую идею, что чистится лучше если и рождение, и чистка в одной подмиссии. К сожалению все постер, не могу привести, но в-общем не получилось с перезагрузкой миссии, хотя по одному разу загружались. Отталкивался в целом от Dogfight_01, только в подмиссиях делал еще перезагруз по тикам. Но оставил старый принцип, похожий как в Dogfight_02: т.е. миссия загружает по тикам подмиссии, а уже в .cs к ним указать подчистку объектов. Ну, в принципе, можно как у тебя сделать подчистку в .cs к основной миссии, а тогда .cs подмиссий вообще можно удалить за ненадобностью.
    Тики в подмиссиях имхо хреновая идея. попробуй в 01 убрать проверку в OnMissionLoaded на номер миссии, и посмотри что получится. Я сдуру включил ускорение, боб здох за 5 сек. От, имхо, то же самое будет.

    Грузить из хоста, а чистить из подмиссии - немного не понял. А как подмиссия узнает, что чистится пора?

  3. #3

    Re: Полный редактор и скрипты.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Да я тогда неправильно твою идею понял, думал, что возрождение и чистка должно быть в одной подмиссии. Ну и ничего из этого соответственно не вышло, кроме загрузки миссии по одному разу. А чистка вроде срабатывала, хотя долго не имел возможности погонять. А тики у тебя самого же вроде стоят? Вот кусок host_01 из Dogfight_02:
    Код:
    public override void OnTickGame()
        {
            base.OnTickGame();
            if (Time.tickCounter() % 3000 == 0)
            {
                LoadMission("missions/Multi/Dogfight/blue01.mis");
                Timeout(45, () => { LoadMission("missions/Multi/Dogfight/red01.mis"); });
    У меня такие же, первая ч-з 10 сек, вторая через кажется 30 сек., третья ч-з 1 мин и т.д.

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

    Кстати, а // destroy all own air units
    AiAirGroup[] airGroups = GamePlay.gpAirGroups(army);
    if (airGroups != null) // required check!
    {
    не убивает случайно игроков?
    Мы похоже на разных языках разговариваем . Немного определимся в терминах и определениях.

    Хост - это миссия стартовая. Именно та, которая загружается самой первой - ее загружает сервер. Все остальные - это подмиссии. Даже если мы загрузим нашу стартовую миссию еще раз в процессе битвы, это тоже, уже будет подмиссия. Т.е. хост всегда имеет номер - 0.

    В первом примере подмиссия все делает сама, во втором все делает хост, подмиссия вообще без мозгов. А какой метод лучше использовать или как их сочетать - решать уже мисмейкеру. Т.е. можно и так и так. Идея фикс именно в "контроле рождаемости", а не в том, кто этим занимается.

    Каждый актор имеет два имени. Одно - короткое (уникальное в пределах своей миссии), второе - полное (уникальное в пределах битвы). Длинное имя состоит из номера миссии, загрузившей актора, а короткого имени. Метод Name() актора возвращает полное имя. Выделив из полного имени номер, мы сможем узнать, к какой миссии он принадлежит. ClearOwnActors() именно этим и занимается, т.е. никакие левые акторы затронуты не будут, в том числе и самолеты игроков. Аналог этого метода из догфайт_02 может, действительно, при вызове без параметров убить вообще все живое. Рестарт

    Загрузка миссии. То что мы написали в файле и скрипте, с точки зрения битвы миссией не является, как не являются автомобилем его чертежи. Скрипт - это начинка автомобиля, файл миссии - внешний обвес. Т.е. это по сути чертеж, схема будущей миссии. Загружая миссию, мы по сути собираем автомобиль по чертежам. Т.е. проделав это несколько раз, мы получим несколько одинаковых автомобилей а не один обновленный.

    А теперь что хотел этим сказать. Если в описании по нашему автомобилю сказано, что он самостоятельно, каждые 10 минут должен собрать такой же - представляем картину. Мы собрали первый автомобиль и забыли за него. Через 10 минут их будет уже двое. Через 20 минут - четверо. Через 30 - 8 штук. И так далее до бесконечности. Вот то же самое будет, если миссии дать возможность грузить саму себя по тикам.

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

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

    Re: Полный редактор и скрипты.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Да, и можно ли чистить севшие боты-бомберы? А то их скапливается просто бешенное количество.
    Убирает после вынужденной и после посадки через 5 минут. Для твоей миссии таймаут можно уменьшить, если они садятся там, где их не видно.

    Код:
        public override void OnAircraftCrashLanded(int missionNumber, string shortName, AiAircraft aircraft)
        {
            base.OnAircraftCrashLanded(missionNumber, shortName, aircraft);
            Timeout(300, () =>
            { destroyPlane(aircraft); }
                );
        }
        public override void OnAircraftLanded(int missionNumber, string shortName, AiAircraft aircraft)
        {
            base.OnAircraftLanded(missionNumber, shortName, aircraft);
            Timeout(300, () =>
            { destroyPlane(aircraft); }
                );
        }
    ...зелёные горят.
    ----------------------

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

  5. #5

    Re: Полный редактор и скрипты.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Это вот это:
    private void DestroyMissionActors(int _MissionNumber = -1)
    Т.е. если убрать -1 , то произойдет перезагруз миссии?
    Не надо ничего убирать. Просто вставить в нужном месте вот такую строку:

    Код:
    DestroyMissionActors();
    У мну такое чувство, что примеры вообще не смотрелись. Как только вы загрузите новую миссию с бобрами, все старые бобры, живые или мертвые, в воздухе или в ангаре, исчезнут.

    Кстати со статиками, за исключением рабочей артиллерии, мы вообще ничего сделать не можем. К огромному сожалению
    Крайний раз редактировалось Small_Bee; 06.09.2011 в 16:17.

  6. #6

    Re: Полный редактор и скрипты.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Точно, Dogfight_01 загрузился только брифинг (карта), зайти так и не удалось. Dogfight_02 еще не успел посмотреть, только скрипты.
    Если нет кнопки летать (это если в сингле или в редакторе запускаешь без назначенного игроку самолета) - нажми ескейп - там в меню будет "Летать". Вуаля.

Страница 7 из 7 ПерваяПервая ... 34567

Ваши права

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