PDA

Просмотр полной версии : Вопросы по БзБ (скрипты и редактор)


naryv
18-07-2012, 12:33
Чтобы не захламлять тему про форум, сюда вынес.
Создание настраиваемой колонны:
[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
Спасибо, не думал что section и key должны как-то определенным образом задаваться, делал просто как строку. Вечером проверю

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

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

naryv
18-07-2012, 13:27
Спасибо, не думал что section и key должны как-то определенным образом задаваться, делал просто как строку. Вечером проверю Определённым. Если в файл записано как строчка(но правильно) и потом из файла миссия берётся - парсер может её корректно разобрать - где ключ а где значение, а если грузим миссию из секшнфайла заполненного напрямую - уже важно правильно его заполнять.

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

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

Все-таки возможность загружать "Здания" из подмиссий была бы лучшим вариантом. Это, увы, невозможно :(.

podvoxx
18-07-2012, 13:35
Это, увы, невозможно :(.

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

naryv
18-07-2012, 14:04
Будем жить с этим) А усилить стационарные до уровня обычных зданий можно будет? только частично, ДМ у них разная, здания можно сделать "неубиваемыми", а стационары нет, но будут крепче чем сейчас.

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

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

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

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

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

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

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

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

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

naryv
19-07-2012, 13:28
С этим понятно, они так и делают. Просто они атакую объект который нейтрален и никому не принадлежит
Ну да, когда цель атаки - район - они не обращают внимание на то кто в этом р-не есть - просто бомбят этот участок.

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

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

naryv
19-07-2012, 16:29
Если объект ничейный они же не должны его атаковать? Когда окопов нет или окопы-"здания" они не обращают на них внимания. Может там сторона перепутана "Нет" и "Красный"? Когда цель атаки- район - они не атакуют объекты в этом районе - просто кидают бомбы примерно в указанную точку(если есть техническая возможность) в этом случае у них нет объекта атаки - только точка поверхности. А на этой поверхности могут стоять и враги и нейтралы и свои.

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

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

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

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

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

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

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

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

naryv
20-07-2012, 13:22
А можно ему передать по выбору приоритета целей?
Вчера направил харрикейны атаковать цель(без указания конкретной), они первым делом начали штурмовать окопы(синие статики), хотя рядом стояли более важные цели ПТ пушки. Нужно поставить приоритет статиков окопов и зданий на последнее место, все равно пулеметами они ничего не сделают. что-то мы попробовали - с указанием района атаки и без бомб 110 ничего не атакуют, в точке атаки стоят нейтральные статик-окопы. В общем надо миссию смотреть, не получилось у нас повторить :).

В идеале(хотя бы в сиквеле) нужна возможность задать АИ тип цели, который стоит атаковать или список, где можно настроить этот приоритет. Это нужно для более точного управленя ботами, особенно в онлайне. Сейчас вызывая его на поле боя сложно предположить чем он там будет заниматься(и часто нужно, чтобы совсем другим). К примеру "Атаковать бронетехнику", "Атаковать артиллерию", "Атаковать зенитную артиллерию". Может быть можно добавить новый вэйпоинт или еще как-то сделать.
В меню радиокоманд вроде все это есть. Кстати нет такой возможности уточнять задачу отдавая команды АИ через радиокоманды из скрипта? Так даже можно будет надстройку с доработанным АИ теоретически сделать в зависимости от условий в миссии направляя его действия.
Я прошу прощения, вчера наглым образом наврал про невозможность перезадать цель ботам, потом вспомнил, что так делал уже сам :) . Вот пример - та-же миссия с кастомной колонной, добавил в неё 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

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.

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

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

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

podvoxx
20-07-2012, 13:50
что-то мы попробовали - с указанием района атаки и без бомб 110 ничего не атакуют, в точке атаки стоят нейтральные статик-окопы. В общем надо миссию смотреть, не получилось у нас повторить :).
Странно. Может это из-за того, что 110-загружаются из подмиссии? А так там в хост-миссии смотреть нечего - статики-окопы и танки. Ну да ладно, это не критично


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

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

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

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

naryv
20-07-2012, 14:28
Странно. Может это из-за того, что 110-загружаются из подмиссии? А так там в хост-миссии смотреть нечего - статики-окопы и танки. Ну да ладно, это не критично Вряд-ли из-за подмиссии, возможно с окопами ещё что-то стоит, но так трудно сказать.


О, отлично. Значит есть возможность организовать рыскающих в тылу ботов-охотников и всяческие патрули :) да, конечно. Вот, на всякий случай, что можно задать в 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 - координаты и скорость в м/с



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

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

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