Это будет хорошо, если сделаете. :) А пока будем определять взлет по высоте и скорости.
Вид для печати
На всякий случай дубль http://www.sukhoi.ru/forum/showthrea...=1#post1669388
Как-то можно в одиночной миссии установить новое игровое время? Или сделать пропуск какого-то временного участка?
Например, миссия началась в 10:00 игрового времени, полетали, постреляли, вдруг произошло какое-то событие, после которого установилось игровое время 12:00. Такое возможно?
Да, системное время желательно не трогать :)
Visual studio 2010.
Качать отсюда:
http://www.microsoft.com/visualstudi...csharp-express
Только ты не по адресу обращаешься :) У нас тут много программистов, а мои интуитивно-обрывочные школьные знания и знания моего соавтора кампаний явно малы, чтобы еще кому-то чего-то объяснять.
Я могу подробно объяснить как ликвидировать или зарегистрировать ООО или на что в суде напирать, чтобы доказать свои правоту :D
@ naryv
Накропал как мог http://www.sukhoi.ru/forum/showthrea...=1#post1671559
А что конкретно не получается? Флажок? Сторона? Аэродром? Самолет?
Бывает, что в настройках сложности запрещают выбор стороны. Нужно там 4 галочки снять справа внизу.
А, ну и миссию сначала запустить нужно, а потом самолет создавать ;)
Я запускал срвер из интерфейса и летал. Просто с настройками что-то.
--- Добавлено ---
Это точки где спаунятся самолеты на аэродроме. Один из объектов аэродрома в редакторе. В настройках клавиш в игре (не в редакторе) нужно назначить клавишу для команды branch (ветвление), чтобы оставлять рулежки мжду этими точками.
2 точки кажется должны находиться на ВПП, чтобы боты туда выруливали. Посмотри как в миссии с Р3 они поставлены красиво.
Возник вопрос следующего плана.
1. В каких единицах возвращается значение по запросу Z_VelocityIAS и подобные? Получал с subtype=-1. Значение в среднем ниже на 2,36, если ориентироваться по прибору в км/ч на 500-х метрах.
2. Так как не совсем ясно, в каких единицах возвращается значение по вопросу выше, пробовал получать по Z_VelocityMach. Стало похоже на правду, но возник еще вопрос: конкретное значение ск. звука зависит от температуры воздуха?
В общем, коротко говоря, мне надо получить TAS и IAS в понятных единицах измерения.
Если создавать свой новый аэродром, то самолеты будут рождаться на его окружности (внутренней если нет ВПП и внешней, если создать ВПП) если не создать аэродромные точки. Самолеты вероятно рождаются на том аэродроме, ближе к центру которого расположена точка спауна. Радиус окружности можно кстати отредактировать в файле миссии в блокноте, чтобы сделать его меньше, чем предусмотрено редактором.
Маркеры видимо можно поставить в редакторе, потом открыть миссию в блокноте и скопировать координаты в файл .section
Черный экран - это возможно нехватка памяти или глюки драйверов или директ-Х. Никогда такого не было. Все 4 галки снять нужно, может из-за них.
так я же тебе даже прямую ссылку давал на тему о выделенном сервее, там все вроде разжевано...
самый простой (но не самый удобный и быстрый способ) запускаешь выделенный сервер. потом входишь в стим, свойств игры и в параметрах запуска удаляешь команду -server запускаешь игру и сам к себе присоединяешься.
но лучше написать cmd-файл для запуска сервера.
Это через триггеры не сделаешь. Триггер "уничтожение группы" вроде как работает только для групп, запущенных в первой миссии, а на группу, которая уже запущена скриптом триггер первой миссии не срабатывает. Возможно я чего-то не догнала.
Так что либо делать загрузку миссий как предлагает Женя, по идеи триггер, приписанный в загружаемой миссии должен работать. Но я не проверяла.
Либо вот так:
Вот этот скрипт по идеи должен работать. Как танкер тонет, то рождается новый в начальной точке.
Проверить не могу, т.к. БзБ нет под рукой.
По любому нужно писать скрипт.Код:public class Mission : AMission
{
// ------------
public override void OnActorDead(int missionNumber, string shortName, AiActor actor, List<DamagerScore> initiatorList)
{
if (shortName.IndexOf("0_Chief", 0) > 0) //0_Chief краткое имя корабля, см. в файле миссии в разделе [Chiefs]
{
AiAction action = GamePlay.gpGetAction("a1"); //a1 - действие по рождению танкера, которое прописывается в редакторе
if (action != null)
{
action.Do();
}
}
}
}
Именно так. Но с триггерами все просто.
Внутри AMission дописываем следующее:
Код:public class Mission : AMission
{
// ------здесь скрипт, который уже был, его не трогать. Вставлять дописанное перед последней скобкой скрипта
// ----- вставлять отсюда -----------------
public override void OnTrigger(int missionNumber, string shortName, bool active)
{
AiAction action;
if ("tname1".Equals(shortName) && active) //tmane1 - имя 1-го триггера
{
GamePlay.gpGetTrigger(shortName).Enable = false;
action = GamePlay.gpGetAction("aname1"); //aname1 - имя действия 1, которое вызывается по срабатыванию 1-го триггера
if (action != null)
{
action.Do();
}
}
if ("tname2".Equals(shortName) && active) //tmane2 - имя 2-го триггера
{
GamePlay.gpGetTrigger(shortName).Enable = false;
action = GamePlay.gpGetAction("aname2"); //aname2 - имя действия 2, которое вызывается по срабатыванию 2-го триггера
if (action != null)
{
action.Do();
}
}
// аналогично можно вставлять сколько удодно триггеров и привязывать к ним действия
}
// ------------ до сюда
} // а это последняя скобка скрипта :)
Можно ещё проще :так все триггеры будут запускать одноимённые экшены, не надо на каждый триггер код писать.Код:
public override void OnTrigger(int missionNumber, string shortName, bool active)
{
base.OnTrigger(missionNumber, shortName, active);
AiAction action = GamePlay.gpGetAction(ActorName.Full(missionNumber, shortName));
if (action != null)
action.Do();
}
а в чём "скрип"? Может быть MissionNumberListener неверно установлен? Напомню, на всякий случай - по умолчанию каждая миссия "слышит" только свои события, т.е. если управляющий скрипт у нас в первой запущенной миссии, она не узнает о событии вызванном триггером или актором в подгруженной другой миссии. Чтобы скрипт "слышал" все события - надо установить параметр MissionNumberListener в -1 , вот так:
, теперь такая миссия "слышит" события во всех дозагруженных миссиях .Код:public override void OnBattleStarted()
{
base.OnBattleStarted();
MissionNumberListener = -1;
}
В свое время я просто не знал, что такой код можно вставить в скрипт, чтобы триггеры заданные в редакторе работали вместе со скриптом брошенным в папку миссии. Т.е. одноименные триггеры заданные в редакторе у меня срабатывали пока у миссии не было скрипта, а как только у миссии появлялся любой скрипт, то почему-то триггеры, заданные в редакторе, но не прописанные в скрипте переставали работать.
Можно было бы это устранить, чтобы не обязательно было в скрипт вставлять этот код, а было бы достаточно задать триггер и акшн в редакторе. andersbravers не даст соврать, скрипты для картодела это что-то совсем непонятное и отталкивающее на первом этапе. andersbravers например сделал больше недели назад миссию для Р1, а оказалось, что триггеры заданные в редакторе в ней не работают, т.к. не прописаны в скрипте. Т.е. на тестовой карте без скрипта триггеры работают, а когда переносишь их в миссию со скриптом триггеры перестают работать. Непорядок :)
Понятно. Ну тут получается так - если создателю миссии достаточно просто триггеров и средств редактора, без скриптов - тогда связка триггер-экшн работает без скрипта. Ну а если планируется использовать скрипт - тогда надо написать, что делать с этой связкой в миссии - т.к. управление игровыми событиями переходит к скрипту, предполагается, что если создатель миссии пишет скрипт, он сможет записать и вышеописанную конструкцию, либо свою обработку реакции миссии на триггер:).
Есть еще 3я категория пользователей, достаточно многочисленная, которая триггеры пишет в редакторе, а потом скачивает с форума какой-нибудь скрипт с нужным функционалом и бросает его в папку с миссией. Важно, чтобы все, что было создано в редакторе не переставало при этом работать, включая триггеры и экшны.
PS. Кстати, на продолжение темы танковых битв для Репки2 можно надеяться? Не к спеху, просто когда -нибудь?
@ naryv
А можно ли только триггерами задать непрерывное возрождение группы или группа может возобновлятся только один раз?