Messagerie


score en ligne

poupinou82
samedi 19 avril 2014 à 12:30
Salut les clickeurs,

je viens vers vous car j'ai besoin d'aide ne maitrisant pas assez le php MySQL.

j'ai utilisé ce tuto http://download.clickteam.com/tutorials/en/Easy%20Online%20Scores.pdf pour mettre un score en ligne sur mon premier jeux androïd et je suis confronté a un problème.

dans les enregistrement il peu y avoir 
toto 145
marcel 133
toto 132
toto 115
paulot 110

Je souhaiterai qu'il n'y ai que le meilleur score du pseudo et pas les anciens score .
je pense qu'il faudrait rajouter une condition dans le fichier score_script.php anvant l'enregistrement du score ou bien faire une requête qui supprime tout les score inférieur d'un meme id et meme pseudo.

Mais la je sèche :-\

si une âme charitable pouvait me donner un coup de main

je vous remercie d'avance



Monos
2713 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur Android Exporteur HTML5
samedi 19 avril 2014 à 13:18
Ba à la sortie du script php tu classe suivant les scores et basta.
poupinou82
samedi 19 avril 2014 à 13:29
je comprend pas si je classe suivant les score j'aurai toujours le même problème, il pourra y avoir plusieurs fois le même pseudo avec des scores différents. Moi je voudrai carrément supprimer  les anciens scores du même pseudo dans la base.
a la place de

toto 145
marcel 133
toto 132
toto 115
paulot 110

je voudrai avoir

toto 145
marcel 133
paulot 110




Cyberclic
664 messages
Fusion 2.5 Dev
Exporteur iOS Exporteur Android Exporteur HTML5
samedi 19 avril 2014 à 13:59
Mais si tu as 2 personnes différentes qui s'appellent toto, tu fais comment ? Ça arrive plus souvent qu'on ne le pense, surtout pour les pseudos génériques (Anonyme, Player, les prénoms...)

Dans ce cas il faudrait carrément que tu mettes en place un système d'authentification pour que chaque joueur ait un pseudo unique et réservé. Et là c'est plus complexe à mettre en oeuvre.

Vivement que Clickteam nous sorte une extension Google Play permettant de gérer les profils des joueurs, les achievements et les leaderboard, comme c'est le cas sur iOS avec Game Center.
Modifié le vendredi 23 août 2019 à 15:05 par Cyberclic
Xenon3K
763 messages
Fusion 2.5 Dev
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 19 avril 2014 à 14:25
Lors de la première exécution de l'application Android ou iOS on peut générer un identifiant unique qui seras sauvé dans un fichier ini et envoyer avec les scores.
Cyberclic
664 messages
Fusion 2.5 Dev
Exporteur iOS Exporteur Android Exporteur HTML5
samedi 19 avril 2014 à 14:44
ouais c'est pas con. Du coup le pseudo ne sert plus qu'à l'affichage. l'ID unique est stocké dans la base de donnée et à chaque nouveau score supérieur à celui présent dans la base pour un ID donné, on fait un UPDATE sur cette même ligne. Plutôt que des INSERT INTO.
Monos
2713 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur Android Exporteur HTML5
samedi 19 avril 2014 à 14:52
oups j'ai du mal comprendre la question.
Perso je me dis toujours que je devrais faire un compte Offgame pour mémoriser les pseudos et scores de mes joueurs. Un compte pour tous les jeux mais je me dis que faire inscrire un joueur sur Offgame ça devait plus faire fuir que autre chose. Je me tate toujours pour cette solution.
poupinou82
samedi 19 avril 2014 à 18:28
[quote]Mais si tu as 2 personnes différentes qui s'appellent toto, tu fais comment ?[/quote]

En fait ça m'est un peu égal si un autre joueur prend le pseudo toto qui existe déjà dans le top 10 je trouve ça un peu bête, perso si je veux apparaitre dans le top 10 je vais prendre un pseudo qui n'est pas dans le top 10 pour faire voir que c'est moi le champion.

Je parfaire voir 10 pseudo différent dans le top 10 que un seul pseudo qui a fait un point de plus chaque fois.

j'ai déjà interdit les doublons identique dans la base (même pseudo, même score, au même jeu) affin d'éviter qu'un malin n'enregistre son score 10 fois de suite.

j'enregistre aussi uniquement le hi-score du joueur et non le score, comme ça il peu jouer hors ligne et enregistrer son hi-score quand il en a envie.

Mais maintenant je voudrai arriver a ne garder que le meilleur score du même pseudo. mais pour ça il faut que je modifie le fichier php d'enregistrement des score et la j'ai des lacunes ......


Cyberclic
664 messages
Fusion 2.5 Dev
Exporteur iOS Exporteur Android Exporteur HTML5
samedi 19 avril 2014 à 19:20
Ben si tu utilises MySQL,  je vois bien une instruction conditionnelle comme cela :
SELECT IF (pseudo IS NULL, 'INSERT INTO', 'UPDATE)
poupinou82
dimanche 20 avril 2014 à 12:20
Salut, joyeuse Pâques a tous  ;)

Pour resoudre mon problème j'ai remplacé le code ci-dessous dans le fichier score_script.php



par celui ci

[quote]// Everything is cool -- Insert the data into the database
$result = mysql_query("select * from $tname where  playername='$playername_safe' and gameid='$gameid_safe';");
if (mysql_affected_rows()==0) {
$query = "insert into $tname(gameid,playername,score,scoredate,md5) values ('$gameid_safe','$playername_safe','$score_safe','$date','$security_md5')";
$insert_the_data = mysql_query($query)or die(mysql_error());
}
else {
$query = "update $tname set score='$score_safe' where
playername='$playername_safe' and gameid='$gameid_safe'";
$insert_the_data = mysql_query($query)or die(mysql_error());
}
        }


ça a l'air de marcher, mais si il  y a des prso en php MySQL qui trouverai un code plus propre  je suis preneur.
poupinou82
dimanche 20 avril 2014 à 14:30
encore une petite modif pour éviter qu'un petit malin ne fasse baisser mon hi-score en utilisant mon pseudo, j'autorise la motif du score existant uniquement si le score est supérieur .

){
$query = "update $tname set score='$score_safe' where
playername='$playername_safe' and gameid='$gameid_safe'"; $insert_the_data = mysql_query($query)or die(mysql_error ());
}
}
}

Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 90 visiteurs au total

Derniers messages