Quote:
Regarding messages script it looks like a RU message would be shown to everyone if using sendChatMessageTo(-1, ru, ...)
sendChatMessageTo(-1, void, ...) shows international message to RU users. Ideally I would like to separate messages to RU and international users completely if possible.
|
Ok my fault

, have forgotten to handle different languages if send on all.
Corrected version:
Code:
private void sendScreenMessageTo(int army, string playerlanguage, string msg, object[] parms)
{
if (army != -1)
{
//Singleplayer (for Testing)
if (GamePlay.gpRemotePlayers() == null || GamePlay.gpRemotePlayers().Length <= 0)
{
if (GamePlay.gpPlayer() != null && GamePlay.gpPlayer().Army() == army && GamePlay.gpPlayer().LanguageName().Equals(playerlanguage))
GamePlay.gpHUDLogCenter(null, msg, parms);
}
else // Multiplayer
{
List<Player> Players = new List<Player>();
foreach (Player p in GamePlay.gpRemotePlayers())
{
if (p.Army() == army && p.LanguageName().Equals(playerlanguage))
Players.Add(p);
}
GamePlay.gpHUDLogCenter(Players.ToArray(), msg, parms);
}
}
else
{
List<Player> Players = new List<Player>();
foreach (Player p in GamePlay.gpRemotePlayers())
{
if (p.LanguageName().Equals(playerlanguage))
Players.Add(p);
}
GamePlay.gpHUDLogCenter(Players.ToArray(), msg, parms);
}
}
private void sendChatMessageTo(int army, string playerlanguage, string msg, object[] parms)
{
if (army != -1)
{
//Singleplayer (for Testing)
if (GamePlay.gpRemotePlayers() == null || GamePlay.gpRemotePlayers().Length <= 0)
{
if (GamePlay.gpPlayer() != null && GamePlay.gpPlayer().Army() == army && GamePlay.gpPlayer().LanguageName().Equals(playerlanguage))
GamePlay.gpLogServer(null, msg, parms);
}
else // Multiplayer
{
List<Player> Players = new List<Player>();
foreach (Player p in GamePlay.gpRemotePlayers())
{
if (p.Army() == army && p.LanguageName().Equals(playerlanguage))
Players.Add(p);
}
GamePlay.gpLogServer(Players.ToArray(), msg, parms);
}
}
else
{
List<Player> Players = new List<Player>();
foreach (Player p in GamePlay.gpRemotePlayers())
{
if (p.LanguageName().Equals(playerlanguage))
Players.Add(p);
}
GamePlay.gpLogServer(Players.ToArray(), msg, parms);
}
}
Quote:
Kodiak, when you have time I would like to ask you for advice how to calculate number of enemy fighter and bomber planes. Ideally I see aircraft limiting script as follows:
Declare percentages for limited aircraft types = X%.
OnPlaceEnter recalculate number of human-controlled enemy fighter and bomber planes (enmyFgtrs & enmyBmbrs) - this is the difficult part
Set curTeamBalance = (friendlyFgtrs + friendlyBmbrs/2) / (enmyFgtrs + enmyBmbrs/2)
Check if
if curTeamBalance > allowedTeamBalance then deny a limited aircraft (with RU and international message).
else Set e.g.
|
Nothing difficult

.
Should the script calculate all in game planes too, or only the player controlled? So it should be possible to disable KI Starts if many Players are online.