Red Rodgers

Red Rodgers (https://www.redrodgers.com/forums/index.php)
-   ИЛ-2 ШТУРМОВИК: БИТВА ЗА БРИТАНИЮ (https://www.redrodgers.com/forums/forumdisplay.php?f=235)
-   -   Вопросы по БзБ (скрипты и редактор) (https://www.redrodgers.com/forums/showthread.php?t=6428)

naryv 18-07-2012 12:33

Вопросы по БзБ (скрипты и редактор)
 
Чтобы не захламлять тему про форум, сюда вынес.
Цитата:

Сообщение от podvoxx (Сообщение 130775)
Создание настраиваемой колонны:
Код:

[CustomChiefs]
  Vehicle.custom_chief70  $core/icons/tank.mma
[Vehicle.custom_chief70]
  Car.Morris_CS8_tent
  Car.Bedford_MW_open
  Car.Morris_CS8_tent
  Car.Albion_AM463
[Chiefs]
  "0_Chief" Vehicle.custom_chief70 gb
[0_Chief_Road]
  "309239.16 97634.91 38.40  0 5 6.11"
  "S 1773 63 0.20 20.00 P 309288.41 97664.51"
  "S 1773 66 0.68 20.00 P 310180.47 98048.26"
  "S 1773 78 0.40 10.00 P 313313.66 98745.98"
  "313319.16 98746.18 38.40"

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

проверил, некорректно описаны параметры пути - для точки key - это координаты, а value - остальные три цифры, для сплайна - ключ - "S" остальное - значение. Вот пример :
миссия
Код:

[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]
[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 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);
            GamePlay.gpHUDLogCenter(shortName + " TRIGGER!!!!!!!");

            if (active)
                CreateCustomColumn();
        }
       
    }

при въезде матадоров в триггер - создаётся колонна, весь маршрут мне переписывать было лень, поэтому колонна доезжает до сплайна, по нему прокатывается, и дальше напрямую ломится к "финишу". Заодно и на OnActorTaskCompleted кричит кто доехал, на триггер тоже сигнал есть.

podvoxx 18-07-2012 13:07

Вложений: 1
Спасибо, не думал что section и key должны как-то определенным образом задаваться, делал просто как строку. Вечером проверю

По поводу OnActorTaskCompleted кажется понимаю в чем дело. Он на группу срабатывает?(у меня на отдельных юнитов проверка стояла)

Пробовал стационарные окопы, хорошего мало. Крючков нет для нормального соединения, уничтожаются при взрыве рядом, а круглый 10 м - встает на бок(картинка в аттаче), я даже в него влетел как-то, когда танки штурмовал. К тому же у них работает колизия, танки не могут проехать пока окоп не уничтожен. Т.е. использовать получится только там, где не ездит техника и особо не стреляют. Стационарные здания лихо взрываются и придется их много ставить, чтобы усложнить цель. Все-таки возможность загружать "Здания" из подмиссий была бы лучшим вариантом.

naryv 18-07-2012 13:27

Цитата:

Сообщение от podvoxx (Сообщение 130786)
Спасибо, не думал что section и key должны как-то определенным образом задаваться, делал просто как строку. Вечером проверю

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

Цитата:

Сообщение от podvoxx (Сообщение 130786)
По поводу OnActorTaskCompleted кажется понимаю в чем дело. Он на группу срабатывает?(у меня на отдельных юнитов проверка стояла)

чиф(колонна или группа, как удобнее) его вызывают , этот чиф может состоять и из одного юнита. А отдельные юниты в чифе не вызывают этот ивент.

Цитата:

Сообщение от podvoxx (Сообщение 130786)
Пробовал стационарные окопы, хорошего мало. Крючков нет для нормального соединения, уничтожаются при взрыве рядом, а круглый 10 м - встает на бок(картинка в аттаче), я даже в него влетел как-то, когда танки штурмовал. К тому же у них работает колизия, танки не могут проехать пока окоп не уничтожен. Т.е. использовать получится только там, где не ездит техника и особо не стреляют. Стационарные здания лихо взрываются и придется их много ставить, чтобы усложнить цель.

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

Цитата:

Сообщение от podvoxx (Сообщение 130786)
Все-таки возможность загружать "Здания" из подмиссий была бы лучшим вариантом.

Это, увы, невозможно :(.

podvoxx 18-07-2012 13:35

Цитата:

Сообщение от naryv (Сообщение 130787)
Это, увы, невозможно :(.

Будем жить с этим) А усилить стационарные до уровня обычных зданий можно будет?

naryv 18-07-2012 14:04

Цитата:

Сообщение от podvoxx (Сообщение 130788)
Будем жить с этим) А усилить стационарные до уровня обычных зданий можно будет?

только частично, ДМ у них разная, здания можно сделать "неубиваемыми", а стационары нет, но будут крепче чем сейчас.

podvoxx 19-07-2012 09:24

Вчера получилось сделать "чистые" файлы миссий только при назначении в вэйпонтах key первым значением координат или S, правда времени на эксперименты не было, позже еще проверю. Обычные и настраиваемые колонны работают нормально, нужно сделать еще загрузку грузов в кузов и трейлеры, тут проблем не должно быть.

Еще вспомнил кое-что.
1. При отправке в чат слов вроде "Trailers", "Vehicles", "Vehicle" и наверняка других подобных они переводятся на русский игрой. Я проверил файл локализации свой - нет там такого точно :)

