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

Страница 4 из 32 ПерваяПервая 1234567814 ... КрайняяКрайняя
Показано с 76 по 100 из 789

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

  1. #76

    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();
                            }
                        }
                    }
                }
    Миссия удаляет только "своих" акторов. Если надо грохнуть всех, убираем строки, выделенные синим.

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

    Re: Вопросы.

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

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


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

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

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

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

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

  3. #78

    Re: Вопросы.

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

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

    Re: Вопросы.

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

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

    Re: Вопросы.

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

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

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

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

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

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

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

    Re: Вопросы.

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

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

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

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

    Re: Вопросы.

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

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

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

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

    Re: Вопросы.

    naryv,
    когда же мы увидим подключенную длл?

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

    Re: Вопросы.

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

    Информация нужна для 1го этапа работ над следующей миссией http://www.sukhoi.ru/forum/showthrea...=1#post1613505
    Вот, сделал пример по передвижению линии фронта, перекраске спаунов и т.д.
    missions.rar
    . Карта кресты и круги. При пролёте над аэродромом - он перекрашивается в цвет пролетевшего самолёта, линия фронта двигается, точки спауна на аэродромах становятся нового цвета. При пролёте противника над истребительными аэродромами - срабатывает триггер рождающий самолёт цвета начального аэродрома(над кругом пролетает синий - рождается спит, над крестом красный родит мессера, это чтобы одна сторона не проиграла совсем - всегда есть возможность вернуть захваченные дромы). На выделенном сервере проверял - работает как и на не выделенном. Проблема с неработающими скриптами на выделенном сервере может быть, если папка cache c атрибутом readonly - скрипт не может скомпилиться, сообщение об этом появляется в консоли сервера.
    Don't happy, be worry

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

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    Вот, сделал пример по передвижению линии фронта, перекраске спаунов и т.д.
    missions.rar
    . Карта кресты и круги. При пролёте над аэродромом - он перекрашивается в цвет пролетевшего самолёта, линия фронта двигается, точки спауна на аэродромах становятся нового цвета. При пролёте противника над истребительными аэродромами - срабатывает триггер рождающий самолёт цвета начального аэродрома(над кругом пролетает синий - рождается спит, над крестом красный родит мессера, это чтобы одна сторона не проиграла совсем - всегда есть возможность вернуть захваченные дромы). На выделенном сервере проверял - работает как и на не выделенном. Проблема с неработающими скриптами на выделенном сервере может быть, если папка cache c атрибутом readonly - скрипт не может скомпилиться, сообщение об этом появляется в консоли сервера.
    Спасибо большое, буду разбираться понемногу, если осилю )

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

    И зенитки оставшиеся мешают - вступают в перестрелку с родившимися новыми зенитками другой стороны. Придется спаунить танки, чтобы закатать зенитки в землю, а вот со спауном что делать, непонятно, он не перекрашивается. Ставить 2 разноцветных спауна рядом тоже не очень хорошо, т.к. пилоты будут в них путаться,. Может быть, можно включить в редактор такой объект как "ластик", при подгрузке которого все юниты предыдущих суб-миссий в его радиусе будут дестроиться?

    Новый спаун на новом месте при подгрузке карты тоже не появляется. А это было бы полезно.

    Возможно, есть какие-либо варианты через редактор? Если спаун оставить нейтральным и список доступных самолетов на спауне отредактировать в суб-миссии, он при подгрузке миссии изменится?
    ...зелёные горят.
    ----------------------

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

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

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Спасибо большое, буду разбираться понемногу, если осилю )
    постараюсь ответить, если вопросы возникнут

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

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

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

    Цитата Сообщение от -atas- Посмотреть сообщение
    Возможно, есть какие-либо варианты через редактор? Если спаун оставить нейтральным и список доступных самолетов на спауне отредактировать в суб-миссии, он при подгрузке миссии изменится?
    можно сделать как в примере выше - я старые спауны удаляю, а на их место ставлю новые.
    Don't happy, be worry

  12. #87

    Re: Вопросы.

    А что происходит с именами групп? Проигрываю одну и ту же миссию, получаю имя группы (например, убитого самолета) в одних случаях получается имя как прописано в миссии, в других на том же самом самолете имя группы становится NoName. Игрок всегда определяется правильно.
    Cтартануть группу по action.Do() тоже получается как-то загадочно. В одной и той же миссии, не трогая ни саму миссию, ни скрипта, то стартует, то не стартует. Гарантированно лечится заходом в полный редактор, переназначением имени группы и переназначением стартуемой группы в действиях.
    Подскажите как это лечить?
    Миссии для оффлайна.

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

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    постараюсь ответить, если вопросы возникнут
    Пока не осилил, т.е. понимать процентов на 60 понимаю, но написать такое для другого спауна и другого триггера не смогу. Так что остается пока только редактор и его триггеры. Триггеры пока откладываем в сторону пока они не работают вместе со скриптом подгрузки миссии в миссию. Без него никак (

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

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

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

    -------------------

    Еще вопросы:
    Сейчас делается миссия, состоящая из 3-4 карт с баталиями за аэродромы и их переходом от стороны к стороне. Каким образом в полном редакторе можно установить объект точно в одни и те же координаты на нескольких картах/миссиях? Тесты показали, что если, например зенитки стоят на одном месте на всех картах, то при загрузке подмиссий они не дублируются а замещаются (или возрождаются). Если на новой карте объект чуть сдвинут (случайно, например), то старый не исчезает. Когда зениток несколько десятков, опознать одну в тексте файла миссии не представляется возможным.

    В будущем (через пару месяцев) подмиссий может быть несколько десятков и сотен. Нужен инструмент (скрипт) для пакетной обработки файлов миссий: добавления объекта или стирания объекта из миссии сразу для всех подмиссий миссии. Как для одной точки, так и в определенном радиусе.

    Бывает проблематично довести танки до цели из-за отсутствия мостов. Можно включить в редактор саперов и пантонные переправы?
    Танки по умолчанию идут слишком плотной колонной и врезаются в подбитый передний танк. Почему им нельзя задать боевой порядок как для самолетов? Желательно увеличить интервалы по умолчанию, чтобы успевали объехать препятствие. Либо проблема в том, что в бою танки трогаются только вперед и не могут объехать, ттогда как на марше 1 раз объезжали вставшего лидера, причем грамотно и с обеих сторон, т.е. этот модуль кода есть в игре.

    Когда можно ожидать исправления триггеров полного редактора? То, что происходит внутри подгруженной суб-миссии было бы удобно регулировать хотя бы теми триггерами, что есть.
    Крайний раз редактировалось -atas-; 06.05.2011 в 11:53.
    ...зелёные горят.
    ----------------------

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

  14. #89

    Re: Вопросы.

    Цитата Сообщение от Vetochka Посмотреть сообщение
    А что происходит с именами групп? Проигрываю одну и ту же миссию, получаю имя группы (например, убитого самолета) в одних случаях получается имя как прописано в миссии, в других на том же самом самолете имя группы становится NoName. Игрок всегда определяется правильно.
    Cтартануть группу по action.Do() тоже получается как-то загадочно. В одной и той же миссии, не трогая ни саму миссию, ни скрипта, то стартует, то не стартует. Гарантированно лечится заходом в полный редактор, переназначением имени группы и переназначением стартуемой группы в действиях.
    Подскажите как это лечить?
    Миссии для оффлайна.
    Имхо, группа, которая стартует скриптом (с помощью действия скажем), по сути относится уже к другой миссии. Попробуй во-первых, назначит переменной MissionNumberListener значение -1, примерно вот так:

    Код:
    public override void OnBattleStarted()
    {
         base.OnBattleStarted();
         MissionNumberListener = -1;
    }
    NONAME выпадает, если актор относится к другой миссии, а указанным выше кодом мы заставляем текущую миссию будет слушать все события, происходящие в подмиссиях.

    Во вторых, имя группы состоит из собственно имени группы и префикса "принадлежности к миссии" (номер миссии с двоеточием). Получить правильно полное имя группы (например для использования в GamePlay.gpActorByName()) можно примерно вот так:

    Код:
    public override void OnActorCreated(int missionNumber, string shortName, AiActor actor)
    {
        base.OnActorCreated(missionNumber, shortName, actor);
        string fullName = ActorName.Full(missionNumber, shortName);
    }
    В любом событии, относящемся к акторам, в первых двух параметрах передаются собственно номер миссии, где произошло событие, и короткое имя актора (как указано в файле миссии). Из двух этих параметров мы и получаем полное имя актора.

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

    Re: Вопросы.

    Чем отличаются "тревога" и "ожидание" в свойствах группы самолетов?

    Машинки с car.cpp по чужой территории не ездят, просто стоят на месте?

    Есть ли сплайновая дорога без столбов на которой работает car.cpp ? Машины врезаются в столбы, останавливаются, думают, снова врезаются...

    Пролет цели по критерию GroundArmy может вызвать вылет группы самолетов своей стороны или только вражеской?
    ...зелёные горят.
    ----------------------

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

  16. #91

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Имхо, группа, которая стартует скриптом...
    Спасибо. Бум пробовать.

  17. #92

    Re: Вопросы.

    Можно ли какой-то командой во время миссии пересадить игрока в другой самолет?

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

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Пока не осилил, т.е. понимать процентов на 60 понимаю, но написать такое для другого спауна и другого триггера не смогу. Так что остается пока только редактор и его триггеры. Триггеры пока откладываем в сторону пока они не работают вместе со скриптом подгрузки миссии в миссию. Без него никак (
    Как не работают? В примере выше ведь и скрипт и триггеры вместе работают.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Удалось в редакторе поставить новый спаун на старый, но старый не удаляется, т.е. другая сторона в этой точке карты тоже может выбрать свои самолеты. Как средствами редактора удалить старый спаун? Он же уже подгружен в миссию, нужен инструмент, чтобы его дестроить. Его перенос в тыл вроде бы не помогает, он остается на месте.
    в редакторе никак, скриптом вот так:
    Код:
    foreach (AiBirthPlace bp in GamePlay.gpBirthPlaces())
            {
                if (bp != null)
                    bp.destroy();
             
            }
    можно ещё добавить проверку расстояния, чтобы не все спауны чистились, а на некотором расстоянии от нужной нам точки.


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

    Цитата Сообщение от -atas- Посмотреть сообщение
    В будущем (через пару месяцев) подмиссий может быть несколько десятков и сотен. Нужен инструмент (скрипт) для пакетной обработки файлов миссий: добавления объекта или стирания объекта из миссии сразу для всех подмиссий миссии. Как для одной точки, так и в определенном радиусе.
    это вряд-ли - редактор ничего не знает о подмиссиях. самый простой вариант - делаем миссию с нужным объектом(им одним), и в текстовом редакторе вставляем его во все подмиссии.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Бывает проблематично довести танки до цели из-за отсутствия мостов. Можно включить в редактор саперов и пантонные переправы?
    Танки по умолчанию идут слишком плотной колонной и врезаются в подбитый передний танк. Почему им нельзя задать боевой порядок как для самолетов? Желательно увеличить интервалы по умолчанию, чтобы успевали объехать препятствие. Либо проблема в том, что в бою танки трогаются только вперед и не могут объехать, ттогда как на марше 1 раз объезжали вставшего лидера, причем грамотно и с обеих сторон, т.е. этот модуль кода есть в игре.
    сапёров пока нет, подумаем. В бою, вообще должны препятствия объезжать, возможно не успели.


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

    Цитата Сообщение от -atas- Посмотреть сообщение
    Машинки с car.cpp по чужой территории не ездят, просто стоят на месте?
    ездят вроде, им цвет территории не важен, но уточню.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Есть ли сплайновая дорога без столбов на которой работает car.cpp ? Машины врезаются в столбы, останавливаются, думают, снова врезаются...
    есть невидимая дорога(в англ. варианте Generic road, в русской не помню как переведено)- она вообще никак не отображается, машинка просто по заданному ей маршруту едет. Разные рулёжки и взлётки тоже без столбов.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Пролет цели по критерию GroundArmy может вызвать вылет группы самолетов своей стороны или только вражеской?
    по идее любой, армия влияет на условие срабатывания триггера.

    Цитата Сообщение от Vetochka Посмотреть сообщение
    Можно ли какой-то командой во время миссии пересадить игрока в другой самолет?
    во вторник посмотрю, а зачем так, против его воли, если не секрет? Про имена групп Small_Bee всё правильно написал, должно работать.
    Don't happy, be worry

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

    Re: Вопросы.

    Спасибо за ответы, разбираюсь.
    ...зелёные горят.
    ----------------------

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

  20. #95
    Зашедший Аватар для zaltys
    Регистрация
    26.03.2011
    Адрес
    Литва
    Сообщений
    31

    Re: Вопросы.

    1) Как написать в консол? Я вижу System.Console.WriteLine () в некоторых миссиях кампании, но это не работает. Может быть мне нужно запустить игру в режиме отладки? Как это сделать?
    2) OnAircraftLanded (), OnAircraftCrashLanded (), OnAircraftLanded (), IsAirborne () не работают для самолета игрока в мультиплеере. Должно так быть?
    Крайний раз редактировалось zaltys; 08.05.2011 в 21:16.

  21. #96

    Re: Вопросы.

    Цитата Сообщение от Vetochka Посмотреть сообщение
    Можно ли какой-то командой во время миссии пересадить игрока в другой самолет?
    Код:
                AiActor actor = GamePlay.gpActorByName(ActorName.Full(MissionNumber, "BoB_LW_LG2_I.01"));
                if (actor is AiAirGroup && GamePlay.gpPlayer() != null)
                {
                    Player player = GamePlay.gpPlayer();
                    foreach (AiAircraft airc in (actor as AiAirGroup).GetItems())
                    {
                        bool isFound = false;
                        for (int i = 0; i < airc.Places(); i++)
                        {
                            if (airc.ExistCabin(i))
                            {
                                if (airc.CrewFunctionPlace(i).Equals(CrewFunction.Pilot))
                                {
                                    player.PlaceEnter(airc, i);
                                    isFound = true;
                                    break;
                                }
                            }
                        }
                        if (isFound) break;
                    }
                }
    Находим группу, в цикле перебираем самолеты группы и сажаем игрока в первый же самолет, где есть кабина пилота.

  22. #97

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    ....
    Еще раз спасибо

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

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

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    Как не работают? В примере выше ведь и скрипт и триггеры вместе работают.
    В полном редакторе в меню есть раздел триггеров и скриптов. Так вот, если там задать триггеры и действия для них, они будут работать до тех пор, пока к миссии не добавлен скрипт в текстовом файле. Эта проблема с примерами некорректной работы миссий была уже изложена здесь: http://www.sukhoi.ru/forum/showthrea...=1#post1612758

    Естественно, юзеру вроде меня удобнее использовать встроенные в редактор триггеры, чем просить кого-то написать скрипт, содержащий триггеры, который я даже не смогу отладить. Однако, использовать триггеры редактора пока не удается из-за:
    1) больше 3-4х триггеров в миссии не работает (описано в багрепортах)
    2) триггеры не работают вместе со скриптом подгрузки миссий и уничтожения ботов (описано в багрепортах).

    По этим причинам работа с триггерами редактора отложена о лучших времен.
    ...зелёные горят.
    ----------------------

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

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

    Re: Вопросы.

    На сервере Repka №1 возникла проблема: бомбардировщики после посадки на аэродроме очень долго не исчезают (или часто виден экипаж без самолета), размер миссии постоянно растет, и время ее загрузки вырастает до неприемлемых 2-3 минут. Также через 3-4 часа работы возникают микрофризы, лаги, фпс падает (см. http://www.sukhoi.ru/forum/showthrea...=1#post1619325 )

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

    Код:
     // v.1_17_00. bot-destroying script based on one by oreva
    
    using System;
    using maddox.game;
    using maddox.game.world;
    using System.Collections.Generic;
    
    public class Mission : AMission
    {
     
    // loading sub-missions
    public override void OnTickGame()
    {
        if (Time.tickCounter() % 216000 == 108000) // 216000=120 min repeat. 108000=60 min delay. 
        {
            GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_small01.mis");
        }
    
        if (Time.tickCounter() % 216000 == 215999) // 216000=120 min repeat. 215999=120 min delay. 
        {
            GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_small02.mis");
        }
    
        /////////////////////////////////////////////////////////////////////////////////////
    
         if (Time.tickCounter() % 135000 == 9000) // 135000=75 min repeat. 9000=5 min delay. 
      {
          GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_air01.mis");
          // GamePlay.gpHUDLogCenter("mis1 loaded!");
    
          double initTime = 0.0;
          Timeout(initTime += 600, () =>
          {
              GamePlay.gpHUDLogCenter("Attention! Enemy activity is expected at E3!");
          });
          Timeout(initTime += 300, () =>
          {
              GamePlay.gpHUDLogCenter("Attention! Help is needed at D4!");
          });
    
       }
    
         if (Time.tickCounter() % 135000 == 54000) //  ; 135000=75 min repeat, 54000 - 30 min delay. 
        {
          GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_ground01.mis");
          // GamePlay.gpHUDLogCenter("mis2 loaded"); 
    
          double initTime = 0.0;
          Timeout(initTime += 600, () =>
           {
               GamePlay.gpHUDLogCenter("Attention! Cover your shipping at C4!");
           });
                
          Timeout(initTime += 300, () =>
             {
               GamePlay.gpHUDLogCenter("Attention! All airgroups please proceed to C4!");
             });
        }
    
         if (Time.tickCounter() % 135000 == 99000) // 135000 == 99000 = 75 min repeat, 55 min delay 
           {
               GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/BoF1/BoF1_air02.mis");
               // GamePlay.gpHUDLogCenter("mis3 loaded!");
    
               double initTime = 0.0;
               Timeout(initTime += 600, () =>
               {
                   GamePlay.gpHUDLogCenter("Attention! Enemy activity is expected at E2!");
               });
               Timeout(initTime += 300, () =>
               {
                   GamePlay.gpHUDLogCenter("Attention! Friendly aircrafts are under attack at D2!");
               });
           }
    }
    
    // destroys aircraft abandoned by a player. script by oreva
        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;
        }
    
        private void destroyPlane (AiAircraft aircraft) {
            if (aircraft != null) { 
                aircraft.Destroy ();
            }
        }
    
        private void explodeFuelTank (AiAircraft aircraft) 
        {
            if (aircraft != null) 
            { 
                aircraft.hitNamed (part.NamedDamageTypes.FuelTank0Exploded);
            }
        }
    
        private void destroyAiControlledPlane (AiAircraft aircraft) {
            if (isAiControlledPlane (aircraft)) {
                destroyPlane (aircraft);
            }
        }
    
        private void damageAiControlledPlane (AiActor actor) {
            if (actor == null || !(actor is AiAircraft)) { 
                return;
            }
    
            AiAircraft aircraft = (actor as AiAircraft);
    
            if (!isAiControlledPlane (aircraft)) {
                return;
            }
    
            if (aircraft == null) { 
                return;
            }
    
            aircraft.hitNamed (part.NamedDamageTypes.ControlsElevatorDisabled);
            aircraft.hitNamed (part.NamedDamageTypes.ControlsAileronsDisabled);
            aircraft.hitNamed (part.NamedDamageTypes.ControlsRudderDisabled);
            aircraft.hitNamed (part.NamedDamageTypes.FuelPumpFailure);
            aircraft.hitNamed (part.NamedDamageTypes.Eng0TotalFailure);
            aircraft.hitNamed (part.NamedDamageTypes.Eng1TotalFailure);
    
            /***Timeout (240, () =>
                    {explodeFuelTank (aircraft);}
                );
             * ***/
    
            Timeout (300, () =>
                    {destroyPlane (aircraft);}
                );
        }
    
    //////////////////////////////////////////////////////////////////////////////////////////////////
    
        public override void OnPlaceLeave (Player player, AiActor actor, int placeIndex) 
        {
            base.OnPlaceLeave (player, actor, placeIndex);
            Timeout (1, () =>
                    {damageAiControlledPlane (actor);}
                );
        }
    
        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); }
                );
        }
    
    }
    Как изменить скрипт, чтобы он уничтожал и приземлившиеся самолеты через 5 минут?

    Аналогичная проблема существует так же с танкерами, танками, дымами.
    Можно было бы для танкеров, танков и дымов использовать аналогичный скрипт(см. ниже), но исполняемый только минут через 50 после подгрузки подмиссии? Как он будет выглядеть? Можно его включить в основной скрипт или придется плодить скрипты для каждой подмиссии (чего не хотелось бы)?

    Код:
    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();
                            }
                        }
                    }
                }
    Спасибо за помощь.
    Крайний раз редактировалось -atas-; 14.05.2011 в 11:59.
    ...зелёные горят.
    ----------------------

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

  25. #100
    Механик
    Регистрация
    12.05.2011
    Возраст
    32
    Сообщений
    491

    Re: Вопросы.

    1) А можно ли задать для игрока условие "автопересадки" в другой самолёт, после выполнения задания, без выхода в меню?
    Т.е чтобы скажем выполнили задачи истребителя - оказались в бомбордировщике.
    2) А можно ли задать для юнитов скриптовые маршруты зацикленные до бесконечности? Например чтобы поезд нарезал круги по рельсам и п.р до конца миссии.

Страница 4 из 32 ПерваяПервая 1234567814 ... КрайняяКрайняя

Ваши права

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