Files
UnrealEngine/Engine/Source/ThirdParty/EOSSDK/SDK/Include/eos_stats.h
2025-05-18 13:04:45 +08:00

81 lines
4.0 KiB
C

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "eos_stats_types.h"
/**
* The Stats Interface manages user stats like number of items collected, fastest completion time for a level, number of wins/losses, number of times that a user has performed a certain action, and so on.
* You can use stats to determine when to unlock achievements and how to use rank users in leaderboards.
* All Stats Interface calls take a handle of type EOS_HStats as the first parameter.
* This handle can be retrieved from an EOS_HPlatform handle by using the EOS_Platform_GetStatsInterface function.
*
* @see EOS_Platform_GetStatsInterface
*/
/**
* Ingest a stat by the amount specified in Options.
* When the operation is complete and the delegate is triggered the stat will be uploaded to the backend to be processed.
* The stat may not be updated immediately and an achievement using the stat may take a while to be unlocked once the stat has been uploaded.
*
* @param Options Structure containing information about the stat we're ingesting.
* @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate.
* @param CompletionDelegate This function is called when the ingest stat operation completes.
*
* @return EOS_Success if the operation completes successfully
* EOS_InvalidParameters if any of the options are incorrect
* EOS_InvalidUser if target user ID is missing or incorrect
*/
EOS_DECLARE_FUNC(void) EOS_Stats_IngestStat(EOS_HStats Handle, const EOS_Stats_IngestStatOptions* Options, void* ClientData, const EOS_Stats_OnIngestStatCompleteCallback CompletionDelegate);
/**
* Query for a list of stats for a specific player.
*
* @param Options Structure containing information about the player whose stats we're retrieving.
* @param ClientData Arbitrary data that is passed back to you in the CompletionDelegate
* @param CompletionDelegate This function is called when the query player stats operation completes.
*
* @return EOS_Success if the operation completes successfully
* EOS_InvalidParameters if any of the options are incorrect
* EOS_InvalidUser if target user ID is missing or incorrect
*/
EOS_DECLARE_FUNC(void) EOS_Stats_QueryStats(EOS_HStats Handle, const EOS_Stats_QueryStatsOptions* Options, void* ClientData, const EOS_Stats_OnQueryStatsCompleteCallback CompletionDelegate);
/**
* Fetch the number of stats that are cached locally.
*
* @param Options The Options associated with retrieving the stat count
*
* @see EOS_Stats_CopyStatByIndex
*
* @return Number of stats or 0 if there is an error
*/
EOS_DECLARE_FUNC(uint32_t) EOS_Stats_GetStatsCount(EOS_HStats Handle, const EOS_Stats_GetStatCountOptions* Options);
/**
* Fetches a stat from a given index. Use EOS_Stats_Stat_Release when finished with the data.
*
* @param Options Structure containing the Product User ID and index being accessed
* @param OutStat The stat data for the given index, if it exists and is valid
*
* @see EOS_Stats_Stat_Release
*
* @return EOS_Success if the information is available and passed out in OutStat
* EOS_InvalidParameters if you pass a null pointer for the out parameter
* EOS_NotFound if the stat is not found
*/
EOS_DECLARE_FUNC(EOS_EResult) EOS_Stats_CopyStatByIndex(EOS_HStats Handle, const EOS_Stats_CopyStatByIndexOptions* Options, EOS_Stats_Stat ** OutStat);
/**
* Fetches a stat from cached stats by name. Use EOS_Stats_Stat_Release when finished with the data.
*
* @param Options Structure containing the Product User ID and name being accessed
* @param OutStat The stat data for the given name, if it exists and is valid
*
* @see EOS_Stats_Stat_Release
*
* @return EOS_Success if the information is available and passed out in OutStat
* EOS_InvalidParameters if you pass a null pointer for the out parameter
* EOS_NotFound if the stat is not found
*/
EOS_DECLARE_FUNC(EOS_EResult) EOS_Stats_CopyStatByName(EOS_HStats Handle, const EOS_Stats_CopyStatByNameOptions* Options, EOS_Stats_Stat ** OutStat);