Red Rodgers  

Вернуться   Red Rodgers > Запасная полоса > ИЛ-2 ШТУРМОВИК: БИТВА ЗА БРИТАНИЮ

Ответ
 
Опции темы Опции просмотра
Старый 19-07-2012, 18:01   #1
naryv
Corporal
 
Аватар для naryv
 
Регистрация: Aug 2004
Сообщений: 113
Цитата:
Сообщение от podvoxx Посмотреть сообщение
Это были 110-ки без бомб, т.е. пулеметно-пушечное вооружение они применяют по конкретным объектам(например по танкам стреляли, пока всех не постреляли - не успокоились).
Хм, атака района подразумевала только бомбы . АИ-шнику сказал, он обещал посмотреть.
Цитата:
Сообщение от podvoxx Посмотреть сообщение
Кстати возможно задать во время миссии вэйпоинт "Атаковать цель" чтобы атаковался конкретный юнит(он грузится из подмиссии, поэтому его нельзя выбрать в редакторе)?
только для воздушных целей можно.
__________________
Модератор - деревянная палка с прокладкой из сукна, служащая для приглушения звука у пианино. (Большой Энциклопедический Словарь)
naryv вне форума   Ответить с цитированием
Старый 20-07-2012, 08:48   #2
podvoxx
Senior Aircraftsman
 
Регистрация: Dec 2008
Сообщений: 38
Цитата:
Сообщение от naryv Посмотреть сообщение
Хм, атака района подразумевала только бомбы . АИ-шнику сказал, он обещал посмотреть.
А можно ему передать по выбору приоритета целей?
Вчера направил харрикейны атаковать цель(без указания конкретной), они первым делом начали штурмовать окопы(синие статики), хотя рядом стояли более важные цели ПТ пушки. Нужно поставить приоритет статиков окопов и зданий на последнее место, все равно пулеметами они ничего не сделают.
В идеале(хотя бы в сиквеле) нужна возможность задать АИ тип цели, который стоит атаковать или список, где можно настроить этот приоритет. Это нужно для более точного управленя ботами, особенно в онлайне. Сейчас вызывая его на поле боя сложно предположить чем он там будет заниматься(и часто нужно, чтобы совсем другим). К примеру "Атаковать бронетехнику", "Атаковать артиллерию", "Атаковать зенитную артиллерию". Может быть можно добавить новый вэйпоинт или еще как-то сделать.
В меню радиокоманд вроде все это есть. Кстати нет такой возможности уточнять задачу отдавая команды АИ через радиокоманды из скрипта? Так даже можно будет надстройку с доработанным АИ теоретически сделать в зависимости от условий в миссии направляя его действия.

С OnActorTaskCompleted разобрался, вчера впервые группа красных танков прорвала оборону синих к западу от г. Амьен и "уничтожила" около 200 фрицев на окраине города В небе кружили хурики со 109-ми, 9-ка велингтонов нанесла бомбовый удар по войскам города - смотрится все здорово, полетать правда некогда. Жаль что дымы плохо работают, очень хочется устроить пожар

1. И вопрос по брифингам. Если одмиссия имеет брифинг, он добавляется к брифингу хост-миссии?

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

Последний раз редактировалось podvoxx; 20-07-2012 в 10:12.
podvoxx вне форума   Ответить с цитированием
Старый 20-07-2012, 13:22   #3
naryv
Corporal
 
Аватар для naryv
 
Регистрация: Aug 2004
Сообщений: 113
Цитата:
Сообщение от podvoxx Посмотреть сообщение
А можно ему передать по выбору приоритета целей?
Вчера направил харрикейны атаковать цель(без указания конкретной), они первым делом начали штурмовать окопы(синие статики), хотя рядом стояли более важные цели ПТ пушки. Нужно поставить приоритет статиков окопов и зданий на последнее место, все равно пулеметами они ничего не сделают.
что-то мы попробовали - с указанием района атаки и без бомб 110 ничего не атакуют, в точке атаки стоят нейтральные статик-окопы. В общем надо миссию смотреть, не получилось у нас повторить .

Цитата:
Сообщение от podvoxx Посмотреть сообщение
В идеале(хотя бы в сиквеле) нужна возможность задать АИ тип цели, который стоит атаковать или список, где можно настроить этот приоритет. Это нужно для более точного управленя ботами, особенно в онлайне. Сейчас вызывая его на поле боя сложно предположить чем он там будет заниматься(и часто нужно, чтобы совсем другим). К примеру "Атаковать бронетехнику", "Атаковать артиллерию", "Атаковать зенитную артиллерию". Может быть можно добавить новый вэйпоинт или еще как-то сделать.
В меню радиокоманд вроде все это есть. Кстати нет такой возможности уточнять задачу отдавая команды АИ через радиокоманды из скрипта? Так даже можно будет надстройку с доработанным АИ теоретически сделать в зависимости от условий в миссии направляя его действия.
Я прошу прощения, вчера наглым образом наврал про невозможность перезадать цель ботам, потом вспомнил, что так делал уже сам . Вот пример - та-же миссия с кастомной колонной, добавил в неё 110 которые изначально должны атаковать матадоры. При рождении кастомной колонны 110 перенаправляются атаковать её. Миссия:
Код:
[PARTS]
  core.100
  bob.100
