
Сообщение от
SlavikSG
Только сегодня удалось посмотреть, спасибо! Сейчас делаю миссию по захвату населенного пункта и как раз с наземкой работать придется.
Есть вопросы по зениткам. В городке их будет много, зенитный обстрел выглядит феерично, однако боеприпасов хватает примерно на 10-15 минут, потом ПВО беззащитна практически. Притом, что меткость не очень. Можно ли повысить точность стрельбы(меня устраивает, но уж очень много батарей приходится ставить-независимо от того, как было в реале в игре это прибавляет нагрузку на ПК)? Одна из задач игрокам будет уничтожение зенитной артиллерии.
Как реализовать примерно такой алгоритм:
При выполнении условия (зенитка жива, зенитка находится в миссии более 15 минут) заменить ее на "новую".
Есть возможность респауна наземки по определенным координатам, так как всю подмиссию не получится перегрузить?
По зениткам конечно проще разработчикам править - добавить возможность получить кол-во оставшихся боеприпасов и задать их количество в редакторе
По сообщениям рекомендую для отправки в чат и на экран такой код от Kodiak (можно задать армию, параметры, работает и в оффлайн, и в онлайн):
Код:
//******************Send Screen Message Method*******************
private void sendScreenMessageTo(int army, string msg, object[] parms)
{
List<Player> Players = new List<Player>();
//Singleplayer or Dedi Server
if (GamePlay.gpPlayer() != null)
{
if (GamePlay.gpPlayer().Army() == army || army == -1)
Players.Add(GamePlay.gpPlayer());
} // Multiplayer
if (GamePlay.gpRemotePlayers() != null || GamePlay.gpRemotePlayers().Length > 0)
{
foreach (Player p in GamePlay.gpRemotePlayers())
{
if (p.Army() == army || army == -1)
Players.Add(p);
}
}
if (Players != null && Players.Count > 0)
GamePlay.gpHUDLogCenter(Players.ToArray(), msg, parms);
}
//******************Send Chat Message Method*******************
private void sendChatMessageTo(int army, string msg, object[] parms)
{
List<Player> Players = new List<Player>();
//Singleplayer or Dedi Server
if (GamePlay.gpPlayer() != null)
{
if (GamePlay.gpPlayer().Army() == army || army == -1)
Players.Add(GamePlay.gpPlayer());
} // Multiplayer
if (GamePlay.gpRemotePlayers() != null || GamePlay.gpRemotePlayers().Length > 0)
{
foreach (Player p in GamePlay.gpRemotePlayers())
{
if (p.Army() == army || army == -1)
Players.Add(p);
}
}
if (Players != null && Players.Count > 0)
GamePlay.gpLogServer(Players.ToArray(), msg, parms);
}
Вот примеры использования:
Код:
serverMessage("Проверка HUD-сообщений:");
sendScreenMessageTo(1, "{0} Сообщение для красных № = {1}.", new object[] { 1, 100 });
sendScreenMessageTo(2, "{0} Сообщение для синих № = {1}.", new object[] { 2, 200 });
//sendScreenMessageTo(-1, "Сообщение для всех.", new object[] { });
serverMessage("Проверка сообщений сервера:");
sendChatMessageTo(1, "{0} Сообщение для красных № = {1}.", new object[] { 1, 1000 });
sendChatMessageTo(2, "{0} Сообщение для синих № = {1}.", new object[] { 2, 2000 });
sendChatMessageTo(-1, "Сообщение для всех.", new object[] { });