steam _set_stat_avg_rate

Syntaxe:

steam_set_stat_avg_rate(stat_name, session_count, session_length);


Argument La description
stat_name Le nom de la statistique à définir (une chaîne).
session_count La valeur pour obtenir la moyenne de (un nombre réel)
session_length Le temps qui a été pris depuis la dernière fois que la statistique a été définie (un nombre réel).


Retours: N / A


La description

Cette fonction vous permet de définir un type de statistique moyen avec un effet de "fenêtre glissante" sur la moyenne. La valeur "session_count" correspond à la valeur actuelle que vous souhaitez obtenir, tandis que "session_length" correspond à la durée du jeu depuis le dernier appel de la fonction. Veuillez voir l' exemple étendu ci-dessous pour plus de détails sur la façon dont cela peut être utilisé.


Exemple étendu:

Comme la fonction statistique moyenne peut être complexe à comprendre, nous allons illustrer son utilisation avec l'exemple suivant. Considérez le cas où vous souhaitez suivre une statistique moyenne, telle que «Points gagnés par heure». Une approche serait d'avoir deux statistiques: un stat entier, "TotalPoints", et une statistique float "TotalPlayTimeHours", puis diviser le total des points par le temps total pour obtenir la valeur "Points par heure".

Cependant, une fois que le joueur a accumulé une quantité importante de temps de jeu, la moyenne calculée changera extrêmement lentement, et plus l'utilisateur joue le jeu, moins cette moyenne sera réactive. Si l'utilisateur a passé 100 heures à jouer, la moyenne calculée sera "décalée" d'environ 50 heures, et s'il augmente ses compétences, il ne verra pas l'augmentation de "Points par heure" à laquelle il s'attend. Pour contourner cela, nous pouvons utiliser une "fenêtre coulissante" pour calculer uniquement les "Points par heure" pour les 10 dernières heures jouées.

Donc, pour utiliser cette fonction, nous aurions besoin de créer une Steam stat (dans le panneau de contrôle du jeu sur l'Atelier) appelée "AvgPointsPerHour" et de définir sa propriété Window à 10. Maintenant, dans votre jeu, vous devrez ajouter un peu de monde variables dans une instance au début:

global.Points = 0;
global.Time = 0;

Vous auriez alors un objet contrôleur pour compter la variable globale "Time" dans une alarme (par exemple) toutes les secondes, tandis que votre jeu affecterait la variable globale "Points". A intervalles réguliers pendant la lecture (encore une fois, dans un objet contrôleur, peut-être dans une Alarme, ou à des intervalles d'interrogation de la valeur "Heure"), vous devez définir la stat comme ceci:

steam_set_stat_avg_rate("AvgPointsPerHour", global.Points, (global.Time / 3600));
global.Points = 0;
global.Time = 0;

Notez que nous divisons le temps par 3600 puisque nous voulons le temps en heures et non en secondes, et ensuite nous réinitialisons la variable globale "Points" et la variable globale "Time" à 0 pour que la prochaine fois que la fonction est appelée, nous obtenons une nouvelle moyenne pour la statistique. Maintenant, ce que Steam fera est de prendre cette valeur que vous avez envoyée et de créer une valeur moyenne sur le temps qui a été défini pour notre "fenêtre".