how to get player name in google play game services leaderboard

Hello fellow devs,

guys I need help in getting the player name(like Bob, Andrew, Christopher) of the player in the leaderboard of my game. when I use loadScores, I only get the playerID( which is a string numbers), I tried to use loadPlayers and use alias, it doesn’t give me anything. I can successfully logged in in google play game services.

I use this chunk of codes to get those values.

local iPlayerID = nil; for i = 1, 10 do local function loadScoresFromLeaderboard(event) iPlayerID = event.data[i].playerID; local function locatePlayerName(event) local playerName = display.newText(group, i..". "..event.data[i].alias, 0, 0, native.systemFont, 14); playerName.x, playerName.y = bg.contentBounds.xMin+30+playerName.contentWidth\*.5, topSide+70+(i\*25); playerName:setFillColor(1, 1, 1); end local score = display.newText(group, event.data[i].value, 0, 0, native.systemFont, 14); score.x, score.y = bg.contentBounds.xMax-30-score.contentWidth\*.5, topSide+70+(i\*25); score:setFillColor(1, 1, 1); end gameNetwork.request("loadScores", { leaderboard = { category = "LEADERBOARD\_ID", playerScope = "Global", range = {1,10} }, listener = loadScoresFromLeaderboard }) gameNetwork.request( "loadPlayers", { playerIDs = { iPlayerID }, listener = locatePlayerName }) end 

the idea here is to create a local leaderboard based off the google play leaderboard values. I googled 2 weeks now, trying everything, every detail I searched for, but still I couldn’t fine any solution to my problem.

thanks in advance.

Leo

3 months corona developer.

Hi Leo,

I think there’s just some structural issues in your code. Perhaps try something like the following (I didn’t actually test this, so it might need some tweaks, but just consider the overall process):

[lua]

– CALLBACK LISTENER WHICH RETURNS THE PLAYERS’ ID/ALIAS

local function loadPlayerData( event )

   for d = 1,#event.data do

      print( event.data[d].playerID )

      print( event.data[d].alias )

   end

end

– CALLBACK LISTENER WHICH RETURNS THE LEADERBOARD SCORES

local function loadScoresFromLeaderboard( event )

   --create empty table to hold player IDs

   local players = {}

   --loop through event.data and populate ‘players’ table

   for p = 1,#event.data do

      players[#players+1] = event.data[p].playerID

   end

   --call ‘gameNetwork.request()’ to load players

   gameNetwork.request( “loadPlayers”,

   {

      playerIDs = players,

      listener = loadPlayerData

   })

end

– REQUEST THE LEADERBOARD SCORES

gameNetwork.request(“loadScores”,

{

   leaderboard = 

   {

      category = “LEADERBOARD_ID”,

      playerScope = “Global”,

      range = {1,10}

   },

   listener = loadScoresFromLeaderboard

})

[/lua]

Hope this helps,

Brent

Hi Brent,

your code works, I just tweak some basic stuff to get what I need and it works. thank you very much Brent.

Leo

Hi Leo,

I think there’s just some structural issues in your code. Perhaps try something like the following (I didn’t actually test this, so it might need some tweaks, but just consider the overall process):

[lua]

– CALLBACK LISTENER WHICH RETURNS THE PLAYERS’ ID/ALIAS

local function loadPlayerData( event )

   for d = 1,#event.data do

      print( event.data[d].playerID )

      print( event.data[d].alias )

   end

end

– CALLBACK LISTENER WHICH RETURNS THE LEADERBOARD SCORES

local function loadScoresFromLeaderboard( event )

   --create empty table to hold player IDs

   local players = {}

   --loop through event.data and populate ‘players’ table

   for p = 1,#event.data do

      players[#players+1] = event.data[p].playerID

   end

   --call ‘gameNetwork.request()’ to load players

   gameNetwork.request( “loadPlayers”,

   {

      playerIDs = players,

      listener = loadPlayerData

   })

end

– REQUEST THE LEADERBOARD SCORES

gameNetwork.request(“loadScores”,

{

   leaderboard = 

   {

      category = “LEADERBOARD_ID”,

      playerScope = “Global”,

      range = {1,10}

   },

   listener = loadScoresFromLeaderboard

})

[/lua]

Hope this helps,

Brent

Hi Brent,

your code works, I just tweak some basic stuff to get what I need and it works. thank you very much Brent.

Leo