Difference between revisions of "FBInstant.getLeaderboardAsync"

From GiderosMobile
m (Text replacement - "<source" to "<syntaxhighlight")
Line 7: Line 7:
 
Fetch a specific leaderboard belonging to this Instant Game.<br />
 
Fetch a specific leaderboard belonging to this Instant Game.<br />
 
<br /></translate>
 
<br /></translate>
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
  FBInstant.getLeaderboardAsync(name,callback)
 
  FBInstant.getLeaderboardAsync(name,callback)
 
</source>
 
</source>
Line 15: Line 15:
 
=== <translate>Examples</translate> ===
 
=== <translate>Examples</translate> ===
 
'''Example'''<br/>
 
'''Example'''<br/>
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
FBInstant.getLeaderboardAsync("my_aweome_leaderboard", function(result,error)
 
FBInstant.getLeaderboardAsync("my_aweome_leaderboard", function(result,error)
 
print("getLeaderboardAsync result:",result)
 
print("getLeaderboardAsync result:",result)
Line 21: Line 21:
 
<br/></source>
 
<br/></source>
 
'''Example 2'''<br/>
 
'''Example 2'''<br/>
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
FBInstant.getLeaderboardAsync("my_aweome_leaderboard", function(result,error)
 
FBInstant.getLeaderboardAsync("my_aweome_leaderboard", function(result,error)
 
print("name",result:getName()) -- should display 'my__awesome_leaderboard'
 
print("name",result:getName()) -- should display 'my__awesome_leaderboard'
Line 99: Line 99:
 
<br/></source>
 
<br/></source>
 
'''Example 3 - global leaderboard'''<br/>
 
'''Example 3 - global leaderboard'''<br/>
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
FBInstant.getLeaderboardAsync("my_aweome_leaderboard",function (e,error)
 
FBInstant.getLeaderboardAsync("my_aweome_leaderboard",function (e,error)
 
print("global leaderboard event",e)
 
print("global leaderboard event",e)
Line 112: Line 112:
 
<br/></source>
 
<br/></source>
 
'''Example 4 - group leaderboard'''<br/>
 
'''Example 4 - group leaderboard'''<br/>
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
fbContextId=FBInstant.context.getID()
 
fbContextId=FBInstant.context.getID()
 
if fbContextId~="null" then
 
if fbContextId~="null" then

Revision as of 14:26, 13 July 2023


Available since: Gideros 2018.3
Class: * Initialisation and Core

Description


Fetch a specific leaderboard belonging to this Instant Game.

<syntaxhighlight lang="lua">

FBInstant.getLeaderboardAsync(name,callback)

</source>

Parameters

name: (string) The name of the leaderboard. Each leaderboard for an Instant Game must have its own distinct name.
callback: (function) A function that will be called with two arguments: Result with the matching leaderboard, rejecting if one is not found. An error code if the function failed.

Examples

Example
<syntaxhighlight lang="lua"> FBInstant.getLeaderboardAsync("my_aweome_leaderboard", function(result,error) print("getLeaderboardAsync result:",result) end)
</source> Example 2
<syntaxhighlight lang="lua"> FBInstant.getLeaderboardAsync("my_aweome_leaderboard", function(result,error) print("name",result:getName()) -- should display 'my__awesome_leaderboard' print("context id",result:getContextID()) -- eg 12345678 or null if not tied to a context result:getEntryCountAsync( function (result,error) -- Fetches the total number of player entries in the leaderboard. if result then print("Count",result) end end)

--Update the player's score. If the player has an existing score, the old score will only be replaced if the new score is better than it. -- NOTE: If the leaderboard is associated with a specific context, the game must be in that context to set a score for the player. result:setScoreAsync(level,FBInstant.player.getName(),function(self,result,entry) if result then print("score ok",entry) for key,val in pairs(entry.entry) do print(key,val) end end end)

-- Retrieves the leaderboard's entry for the current player, or null if the player has not set one yet. result:getPlayerEntryAsync( function (self,result,entry) if entry and entry.entry then -- important you check this as it may not exist... for key,val in pairs(entry.entry) do print(key,val) if key=="player" then for key2,val2 in pairs(val) do print(" ",key2,val2) end end end end end)

-- Retrieve a set of leaderboard entries, ordered by score ranking in the leaderboard. -- parameter: count number The number of entries to attempt to fetch from the leaderboard. Defaults to 10 if not specified. Up to a maximum of 100 entries may be fetched per query. -- parameter: offset number The offset from the top of the leaderboard that entries will be fetched from. result:getEntriesAsync(10,0,function(self,result,entries) print(self,result,entries) for loop=1,#entries do local e=entries[loop].entry print("at entry",loop) for key,val in pairs(e) do print(key,val) if key=="player" then for key2,val2 in pairs(val) do print(" ",key2,val2) end end end end end)

-- Most useful of all:

-- Retrieve a set of connected player leaderboard entries, ordered by score ranking in the leaderboard. -- parameter: count number The number of entries to attempt to fetch from the leaderboard. Defaults to 10 if not specified. Up to a maximum of 100 entries may be fetched per query. -- parameter: offset number The offset from the top of the leaderboard that entries will be fetched from. result:getConnectedPlayerEntriesAsync(10,0,function(self,result,entries) print(self,result,entries) for loop=1,#entries do local e=entries[loop].entry print("at entry",loop) for key,val in pairs(e) do print(key,val) if key=="player" then for key2,val2 in pairs(val) do print(" ",key2,val2) end end end end end)

end)
</source> Example 3 - global leaderboard
<syntaxhighlight lang="lua"> FBInstant.getLeaderboardAsync("my_aweome_leaderboard",function (e,error) print("global leaderboard event",e) if e then for key,value in pairs(e) do print(key,value) end else print("global leaderboard error",error) end end)
</source> Example 4 - group leaderboard
<syntaxhighlight lang="lua"> fbContextId=FBInstant.context.getID() if fbContextId~="null" then print("context",fbContextId) FBInstant.getLeaderboardAsync("Highest Level Achievers."..fbContextId,function (e,error) print("group leaderboard event",e) print("group leaderboard error",error) end) else print("You may have tried to access a context high score in solo mode!") end
</source>