diff --git a/[gameplay]/scoreboard/dxscoreboard_client.lua b/[gameplay]/scoreboard/dxscoreboard_client.lua index 0771f59f2..08837b973 100644 --- a/[gameplay]/scoreboard/dxscoreboard_client.lua +++ b/[gameplay]/scoreboard/dxscoreboard_client.lua @@ -69,9 +69,8 @@ addEventHandler( "onClientResourceStart", resourceRoot, bindKey( settingsKey, "down", "Open scoreboard settings", "1" ) addEventHandler( "onClientRender", root, drawScoreboard ) - triggerServerEvent( "onClientDXScoreboardResourceStart", root ) readScoreboardSettings() - triggerServerEvent( "requestServerInfo", root ) + triggerServerEvent( "requestServerInfo", localPlayer ) colorPicker.constructor() end @@ -87,7 +86,7 @@ function sendServerInfo( output ) serverInfo = output end addEvent( "sendServerInfo", true ) -addEventHandler( "sendServerInfo", resourceRoot, sendServerInfo ) +addEventHandler( "sendServerInfo", root, sendServerInfo ) function toggleScoreboard( _, state ) state = iif( state == "1", true, false ) @@ -218,7 +217,7 @@ function doDrawScoreboard( rtPass, onlyAnim, sX, sY ) if not (windowSettings and isElement( windowSettings )) then showCursor( false ) end - triggerServerEvent( "requestServerInfo", root ) + triggerServerEvent( "requestServerInfo", localPlayer ) end scoreboardDrawn = true end @@ -791,7 +790,7 @@ end addEvent( "doScoreboardAddColumn", true ) -addEventHandler( "doScoreboardAddColumn", resourceRoot, +addEventHandler( "doScoreboardAddColumn", root, function ( name, width, friendlyName, priority, fromResource, isImage, imageW, imageH ) scoreboardAddColumn( name, width, friendlyName, priority, nil, fromResource, isImage, imageW, imageH ) end diff --git a/[gameplay]/scoreboard/dxscoreboard_exports.lua b/[gameplay]/scoreboard/dxscoreboard_exports.lua index e9ea2e22f..93d4eb622 100644 --- a/[gameplay]/scoreboard/dxscoreboard_exports.lua +++ b/[gameplay]/scoreboard/dxscoreboard_exports.lua @@ -201,13 +201,20 @@ function scoreboardGetColumnCount() return #scoreboardColumns end -function onClientDXScoreboardResourceStart() - for key, column in ipairs( scoreboardColumns ) do - triggerClientEvent( client, "doScoreboardAddColumn", root, column.name, column.width, column.friendlyName, column.priority, nil, column.isImage, column.imageW, column.imageH ) +function onPlayerResourceStartScoreboard(startedResource) + local validResource = startedResource == resource + + if not validResource then + return false + end + + for columnID = 1, #scoreboardColumns do + local columnData = scoreboardColumns[columnID] + + triggerClientEvent(source, "doScoreboardAddColumn", source, columnData.name, columnData.width, columnData.friendlyName, columnData.priority, nil, columnData.isImage, columnData.imageW, columnData.imageH) end end -addEvent( "onClientDXScoreboardResourceStart", true ) -addEventHandler( "onClientDXScoreboardResourceStart", resourceRoot, onClientDXScoreboardResourceStart ) +addEventHandler("onPlayerResourceStart", root, onPlayerResourceStartScoreboard) function requestServerInfo() local mapmanager = getResourceFromName( "mapmanager" ) @@ -230,10 +237,10 @@ function requestServerInfo() output.map = getResourceInfo( map, "name" ) or getResourceName( map ) end end - triggerClientEvent( client, "sendServerInfo", root, output ) + triggerClientEvent( client, "sendServerInfo", client, output ) end addEvent( "requestServerInfo", true ) -addEventHandler( "requestServerInfo", resourceRoot, requestServerInfo ) +addEventHandler( "requestServerInfo", root, requestServerInfo ) function removeResourceScoreboardColumns( resource ) if resourceColumns[resource] then diff --git a/[gameplay]/scoreboard/meta.xml b/[gameplay]/scoreboard/meta.xml index 60fd2719e..ca5d7e4ae 100644 --- a/[gameplay]/scoreboard/meta.xml +++ b/[gameplay]/scoreboard/meta.xml @@ -1,12 +1,12 @@ + -