[MAIN]
  MAP Land$Online_Cross_v_Roundel
  BattleArea 0 0 32768 32768 10000
  TIME 12
  WeatherIndex 0
  CloudsHeight 1000
  BreezeActivity 10
  ThermalActivity 10
[GlobalWind_0]
  Power 3.000 0.000 0.000
  BottomBound 0.00
  TopBound 1500.00
  GustPower 5
  GustAngle 45
[splines]
[AirGroups]
  BoB_LW_LG2_I.01
[BoB_LW_LG2_I.01]
  Flight0  1 2 3
  Class Aircraft.Bf-110C-4
  Formation FINGERFOUR
  CallSign 28
  Fuel 100
  Weapons 1
  Skill 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3
[BoB_LW_LG2_I.01_Way]
  NORMFLY 8762.83 17759.64 500.00 300.00
  NORMFLY 8784.100 15337.75 500.00 300.00
  NORMFLY 9615.85 9869.40 500.00 300.00
  NORMFLY 14784.61 10298.51 500.00 300.00
  GATTACK_TARG 19928.28 9694.75 500.00 300.00 3_Chief 1
  NORMFLY 22660.83 16112.82 500.00 300.00
  NORMFLY 20220.47 20406.43 500.00 300.00
  NORMFLY 15622.15 21240.93 500.00 300.00
  NORMFLY 11311.86 20457.09 500.00 300.00
[CustomChiefs]
[Chiefs]
  3_Chief Vehicle.AEC_Matador gb /num_units 4
[3_Chief_Road]
  19551.57 9209.35 38.40  0 10 4.17
  19680.00 9184.00 38.40
  S 15 0 0.80 20.00 P 19775.27 9202.64
  S 15 0 0.78 20.00 P 19809.96 9193.38
  S 14 0 0.74 20.00 P 19897.04 9211.04
  S 14 0 0.68 20.00 P 20025.98 9176.63
  S 14 0 0.64 20.00 P 20119.74 9151.60
  S 13 0 0.60 20.00 P 20228.83 9163.97
  S 13 0 0.58 20.00 P 20279.36 9150.44
  20419.84 9290.50 38.40
[Stationary]
[Buildings]
[BuildingsLinks]
[Trigger]
  trigger TPassThrough 3 1 19999 9180 250
Скрипт:
Код:
using maddox.game;
using maddox.game.world;

