
Сообщение от
Geniok
Для оффлайн кампаний. Создаем свою кампанию. Устанавливается через инсталятор. ВСЕ инсталяторы, что я пробовал при редактировании ini-файлов сами ставят знак "=".
Понятно. Пока про "=" не готов ответить, пока наверное стоит просто предложить игрокам вставлять секцию в инишник, без инсталятора.

Сообщение от
Mirnyi
После беты?

Не успею, после релиза скорее.

Сообщение от
-atas-
Несколько вопросов:
1) Каким образом можно "перекрасить" филд, т.е. отдать его от синих красным, например, по срабатыванию триггера?
Если делать это загрузкой новой подмиссии, в ней должны присутствовать все старые точки спауна или только одна точка спуна, которая меняется с синего на красный? Исчезнет ли старая синяя точка спауна с аэродрома, если туда погрузится красная?
2) Старая линия фронта тоже исчезнет, если загрузить новую линию фронта в подмиссии?
не готов точно ответить, можно попробовать подгружать миссию с одной точкой линии фронта на интересующем аэродроме.

Сообщение от
-atas-
3) Как видоизменить код, чтобы надписи в момент подгрузки под-миссий были разные для синей и для красной стороны?
смотреть армию игрока и выдавать ему соответствующее сообщение

Сообщение от
-atas-
4) Для задания целей в миссии очень хочется предоставить игрокам шорт-кей, показывающий текущие цели, т.е.:
- в чат игры каждые 10 минут пишем: "Press Shift-S to see current mission objectives! Нажмите Shift-S, чтобы посмотреть текущие цели миссии!" (Shift-S не занят по умолчанию по-моему?)
- при нажатии клиентом Shift-S выводим на экран последнюю надпись из предыдущего пункта (3), причем разную для разных сторон
Какой код добавить в скрипт, чтобы это происходило?
Текущая миссия и скрипт здесь
http://www.sukhoi.ru/forum/showthrea...t=68112&page=2
Хочется уже дать игрокам осмысленные задачи, чтобы они могли влиять на результаты миссий на сервере.
перехватывать кнопки, не получится, можно вот так, например :
Код:
public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
{
base.OnPlaceEnter(player, actor, placeIndex);
AiAircraft aircraft = actor as AiAircraft;
if (aircraft != null)
switch (aircraft.Army())
{
case 1:
if (aircraft.Type() == AircraftType.Bomber)
{ GamePlay.gpHUDLogCenter(new Player[] {player},"Red Bomber, Bomb it all, hitler caput"); }
else { GamePlay.gpHUDLogCenter(new Player[] { player }, "Red Fighter, fight them all"); }
break;
case 2:
if (aircraft.Type() == AircraftType.Bomber)
{ GamePlay.gpHUDLogCenter(new Player[] { player }, "Das bomber!"); }
else { GamePlay.gpHUDLogCenter(new Player[] { player }, "Das jager!"); }
break;
}
}
public override void OnAircraftTookOff(int missionNumber, string shortName, AiAircraft aircraft)
{
base.OnAircraftTookOff(missionNumber, shortName, aircraft);
if (GamePlay.gpPlayer().Place() != aircraft)
return;
switch (aircraft.Army())
{
case 1:
if (aircraft.Type() == AircraftType.Bomber)
{ GamePlay.gpHUDLogCenter(new Player[] { GamePlay.gpPlayer() }, "Red Bomber, Bomb it all, hitler caput"); }
else { GamePlay.gpHUDLogCenter(new Player[] { GamePlay.gpPlayer() }, "Red Fighter, fight them all"); }
break;
case 2:
if (aircraft.Type() == AircraftType.Bomber)
{ GamePlay.gpHUDLogCenter(new Player[] { GamePlay.gpPlayer() }, "Das bomber!"); }
else { GamePlay.gpHUDLogCenter(new Player[] { GamePlay.gpPlayer() }, "Das jager!"); }
break;
}
}
при занятии самолёта игроком - ему напишется задание в зависимости от стороны и типа самолёта - бомбер/нет - это первая функция, и после взлёта - по той же логике - вторая. Можно с таймаутом сообщение показывать.