forked from 0ad/0ad
Fix chat to use GUID instead of host ID.
Fix randomly incorrect player names. Fix script errors when connecting to an invalid IP address. Adjust the server/client disconnection messages to be a bit more accurate. This was SVN commit r7946.
This commit is contained in:
parent
025b7960f8
commit
64daef95df
@ -125,20 +125,22 @@ function handleNetMessage(message)
|
||||
addChatMessage({ "type": "connect", "username": message.hosts[host].name });
|
||||
for (var host in g_PlayerAssignments)
|
||||
if (! message.hosts[host])
|
||||
addChatMessage({ "type": "disconnect", "username": g_PlayerAssignments[host].name });
|
||||
addChatMessage({ "type": "disconnect", "guid": host });
|
||||
// Update the player list
|
||||
g_PlayerAssignments = message.hosts;
|
||||
updatePlayerList();
|
||||
break;
|
||||
|
||||
case "start":
|
||||
Engine.SwitchGuiPage("page_loading.xml", { "attribs": g_GameAttributes,
|
||||
Engine.SwitchGuiPage("page_loading.xml", {
|
||||
"attribs": g_GameAttributes,
|
||||
"isNetworked" : g_IsNetworked,
|
||||
"playerAssignments": g_PlayerAssignments} );
|
||||
"playerAssignments": g_PlayerAssignments
|
||||
});
|
||||
break;
|
||||
|
||||
case "chat":
|
||||
addChatMessage({ "type": "message", "username": message.username, "text": message.text });
|
||||
addChatMessage({ "type": "message", "guid": message.guid, "text": message.text });
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -276,7 +278,11 @@ function launchGame()
|
||||
playerID = i+1;
|
||||
}
|
||||
Engine.StartGame(g_GameAttributes, playerID);
|
||||
Engine.PushGuiPage("page_loading.xml", { "attribs": g_GameAttributes });
|
||||
Engine.SwitchGuiPage("page_loading.xml", {
|
||||
"attribs": g_GameAttributes,
|
||||
"isNetworked" : g_IsNetworked,
|
||||
"playerAssignments": g_PlayerAssignments
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -360,19 +366,21 @@ function addChatMessage(msg)
|
||||
// TODO: we ought to escape all values before displaying them,
|
||||
// to prevent people inserting colours and newlines etc
|
||||
|
||||
var username = (msg.username || g_PlayerAssignments[msg.guid].name);
|
||||
|
||||
var formatted;
|
||||
switch (msg.type)
|
||||
{
|
||||
case "connect":
|
||||
formatted = '[font="serif-bold-13"][color="255 0 0"]' + msg.username + '[/color][/font] [color="64 64 64"]has joined[/color]';
|
||||
formatted = '[font="serif-bold-13"][color="255 0 0"]' + username + '[/color][/font] [color="64 64 64"]has joined[/color]';
|
||||
break;
|
||||
|
||||
case "disconnect":
|
||||
formatted = '[font="serif-bold-13"][color="255 0 0"]' + msg.username + '[/color][/font] [color="64 64 64"]has left[/color]';
|
||||
formatted = '[font="serif-bold-13"][color="255 0 0"]' + username + '[/color][/font] [color="64 64 64"]has left[/color]';
|
||||
break;
|
||||
|
||||
case "message":
|
||||
formatted = '[font="serif-bold-13"]<[color="255 0 0"]' + msg.username + '[/color]>[/font] ' + msg.text;
|
||||
formatted = '[font="serif-bold-13"]<[color="255 0 0"]' + username + '[/color]>[/font] ' + msg.text;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -81,10 +81,13 @@ function startHost(playername, servername)
|
||||
messageBox(400, 200,
|
||||
"Cannot host game: " + e.message + ".",
|
||||
"Error", 2);
|
||||
return false;
|
||||
}
|
||||
|
||||
startConnectionStatus("server");
|
||||
// TODO: ought to do something(?) with servername
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function startJoin(playername, ip)
|
||||
@ -99,7 +102,9 @@ function startJoin(playername, ip)
|
||||
messageBox(400, 200,
|
||||
"Cannot join game: " + e.message + ".",
|
||||
"Error", 2);
|
||||
return false;
|
||||
}
|
||||
|
||||
startConnectionStatus("client");
|
||||
return true;
|
||||
}
|
||||
|
@ -80,10 +80,12 @@
|
||||
<object type="button" size="50%-125 200 50%-25 230" style="wheatButton">
|
||||
Continue
|
||||
<action on="Press"><![CDATA[
|
||||
startHost(
|
||||
if (startHost(
|
||||
getGUIObjectByName("hostPlayerName").caption,
|
||||
getGUIObjectByName("hostServerName").caption);
|
||||
getGUIObjectByName("hostServerName").caption))
|
||||
{
|
||||
switchSetupPage("pageHost", "pageConnecting");
|
||||
}
|
||||
]]></action>
|
||||
</object>
|
||||
|
||||
@ -123,10 +125,12 @@
|
||||
<object type="button" size="50%-125 200 50%-25 230" style="wheatButton">
|
||||
Continue
|
||||
<action on="Press"><![CDATA[
|
||||
startJoin(
|
||||
if (startJoin(
|
||||
getGUIObjectByName("joinPlayerName").caption,
|
||||
getGUIObjectByName("joinIP").caption);
|
||||
getGUIObjectByName("joinIP").caption))
|
||||
{
|
||||
switchSetupPage("pageJoin", "pageConnecting");
|
||||
}
|
||||
]]></action>
|
||||
</object>
|
||||
|
||||
|
@ -6,15 +6,8 @@ function init(data)
|
||||
if (data && data.attribs)
|
||||
mapName = data.attribs.map;
|
||||
|
||||
|
||||
|
||||
|
||||
if (data)
|
||||
g_Data = data;
|
||||
|
||||
|
||||
|
||||
|
||||
// Set to "hourglass" cursor.
|
||||
setCursor("cursor-wait");
|
||||
|
||||
|
@ -57,7 +57,7 @@ function handleNetMessage(message)
|
||||
switch (message.status)
|
||||
{
|
||||
case "waiting_for_players":
|
||||
obj.caption = "Waiting for other players to connect";
|
||||
obj.caption = "Waiting for other players to connect...";
|
||||
obj.hidden = false;
|
||||
break;
|
||||
case "active":
|
||||
@ -65,7 +65,7 @@ function handleNetMessage(message)
|
||||
obj.hidden = true;
|
||||
break;
|
||||
case "disconnected":
|
||||
obj.caption = "Connection to the server has been lost";
|
||||
obj.caption = "Connection to the server has been lost.\n\nThe game has ended.";
|
||||
obj.hidden = false;
|
||||
getGUIObjectByName("disconnectedExitButton").hidden = false;
|
||||
break;
|
||||
@ -81,7 +81,7 @@ function handleNetMessage(message)
|
||||
if (! message.hosts[host])
|
||||
{
|
||||
var obj = getGUIObjectByName("netStatus");
|
||||
obj.caption = g_PlayerAssignments[host].name + " has left\n\nConnection to the server has been lost";
|
||||
obj.caption = g_PlayerAssignments[host].name + " has disconnected.\n\nThe game has ended.";
|
||||
obj.hidden = false;
|
||||
getGUIObjectByName("disconnectedExitButton").hidden = false;
|
||||
}
|
||||
@ -104,7 +104,7 @@ function submitChatInput()
|
||||
if (g_IsNetworked)
|
||||
Engine.SendNetworkChat(text);
|
||||
else
|
||||
addChatMessage({ "type": "message", "guid": 1, "text": text });
|
||||
addChatMessage({ "type": "message", "guid": "local", "text": text });
|
||||
|
||||
input.caption = ""; // Clear chat input
|
||||
input.blur(); // Remove focus
|
||||
@ -118,8 +118,8 @@ function addChatMessage(msg)
|
||||
// TODO: we ought to escape all values before displaying them,
|
||||
// to prevent people inserting colours and newlines etc
|
||||
|
||||
var n = msg.guid;
|
||||
var username = g_Players[n].name;
|
||||
var n = g_PlayerAssignments[msg.guid].player;
|
||||
var username = g_PlayerAssignments[msg.guid].name;
|
||||
var playerColor = g_Players[n].color.r + " " + g_Players[n].color.g + " " + g_Players[n].color.b;
|
||||
|
||||
var formatted;
|
||||
|
@ -21,8 +21,6 @@ function getPlayerData(playerAssignments)
|
||||
for (var i = 0; i < simState.players.length; i++)
|
||||
{
|
||||
var playerState = simState.players[i];
|
||||
if (!playerState)
|
||||
continue;
|
||||
|
||||
var name = playerState.name;
|
||||
var civ = playerState.civ;
|
||||
@ -36,13 +34,12 @@ function getPlayerData(playerAssignments)
|
||||
players.push(player);
|
||||
}
|
||||
|
||||
var i = 1;
|
||||
if (playerAssignments)
|
||||
{
|
||||
for each (var playerAssignment in playerAssignments)
|
||||
{
|
||||
players[i].name = playerAssignment.name;
|
||||
i++;
|
||||
if (players[playerAssignment.player])
|
||||
players[playerAssignment.player].name = playerAssignment.name;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -484,7 +484,7 @@ bool CNetServer::OnChat(void* context, CFsmEvent* event)
|
||||
|
||||
CChatMessage* message = (CChatMessage*)event->GetParamRef();
|
||||
|
||||
message->m_GUID = session->GetHostID();
|
||||
message->m_GUID = session->GetGUID();
|
||||
|
||||
server.Broadcast(message);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user