public class Mission : AMission
    {

    public override void OnBattleStarted()
    {
        base.OnBattleStarted();
        MissionNumberListener = -1;                
    }
    

        public override void OnActorTaskCompleted(int missionNumber, string shortName, AiActor actor)
        {
            base.OnActorTaskCompleted(missionNumber, shortName, actor);
            GamePlay.gpHUDLogCenter(shortName + " PRIEHALI!!!!!!!");
        }

        public override void OnActorCreated(int missionNumber, string shortName, AiActor actor)
        {
            base.OnActorCreated(missionNumber, shortName, actor);
            if ((missionNumber>0)&&(actor is AiGroundGroup))   
            {
                AiAirGroup ag = GamePlay.gpAirGroups(2)[0];          
                if (ag != null)
                {                    
                    AiWayPoint[] way = ag.GetWay();             // получили маршрут группы
                    for (int i = ag.GetCurrentWayPoint() ; i < way.Length; i++) //просматриваем его начиная со след. точки - те которые уже пролетели нам не нужны
                    {
                        if ((way[i] as AiAirWayPoint).Action == AiAirWayPointType.GATTACK_TARG)     // находим точку атаки
                        {                            
                            (way[i] as AiAirWayPoint).Target = actor;                               // задаём новую цель - свежесозданого актора
                            (way[i] as AiAirWayPoint).GAttackPasses = AiAirWayPointGAttackPasses._3;   // по умолчанию AiAirWayPointGAttackPasses.AUTO но можно задать кол-во заходов и тип атаки
                            (way[i] as AiAirWayPoint).P.x = actor.Pos().x;                          // задаём новые координаты точки маршрута, следует учесть, что когда самолёты к этой точке подлетят - они будут "искать" свою цель в радиусе 6 км, т.е. если колонна уедет за это время - надо будет корректировать координаты
                            (way[i] as AiAirWayPoint).P.y = actor.Pos().y;
                        }
                        
                    }                                        
                    ag.SetWay(way);  // задаём изменённый маршрут
                }
            }
        }

        public void CreateCustomColumn()
        {            
            ISectionFile mmf = GamePlay.gpCreateSectionFile();
            string section = "";
            string key = "";
            string value = "";
            section = "CustomChiefs";               
            key = "Vehicle.MyCustomChief";   // название колонны
            value = "$core/icons/tank.mma";  // иконка
            mmf.add(section, key, value);

            section = "Vehicle.MyCustomChief";  // секция с описанием колонны, называется как объявленный выше чиф
            key = "Car.MG_TA";                  // перечисляем юниты входящие в колонну
            value = "";
            mmf.add(section, key, value);
            key = "Car.AEC_Matador";            
            mmf.add(section, key, value);
            key = "Car.Beaverette_III";            
            mmf.add(section, key, value);
            key = "Car.Beaverette_III";            
            mmf.add(section, key, value);
            key = "Car.Austin_K2_Ambulance";            
            mmf.add(section, key, value);
            key = "Car.Scammell_Pioneer_TRMU30";            
            mmf.add(section, key, value);
            key = "TrailerUnit.Scammell_Pioneer_TRCU30"; 
            value = "1";                        // признак того, что это - буксируемый юнит
            mmf.add(section, key, value);
            key = "Car.Austin_7";
            value = "";     
            mmf.add(section, key, value);       

            section = "Chiefs";                 // секция с описанием параметров юнитов в чифе
            key = "0_Chief Vehicle.MyCustomChief";
            value = "gb /colors00_tent olive/colors00 darkgreen/skin1 materialsSummer2/skin3 materialsSummer2/skin4 materialsSummer_RAF/tow06_00 1_Static";
            /* gb - страна, /colors00_tent olive/colors00 darkgreen - цвет тента и кузова первого юнита, skin1 materialsSummer2/skin3 materialsSummer2/skin4 materialsSummer_RAF - 
             скины 1,3 и 4 юнитов, /tow06_00 1_Static - на шестом юните(прицеп) стоит груз; можно обойтись только gb - тогда все скины, цвета будет дефолтные, грузов не будет */
            mmf.add(section, key, value);

            section = "Stationary";                 // груз для прицепа
            key = "1_Static";
            value = "Stationary.Matilda_2A gb 0.00 0.00 0.00";     
            mmf.add(section, key, value);        

            section = "0_Chief_Road";   // секция с описанием дороги
            key = "16844.94 15543.52 38.40";  
            value = "0 2 0.28";
            mmf.add(section, key, value);

            key = "16842.57 15269.21 38.40";
            value = "0 2 0.14";
            mmf.add(section, key, value);

            key = "16806.17 14875.18 38.40";
            value = "0 2 0.14";
            mmf.add(section, key, value);


            key = "16769.69 14747.50 38.40";
            value = "0 4 0.14";
            mmf.add(section, key, value);

            key = "S";
            value = "8 0 0.80 40.00 P 16773.99 14748.81";
            mmf.add(section, key, value);            

            key = "S";
            value = "8 0 0.35 20.00 P 16881.36 14144.95";
            mmf.add(section, key, value);            

            key = "16885.20 14119.75 38.40";
            value = "0 6 0.14";
            mmf.add(section, key, value);

            key = "18786.22 14453.98 38.40";
            value = "0 2 0.14";
            mmf.add(section, key, value);

            key = "18824.68 14635.02 38.40";
            value = "";
            mmf.add(section, key, value);
            
            GamePlay.gpPostMissionLoad(mmf);
        }

        public override void OnTrigger(int missionNumber, string shortName, bool active)
        {            
            base.OnTrigger(missionNumber, shortName, active);
            if (active)
                CreateCustomColumn();
        }
        
    }
в нём добавил на ивент OnActorCreated перенацеливание группы на вновь созданного актора. Но естественно перенацеливать можно куда угодно. Для расширенных св-в точки маршрута её надо задавать как AiAirWayPoint.

Цитата:
Сообщение от podvoxx Посмотреть сообщение
С OnActorTaskCompleted разобрался, вчера впервые группа красных танков прорвала оборону синих к западу от г. Амьен и "уничтожила" около 200 фрицев на окраине города В небе кружили хурики со 109-ми, 9-ка велингтонов нанесла бомбовый удар по войскам города - смотрится все здорово, полетать правда некогда.
это хорошо
Цитата:
Сообщение от podvoxx Посмотреть сообщение
Жаль что дымы плохо работают, очень хочется устроить пожар
плохо - в смысле квадратиками? Это вроде починили.

