[DB - AL] Une récompense toute les 24h

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Marin
Messages : 24
Inscription : 12 Avr 2018 11:59

[DB - AL] Une récompense toute les 24h

Message par Marin » 20 Mai 2018 12:26

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 :-D ). 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 :super:
Dernière édition par Marin le 23 Mai 2018 11:09, édité 1 fois.

Marin
Messages : 24
Inscription : 12 Avr 2018 11:59

Re: [DB - AL] Une récompense toute les 24h

Message par Marin » 20 Mai 2018 12:59

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 ;-)

Marin
Messages : 24
Inscription : 12 Avr 2018 11:59

Re: [DB - AL] Une récompense toute les 24h

Message par Marin » 23 Mai 2018 11:02

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 ?

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB - AL] Une récompense toute les 24h

Message par boubouk50 » 23 Mai 2018 11:29

É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.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
Wamoga
Messages : 110
Inscription : 16 Jan 2018 14:56

Re: [DB - AL] Une récompense toute les 24h

Message par Wamoga » 23 Mai 2018 14:27

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

Marin
Messages : 24
Inscription : 12 Avr 2018 11:59

Re: [DB - AL] Une récompense toute les 24h

Message par Marin » 23 Mai 2018 16:36

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 ?

Autodidactelife
Messages : 47
Inscription : 21 Fév 2018 23:04
Localisation : France

Re: [DB - AL] Une récompense toute les 24h

Message par Autodidactelife » 28 Mai 2018 17:47

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 !

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB - AL] Une récompense toute les 24h

Message par boubouk50 » 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.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Autodidactelife
Messages : 47
Inscription : 21 Fév 2018 23:04
Localisation : France

Re: [DB - AL] Une récompense toute les 24h

Message par Autodidactelife » 29 Mai 2018 16:37

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

Répondre

Revenir vers « (C#) CSharp »