2. Стационарные окопы(возможно и здания также). Поставил линию окопов, сторона - "Нет". Однако вызванные из резерва 110-ки начали лупить окопы(безуспешно причем), не обращая внимания на наступающие танки. Тип вэйпоинта у них "Атаковать район". Возможно что-то напутано в настройках объектов. Поставил сторону "Синие" - штурмовка окопов прекратилась.

3. Воронки от бомб. В онлайне самолеты и техника проезжают сквозь них, в оффлайне не проверял. Планируется сделать им коллизию? Очень пригодится для закрытия аэродромов, это по сути единственный способ( не считая уничтожения самих самолетов, но у нас они обычно спавнятся из воздуха). Хотелось бы чтобы и поезда реагировали на воронки также(разрушались и сходили с рельс)

naryv 19-07-2012 11:53

Цитата:

Сообщение от podvoxx (Сообщение 130836)
Еще вспомнил кое-что.
1. При отправке в чат слов вроде "Trailers", "Vehicle", "Vehicle" и наверняка других подобных они переводятся на русский игрой. Я проверил файл локализации свой - нет там такого точно :)

это внутренний локализатор видимо.

Цитата:

Сообщение от podvoxx (Сообщение 130836)
2. Стационарные окопы(возможно и здания также). Поставил линию окопов, сторона - "Нет". Однако вызванные из резерва 110-ки начали лупить окопы(безуспешно причем), не обращая внимания на наступающие танки. Тип вэйпоинта у них "Атаковать район". Возможно что-то напутано в настройках объектов. Поставил сторону "Синие" - штурмовка окопов прекратилась.

Если тип вэйпоинта у них "Атаковать район" - они просто бросают бомбы в указанном районе, без конкретных целей.

Цитата:

Сообщение от podvoxx (Сообщение 130836)
3. Воронки от бомб. В онлайне самолеты и техника проезжают сквозь них, в оффлайне не проверял. Планируется сделать им коллизию? Очень пригодится для закрытия аэродромов, это по сути единственный способ( не считая уничтожения самих самолетов, но у нас они обычно спавнятся из воздуха). Хотелось бы чтобы и поезда реагировали на воронки также(разрушались и сходили с рельс)

тут пока не готов сказать ничего

podvoxx 19-07-2012 12:15

Цитата:

Сообщение от naryv (Сообщение 130837)
Если тип вэйпоинта у них "Атаковать район" - они просто бросают бомбы в указанном районе, без конкретных целей.

С этим понятно, они так и делают. Просто они атакую объект который нейтрален и никому не принадлежит

naryv 19-07-2012 13:28

Цитата:

Сообщение от podvoxx (Сообщение 130839)
С этим понятно, они так и делают. Просто они атакую объект который нейтрален и никому не принадлежит

Ну да, когда цель атаки - район - они не обращают внимание на то кто в этом р-не есть - просто бомбят этот участок.

podvoxx 19-07-2012 13:34

Цитата:

Сообщение от naryv (Сообщение 130841)
Ну да, когда цель атаки - район - они не обращают внимание на то кто в этом р-не есть - просто бомбят этот участок.

Если объект ничейный они же не должны его атаковать? Когда окопов нет или окопы-"здания" они не обращают на них внимания. Может там сторона перепутана "Нет" и "Красный"?

naryv 19-07-2012 16:29

Цитата:

Сообщение от podvoxx (Сообщение 130842)
Если объект ничейный они же не должны его атаковать? Когда окопов нет или окопы-"здания" они не обращают на них внимания. Может там сторона перепутана "Нет" и "Красный"?

Когда цель атаки- район - они не атакуют объекты в этом районе - просто кидают бомбы примерно в указанную точку(если есть техническая возможность) в этом случае у них нет объекта атаки - только точка поверхности. А на этой поверхности могут стоять и враги и нейтралы и свои.

podvoxx 19-07-2012 16:36

Цитата:

Сообщение от naryv (Сообщение 130855)
Когда цель атаки- район - они не атакуют объекты в этом районе - просто кидают бомбы примерно в указанную точку(если есть техническая возможность) в этом случае у них нет объекта атаки - только точка поверхности. А на этой поверхности могут стоять и враги и нейтралы и свои.

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

naryv 19-07-2012 18:01

Цитата:

Сообщение от podvoxx (Сообщение 130856)
Это были 110-ки без бомб, т.е. пулеметно-пушечное вооружение они применяют по конкретным объектам(например по танкам стреляли, пока всех не постреляли - не успокоились).

