forked from 0ad/0ad
Added support for team chat in multiplayer. Team chat is default if you are on a team of size >1. Using the prefix g will make the message global. Fixes #1583.
This was SVN commit r12360.
This commit is contained in:
parent
96534fc5ed
commit
4890789d58
@ -226,11 +226,32 @@ function addChatMessage(msg, playerAssignments)
|
||||
playerAssignments = g_PlayerAssignments;
|
||||
|
||||
var playerColor, username;
|
||||
|
||||
// Used for team chat in multiplayer
|
||||
var teamed = false; // Is the player on a team of size > 1
|
||||
var onMyTeam = false; // If the message being sent by a player on my team
|
||||
|
||||
if (playerAssignments[msg.guid])
|
||||
{
|
||||
var n = playerAssignments[msg.guid].player;
|
||||
playerColor = g_Players[n].color.r + " " + g_Players[n].color.g + " " + g_Players[n].color.b;
|
||||
username = escapeText(playerAssignments[msg.guid].name);
|
||||
|
||||
// Set the booleans for team chat.
|
||||
var playerData = getPlayerData();
|
||||
if (playerData[n] && playerData[n].team != -1) {
|
||||
if (playerData[Engine.GetPlayerID()].team == playerData[n].team)
|
||||
onMyTeam = true;
|
||||
|
||||
var teamSize = 0;
|
||||
for (var i = 0; i < playerData.length; i++)
|
||||
{
|
||||
if (playerData[i].team == playerData[n].team)
|
||||
teamSize++;
|
||||
}
|
||||
if (teamSize > 1)
|
||||
teamed = true;
|
||||
}
|
||||
}
|
||||
else if (msg.type == "defeat" && msg.player)
|
||||
{
|
||||
@ -262,8 +283,16 @@ function addChatMessage(msg, playerAssignments)
|
||||
formatted = "[color=\"" + playerColor + "\"]" + username + "[/color] " + verb + " been defeated.";
|
||||
break;
|
||||
case "message":
|
||||
console.write("<" + username + "> " + message);
|
||||
formatted = "<[color=\"" + playerColor + "\"]" + username + "[/color]> " + message;
|
||||
// Send messages to your own team only by default
|
||||
if (!teamed || onMyTeam || message.indexOf("g ") == 0)
|
||||
{
|
||||
console.write("<" + username + "> " + message);
|
||||
formatted = "<[color=\"" + playerColor + "\"]" + username + "[/color]> " + message;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
error("Invalid chat message '" + uneval(msg) + "'");
|
||||
|
@ -87,6 +87,7 @@ function LoadPlayerSettings(settings, newPlayers)
|
||||
// Init diplomacy
|
||||
cmpPlayer.SetDiplomacy(new Array(numPlayers));
|
||||
var myTeam = getSetting(pData, pDefs, "Team");
|
||||
cmpPlayer.SetTeam(myTeam);
|
||||
for (var j = 0; j < numPlayers; ++j)
|
||||
{
|
||||
if (j > 0)
|
||||
|
Loading…
Reference in New Issue
Block a user