Page 1 sur 1
[DB - AL] Une récompense toute les 24h
Publié : 20 Mai 2018 12:26
par Marin
Bonjour, je souhaite faire gagner a mon joueur une récompense toute les 24h. Voici donc mon script :
Code : Tout sélectionner
Hour = System.DateTime.Now.Hour;
if(Hour >= PlayerPrefs.GetInt("Gift"))
{
Debug.Log("Free GIFT !!");
PlayerPrefs.SetInt("Gift", 24)
}
Le problème (je comprend pourquoi mais je ne sais comment je pourrais faire) est que le joueur reçoit la recompense uniquement si il joue a mon jeux a 24 heur (ce qui n'est en réalité pas possible
). Mais voila j'aimerais que mon joueur récupère sa récompense après 24h et non à 24h
Je vous remercie d'avance pour vos réponses, je galère depuis un petit moment sur la question et je bloque vraiment
Re: [DB - AL] Une récompense toute les 24h
Publié : 20 Mai 2018 12:59
par Marin
Bon okay je me sens un peu con là mais j'ai pris un peu de recule et je me suis suis dit que j'allais utiliser le DateTime.Now.Day plutôt que le DateTime.Now.Hour :
Code : Tout sélectionner
Day = System.DateTime.Now.Day;
if(Day != PlayerPrefs.GetInt("Gift"))
{
Debug.Log("Free GIFT !!");
PlayerPrefs.SetInt("Gift", Day);
}
Tout simplement
Re: [DB - AL] Une récompense toute les 24h
Publié : 23 Mai 2018 11:02
par Marin
Il me reste quand même un problème, la récompense apparaît tout les jour à 00.00 puis je remédier à ça ?
Et si je veu faire un bouton qui diminue le temps de la récompense, je m'explique, le joueur regarde une pub et là au lieux de recevoir le cadeau dans 24h il le reçois dans 12h... Je sais déjà comment faire une pub à récompense mais je ne sais pas comment je peu avencer le temps où le joueur reçois le cadeau ?
Re: [DB - AL] Une récompense toute les 24h
Publié : 23 Mai 2018 11:29
par boubouk50
Épluche un peu
System.Date
Par exemple, il y a
Substract qui te permet de savoir le temps écoulé entre deux DateTime.
Il y a surement d'autres méthodes utiles pour toi.
Re: [DB - AL] Une récompense toute les 24h
Publié : 23 Mai 2018 14:27
par Wamoga
ca c'est une méthode qui va permettre de tricher avec la date du téléphone ! XD
pour avancer le temps met tout simplement un bool que tu active au clic d'un bouton ( ou plutot quand la video est lue a 100% sinon encore une fois il y'a des méthode pour passes outre sans voir la pub et je ne sais pas si ca implique que la pub est rémunérée ou non) et ensuite en fonction du bool quand tu arrive dans le menu tu check le bool la date et si la récompense est déja prise et en fonction du bool tu time a 24 ou 12
Re: [DB - AL] Une récompense toute les 24h
Publié : 23 Mai 2018 16:36
par Marin
Ah.. Yes je vais essayer et aussi pour le fait que l'on puisse tricher il y a t'il une méthode pour remédier a ça ?
Re: [DB - AL] Une récompense toute les 24h
Publié : 28 Mai 2018 17:47
par Autodidactelife
Bonjour !!
Pour ma part j'aurais fais comme ça, mais je pense qu'il y à mieux
- J'aurais noter l'heure unix à laquelle le cadeau à était pris. (L'heure en milliseconde écouler depuis 1970)
- J'aurais fais une simple division pour savoir le nombre de jour et voir si le nombre de jours actuel est supérieur à celui quand on l'avait pris.
On peut bien sûr tricher facilement en changeant la date donc tu peux aussi donner le cadeau uniquement avec une connexion internet, ainsi tu visites ton propre site pour récupérer le temps UNIX, bien qu'il soit encore facile de tricher. (Mais faut un minimum de connaissance).
Sache qu'il n'est toutes façons pas possible de ne pas pouvoir tricher, quelque sois le jeu, quelque sois la façon de cacher ces variables, la façon de faire quoi que ce sois nous pouvons TOUT modifier. Il y à des façons qui rend plus difficile que d'autre, j'assume que changer juste l'heure est à la porter de n'importe qui alors que détourner une URL est déjà plus complexe
Cordilalement !
Re: [DB - AL] Une récompense toute les 24h
Publié : 29 Mai 2018 09:07
par boubouk50
Quand bien même, il faudrait constamment changer la date pour jouer.
Je stockerai toujours quelque part la date la plus avancée récupérée, et si cette date vient à revenir en arrière, alors il y a eu changement de date, donc triche.
Re: [DB - AL] Une récompense toute les 24h
Publié : 29 Mai 2018 16:37
par Autodidactelife
boubouk50 a écrit : ↑29 Mai 2018 09:07
Quand bien même, il faudrait constamment changer la date pour jouer.
Je stockerai toujours quelque part la date la plus avancée récupérée, et si cette date vient à revenir en arrière, alors il y a eu changement de date, donc triche.
Vérifier simplement si il y à 24h de plus de la dernière prise suffit à faire a la fois la vérification du passer et a la fois l'éligibilité de la personne à avoir le cadeau ^^
Quelque chose comme ça mais en mieux:
Code : Tout sélectionner
// L'ancien temps de prise du cadeau le 27/05/2018 à 00:00:00
int ancienTemps = 1527372000;
//On retourne si oui ou non le cadeau à était pris (en cas d'affichage UI)
public bool getGift() {
//On récupère le temps unix actuel:
int unixTimestamp = (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
if (tempsSeconde+ 86400 <= unixTimestamp) {
//On donne le cadeau
ancienTemps = unixTimestamp ;
//On dit que c'est bon
return true;
}
// Sinon on dit que ce n'est pas bon
return false;
}
► Afficher le texte
Ça donnerait un truc comme ça avec un subtract par date:
Code : Tout sélectionner
// L'ancien temps de prise du cadeau le 27/05/2018 à 00:00:00
int ancienTemps = 1527372000;
//On retourne si oui ou non le cadeau à était pris (en cas d'affichage UI)
public bool getGift() {
//On récupère le temps unix actuel:
int tempsSeconde= (int)(DateTime.UtcNow.Subtract(DateTimeOffset.FromUnixTimeSeconds(ancienTemps).UtcDateTime)).TotalSeconds;
if (tempsSeconde<= 86400 && tempsSeconde >= 0) {
//On donne le cadeau
ancienTemps = (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
//On dit que c'est bon
return true;
} else {
// tentative de triche
}
// Sinon on dit que ce n'est pas bon
return false;
}