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

Страница 13 из 32 ПерваяПервая ... 39101112131415161723 ... КрайняяКрайняя
Показано с 301 по 325 из 789

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

  1. #301

    Re: Вопросы.

    А как напрямую получить статистику по игроку во время миссии? Я имею в виду ганстат, киллы, смерти и т.д. в общем все что есть.

  2. #302
    Курсант
    Регистрация
    19.10.2007
    Возраст
    55
    Сообщений
    233

    Re: Вопросы.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Два вопроса:
    1. Нужен скрипт на подчистку трупов кораблей, самолетов в миссии.
    2. Есть такой скрипт, к-й выводит сообщения для бомбардировщиков:

    {
    case 1:
    if (aircraft.Type() == AircraftType.Bomber)
    { GamePlay.gpHUDLogCenter(new Player[] {player},"You should bomb tankers in Folkestone-Calais. Цель-танкеры в Фолкстон-Кале."); }
    else { GamePlay.gpHUDLogCenter(new Player[] { player }, "You should cover bombers in Folkestone-Calais. Прикрывайте бомберов в Фолкстон-Кале."); }
    break;
    case 2:
    if (aircraft.Type() == AircraftType.Bomber)
    { GamePlay.gpHUDLogCenter(new Player[] { player }, "You should bomb tankers in Folkestone-Calais. Цель-танкеры в Фолкстон-Кале."); }
    else { GamePlay.gpHUDLogCenter(new Player[] { player }, "You should cover bombers in Folkestone-Calais. Прикрывайте бомберов в Фолкстон-Кале."); }
    break;

    Есть место рождения синих, к-му назначен статус бомберского. На этом месте могут появляться также штуки и Ю-88, но они относятся к классу divebomber. Как сделать так, чтобы сообщения, предназначенные для bomber, выходили также для divebomber? Решит ли проблему добавление такого куска:

    {
    case 1:
    if (aircraft.Type() == AircraftType.Divebomber)
    { GamePlay.gpHUDLogCenter(new Player[] {player},"You should bomb tankers in Folkestone-Calais. Цель-танкеры в Фолкстон-Кале."); }
    else { GamePlay.gpHUDLogCenter(new Player[] { player }, "You should cover bombers in Folkestone-Calais. Прикрывайте бомберов в Фолкстон-Кале."); }
    break;
    case 2:
    if (aircraft.Type() == AircraftType.Divebomber)
    { GamePlay.gpHUDLogCenter(new Player[] { player }, "You should bomb tankers in Folkestone-Calais. Цель-танкеры в Фолкстон-Кале."); }
    else { GamePlay.gpHUDLogCenter(new Player[] { player }, "You should cover bombers in Folkestone-Calais. Прикрывайте бомберов в Фолкстон-Кале."); }
    break;

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

    Есть еще давний вопрос, он был задан при тестировании миссии на Р1, довольно интересный:
    "А, и ещё вопрос - а как различить которые кораблики свои,а которые нет? Флагов я никаких на танкерах не заметил... Может плохо смотрел?"

    Предусмотрено ли различие по флагам в зависимости от принадлежности корабля той или иной стороне?
    А здесь нельзя ещё по одному уровню if добавить? Как-то так:

    case 1:
    if (aircraft.Type() == AircraftType.Bomber)
    { GamePlay.gpHUDLogCenter(new Player[] {player},"You should bomb tankers in Folkestone-Calais. Цель-танкеры в Фолкстон-Кале."); }
    else if (aircraft.Type() == AircraftType.Divebomber)
    { GamePlay.gpHUDLogCenter(new Player[] {player},"You should bomb tankers in Folkestone-Calais. Цель-танкеры в Фолкстон-Кале."); }
    else { GamePlay.gpHUDLogCenter(new Player[] { player }, "You should cover bombers in Folkestone-Calais. Прикрывайте бомберов в Фолкстон-Кале."); }
    break;
    case 2:
    if (aircraft.Type() == AircraftType.Bomber)
    { GamePlay.gpHUDLogCenter(new Player[] { player }, "You should bomb tankers in Folkestone-Calais. Цель-танкеры в Фолкстон-Кале."); }
    else if (aircraft.Type() == AircraftType.Divebomber)
    { GamePlay.gpHUDLogCenter(new Player[] {player},"You should bomb tankers in Folkestone-Calais. Цель-танкеры в Фолкстон-Кале."); }
    else { GamePlay.gpHUDLogCenter(new Player[] { player }, "You should cover bombers in Folkestone-Calais. Прикрывайте бомберов в Фолкстон-Кале."); }
    break;

    или так:

    case 1:
    if (aircraft.Type() == AircraftType.Bomber)
    { GamePlay.gpHUDLogCenter(new Player[] {player},"You should bomb tankers in Folkestone-Calais. Цель-танкеры в Фолкстон-Кале."); }
    else { if (aircraft.Type() == AircraftType.Divebomber)
    { GamePlay.gpHUDLogCenter(new Player[] {player},"You should bomb tankers in Folkestone-Calais. Цель-танкеры в Фолкстон-Кале."); }
    else { GamePlay.gpHUDLogCenter(new Player[] { player }, "You should cover bombers in Folkestone-Calais. Прикрывайте бомберов в Фолкстон-Кале."); } }
    break;
    case 2:
    if (aircraft.Type() == AircraftType.Bomber)
    { GamePlay.gpHUDLogCenter(new Player[] { player }, "You should bomb tankers in Folkestone-Calais. Цель-танкеры в Фолкстон-Кале."); }
    else { if (aircraft.Type() == AircraftType.Divebomber)
    { GamePlay.gpHUDLogCenter(new Player[] {player},"You should bomb tankers in Folkestone-Calais. Цель-танкеры в Фолкстон-Кале."); }
    else { GamePlay.gpHUDLogCenter(new Player[] { player }, "You should cover bombers in Folkestone-Calais. Прикрывайте бомберов в Фолкстон-Кале."); } }
    break;
    _____________________________________________________________________________________________________________
    i5 2500K 3.3@4.2 / 2x4GB RAM DDR3 CORSAIR VENGEANCE / ASUS P8P67 PRO / Xonar D1 / PALIT GTX 570 / 1920x1080 / Win7 64 Home Premium / TrackIr4 Pro / G940

  3. #303

    Re: Вопросы.

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

    А Destroy() не помогает?

    http://www.sukhoi.ru/forum/showthrea...=1#post1602377
    Здесь пример, как убрать трупики через определенное время.

    Решение для штурцев без дублирования кода

    Код:
    if (aircraft.Type() == AircraftType.Bomber || aircraft.Type() == AircraftType.Divebomber) { ... }
    Крайний раз редактировалось Small_Bee; 02.09.2011 в 15:24.

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

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    ()

    А Destroy() не помогает?
    У меня с кораблями засада была, они как-то не так как самолеты и танки уничтожаются.
    Вот так будет работать?
    Код:
    public override void OnActorDead(int missionNumber, string shortName, AiActor actor, List<DamagerScore> damages)
            {
                base.OnActorDead(missionNumber, shortName, actor, damages);    
            if (actor is AiGroundGroup)
            {
                if ((actor as AiGroundGroup).Type() == AiGroundGroupType.Ship)
                {
                    AiGroundGroup shipGroup = actor as AiGroundGroup;
                    foreach (AiActor item in shipGroup.GetItems())
                    {
                        if (item is AiCart)
                        {   // 5 минут таймаут
                            Timeout(300, () =>
                            {
                                if (item != null)
                                {
                                    (item as AiCart).Destroy();  // уничтожаем
                                }
                            }
                            );
                        }
                    }
                }
            }
            }
    AiCart - это вообще кто такой?
    ...зелёные горят.
    ----------------------

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

  5. #305

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    У меня с кораблями засада была, они как-то не так как самолеты и танки уничтожаются.
    Вот так будет работать?
    Код:
    public override void OnActorDead(int missionNumber, string shortName, AiActor actor, List<DamagerScore> damages)
            {
                base.OnActorDead(missionNumber, shortName, actor, damages);    
            if (actor is AiGroundGroup)
            {
                if ((actor as AiGroundGroup).Type() == AiGroundGroupType.Ship)
                {
                    AiGroundGroup shipGroup = actor as AiGroundGroup;
                    foreach (AiActor item in shipGroup.GetItems())
                    {
                        if (item is AiCart)
                        {   // 5 минут таймаут
                            Timeout(300, () =>
                            {
                                if (item != null)
                                {
                                    (item as AiCart).Destroy();  // уничтожаем
                                }
                            }
                            );
                        }
                    }
                }
            }
            }
    AiCart - это вообще кто такой?
    Должон походу, у меня убивались - вроде ж я этот код и писал (или один из вариантов). Корабль есть группа. Сколько там мемберов хз - грохаем всех. AiCart это какой-то базовый интерфейс, именно в нем определен метод Destroy(), поэтому его и юзаю, как самый элементарный.

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

    Re: Вопросы.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Это вот про это (по ссылке):
    Так тоже попробуй, кажется 1 или 2х скобок низу не хватает.

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

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Должон походу, у меня убивались - вроде ж я этот код и писал (или один из вариантов). Корабль есть группа. Сколько там мемберов хз - грохаем всех. AiCart это какой-то базовый интерфейс, именно в нем определен метод Destroy(), поэтому его и юзаю, как самый элементарный.
    ОК, спасибо, значит лучше так.

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

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

  7. #307

    Re: Вопросы.

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

    OnActorDead когда случается? Когда корабль тонуть начинает или когда уже утонул? там обломков полузатонувших много нужно убирать.
    А вот этот вопрос - сложнее.
    Я где то выше писал - просто таки необходимо, что бы при повторной загрузке подмиссии убивать объекты, которые породила предыдущая загрузка. На OnActorDead полагаться полностью нельзя. Тогда не будет бардака с кучей мусора тут и там.

    Самый простой вариант - миссия контролирует сама себя. для этого

    1. Миссия "слушает" только себя.
    2. Загружает эта миссия тоже, сама себя. Исключение - только первая загрузка из миссии-хоста.
    3. Перед загрузкой самой себя прибивает все старые свои объекты.
    4. Не рожает больше никаких объектов(типа старта скриптом и т.д.) и не загружает больше никаких миссий, кроме таких же по поведению.

    В таком варианте не будет мусора, но и работать миссия будет сугубо автономно, на собственной логике.
    Крайний раз редактировалось Small_Bee; 02.09.2011 в 17:56.

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

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Я где то выше писал - просто таки необходимо, что бы при повторной загрузке подмиссии убивать объекты, которые породила предыдущая загрузка.
    Мы это сами не сочиним. Готового варианта скрипта нет для зачистки?

    Там кстати кораблики рождаются каждые 40 минут (или час), а плыть им 2.5 часа. Т.е. убивать их нельзя перед повторной загрузкой, они треть пути только пройдут. Сейчас стоит вопрос только об обломках а не о целых кораблях. Целые мы в конце пути превратим в обломки.
    ...зелёные горят.
    ----------------------

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

  9. #309

    Re: Вопросы.

    Пример такой организации по той же ссылке, что я выше дал. Миссия с танками грузит сама себя, когда ее танки уничтожены. Может играть до бесконечности(вернее исчерпания Int64 ), никакого мусора.

    Не грузите миссии по таймеру из хоста. Сделайте загрузку миссий волнами - первая группа миссий, через 40 минут вторую группу миссий (не эту же самую!) еще через 40 еще группу миссий. И т.д. В каждой - по кораблику. Можно и несколько, но тогда и появляться они толпой будут. А она уже сама разбирается, когда ей загрузится повторно - это может быть таймер, TaskCompleted (кораблик приехал), ActorDead или все вместе и т.д. И перед загрузкой, если кораблик еще как-то есть, делаем ему дестрой. Все. Только не пересекайте маршруты.

    Плюсы. Никакого мусора. Четко знаем, сколько корабликов максимум одновременно плавает. Убить сервер толпой юнитов исключено.

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

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Пример такой организации по той же ссылке, что я выше дал. Миссия с танками грузит сама себя, когда ее танки уничтожены. Может играть до бесконечности(вернее исчерпания Int64 ), никакого мусора.

    Не грузите миссии по таймеру из хоста. Сделайте загрузку миссий волнами - первая группа миссий, через 40 минут вторую группу миссий (не эту же самую!) еще через 40 еще группу миссий. И т.д. В каждой - по кораблику. Можно и несколько, но тогда и появляться они толпой будут. А она уже сама разбирается, когда ей загрузится повторно - это может быть таймер, TaskCompleted (кораблик приехал), ActorDead или все вместе и т.д. И перед загрузкой, если кораблик еще как-то есть, делаем ему дестрой. Все. Только не пересекайте маршруты.

    Плюсы. Никакого мусора. Четко знаем, сколько корабликов максимум одновременно плавает. Убить сервер толпой юнитов исключено.
    Т.е. у каждой подмиссии свой скрипт будет?

    Волны грузить по таймеру?

    В этом случае хост должен все миссии слушать или нет?
    ...зелёные горят.
    ----------------------

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

  11. #311

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Т.е. у каждой подмиссии свой скрипт будет?

    Волны грузить по таймеру?

    В этом случае хост должен все миссии слушать или нет?
    Можно по таймеру, можно как хочешь. Смысл в том, хост загрузил подмиссию только один раз, а все остальное отдать на откуп самой подмиссии, которая и грузит сама себя, если решит что надо, и мусор за собой убирает.
    Смысл подмиссии слушать только себя в том, что бы:
    1. Убирать трупики только за собой - по ActorDead. Мало-ли, может время уборки надо разное поставить. Или трупик из другой миссии убирать не надо, например.
    2. По ActorCreated (или что там) запомнить без лишних телодвижений только свои объекты куда ни будь в коллекцию. Что бы после не шерстить всю немерянную толпу акторов при уборке, выбирая своих. Если акторов в миссии немного, можно вообще его руками прописать, найти по имени после загрузки и сохранить в приватном поле - что бы прибить после, опять же (в кампаниях стартовых такой похожий подход можно найти).
    Можно конечно, слушать всех, но тогда и фильтровать все сообщения надо будет, и плюс лишняя нагрузка, никому не нужная в общем случае.
    Смысл того что миссия должна грузить сама себя - она прекрасно знает, кого нарожала (номер миссии есть - своих найти не проблема), и соответственно, прибраться не проблема перед загрузкой повторной.

    Хост может слушать миссии, может не слушать - как хочет, если ему надо, пусть слушает. Например, что бы представлять, что вообще в мире происходит.

    Недостаток такого подхода, повторюсь - если такую миссию загрузишь, она уйдет в свободное плаванье и начхать ей на хост. Можно конечно организовать сообщение (типа замаппить файл на общий доступ и т.д.) но это уже дебри.
    Крайний раз редактировалось Small_Bee; 02.09.2011 в 21:16.

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

    Re: Вопросы.

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

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

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

    Re: Вопросы.

    Там, где у Small_Bee моноготочие - это место для твоего кода по-моему. Посмотри какой раньше был скрипт и в какую часть Small_Bee divebomber добавил. Добавь так же.
    ...зелёные горят.
    ----------------------

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

  14. #314

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Интересно, спасибо, я как-то старался одним скриптом обходиться, т.к. даже в одном путаюсь
    Hаоборот. Разобраться в десяти маленьких проще чем в одном большом. Читать проще, картину лучше видно.

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

    Цитата Сообщение от -atas- Посмотреть сообщение
    Там, где у Small_Bee моноготочие - это место для твоего кода по-моему. Посмотри какой раньше был скрипт и в какую часть Small_Bee divebomber добавил. Добавь так же.
    Все верно, на место троеточия -код. В фигурных скобках код выполнится, если выражение в круглых скобках будет верно. В данном случае мы говорим

    если ТипСамолета = Бомбер или ТипСамолета = Пикировщик тогда делаем то, что заключено в следующие фигурные скобки.

  15. #315

    Re: Вопросы.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    последний раз так писал не помогло тоже...
    Надо всегда проверять код на предмет опечаток и прочего - в окне скрипта правой клавишей и скомпилировать (появится еще вкладка и будет написано ОК, либо подсказка что где не так).
    На форуме есть тег CODE, заключай код в этот тег.

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

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

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    На Репках и Синдикате от battle Stop и battle Start пришлось отказаться, т.к. вылезали ошибки notDestroyedActor, которые как-то глючили, не помню уже.
    не видя ошибки сложно сказать что и почему глючило.
    Цитата Сообщение от -atas- Посмотреть сообщение
    Видимо остается 2й вариант - дестроить всех акторов кроме игроков, написать на экране о победе\поражении, счет +1, и о том, что "Миссия перезагружена, проверьте карту" Чтобы те кто в воздухе на аэродром противника не садились.
    да, вполне вариант.

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

    Цитата Сообщение от -atas- Посмотреть сообщение
    В прошлой миссии с Р1 по 3-4 корабля недотопленных в цепочку собирались. Выкладывал ссылку на галерею багов Р1 в теме про баги.

    Сейчас то же самое получится в новой миссии. Через 30-40 минут новый корабль может врезаться в недотопленный прошлый корабль. Или триггер не сработает пока корабль ко дну не пошел совсем? ИИ капитанов на судах нет, чтобы обходить обломки как танки хотя бы?
    "капитаны" есть, насчёт препятствий посмотрю, почему не обруливают.

    Цитата Сообщение от Kros Посмотреть сообщение
    Подскажите, с команд скрипта можно влиять на управление самолета игрока? Ну допустив взять и отклонить на определенный угол элерон или руль высоты, т.е. я задам в скрипте значение переменной которое отклонит руль на 5 едениц. Если можно то какие параметры или классы (не знаю как назвать) за это отвечают, пример в коде былбы кстати.
    нет, нельзя управлять так самолётом.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    На карте проложил дороги, вид=>проложить дороги=>Apply to map. В миссии их было видно, когда миссия загружена на сервер - дороги не видно: ни бетонки аэродрома, ни ж/д дороги, ни грунтовых стоянок - все исчезло, как будто их там и не было...
    дороги, емнип в файл с расширением .misroads идут, его тоже надо на сервер загрузить.
    Don't happy, be worry

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

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    не видя ошибки сложно сказать что и почему глючило.
    Вот такое было http://www.sukhoi.ru/forum/showthrea...=1#post1621897
    battle stop актеров не убирает с сервера.
    ...зелёные горят.
    ----------------------

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

  18. #318

    Re: Вопросы.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Пробовал вчера из основной миссии делать загрузку подмиссий а подчистку мертвяков делать в самих подмиссиях. Работает. Зацикливание по тикам, т.е. через определенные интервалы времени, в подмиссиях не работает. Поэтому вынес их опять в основную миссию. А мертвяки чистятся в подмиссиях.

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

    Small_Bee, как я понял в идеале лучше делать зацикливание в самой подмиссии, чтобы она убитые статики за собой чистила? Но у меня вчера мертвяки, повторюсь, чистились, а перезагрузка миссии самой себя не работала. ЧЯДНТ? А по одному разу-то подмиссии проскочили.
    Ответил здесь - http://www.sukhoi.ru/forum/showthrea...=1#post1685346

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

    Re: Вопросы.

    @ naryv

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

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

    Ангары пока не удалось потестировать. Удалось ли исправить рождение многомоторных самолетов в одномоторных ангарах с последующим взрывом?
    ...зелёные горят.
    ----------------------

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

  20. #320

    Re: Вопросы.

    Вот интересный новый метод появился в классе миссии - OnOrderMissionMenuSelected(player, ID, menuItemIndex); любопытненько...
    и в геймплее новый метод - gpSetOrderMissionMenu(Player player, bool thisSubMenu, int ID, string[] keys, bool[] bSubMenu);... Гм.

    А для Player есть LanguageName() - языковая проблема походу решена.
    и Ping() есть. По идее можно по пингу кикнуть, но как пока не нашел.
    Крайний раз редактировалось Small_Bee; 07.09.2011 в 00:49.

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

    Re: Вопросы.

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

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

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


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

    Цитата Сообщение от -atas- Посмотреть сообщение
    Ангары пока не удалось потестировать. Удалось ли исправить рождение многомоторных самолетов в одномоторных ангарах с последующим взрывом?
    пока нет но работаем над этим.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Вот интересный новый метод появился в классе миссии - OnOrderMissionMenuSelected(player, ID, menuItemIndex); любопытненько...
    и в геймплее новый метод - gpSetOrderMissionMenu(Player player, bool thisSubMenu, int ID, string[] keys, bool[] bSubMenu);... Гм.
    старались. Да, теперь можно делать юзерское меню, разной степени вложенности, и выполнять действия по выборам меню, например так
    Код:
    using System;
    using System.Collections;
    using maddox.game;
    using maddox.game.world;
    
    public class Mission : AMission {
    
      private void setMainMenu( Player player ) {
        GamePlay.gpSetOrderMissionMenu( player, false, 0, new string[] { "1", "2", "3" }, new bool[] { true, false, false } );
      }
      private void setSubMenu( Player player ) {
        GamePlay.gpSetOrderMissionMenu( player, true, 1, new string[] { "1-1", "1-2", "1-3" }, new bool[] { false, false, false } );
      }
    
      public override void OnOrderMissionMenuSelected( Player player, int ID, int menuItemIndex ) {
        if( ID == 0 ) { // main menu
          if( menuItemIndex == 1 ) {
              GamePlay.gpHUDLogCenter("Menu selected Loading mission aaa2.mis");
              GamePlay.gpPostMissionLoad("missions\\aaa2.mis");
              setSubMenu( player );
          }
        } else if( ID == 1 ) { // sub menu
          setMainMenu( player );
        }
      }
    
      public override void OnPlayerConnected( Player player ) {
        if( MissionNumber == 0 ) {
          setMainMenu( player );
        }
      }
    
      public override void Inited() {
        if( MissionNumber == 0 ) {
          setMainMenu(GamePlay.gpPlayer());
        }
      }
    }
    вызывается по <Tab> +<4>
    Цитата Сообщение от Small_Bee Посмотреть сообщение
    А для Player есть LanguageName() - языковая проблема походу решена.
    да, теперь можно на "родном" языке писать сообщения.
    Цитата Сообщение от Small_Bee Посмотреть сообщение
    и Ping() есть. По идее можно по пингу кикнуть, но как пока не нашел.
    кикать сервер должен, можно, наверное, ему кидать команду, но это точно не знаю.
    Don't happy, be worry

  22. #322

    Re: Вопросы.

    Ай карашо! Насколько я понимаю, меню выбора миссий можно использовать не только для загрузки миссий, а для чего душе угодно. Например, игрок может запросить текущую ситуацию. Или в качестве разведчика указать цель для налета бомбардировщиков. Ай карашо!

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

    Re: Вопросы.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Брифинг написал в миссии, даже звук с картинкой попробовал подгрузить, но в брифинг так и не удалось проникнуть. ЧЯДНТ?
    Ответ в соседней теме читал? Ты какой брифинг создал, армии или общий или регулярный? Показывается брифинг армии в онлайне.
    ...зелёные горят.
    ----------------------

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

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

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    регулярные - их можно привязать к конкретной группе самолётов, выбирается в редакторе в свойствах группы.
    Хотелось бы еще к спаун-точке привязать в онлайне. А на вкладке карты пилота какой из брифингов показывается? Видимо желательно все показывать по порядку (общий, стороны и регулярный). На вкладку брифинга удобнее кнопкой переходить, как в других симах, чем меню по ПКМ. Правую руку нельзя надолго с РУСа убирать, а левой в меню не получается так ловко = неудобство. К тому же меню вообще редко кто открывает, а кнопка привлечет внимание сразу.

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

    Цитата Сообщение от naryv Посмотреть сообщение
    пока нет но работаем над этим.
    Спасибо! А как-то хитро скриптом нельзя все ангары временно сделать совсем недоступными?

    Цитата Сообщение от naryv Посмотреть сообщение
    старались. Да, теперь можно делать юзерское меню, разной степени вложенности, и выполнять действия по выборам меню
    За это отдельное спасибо!
    Получается, можно будет прикручивать разные голосовалки, выборы офицера\ров. Разрешать офицерам выбирать новые направления атаки, новые типы миссий, запрашивать поставки топлива и боеприпасов, посылать ботов на разные задания прямо из игры?

    А текст из чата скрипты научились перехватывать, чтобы пароли у игроков запрашивать, например? Где-то читал, что раньше это было невозможно.

    Цитата Сообщение от naryv Посмотреть сообщение
    кикать сервер должен, можно, наверное, ему кидать команду, но это точно не знаю.
    Если можно это уточнить, все игроки серверов Repka были бы благодарны. Австраллийцы и Бразильцы десинк вызывают частенько.

    Еще вопрос про инструменты карты и различные вейпойнты, которые там можно ставить (иконки кораблей, танков и т.п.). Можно ли как-то ставить вейпойнты, чтобы они были видны всей стороне или добавить такой инструмент?

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

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

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Да уже читал. Я там смотрел разные есть, не совсем понятно только как это в миссии втыкать. Для синей армии - в миссию для синей, для красной - в красную, так что ли выходит...
    Только в хост-миссию воткни 2 брифинга в редакторе: Blue Army и Red Army.

    Вчера воткнул все брифинги для теста и посмотрел, какие показались на сервере.

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

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    А для Player есть LanguageName() - языковая проблема походу решена.
    А есть где-то список этих системных многоязыковых сообщений и пример как их вызывать скриптом? Они в какой чат пишутся? Ботов или Server? Они голосом ботов дублируются?
    ...зелёные горят.
    ----------------------

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

  25. #325
    Apocalyptic Rockfighter Аватар для Scavenger
    Регистрация
    06.03.2006
    Возраст
    44
    Сообщений
    3,479

    Re: Вопросы.

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

    ॐ मणि पद्मे हूँ

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

Ваши права

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