Единственный вариант - переписывать скрипт, с тем чтобы удалить из него зависимость поведения АИ танков от MainPlayerUnitА есть ли возможность сделать так, что бы миссия игралась сама собой, а я бы летал свободной камерой?
Единственный вариант - переписывать скрипт, с тем чтобы удалить из него зависимость поведения АИ танков от MainPlayerUnitА есть ли возможность сделать так, что бы миссия игралась сама собой, а я бы летал свободной камерой?
Понятно!
Жду когда спадёт температура и включится мозг, тогда за дело.
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
скриптовой язык здесь - адаптированная версия Java, для прояснения различных моментов его использования рекомендую посмотреть имеющиеся миссии - из редактора доступна пара псевдо "миссий", которых нет в игре - там удобно отлаживать разные скриптовые решения для собственных. Так же с редактором идут две уже подключенных пустых карты, пригодные для построения своих миссий.
Открыл я для себя клонирование, но вот заставить клонов двигаться - не могу, по идее они должны наследовать все свойства родителей(клонировал с коллег по бою), но вот хрена там.
И, что бы не удаляться от темы прикольных скриншотов, вот вам колонна танков.
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
И те же скрины после обработки.
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
Intel Core 2 Duo E7500 2,9GHz, MSI G45M-FD, 4ГБ DDR2, 1ГБ GTХ 550 Ti, W7x32, Logitech EXTRIM 3D PRO
_________________________________________________________________________________________________________________
Мне в хвост вышел мессер... Я этот небесный квадрат не покину... Им даже не надо кресты на могилах, сойдут и на крыльях кресты...
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
Это заблуждение, если клонируется танк, у которого уже есть некий таск (ну какой-то танк из имеющейся миссии, а не выставленный с нуля) то клон будет иметь тот же таск что и родитель, НО - КЛОН НЕ БУДЕТ ВНЕСЕН В ГРУППУ РОДИТЕЛЯ, для того чтобы это сделать надо найти упоминание в файле content.script имени родителя и посмотреть в какую группу он входит, затем добавить в эту группу и юнит клон. Тогда он будет управляться теми же скриптами.Открыл я для себя клонирование, но вот заставить клонов двигаться - не могу, по идее они должны наследовать все свойства родителей(клонировал с коллег по бою), но вот хрена там.
Единственно в каком случае этот подход не сработает - если в скрипте юниты упоминаются поименно или по количеству в группе (т.е. есть какой то цикл, который рассчитан на определенное кол-во итераций по количеству юнитов в группе например советские самоходки в советской миссии 4 (скрины вроде как из нее?)) или когда конкретному юниту с определенным именем указывается определенная задача. (Но это мало где используется, так что в целом должно работать )
Где-то так я и предполагал(во всяком случае наследование совйств предка должно работать). Спасибо. Попробую. Может получится даже танковую колонну на марше сделать. Только вот номера одинаковые
А миссия да, 4-я, моя самая любимая - и марш и танковый бой и артиллерийский бой на дальних дистанциях.
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
Вообще, юнит управляется через 2 скрипта - Таск (имя таска можно посмотреть в content.script, оно написано непосредственно в описании юнита (напр из с1м4
[
"MainPlayerUnit_Tank_1_T34_85",
"GameObject",
"CTankT34_85_44Unit",
new Matrix(
0.865872, -0.498671, 0.039911, 4698.606445,
0.497481, 0.849900, -0.173731, 3744.436523,
0.052715, 0.170284, 0.983984, 595.761719,
0.000000, 0.000000, 0.000000, 1.000000
),
[
["Affiliation", "FRIEND"],
["Task", "CC1M4RussianPanzerGroup1Task"],
["Number", "22_28"],
["IsPlayer", false]
]
],
) а описание таска для этого юнита \CC1M4RussianPanzerGroup1Task\ будет находится в missiontasks.script)
И группы, то же в контенте (в этом случае
[
"CC1M4RussianPanzer_Group1",
"UnitGroup",
"CC1M4RussianPanzer_Group1",
new Matrix(
0.865872, -0.498671, 0.039905, 4698.606445,
0.497479, 0.849900, -0.173737, 3744.436523,
0.052723, 0.170286, 0.983983, 595.761780,
0.000000, 0.000000, 0.000000, 1.000000
),
[
["Units", ["MainPlayerUnit_Tank_1_T34_85", "MainPlayerUnit_Tank_2_T34_85", "MainPlayerUnit_Tank_3_T34_85"]],
["Path", ["Path_Russian_Vysochany_1", "Path_Russian_Vysochany_2", "Path_Russian_Vysochany_3", "Path_Russian_Vysochany_4", "Path_Russian_Vysochany_5", "Path_Russian_Vysochany_6", "Path_Russian_Vysochany_6_1"]],
["DelayedOrder", true],
["Formation", "Column"],
["FormationDistance", 35],
["MovingSpeed", 4],
["FirstOrder", "Patrol"],
["CyclePath", false],
["MinDifficulty", 0]
]
],
)
а описание Группового поведения для этой группы \CC1M4RussianPanzer_Group1\ будет находится в missiontasks.script)
ЗЫ номера то же редактируются - просто подставьте какой-то из упомянутых в других контентах, это и будет ссылкой на нужную текстуру номера... Все имеющиеся перечислены в NumbersMaterials.script
Крайний раз редактировалось Tche; 01.03.2008 в 15:28.
Вот скрин. Теперь нас немножко больше .Почувствуй себя немножечко Бондарчуком (старшим, конечно). Залп танковой роты -это ..гм.. немало.
Вот теперь можно попробовать сделать эпическое полотно "Танковая рота на марше" (Батальон мой комп не потянет )
В таски я конечно не полезу, а вот юнитов добавить в группу - это просто, благдаря Tche . К сожалению юниты в тактические (назовём их так, не "тасковые" же ) группы через редактор не добавляются
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
Ребята! Может вы и патчей наделаете к этому "кубику-рубика"...
У вас здорово выходит.Я не ерничаю,вполне серьезно...Классно смотрится.
Чтобы прописать юниту уже имеющийся таск (допусти в с1м4 добавить в колонну еще один танк) надо
А) Клонировать в редакторе его с танки из этой же колонны (тогда таск просто перенесется при клонировании)
Б) Или тупо поставить туда танк (если хотим добавирть например в колонну 76 а не 85) и сохранить, после чего найдя этот танк в контенте вручную скопировать ему таск от родителя т.е. строчку ["Task", "CC1M4RussianPanzerGroup1Task"]
А ПОТОМ занести имя созданного юнита в группу родителя. ВСЕ! Он будет работать под управлением тех же скритов что и родитель!
А не проще клонировать т34-85 и потом сменить ему класс обьекта на т34-76?(естественно после надо всё равно прописывать его в тактическую группу)
Кстати,я так и не смог заставить действовать добавочный артштурм в первой атакующей волне у березняков.
И ещё, я добавил артштурмов в деревне, но вот как доработать таск, что бы миссия оканчивалась с уничтожением не трех артштурмов как раньше а всех, включая тех юнитов что я добавил?
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
Да как угодно, пожалуйста, можно и так.А не проще клонировать т34-85 и потом сменить ему класс обьекта на т34-76?(естественно после надо всё равно прописывать его в тактическую группу)
Насчет штурмов счас гляну...
/В первой волне/ имеется ввиду группа из 2 т4 напротив су 85? или уже штурмы в деревне?
Да, первая волна - группа CC1M4GermanVysochany_GroupTank в составе ["Units", ["German_Column_Pz4_1", "German_Column_Pz4_2", "German_Column_Stug40_1"]],
Вот эта зараза не хочет становиться врагом. После смены класса обьекта недоступны свойства этого обьекта. (т е как сменил класс pzIV на stug40 все свойства сброшены в ноль). Лечиться клонированием PzIV но смена класса делается ручками в скрипте, и работает это только после перерзагрузки редактора(видимо он кэширует скрипты)
А вот завершение миссии с расстрелом всех 5 (3 старых + 2 новых) артштурмов происходит после расстрела 3х штук, как и в оригинальной миссии. Видимо где-то просто стоит массив тех кого надо убить.
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
В mission.script есть строка в методе event void OnObjectDestroyed(String _ObjectID)
if(KillList_Primary2.size() == 0)
{
CompleteObjective(3);
if (m_MissionObjectives[2][2] == MOSID_Completed)
CompleteObjective(0);
}
это и есть комплит последнего обжектива, по смерти всех штугов в деревне. см файл MissionC1M4.rsr (тонкий момент в скрипте обжективы считают от нуля а в ресурсах от 1 т.е 3 обжектив в скрипте в текстах 4й )
А вверху mission.script есть строки
Array KillList_Primary2 = ["GermanVysochany_StugG40_1", "GermanVysochany_StugG40_2", "GermanVysochany_StugG40_3"];
соответственно добавленный штуг должен быть внесен в этот массив т.к. из него удаляются убитые штуги и обжектив выполнится когда массив обнулится.
Однако это не самый лучший вариант - это подошло если бы мы добавали штугов в деревню а не в первую волну. Если же мы хотим добавить штуги в первую волну, то подсчет их смертей ведется в
методе event void OnObjectDestroyed(String _ObjectID)
.
.
.
if(_ObjectID.IsStartsWith("German_Column_Pz4"))
{ // если имя убитого начинается с German_Column_Pz4
Component GermanLG = GetObject("CC1M4GermanVysochany_GroupTank");
// взять компонент и проверить не пустой ли он?
if(GermanLG == null)
{
// logError("Component German_LightGroup == null!!");
return;
}
GermanLG.RefreshUnitsList();
if(GermanLG.m_Units.size() == 0)
{
// взять компонент и проверить скока юнитов осталось в нем жив ли кто?
GerLightGroupDie = true;
//вобщем все умерли, можно выпускать еще
if(isDebug)
logError("GermanLG.size() == 0");
}
И чтобы смерти штугов в группе T4 корректно обсчитывались им придется присвоить имена начинающиеся с German_Column_Pz4 (или изменить условие вверху) Я бы лучше добавил бы в группу т4 , тогда не пришлось бы мучится с изменениями. Кроме того таск для штуга и т4 наследуется от разных базовых тасков - один от танка другой от сау... по этому есть шанс что штуг с танковым таском будет вести себя не слишком адекватно.
Крайний раз редактировалось Tche; 01.03.2008 в 23:28.
Так я и в деревне добавил 3 артштурма. Заодно грохнул 3 невидимые группы оседлавшие обходные пути. Ты знаешь, когда они вступают в дело? :
Зато теперь по левому флангу можно пострелят артштурмов в скороткой дистанции, но особо не подставляясь.
Уговорил. Поставлю PzKpfwIV-F2 - 1 штука.
В общем если эта шобла (рота - 9 машин )корректно доезжает до места - то гасит всех. Если нет - то как всегда грудью - вперёд.
Миссия получилась немного другой. Вот если бы ещё кто точки расставил, что бы часть роты пустить в обход по левому флангу то стало бы совсем хорошо.
Но опять же, у меня машинка - 3Ггц 2 головы+8800 GTX, эту красоту не все потянут.
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
Там на обходной путь лучше арт засаду поставить, где нить на опушке леса чтоб незаметно было...а то это как то легко получится. А как точки то ты хочешь расставить?
Что касается деревенских сау - как завязать миссию на их смерть см выше...
А в обход можно пустить Су 85 - им просто перенести точки, чтобы они всегда пытались в обход идти....тогда если игрок пойдет с су 85 - он прикроет их от арт засады, которую там можно выставить - уже как бы 2 варианта прохождения получается, все поинтереснее...
Ну ты меня (и злобных немцев) совсем уж обижаешь. Я же писал, что снёс 3 скрытых группы а не 4. И вот 4 группа(которая на самом деле первая) тигров заменяется на артштурмы. Там никого на карте нет, и тут в ближнем бою появляются как из воздуха появляются 3 артштурма. Но закавыка в том, что бронебойных явно не хватает. Может и првада самоходки в обход пустить?
И ещё я пока отлаживаю танковую колонну. Она живёт по своим законам и не всегда доезжает до места.
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
Мож тогда выложишь скрипты сюда?
Договорились. Я сейчас переделаю колонну, поставлю всем разные номера, увеличу число артштурмов в невидимой группе до 2 и выложу.
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
Вот скрипты. Куда класть, говорить не буду. И про бекап не буду
Получается скученно вначале. И после Березняков, часть танков не хочет ехать дальше
Но, как вариант(с сюрпризом), можно объехать через Березняки со всеми вытекающими последствиями.
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
дабы не уходить в оффтоп ещё 3 скрина:
1) "бедный пастор Шлагг"
2) Падающий танк (не путать с пизанской башней)
3) Вверх гусеницами.
Не фотошоп и не редактор.
"Прежде чем открыть огонь - оглянись!"
А.В. Ворожейкин "Сильнее смерти", стр 9.
"<...>не нужны маркеры противника парням в военном небе Великой Отечественной.
Послюнявили химический карандаш. Пунктиром отметили маршрут на карте. И вперёд!"
© DEDA
1680 x 1050 && i7 2600 (3.4Ghz) && 8 gb DDR3 (1600 Mhz) && gtx 580 && win 7 x64
Временные траблы с инетом....