Цитата:
Сообщение от podvoxx Посмотреть сообщение
1. И вопрос по брифингам. Если одмиссия имеет брифинг, он добавляется к брифингу хост-миссии?
емнип да.

Цитата:
Сообщение от podvoxx Посмотреть сообщение
2. Можно ли как-то из скрипта определить есть у юнита возможность нести груз и цеплять трейлер?
Нет, так нельзя.
__________________
Модератор - деревянная палка с прокладкой из сукна, служащая для приглушения звука у пианино. (Большой Энциклопедический Словарь)
naryv вне форума   Ответить с цитированием
Старый 20-07-2012, 13:50   #4
podvoxx
Senior Aircraftsman
 
Регистрация: Dec 2008
Сообщений: 38
Цитата:
Сообщение от naryv Посмотреть сообщение
что-то мы попробовали - с указанием района атаки и без бомб 110 ничего не атакуют, в точке атаки стоят нейтральные статик-окопы. В общем надо миссию смотреть, не получилось у нас повторить .
Странно. Может это из-за того, что 110-загружаются из подмиссии? А так там в хост-миссии смотреть нечего - статики-окопы и танки. Ну да ладно, это не критично

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

Цитата:
Сообщение от naryv Посмотреть сообщение
плохо - в смысле квадратиками? Это вроде починили.
Нет, на квадратики я уже давно не обращаю внимания. Производительность сильно падает при загрузке объекта "Дым"(и любых других эффектов частиц). Я в другой миссии "поджигал" им деревню после бомбежки ее НЕ-111, смотрится отлично и реально влияет на боевую обстановку. Постепенно дым поднимался кверху и штурмовка при плохой видимости становилась гораздо сложней.

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

Спасибо за помощь, даже пока вопросов не осталось
podvoxx вне форума   Ответить с цитированием
Старый 20-07-2012, 14:28   #5
naryv
Corporal
 
Аватар для naryv
 
Регистрация: Aug 2004
Сообщений: 113
Цитата:
Сообщение от podvoxx Посмотреть сообщение
Странно. Может это из-за того, что 110-загружаются из подмиссии? А так там в хост-миссии смотреть нечего - статики-окопы и танки. Ну да ладно, это не критично
Вряд-ли из-за подмиссии, возможно с окопами ещё что-то стоит, но так трудно сказать.


Цитата:
Сообщение от podvoxx Посмотреть сообщение
О, отлично. Значит есть возможность организовать рыскающих в тылу ботов-охотников и всяческие патрули
да, конечно. Вот, на всякий случай, что можно задать в AiAirWayPoint
Код:
Action   значения - AiAirWayPointType.NORMFLY //по умолчанию
    NORMFLY, // нормальный полёт к точке
    TAKEOFF, // взлёт
    LANDING, // посадка
    GATTACK_TARG, // наземка, цель
    GATTACK_POINT, // наземка, регион
    AATTACK_BOMBERS, // атака бомберов
    AATTACK_FIGHTERS, // атака истребителей
    HUNTING, // свободная охота
    FOLLOW, // следование за дружеской группой
    ESCORT, // сопровождение др. группы
    COVER, // прикрытие друж. наземки
    RECON // разведка

Target  значения типа AiActor ;

GAttackType значения  AiAirWayPointGAttackType.AUTO;  //по умолчанию , тип наземной атаки
    AUTO, // автоматический выбор
    LEVEL,  // бомбардировка с горизонта
    DIVE,    // бомбардировка в пикировании
    TOP_MAST,  // бомбардировка топмачтом
    SHALLOW_DIVE  // бомбардировка  в пологом пике


GAttackPasses значения  AiAirWayPointGAttackPasses.AUTO;    //по умолчанию  , кол-во заходов
    AUTO, // автоматический выбор
    _1,  // 1 
    _2,  // 2 
    _3,  // 3
    _4,  // 4
    ALL_OUT  // до израсходования боеприпасов или уничтожения цели

P, Speed - координаты и скорость в м/с

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

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

Цитата:
Сообщение от podvoxx Посмотреть сообщение
Спасибо за помощь, даже пока вопросов не осталось
Да не за что, главное чтобы помогало
__________________
Модератор - деревянная палка с прокладкой из сукна, служащая для приглушения звука у пианино. (Большой Энциклопедический Словарь)
naryv вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Общие вопросы по учебке RR_Flash Staff 93 09-11-2010 20:57


Часовой пояс GMT +4, время: 12:13.


Red Rodgers official site. Powered by TraFFa. ©2000 - 2024, Red Rodgers
vBulletin Version 3.8.12 by vBS. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot