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

Страница 14 из 32 ПерваяПервая ... 410111213141516171824 ... КрайняяКрайняя
Показано с 326 по 350 из 789

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

  1. #326

    Re: Вопросы.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Илья, спасибо за работу, молодца, так держать! С кнопкой вчера ну никак не получалось выбрать. Брифинг написал в миссии, даже звук с картинкой попробовал подгрузить, но в брифинг так и не удалось проникнуть. ЧЯДНТ?
    ЗЫ. Армию выбирал, аэродром, но брифинг все равно не грузился.

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


    В смысле можно Тайгер заслать в качестве разведчика, а он будет сливать оперативную обстановку в районе боевых действий?
    Нефиг шо. Игроку на тайгере делаем менюшку "Бздынь!", он ее жмакает, миссия рисует бомберов в точкой атаки там где был тайгер, и вперед!. Или собирать куда нить в определенном радиусе от тайгера координаты вражьей наземки и после посадки к примеру вывешивать ее в брифинге или еще где.

    PS сам правда пока не пробовал, но в теории походу можно.

  2. #327

    Re: Вопросы.

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

    Код:
    private string GetLocalizedMessage(string lang, string key)
    {
       switch(key)
       {
          case "Hello":
          {
             switch (lang)
             {
                case "ru": return "Привет!";
                case "en": return "Hello!";
                case "turtle": return "Cawabanga dude!";
             }
          } break;
       }
       return String.Empty;
    }

  3. #328
    Механик
    Регистрация
    16.04.2011
    Адрес
    Наша Раша
    Сообщений
    321

    Re: Вопросы.

    Андерс, ты когда составляешь маршрут самолётов в миссии, старайся делать так, что бы маршрут имел линию без пересечений от рождения до посадки, иначе часто сбивается задание, и не надо делать так много точек бомбить-цель, достаточно 2-х, 3-х. Вообще если у самолётов стоят даже точки "обычный полёт" то бомберы при пролёте над целью будут её бомбить, а истребители вступать в бой с любой целью( это точка автомат по умолчанию ИИ сам принимает решение). Сейчас в начале миссии тока синие бомберы бомбят, а красные пролетают в стороне.

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

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Или собирать куда нить в определенном радиусе от тайгера координаты вражьей наземки и после посадки к примеру вывешивать ее в брифинге или еще где.
    Можно сразу координаты целей в чат передавать: "танки, самолеты, арта, ... в квадрате..." Радио же было уже в то время. А после посадки только скриншоты выкладывать.

    зы. Недавно вышел знаменитый PR мод для ArmA2. Там куча кастомных менюшек и действий заскриптовано.
    ...зелёные горят.
    ----------------------

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

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

    Re: Вопросы.

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

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

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

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

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

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

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

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

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


    Можно ли скриптом ставить вейпойнты на карту пилота? и на карту в брифинге? Можно ли в редакторе ставить такие вейпойнты на карту брифинга и пилота?
    так и планировалось, но пока не доделано.
    Don't happy, be worry

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

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    нет, нельзя. Пароль при входе на сервер должно спрашивать, если он запаролен.
    Имеется в виду пароль игрока, а не пароль сервера. Т.е. если в онлайн проекте за игроком или за сквадом закреплены хорошие самолеты, то нельзя, чтобы кто-то другой зашел под ником этого игрока или члена сквада и эти самолеты использовал. Для этого при входе на сервер в проектах типа ADW каждый игрок вводил свой личный пароль и отправлял на канал Server. Как это сделать в БзБ?

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

    Клавиатура - необходимый инструмент, было бы обидно если через нее нельзя было бы общаться со скриптами.
    Крайний раз редактировалось -atas-; 07.09.2011 в 17:36.
    ...зелёные горят.
    ----------------------

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

  7. #332

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Имеется в виду пароль игрока, а не пароль сервера. Т.е. если в онлайн проекте за игроком или за сквадом закреплены хорошие самолеты нельзя, чтобы кто-то другой зашел под ником этого игрока или члена сквада и эти самолеты использовал. Для этого при входе на сервер в проектах типа ADW каждый игрок вводил свой личный пароль и отправлял на канал Server. Как это сделать в БзБ?

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

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

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

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

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    старались. Да, теперь можно делать юзерское меню, разной степени вложенности, и выполнять действия по выборам меню, например так
    Пример менюшки http://simhq.com/forum/ubbthreads.ph...s/3385237.html


    Код:
    using System;
    using System.Collections;
    using maddox.game;
    using maddox.game.world;
    
     //GamePlay.gpHUDLogCenter("Pressed: " + menuItemIndex);	
    
    public class Mission : AMission {
      
       bool dmgOn = false;
    
      private void setMainMenu( Player player ) {
        GamePlay.gpSetOrderMissionMenu( player, false, 0, new string[] { "Damage & Diagnostics" }, 
    new bool[] { true } );
      }
    
      private void setSubMenu( Player player ) {
        GamePlay.gpSetOrderMissionMenu( player, true, 1, new string[] { "Destroy Wings", "Destroy Engine",
     "Destroy Guns", "Report Damage On", "Report Damage Off"}, new bool[] { false, false, false, false, false } );
      }
    
      public override void OnOrderMissionMenuSelected( Player player, int ID, int menuItemIndex ) {
        if( ID == 0 ) { // main menu
          if( menuItemIndex == 1 ) {
              setSubMenu( player );
          }
        } else if( ID == 1 ) { // sub menu
    	  if (menuItemIndex == 1)
    	  {
          
              Player[] all = { player };
    
             AiActor where = player.Place();
             AiAircraft aircraft = (GamePlay.gpPlayer().Place() as AiAircraft);
                 
             GamePlay.gpLogServer(all, "POW!!", null);
             aircraft.cutLimb(part.LimbNames.WingR2);
          
            setMainMenu( player );
          }
          else if (menuItemIndex == 2)
          {
              Player[] all = { player };
    
             AiActor where = player.Place();
             AiAircraft aircraft = (GamePlay.gpPlayer().Place() as AiAircraft);
                 
             GamePlay.gpLogServer(all, "POW!!", null);
             aircraft.hitNamed(part.NamedDamageTypes.Eng0TotalFailure); 
          
            setMainMenu( player );
          }
          else if (menuItemIndex == 3)
          {
              Player[] all = { player };
    
             AiActor where = player.Place();
             AiAircraft aircraft = (GamePlay.gpPlayer().Place() as AiAircraft);
                 
             GamePlay.gpLogServer(all, "POW!!", null);
             aircraft.hitNamed(part.NamedDamageTypes.Machinegun00Failure); 
             aircraft.hitNamed(part.NamedDamageTypes.Machinegun01Failure); 
             aircraft.hitNamed(part.NamedDamageTypes.Machinegun02Failure); 
          
            setMainMenu( player );
          }
       else if (menuItemIndex == 4)
          {
    			dmgOn = true;
                GamePlay.gpHUDLogCenter("Will show damage on all aircraft");	
                setMainMenu( player );
          }
       else if (menuItemIndex == 5)
          {
    			dmgOn = false;
                GamePlay.gpHUDLogCenter("Will not show damage on all aircraft");	
                 setMainMenu( player );
          }
        }
      
      }
    
      public override void OnPlayerConnected( Player player ) {
        if( MissionNumber == 0 ) {
          setMainMenu( player );
        }
      }
    
      public override void Inited() {
        if( MissionNumber == 0 ) {
          setMainMenu(GamePlay.gpPlayer());
        }
      }
    
        public override void OnAircraftDamaged(int missionNumber, string shortName, 
    AiAircraft Aircraft, AiDamageInitiator DamageFrom, part.NamedDamageTypes WhatDamaged) 
        {
        	base.OnAircraftDamaged(missionNumber, shortName, Aircraft, DamageFrom, WhatDamaged);
        	
        	if (DamageFrom.Player != null )
        	{
    			if (dmgOn == true)
                {
        	       GamePlay.gpLogServer (null, "{0} hits {1} : {2} \n", new object [] 
    {DamageFrom.Player, shortName, WhatDamaged});
                }    
          }
        	
        }
    
    }
    Крайний раз редактировалось -atas-; 12.09.2011 в 12:54.
    ...зелёные горят.
    ----------------------

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

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

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    Цитата Сообщение от naryv Посмотреть сообщение
    нет, нельзя. Пароль при входе на сервер должно спрашивать, если он запаролен.
    Имеется в виду пароль игрока, а не пароль сервера. Т.е. если в онлайн проекте за игроком или за сквадом закреплены хорошие самолеты, то нельзя, чтобы кто-то другой зашел под ником этого игрока или члена сквада и эти самолеты использовал. Для этого при входе на сервер в проектах типа ADW каждый игрок вводил свой личный пароль и отправлял на канал Server. Как это сделать в БзБ?
    В этой связи возник вопрос: может ли скрипт получить Steam ID игрока, чтобы проверять уникальность игрока не по нику и паролю, а по Steam ID ?
    ...зелёные горят.
    ----------------------

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

  10. #335
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    40
    Сообщений
    4,245

    Re: Вопросы.

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

  11. #336

    Re: Вопросы.

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

  12. #337
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    40
    Сообщений
    4,245

    Re: Вопросы.

    Есть пара вопросов.

    Тестировать онлайн миссии лучше на сервере созданном из игры или на выделенном? (выделенный вылетает, наверное мощности ПК не хватает)

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

  13. #338
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    40
    Сообщений
    4,245

    Re: Вопросы.

    Цитата Сообщение от andersbravers Посмотреть сообщение
    Раньше один человек со слабым компом наоборот спрашивал как запустить (и запустил) выделенный сервер именно по причине слабости компа (Пентиум 4 ЕМНИП и т.д.). При подгрузке миссии надписи выводятся как сейчас на Р1. По завершении миссии выводится "нажмите esc", поэтому при достижении определенных условий надписи выводить можно, думаю и звук наверное. Кампаниеделы должны знать хау-ноу .
    Сейчас выводятся как я понимаю через сообщения сервера и большую надпись по центру экрана, от имени ботов (в виде радиопереговоров вроде не встречал).

    Еще вопрос. В скриптах destroyPlane, damageAiControlledPlane, OnPlaceLeave() и т.п. называются методами класса по-научному? Есть ли где-нибудь их список с кратким значением каждого? Нужно для Вики.

    Еще по вот этому есть вопрос:
    Код:
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using maddox.game;
    using maddox.game.world;
    using maddox.GP;
    В каких случаях что ставить и за что они отвечают? (в скриптах разные сочетания бывают)
    Крайний раз редактировалось podvoxx; 30.09.2011 в 15:58.

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

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Есть ли где-нибудь их список с кратким значением каждого?
    Здесь список http://www.sukhoi.ru/forum/showthrea...9&daysprune=-1
    Там по названию понятно. В патче уже новые появились. Выше naryv писал.
    ...зелёные горят.
    ----------------------

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

  15. #340
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    40
    Сообщений
    4,245

    Re: Вопросы.

    Вопрос по команде GamePlay.gpHUDLogCenter

    GamePlay.gpHUDLogCenter(unitName, text, time)

    unitName: NameObject
    text: String
    time: Number

    Если команда прописывается в таком виде:
    Код:
    GamePlay.gpHUDLogCenter("Мы очень ждем патч")
    unitName будет равен null? Кому отправится сообщение? И каков формат unitName?
    time в этом случае чему равно? Измеряется в секундах?

    Есть ли где-нибудь/у кого-нибудь хотя бы частичный список с расшифровкой параметров?

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

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Вопрос по команде GamePlay.gpHUDLogCenter

    GamePlay.gpHUDLogCenter(unitName, text, time)

    unitName: NameObject
    text: String
    time: Number

    Если команда прописывается в таком виде:
    Код:
    GamePlay.gpHUDLogCenter("Мы очень ждем патч")
    unitName будет равен null? Кому отправится сообщение? И каков формат unitName?
    time в этом случае чему равно? Измеряется в секундах?

    Есть ли где-нибудь/у кого-нибудь хотя бы частичный список с расшифровкой параметров?
    четыре варианта есть :
    gpHUDLogCenter(string msg); всем отправляется строка msg
    gpHUDLogCenter( Player[] to, string msg ); массиву Player отправляется строка msg
    gpHUDLogCenter( Player[] to, string msg, object[] parms );массиву Player отправляется строка msg с параметрамии строки, например
    Код:
    int num_target = 10;
    gpHUDLogCenter(gpRemotePlayers(), " Вам надо уничтожить {0} целей", num_target );
    gpHUDLogCenter( Player[] to, string msg, object[] parms, double lifeTime ); массиву Player отправляется строка msg с параметрамии строки , будет на экране lifeTime секунд
    Don't happy, be worry

  17. #342
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    40
    Сообщений
    4,245

    Re: Вопросы.

    Цитата Сообщение от naryv Посмотреть сообщение
    четыре варианта есть :
    gpHUDLogCenter(string msg); всем отправляется строка msg
    gpHUDLogCenter( Player[] to, string msg ); массиву Player отправляется строка msg
    gpHUDLogCenter( Player[] to, string msg, object[] parms );массиву Player отправляется строка msg с параметрамии строки, например
    Код:
    int num_target = 10;
    gpHUDLogCenter(gpRemotePlayers(), " Вам надо уничтожить {0} целей", num_target );
    gpHUDLogCenter( Player[] to, string msg, object[] parms, double lifeTime ); массиву Player отправляется строка msg с параметрамии строки , будет на экране lifeTime секунд
    Спасибо!
    Сразу еще пару вопросов хочется уточнить
    gpRemotePlayers()
    Какое значение возвращает? Всех игроков в миссии?

    object[] parms
    Это переменная или массив переменных?

    И я правильно понимаю, что вариант gpHUDLogCenter(string msg, double lifeTime); недопустим?
    Вложения Вложения
    • Тип файла: zip SMP.zip (175.0 Кб, Просмотров: 16)
    Крайний раз редактировалось podvoxx; 09.01.2012 в 06:06.

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

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Спасибо!
    Сразу еще пару вопросов хочется уточнить

    Какое значение возвращает? Всех игроков в миссии?
    да, это все игроки.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Это переменная или массив переменных?
    массив, емнип параметры через запятую , как-то так ("параметр {0},{1},{2}",num0,num1,num2)

    Цитата Сообщение от podvoxx Посмотреть сообщение
    И я правильно понимаю, что вариант gpHUDLogCenter(string msg, double lifeTime); недопустим?
    да, правильно, работают только те 4 варианта которые я указал
    Don't happy, be worry

  19. #344
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    40
    Сообщений
    4,245

    Re: Вопросы.

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

  20. #345
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    40
    Сообщений
    4,245

    Re: Вопросы.

    Хотелось бы уточнить
    Код:
    public override void OnBattleStarted()
     {
            base.OnBattleStarted();
            MissionNumberListener = -1;
            GamePlay.gpPostMissionLoad("missions\\Single\\Samples\\TestSubmissions\\TestSubMission1.mis");
            GamePlay.gpPostMissionLoad("missions\\Single\\Samples\\TestSubmissions\\TestSubMission2.mis");
            GamePlay.gpPostMissionLoad("missions\\Single\\Samples\\TestSubmissions\\TestSubMission3.mis");
     }
    public override void OnBattleStarted() - это переопределение метода, в него мы заносим то, что нужно сделать при старте миссии-хоста (?), здесь загружаем миссии и слушаем их все. Можно получить какое-то нормально определение, что это такое? И что в нем делает это: base.OnBattleStarted();.

    У меня есть только такое определение:
    В начале любой миссии "Ил-2.БЗБ" вызывается метод '''public virtual void OnBattleStarted()'''. Именно при его помощи мы будем загружать под-миссии при старте основной миссии (миссии-хоста):
    И:
    base.OnBattleStarted() - метод вызова, выполняемый один раз при инициализации.
    Оба неустраивают, хотелось бы ясности.

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

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Оба неустраивают, хотелось бы ясности.
    Насколько я понимаю, это случается, когда сервер нажимает кнопку Battle! или если выделенный, то когда пишет battle start в консоли launcher.exe.

    Есть еще другой метод Init, который происходит при загрузке миссии емнип.

    Для чего используется base. ... во многих методах самому интересно.

    Еще смежный вопрос: onMissionLoaded если прописан в миссии хосте, будет срабатывать при подгрузке подмиссий или только хоста? Соответственно, в подмиссию можно его включать и, например запускать timeout некоторых процессов подмиссии в методе onMissionLoaded ? Например для подмиссии:
    Код:
    onMissionLoaded ...
                           timeout ...
                                  {
                                     destroy actors
                                     и перезагрузить саму себя
                                   }
    OnBattleStarted() если присутствует в подмиссии при загрузке подмиссии будет срабатывать?
    ...зелёные горят.
    ----------------------

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

  22. #347
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    40
    Сообщений
    4,245

    Re: Вопросы.

    Цитата Сообщение от -atas- Посмотреть сообщение
    OnBattleStarted() если присутствует в подмиссии при загрузке подмиссии будет срабатывать?
    В тех скриптах, что у меня есть - этот метод прописывается в подмиссии и значит срабатывает, вот пример naruv'а scripttest

    Код:
    public override void OnBattleStarted()
            {            
                AiActor actor = GamePlay.gpActorByName("Static0");
                if (actor != null)
                {
                    serverMessage("Объект найден");
                }
                else
                {
                    serverMessage("Объект не найден");
                }
    
            }

  23. #348

    Re: Вопросы.

    OnBattleStarted()
    Метод вызывается один раз при старте битвы. Точнее - как только битва уже стартовала.

    OnMissionLoaded(...)
    Вызывается как только загрузилась новая миссия. Причем вызывается во всех ранее загруженных миссиях.

    Роль ключевого слова base. Вызывается переопределяемый метод класса-предка. На пример - у нас есть класс MyMission, предком которого является AMission. В классе MyMission переопределен OnBattleStarted(), в котором мы пишем на экран - "Битва началась!". Определим еще один класс RealMission, предком которого будет класс MyMission, и так же, переопределим в нем метод OnBattleStarted(), где на экран выведем - "Таки да, началась!" Что произойдет, если мы создадим экземпляр RealMission и вызовем в нем OnBattleStarted()? Как и предполагается, будет выведена надпись "Таки да, началась!". Получается, весь код, который мы писали в MyMission в том же методе, никак не используется. Для этого и существует base. Т.е. Этим мы вызовем метод предка. Т.е., если в реализации RealMission.OnBattleStarted() вначале дописать base.OnBattleStarted(), мы получим две последовательно выведенные надписи - "Битва началась!" и "Таки да, началась!".

  24. #349
    hehehe 111 Аватар для podvoxx
    Регистрация
    25.08.2008
    Адрес
    Барнаул - Питер
    Возраст
    40
    Сообщений
    4,245

    Re: Вопросы.

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    OnBattleStarted()
    Метод вызывается один раз при старте битвы. Точнее - как только битва уже стартовала.
    OnMissionLoaded(...)
    Вызывается как только загрузилась новая миссия. Причем вызывается во всех ранее загруженных миссиях.
    Спасибо за подробный ответ!
    Цитата Сообщение от Small_Bee Посмотреть сообщение
    Для этого и существует base. Т.е. Этим мы вызовем метод предка. Т.е., если в реализации RealMission.OnBattleStarted() вначале дописать base.OnBattleStarted(), мы получим две последовательно выведенные надписи - "Битва началась!" и "Таки да, началась!".
    Можно это назвать вызовом метода MyMission из RealMission, после которого уже идет выполнение самого RealMission?
    А если добавить третий класс SuperMission, предок которого RealMission, как тогда добраться до MyMission? Или так делать нельзя?
    Крайний раз редактировалось podvoxx; 05.10.2011 в 13:32.

  25. #350

    Re: Вопросы.

    Цитата Сообщение от podvoxx Посмотреть сообщение
    Спасибо за подробный ответ!

    Можно это назвать вызовом метода MyMission из RealMission, после которого уже идет выполнение самого RealMission?
    А если добавить третий класс SuperMission, предок которого RealMission, как тогда добраться до MyMission? Или так делать нельзя?
    Да, можно. RealMission есть "прокачанный" вариант MyMission. А после, до или во время зависит от того, где именно base пропишете.
    Это зависит от того, что написано в RealMission.

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

Ваши права

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