Хм, атака района подразумевала только бомбы :) . АИ-шнику сказал, он обещал посмотреть.
Цитата:

Сообщение от podvoxx (Сообщение 130856)
Кстати возможно задать во время миссии вэйпоинт "Атаковать цель" чтобы атаковался конкретный юнит(он грузится из подмиссии, поэтому его нельзя выбрать в редакторе)?

только для воздушных целей можно.

podvoxx 20-07-2012 08:48

Цитата:

Сообщение от naryv (Сообщение 130859)
Хм, атака района подразумевала только бомбы :) . АИ-шнику сказал, он обещал посмотреть.

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

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

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

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

naryv 20-07-2012 13:22

Цитата:

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

что-то мы попробовали - с указанием района атаки и без бомб 110 ничего не атакуют, в точке атаки стоят нейтральные статик-окопы. В общем надо миссию смотреть, не получилось у нас повторить :).

Цитата:

Сообщение от podvoxx (Сообщение 130877)
В идеале(хотя бы в сиквеле) нужна возможность задать АИ тип цели, который стоит атаковать или список, где можно настроить этот приоритет. Это нужно для более точного управленя ботами, особенно в онлайне. Сейчас вызывая его на поле боя сложно предположить чем он там будет заниматься(и часто нужно, чтобы совсем другим). К примеру "Атаковать бронетехнику", "Атаковать артиллерию", "Атаковать зенитную артиллерию". Может быть можно добавить новый вэйпоинт или еще как-то сделать.
В меню радиокоманд вроде все это есть. Кстати нет такой возможности уточнять задачу отдавая команды АИ через радиокоманды из скрипта? Так даже можно будет надстройку с доработанным АИ теоретически сделать в зависимости от условий в миссии направляя его действия.

Я прошу прощения, вчера наглым образом наврал про невозможность перезадать цель ботам, потом вспомнил, что так делал уже сам :) . Вот пример - та-же миссия с кастомной колонной, добавил в неё 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 (Сообщение 130877)
С OnActorTaskCompleted разобрался, вчера впервые группа красных танков прорвала оборону синих к западу от г. Амьен и "уничтожила" около 200 фрицев на окраине города :) В небе кружили хурики со 109-ми, 9-ка велингтонов нанесла бомбовый удар по войскам города - смотрится все здорово, полетать правда некогда.

:) это хорошо
Цитата:

Сообщение от podvoxx (Сообщение 130877)
Жаль что дымы плохо работают, очень хочется устроить пожар :)

плохо - в смысле квадратиками? Это вроде починили.

Цитата:

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

емнип да.

Цитата:

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

Нет, так нельзя.

podvoxx 20-07-2012 13:50

Цитата:

Сообщение от naryv (Сообщение 130891)
что-то мы попробовали - с указанием района атаки и без бомб 110 ничего не атакуют, в точке атаки стоят нейтральные статик-окопы. В общем надо миссию смотреть, не получилось у нас повторить :).

Странно. Может это из-за того, что 110-загружаются из подмиссии? А так там в хост-миссии смотреть нечего - статики-окопы и танки. Ну да ладно, это не критично

Цитата:

Сообщение от naryv (Сообщение 130891)
Я прошу прощения, вчера наглым образом наврал про невозможность перезадать цель ботам, потом вспомнил, что так делал уже сам :) .

О, отлично. Значит есть возможность организовать рыскающих в тылу ботов-охотников и всяческие патрули :)

Цитата:

Сообщение от naryv (Сообщение 130891)
плохо - в смысле квадратиками? Это вроде починили.

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

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

Спасибо за помощь, даже пока вопросов не осталось :)

naryv 20-07-2012 14:28

Цитата:

Сообщение от podvoxx (Сообщение 130895)
Странно. Может это из-за того, что 110-загружаются из подмиссии? А так там в хост-миссии смотреть нечего - статики-окопы и танки. Ну да ладно, это не критично

Вряд-ли из-за подмиссии, возможно с окопами ещё что-то стоит, но так трудно сказать.


Цитата:

Сообщение от podvoxx (Сообщение 130895)
О, отлично. Значит есть возможность организовать рыскающих в тылу ботов-охотников и всяческие патрули :)

да, конечно. Вот, на всякий случай, что можно задать в 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 (Сообщение 130895)
Нет, на квадратики я уже давно не обращаю внимания. Производительность сильно падает при загрузке объекта "Дым"(и любых других эффектов частиц). Я в другой миссии "поджигал" им деревню после бомбежки ее НЕ-111, смотрится отлично и реально влияет на боевую обстановку. Постепенно дым поднимался кверху и штурмовка при плохой видимости становилась гораздо сложней.

понятно, с производительностью у дымов не очень...

Цитата:

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

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

Цитата:

Сообщение от podvoxx (Сообщение 130895)
Спасибо за помощь, даже пока вопросов не осталось :)

Да не за что, главное чтобы помогало :)


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

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