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

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

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

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

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

    Re: Вопросы.

    Несколько вопросов:
    1) Каким образом можно "перекрасить" филд, т.е. отдать его от синих красным, например, по срабатыванию триггера?
    Если делать это загрузкой новой подмиссии, в ней должны присутствовать все старые точки спауна или только одна точка спуна, которая меняется с синего на красный? Исчезнет ли старая синяя точка спауна с аэродрома, если туда погрузится красная?

    2) Старая линия фронта тоже исчезнет, если загрузить новую линию фронта в подмиссии?

    3) Как видоизменить код, чтобы надписи в момент подгрузки под-миссий были разные для синей и для красной стороны?
    Код:
       // loads my sub-missions
        public override void OnTickGame()
        {
    
                if (Time.tickCounter() % 72000 == 18000) // 40-10
                {
                GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmGroundv1_0.mis");
                GamePlay.gpHUDLogCenter("Protect friendly shipping in the channel near France!");
                }
    
                if (Time.tickCounter() % 72000 == 71999) // 40-40 
                {
                    GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmBombersv1_0.mis");
    				GamePlay.gpHUDLogCenter("Intel: Enemy bombers are heading to blue airfields!"); 
    			}
            
                if (Time.tickCounter() % 72000 == 45000) // 40-25
    			{
                    GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/128BoF/128BoFsmBombersv1_0a.mis");
                    GamePlay.gpHUDLogCenter("Intel: Enemy bombers are heading to red airfields in France!"); 
    			}
    4) Для задания целей в миссии очень хочется предоставить игрокам шорт-кей, показывающий текущие цели, т.е.:

    - в чат игры каждые 10 минут пишем: "Press Shift-S to see current mission objectives! Нажмите Shift-S, чтобы посмотреть текущие цели миссии!" (Shift-S не занят по умолчанию по-моему?)
    - при нажатии клиентом Shift-S выводим на экран последнюю надпись из предыдущего пункта (3), причем разную для разных сторон

    Какой код добавить в скрипт, чтобы это происходило?

    Текущая миссия и скрипт здесь http://www.sukhoi.ru/forum/showthrea...t=68112&page=2
    Хочется уже дать игрокам осмысленные задачи, чтобы они могли влиять на результаты миссий на сервере.
    ...зелёные горят.
    ----------------------

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

  2. #2
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    47
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от Geniok Посмотреть сообщение
    Для оффлайн кампаний. Создаем свою кампанию. Устанавливается через инсталятор. ВСЕ инсталяторы, что я пробовал при редактировании ini-файлов сами ставят знак "=".
    Понятно. Пока про "=" не готов ответить, пока наверное стоит просто предложить игрокам вставлять секцию в инишник, без инсталятора.

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    После беты?
    Не успею, после релиза скорее.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Несколько вопросов:
    1) Каким образом можно "перекрасить" филд, т.е. отдать его от синих красным, например, по срабатыванию триггера?
    Если делать это загрузкой новой подмиссии, в ней должны присутствовать все старые точки спауна или только одна точка спуна, которая меняется с синего на красный? Исчезнет ли старая синяя точка спауна с аэродрома, если туда погрузится красная?
    2) Старая линия фронта тоже исчезнет, если загрузить новую линию фронта в подмиссии?
    не готов точно ответить, можно попробовать подгружать миссию с одной точкой линии фронта на интересующем аэродроме.
    Цитата Сообщение от -atas- Посмотреть сообщение
    3) Как видоизменить код, чтобы надписи в момент подгрузки под-миссий были разные для синей и для красной стороны?
    смотреть армию игрока и выдавать ему соответствующее сообщение

    Цитата Сообщение от -atas- Посмотреть сообщение
    4) Для задания целей в миссии очень хочется предоставить игрокам шорт-кей, показывающий текущие цели, т.е.:

    - в чат игры каждые 10 минут пишем: "Press Shift-S to see current mission objectives! Нажмите Shift-S, чтобы посмотреть текущие цели миссии!" (Shift-S не занят по умолчанию по-моему?)
    - при нажатии клиентом Shift-S выводим на экран последнюю надпись из предыдущего пункта (3), причем разную для разных сторон

    Какой код добавить в скрипт, чтобы это происходило?

    Текущая миссия и скрипт здесь http://www.sukhoi.ru/forum/showthrea...t=68112&page=2
    Хочется уже дать игрокам осмысленные задачи, чтобы они могли влиять на результаты миссий на сервере.
    перехватывать кнопки, не получится, можно вот так, например :
    Код:
    public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
        {
            base.OnPlaceEnter(player, actor, placeIndex);
            AiAircraft aircraft = actor as AiAircraft; 
            
            if (aircraft != null)
            switch (aircraft.Army())
            {                
                case 1:
                    if (aircraft.Type() == AircraftType.Bomber)
                    { GamePlay.gpHUDLogCenter(new Player[] {player},"Red Bomber, Bomb it all, hitler caput"); }
                    else { GamePlay.gpHUDLogCenter(new Player[] { player }, "Red Fighter, fight them all"); }
                    break;
                case 2:
                    if (aircraft.Type() == AircraftType.Bomber)
                    { GamePlay.gpHUDLogCenter(new Player[] { player }, "Das bomber!"); }
                    else { GamePlay.gpHUDLogCenter(new Player[] { player }, "Das jager!"); }
                    break;
    
            }
        }
    
        public override void OnAircraftTookOff(int missionNumber, string shortName, AiAircraft aircraft)
        {
            base.OnAircraftTookOff(missionNumber, shortName, aircraft);
    
            if (GamePlay.gpPlayer().Place() != aircraft)
                return;
            
            switch (aircraft.Army())
            {
                case 1:
                    if (aircraft.Type() == AircraftType.Bomber)
                    { GamePlay.gpHUDLogCenter(new Player[] { GamePlay.gpPlayer() }, "Red Bomber, Bomb it all, hitler caput"); }
                    else { GamePlay.gpHUDLogCenter(new Player[] { GamePlay.gpPlayer() }, "Red Fighter, fight them all"); }
                  break;
                case 2:
                    if (aircraft.Type() == AircraftType.Bomber)
                    { GamePlay.gpHUDLogCenter(new Player[] { GamePlay.gpPlayer() }, "Das bomber!"); }
                    else { GamePlay.gpHUDLogCenter(new Player[] { GamePlay.gpPlayer() }, "Das jager!"); }
                  break;
    
            }
        }
    при занятии самолёта игроком - ему напишется задание в зависимости от стороны и типа самолёта - бомбер/нет - это первая функция, и после взлёта - по той же логике - вторая. Можно с таймаутом сообщение показывать.
    Don't happy, be worry

  3. #3

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    не готов точно ответить, можно попробовать подгружать миссию с одной точкой линии фронта на интересующем аэродроме.
    Тут в том проблема, что даже если так сделать, обратно вернуть никак не получится... Старый флажок то никуда не денется.

    Вот и еще одно пожелание нарисовалось
    Было бы чудесно, если бы флажки тоже попали в отслеживаемую статику, а еще лучше, что бы их можно было прикрепить к какой-ни-будь технике/кораблику.

  4. #4
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Тут в том проблема, что даже если так сделать, обратно вернуть никак не получится... Старый флажок то никуда не денется.

    Вот и еще одно пожелание нарисовалось
    Было бы чудесно, если бы флажки тоже попали в отслеживаемую статику, а еще лучше, что бы их можно было прикрепить к какой-ни-будь технике/кораблику.
    Нужен прямой доступ ко всем объектам, с возможностью в любое время узнать его состояние или уничтожить.
    В идеале - просто добавить объект и подключиться к событиям произвольных объектов.
    Через подгрузку миссии вариант не нравится тем, что подгружается и скрипт, и из старой миссии объекты новой недоступны, и из новой объекты старой.
    Нужен глобальный класс битвы, с доступом к любым объектам и с доступом из него в любой скрипт загруженной миссии и с обратным доступом.
    И не только к объектам, но и к игрокам (онлайн).
    Возможно, это решится когда удастся задействовать GameServerDef.
    В любом случае, скрипты, не поддающиеся отладке - это не тот инструмент, которым можно сделать серьёзный проект (можно, но геморройно)

  5. #5

    Re: Вопросы.

    Цитата Сообщение от Mirnyi Посмотреть сообщение
    Нужен прямой доступ ко всем объектам, с возможностью в любое время узнать его состояние или уничтожить.
    В идеале - просто добавить объект и подключиться к событиям произвольных объектов.
    Через подгрузку миссии вариант не нравится тем, что подгружается и скрипт, и из старой миссии объекты новой недоступны, и из новой объекты старой.
    Нужен глобальный класс битвы, с доступом к любым объектам и с доступом из него в любой скрипт загруженной миссии и с обратным доступом.
    И не только к объектам, но и к игрокам (онлайн).
    Возможно, это решится когда удастся задействовать GameServerDef.
    В любом случае, скрипты, не поддающиеся отладке - это не тот инструмент, которым можно сделать серьёзный проект (можно, но геморройно)
    Имхо, вся основная логика все равно уйдет в собственную реализацию ABattle, а в скриптах заложены будут базовые действия, необходимые для самой миссии, не более. Насчет недоступности объектов - присвой IsMissionListener значение меньше нуля - будет слушать все миссии. Событие вызовется и передаст короткое имя и номер миссии, инициировавшей событие. Правильно получать полные имена акторов для поиска через GamePlay можно, посмотрев на стат. класс ActorName.

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

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

    Re: Вопросы.

    Каким скриптом можно уничтожить всех акторов в миссии перед ее перезагрузкой (и ручной и плановой)?

    Какие варианты запуска такого скрипта существуют? Можно ли запускать из командной строки сервера, из консоли игры, или только основным скриптом миссии по времени?

    Вопрос неоднократно задавался на форуме 1С владельцами серверов, также связан вот с этим багом http://www.sukhoi.ru/forum/showthrea...=1#post1610136

    Невозможно отлаживать онлайн-миссии в полном редакторе если в них находятся акторы из предыдущей миссии, а выделенные сервера просто виснут при перезагрузке.
    ...зелёные горят.
    ----------------------

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

  7. #7

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Каким скриптом можно уничтожить всех акторов в миссии перед ее перезагрузкой (и ручной и плановой)?
    Не тестировал, но можно попробовать так

    Код:
    foreach (int army in GamePlay.gpArmies())
                {
                    foreach (AiAirGroup group in GamePlay.gpAirGroups(army))
                    {
                        if (ActorName.MissionNumber(group.Name()).Equals(MissionNumber))
                        {
                            AiActor[] members = group.GetItems();
                            for (int i = members.Length - 1; i > -1; i--)
                            {
                                (members[i] as AiAircraft).Destroy();
                            }
                        }
                    }
                    foreach (AiGroundGroup group in GamePlay.gpGroundGroups(army))
                    {
                        if (ActorName.MissionNumber(group.Name()).Equals(MissionNumber))
                        {
                            AiActor[] members = group.GetItems();
                            for (int i = members.Length - 1; i > -1; i--)
                            {
                                (members[i] as AiGroundActor).Destroy();
                            }
                        }
                    }
                }
    Миссия удаляет только "своих" акторов. Если надо грохнуть всех, убираем строки, выделенные синим.

  8. #8
    Старший Офицер Форума
    Регистрация
    15.02.2002
    Адрес
    Moscow
    Возраст
    47
    Сообщений
    6,905
    Images
    51

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Тут в том проблема, что даже если так сделать, обратно вернуть никак не получится... Старый флажок то никуда не денется.

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


    Цитата Сообщение от -atas- Посмотреть сообщение
    Крайняя бета вылетает при попытке разместить объект "аэродром". Пришлось откатиться на Стим.
    да, спасибо, нашли исправили, в патче должно быть

    Цитата Сообщение от -atas- Посмотреть сообщение
    Покрытие аэродрома как-то выбирается? Один раз аэродром отрендерился с аэродромной травкой, другой раз просто поле с пшеницей ) Бетонку как выбрать?
    Не знаю, после выходных постараюсь узнать, у меня бетонка родилась

    Цитата Сообщение от -atas- Посмотреть сообщение
    Как можно объекты сгруппировать и группу сохранить в файл? Объект аэродром в файл не сохраняется кстати.[COLOR="Silver"]
    Выделить группу объектов с <Alt>, потом правой кнопкой мыши -> сохранить в файл.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Подскажите, пожалуйста, при размещении объекта "аэродром" поверх зашитого в карту аэродрома, при спауне на стоянках в онлайне будут использованы аэродромные пункты аэродрома карты или вновь созданного?

    Возможен ли "старт на стоянке", если не создавать аэродромные пункты, а просто поставить аэродром?
    Не знаю, надо смотреть, у меня сейчас игры нет.
    Don't happy, be worry

  9. #9

    Re: Вопросы.

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

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

    Re: Вопросы.

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

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

    Если нет аэродромных пунктов, старт на стоянке происходит по внутреннему кругу аэродрома, если не создана полоса и по внешнему кругу, если полоса создана.

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

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    А, если так, то вопрос с динамической линией фронта можно считать решенным.
    Остается вопрос как поменять синий респаун с синими самолетами на красный респаун с красными самолетами при передвижке линии фронта. Надеюсь, респауны тоже заменяются. Пока не проверял, т.к осваиваю триггеры.
    ...зелёные горят.
    ----------------------

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

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

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    Выделить группу объектов с <Alt>, потом правой кнопкой мыши -> сохранить в файл.
    А как их потом можно разгруппировать? Держа ALT и последовательно кликая их не удалось, как и как-либо по-другому (
    Аэродром в файл не сохраняется как и группа с ним.
    Какое расширение должно быть у файла?

    Как к миссии можно подключить скрипт, чтобы при этом продолжали работать триггеры, заданные в полном редакторе?
    Крайний раз редактировалось -atas-; 05.05.2011 в 12:26.
    ...зелёные горят.
    ----------------------

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

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

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    При подгрузке линии фронта в миссии - старая должна удаляться, полностью замещаясь новой.
    Каким образом при этом можно :
    - "перекрасить" точки спауна, например, с синего на красный?
    - заменить синие зенитки на аэродроме на красные, если не все были уничтожены в миссии?
    - заменить список доступных крафтов на спауне с синих на красные?

    Информация нужна для 1го этапа работ над следующей миссией http://www.sukhoi.ru/forum/showthrea...=1#post1613505
    ...зелёные горят.
    ----------------------

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

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

    Re: Вопросы.

    Спасибо за ответы.

    Цитата Сообщение от naryv Посмотреть сообщение
    перехватывать кнопки, не получится
    В Арма2 при заходе на сервер с миссией Warfare (битва за ресурсы) клиент сразу получает кнопку вызова меню (с клавиатуры), которого в самой игре нет, т.е. она назначена в миссии. Кнопка вызывает командное меню, по которому идет навигация кнопками 1-10 (как у нас переговоры). Это меню строительства объектов, управления ресурсами, голосования за командира, выбора целей, то есть всего необходимого в режиме "битва за ресурсы". Всё это есть в миссии, моды ставить не нужно. Как планируется реализовать режим "битва за ресурсы", анонсированный Олегом, если миссия не может перехватывать нажатия клавиатуры?
    ...зелёные горят.
    ----------------------

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

  14. #14

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Спасибо за ответы.



    В Арма2 при заходе на сервер с миссией Warfare (битва за ресурсы) клиент сразу получает кнопку вызова меню (с клавиатуры), которого в самой игре нет, т.е. она назначена в миссии. Кнопка вызывает командное меню, по которому идет навигация кнопками 1-10 (как у нас переговоры). Это меню строительства объектов, управления ресурсами, голосования за командира, выбора целей, то есть всего необходимого в режиме "битва за ресурсы". Всё это есть в миссии, моды ставить не нужно. Как планируется реализовать режим "битва за ресурсы", анонсированный Олегом, если миссия не может перехватывать нажатия клавиатуры?
    Если не ошибаюсь, все это можно будет реализовать с помощью доп. библиотеки на стороне клиента.

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

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Если не ошибаюсь, все это можно будет реализовать с помощью доп. библиотеки на стороне клиента.
    Коммюнити очень маленькое + моды не все будут ставить = разделение онлайна. Такая библиотека должна входить в стим-версию имхо.

    Как онлайн-миссию тестить прямо из редактора? Много времени занимает бегание по меню, чтобы сервер стартонуть (((

    Крайняя бета вылетает при попытке разместить объект "аэродром". Пришлось откатиться на Стим.

    Покрытие аэродрома как-то выбирается? Один раз аэродром отрендерился с аэродромной травкой, другой раз просто поле с пшеницей ) Бетонку как выбрать?

    Как можно объекты сгруппировать и группу сохранить в файл? Объект аэродром в файл не сохраняется кстати.

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

    Подскажите, пожалуйста, при размещении объекта "аэродром" поверх зашитого в карту аэродрома, при спауне на стоянках в онлайне будут использованы аэродромные пункты аэродрома карты или вновь созданного?

    Возможен ли "старт на стоянке", если не создавать аэродромные пункты, а просто поставить аэродром?
    ...зелёные горят.
    ----------------------

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

  16. #16
    Инспектор
    Регистрация
    12.08.2008
    Адрес
    Новосибирск
    Сообщений
    5,345

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    Не успею, после релиза скорее.
    В связи с отложенным релизом ничего по срокам не изменилось?

Ваши права

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