Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Connexion avec identifiant, mot de passe et durée de la session

+-Shoutbox (Merci d'utiliser le forum pour les demandes d'aides)

Aujourd'hui à 19:03:21 Crystal Noir dit: Episode 3 disponible :)
Aujourd'hui à 12:26:23 Capitaine_Caverne dit: bon anniversaire françois
Aujourd'hui à 10:56:52 Crystal Noir dit: Bon anniversaire François :)
Aujourd'hui à 08:52:23 Monos dit: Joyeux anniversaire François si tu passes par ici.
05 juillet 2014 à 19:00:06 Crystal Noir dit: Les deux premiers épisodes de la série de tutos sont en lignes : http://comptoir-mmf.eu/Forum/index.php?topic=777.0
05 juillet 2014 à 18:36:39 Capitaine_Caverne dit: merci bien oui a monos il ma dit la même chose que dans fusion il maintenant des variable réservé.
05 juillet 2014 à 17:12:08 Funkadicte dit: Capitaine_Caverne: Oui J'ai remarqué sa aussi on ne peux pas renommer une variable d’un objet comme on le souhait speed,angle n'est pas acceptée et les autre aussi je pense
05 juillet 2014 à 16:43:02 Pit73 dit: il y a des nom de variable réservé il me semble.
05 juillet 2014 à 15:23:02 Capitaine_Caverne dit: bonjour dit moi sur fusion la j ai bug faite un test  si vous renommer le nom de la variable d un objet  en nom  ( angle ) j ai un message d erreur mais si je mais un autre nom dit moi s ça vous fait la même chose.
05 juillet 2014 à 14:55:41 Funkadicte dit: Ok merci
Voir l'historique

Liens

Messages non lus

Télécharger

Divers

Twitter

Les extensions pour MMF2

FaceBook ClickTeam France

Derniers messages

Re : Serie tutoriaux Fusion 2.5 : Frog On The Road par Crystal Noir
Aujourd'hui à 19:02:24

Re : Serie tutoriaux Fusion 2.5 : Frog On The Road par Capitaine_Caverne
Aujourd'hui à 12:21:05

Re : Nicolas par Crystal Noir
Aujourd'hui à 11:26:55

Re : Nicolas par Nicolas
Aujourd'hui à 11:04:18

Re : Annonce des Patchs Officiel et des Patchs en bêta. par Monos
Aujourd'hui à 08:56:33

Re : Serie tutoriaux Fusion 2.5 : Frog On The Road par Crystal Noir
Aujourd'hui à 01:21:31

Re : Serie tutoriaux Fusion 2.5 : Frog On The Road par Pit73
Aujourd'hui à 00:42:20

Re : Nicolas par Crystal Noir
Aujourd'hui à 00:29:08

Re : Serie tutoriaux Fusion 2.5 : Frog On The Road par Nicolas
Aujourd'hui à 00:13:51

Re : Nicolas par Kloug
Aujourd'hui à 00:10:33

Re : Besoin d'aide Shoot'em up/Puzzle Game par Kloug
05 juillet 2014 à 23:00:14

Re : Besoin d'aide Shoot'em up/Puzzle Game par Funkadicte
05 juillet 2014 à 20:54:46

Re : Besoin d'aide Shoot'em up/Puzzle Game par Funkadicte
05 juillet 2014 à 20:29:17

Re : Besoin d'aide Shoot'em up/Puzzle Game par Funkadicte
05 juillet 2014 à 19:56:39

Re : Besoin d'aide Shoot'em up/Puzzle Game par Kloug
05 juillet 2014 à 19:36:31

Re : Tutorial Series en préparation : Frog On The Road par Crystal Noir
05 juillet 2014 à 19:01:10

Serie tutoriaux Fusion 2.5 : Frog On The Road par Crystal Noir
05 juillet 2014 à 18:59:36

Re : Besoin d'aide Shoot'em up/Puzzle Game par Capitaine_Caverne
05 juillet 2014 à 18:39:51

Re : Besoin d'aide Shoot'em up/Puzzle Game par Funkadicte
05 juillet 2014 à 18:25:46

Re : Besoin d'aide Shoot'em up/Puzzle Game par Kloug
05 juillet 2014 à 17:40:43

Dernier Clikeur

Funkadicte
Nicolas

Membre en ligne

7 Invités, 1 Utilisateur
Seyjin

Auteur Sujet: Score en ligne  (Lu 345 fois)

Hors ligne Monos

  • Webmaster
  • Clickeur de Légende
  • Messages: 1311
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Score en ligne
« le: 13 novembre 2011 à 11:46:02 »
Didacticiel  pour enregistrer des scores en ligne





Deux Extensions :
Get objet : qui va permettre d'envoyer des données sur internet.
String Parser : (Heum non et non, rien de coquin dans l'extension String Parser)
String Parser peut être remplacée par un autre objet qui permet de transformer une chaine en signature MD5 pour la sécurité..

Les logiciels compatibles :
Multimedia Fusion 2 et Multimedia Fusion developer 2. Utilisable aussi avec le module Flash mais pensez à protéger votre fichier swf. Fonctionne aussi en HWA

et très certainement avec le module Unicode.

Ce didacticiel n'est pas compatible avec les versions de démonstration et The Game Factory 2 à cause des incompatibilités à ajouter des extensions.

Autre :
Un espace internet qui accepte le PHP  et une base de donnée pour enregistrer les scores.
Une  connaissance en PHP.


Ce didacticiel n'est pas vraiment centré sur la partie php. Il vous faut donc une petite connaissance dans ce domaine. Je travaille sur une version française

de Multimedia Fusion dev II, j'utilise donc les termes Français  pour tous ce qui touche le logiciel en lui même. Pour les extensions, je ne traduit pas les

termes utilisés. Si l'extenssion est en anglais, alors les termes utilisés dans le didacticiel sera en anglais.


Voici donc le plan de travaille.
-Récupérer le nom du joueur
-Récupérer le score du joueur
-Réaliser une clef de sécurité et la coder en format MD5.
-Envoyer le nom du joueur + le score du joueur + la clef de sécurité codée en MD5 sur une page Web.
-Faire un script pour récupérer les données qui ont étés envoyées.
-Récupérer le nom du joueur, le score du joueur et la clef de sécurité.
-Vérifier la clef de sécurité.
-Si la clef de sécurité est bonne, enregistrer le nom du joueur et le score du joueur dans la base de donnée..


Voici le cahier des charges pour le tuto. Pour l'exemple nous allons faire très simple. Une fois l'application téléchargé,  un nombre aléatoire est généré

pour représenter le score du joueur. Un champ est présent pour récupérer le pseudo du joueur. Et un bouton poussoir sera implantée pour savoir le moment ou

l'aplication envois les données sur internet.



-Ouvrez un nouveau projet dans Multimedia Fusion 2.
-Nous allons utiliser la 1er scène pour notre programmation.
-Allez dans l'éditeur d'événement.
-Nous allons faire une nouvelle condition avec l'option,  ''En début de scène''
-Allez dans la case ''objet joueur'' ( Représenté un Pad bleu.), et comme effet faite :
=>scores  =>changer le score.

-L'éditeur d'expression s'ouvre.
-Cliquez en bas à droite sur
=> Récupérée les données d'un objet.



-Une nouvelle fenêtre s'ouvre pour sélectionner des objets.
-Allez sur l'objet condition spécial. Clique droit.
=>Générer un nombre aléatoire.




-Vous allez voir ça dans l'éditeur d'expression.
Random(>Entrer le nombre de base<)

Nous allons placer 10000.
Ce qui donne donc
=> Random(10000)


Maintenant nous allons faire apparaître le chiffre pour qu'il puisse être lisible.
-Placez un compteur sur la scène.
Toujours sur la même ligne avec comme condition : début scène.
-Allez sur la case du compteur, clic droit et choisissez comme effet
=>Changez le compteur.

-Récupérer les données d'un objet.
-Sur l'objet spécial joueur,
=>récupérer la valeur courante du score.

-Ce qui donne dans l'éditeur d'expression :
score( "Joueur 1" )


Nous avons terminé la partie score du joueur pour l'exemple.


Nous allons proposer de faire entrer un nom au joueur.
-Ajoutez l'objet 'Boîte d'Edition'' dans la scène.
Et c'est tous.


Nous allons utiliser un bouton poussoir pour déclencher l'envoi du score sur le net.

-Ajouter simplement l'objet Bouton.
-Changer le texte par Ok. (Double clique sur l'objet)

Bon nous allons détecter l'utilisation du bouton.
Nous allons donc faire une nouvelle condition.
Clique droit sur l'objet ''le bouton '' pour les conditions.
=>Si le bouton est cliqué.




Dans les actions nous allons tout de suite bloquer l'édition du pseudo.
Clique droit dans la case Boite Édition. dans les effets.
=>Contrôle => Lecture Seul => On.



Avant de continuer le didactiel et les manipulation, voici un peu de théorie.
Pour notre exemple, nous allons prendre une adresse d'un site internet qui n'existe pas.

www.mmf2forever.fr

La  page web qui va contenir le script  qui aura l'effet d'ajouter le nom et le score dans la base de donnée. Cette page se nomme :
scorein.php ,  et elle se trouve à la racine du site web.

www.mmf2forever.fr/scorein.php

Dans notre exemple, MMF va envoyer 3 paramètres à l'adresse ou se trouve le scripte.
=>Le nom du joueur
=>Le score du joueur
=>Et une clef de sécurité crypté en format MD5.


Nous allons réaliser une clef en format MD5 qui va servir de sécurité. Une clef MD5, est une recette secrète de votre crus pour contrôler les données envoyées

sur internet. Il y a plusieurs manières de la faire. Voici un exemple. 

Pour notre didacticiel, la clef de sécurité sera composé de :

-Le  Pseudo du joueur
-Le score du joueur
-Et un mot clef choisi par le créateur.
C'est trois ingrédients sont placé bout à bout. Et le tout sera crypté en format MD5.

Voici un exemple.
-Sylvanor c' est le pseudo
-1000 c'est le score
-Aëdemphia c'est le mot clef choisi.

Mise bout à bout cela donne donc ça :
=>Sylvanor1000Aëdemphia

Une fois transformé en format MD5, nous obtenons cette formule.
=>4ce13e6c21262a5c10565ec5f70defde





Dans un site web, il y deux moyens de communiquer des informations d'une page à une autre.
 -La fonction Get (les variables sont visibles dans les liens).

-La Fonction Post. (Les variables sont invisibles dans les liens)
Avec l'objet Get, nous avons la faculté d'envoyer des données en utilisant les deux procédés.
Nous allons utilisé la plus sécuritaire. L'option POST.


Téléchargez et ajoutez l'objet Get sur vôtre scène.
Deux précisions :
-Vérifiez que dans les effets il y a bien l'option :
=>Post.
Car les vielles version de l'extenssion ne pouvait envoyer qu'en mode Get.
- L'objet Get n'a rien à voir avec les Robots du jeu vidéo Mass Effect. Vous avez donc rien à craindre de Saren.


(Oui je recycle l'image speudo xd)
Nous allons placer le nom du joueur dans la variable pseudo du mode Post.
Dans la même condition du  Bouton enclenché.
-Clique droit dans la case de l'objet  Get.
=>Add Post Data

L'éditeur d'expression va s'ouvrir. Et vous allez avoir des paramètres à configurer.
=>Name : nous allons écrire le nom de la variable.  « pseudo »

=>Value :Nous allons récupérer ce que le joueur à marqué dans la boite d'édition pour cela :
-Récupérer les données de l'objet.
-Clique droit sur l'objet boite d'édition.
=>Récupérer le texte
.
Ce qui me donne ça dans mon 'exemple.
Editselect$( "boite-pseudo" )




(Toujours du recyclage et toujours sur la même ligne et l'objet Get.)

=>Add Post Data
=>Name : score
=> Value : Attention : il faut convertir un nombre en chaine. Cliquez sur récupérer les données de l'objet.
-Objet spécial :
=>Convertir un nombre en chaine. Ce qui donne ça :
Str$(>Entrer le nombre à convertir<)

Placez le score courant du joueur entre les ( ). (Le technique à été donnée au début du tuto pour récupérer un score !)



Vous devez placez l'objet string parser sur la scène pour convertir en MD5.
Nous allons entrer du texte dans string parser.
-Toujours sur la même ligne, clique droit dans la case string parser.
=>Set source string.

Récupérer le nom du joueur dans l'objet boite d'édition +
récupérer le score converti en chaine du score du joueur +
le mot clef que vous avez choisis. Aëdemphia dans notre exemple.

Exemple d'expression :

Edittext$( "boite-pseudo" )+Str$(score( "Joueur 1" ))+"Aëdemphia"

Maintenant nous allons transformer ça en MD5 et faire comme plus haut paramétrer un Post.

=>Add Post Data
=>Name : clef
=>Value : Récupérer les données de l'objet string parser,
=>Filters => Get MD5 signature.


Allez derniers truc. Toujours sur la même ligne. Nous allons envoyer le score à la page web.
Pour ça toujours avec l'objet Get et sur la même ligne.
=>Get URL

L'éditeur d'expression s'ouvre. Dans l'éditeur je place la page web  ou se trouve le script.
Dans mon exemple :
www.mmf2forever.fr/scorein.php

Et si je veux envoyer en GET ?
Il est tous à fait possible d'envoyer vos donner plus facilement lisible. Pour cela, ce n'est pas la peine d'utiliser les options posts. Dans notre exemple,

il suffit d'utiliser l'expression Get URL et d'écrire manuellement les variables + d'aller chercher le pseudo, le scores et la clef md5.
Ce qui donnera en gros ce genre de truc à envoyer.
www.mmf2forever.fr/scorein.php?pseudo=pseudo du joueur&score=score du joueur&clef=la clef md5
Dans le script pour sortir les variables, il ne faut pas utiliser, $_POST
mais $_GET


(Encore ?)
Oui, je vais vous expliquer pourquoi une clef en format MD5 !
C'est une sécurité pour savoir si les données qui sont envoyés proviennent bien de votre application, et non d'un envoi extérieur.

Dans notre exemple, la page internet ou se situe le scripts va analyser deux variables. Le Pseudo du joueur, et le scores pour enregistrer ces deux données.

Si une personne mal intentionné trouve les deux variables Posts, il peut envoyer un score et un pseudo très facilement, votre script ne fera pas de différence

si cela provient de l'application ou pas.

C'est la que la clef de sécurité entre en jeu pour limiter la casse on va dire. L'application va envoyer une 3em donnée qui est une signature en cryptage MD5.

Dans cette signature, il y a un mot clef secret qui doit être connus seulement de vous, de l'application et du script.

Dans le script PHP, grâce à la formule, la signature MD5 va être recomposée et comparé à la signature envoyé par votre application. Si les deux formules sont

identiques alors, le score et le pseudo sont enregistrés. Pour qu'un élément extérieure enregistre dont le score cette fois si, il doit connaître la formule

secret que vous avez composé.

Pourquoi utiliser du MD5 ?
Tous simplement  par ce que le cryptage MD5 est pour le moment pratiquement irréversible.

L'envoi fini
Nous allons faire une nouvelle condition.
Objet Get :
=>On Get Complete.
Dans les actions :
=>Terminer l'application.


Voici la feuille de programmation.




Bon c'est la que vos compétences en php doivent être utile.
-Dans ma base de donnée, j'ai réalisé une table tutoscoremmf
avec 3 champs.
Id en int avec la case auto-increment
pseudo avec type verchage.
et score en type int

Voici le script avec des commentaires.

<?php

 

// Variable de connexion

 

$adresse 'localhost';

$nom 'root';

$motpasse '';

$basedonnee 'vivemmf';

 

//récupération des variables qui sont envoyées par MMF

$pseudo stripslashes($_POST['pseudo']);

$score stripslashes($_POST['score']);

$keymmf stripslashes($_POST['clef']);

 

//Mot Clef choisi

$key "Aëdemphia";

 

 

//Connexion à la base de donnée

mysql_connect($adresse$nom$motpasse);

mysql_select_db($basedonnee);

 

 

//Re codage MD5

$V_md5 md5($_POST["pseudo"].$_POST["score"].$key);

 

 

//Verification si le codage du nom et  du score récupéré en POST = au codage dans MMF

if  ($V_md5 == $keymmf)

{

 

// Si oui enregistrement dans la base de donnée.

mysql_query("INSERT INTO tutoscoremmf VALUES('', '" $pseudo "', '" $score "')");

}

 

 

?>


 


Attention, ceci est un exemple de script.

Voilà. Maintenant à vous de travailler pour améliorer, et surtout sécuriser les scripts php pour vos jeux et faire le script pour lire les scores de votre

base de donnée.
Bonne création et Bisous.


Télécharger le MFA
« Modifié: 01 mai 2013 à 11:05:09 par Monos »

Hors ligne Pit73

  • Staff Technique
  • Clickeur bien intégré
  • Messages: 222
  • Spécialiste du HTML5
    • Voir le profil
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module HTML5: Oui
Re : Score en ligne
« Réponse #1 le: 02 août 2013 à 16:25:39 »
C'est cool monos, je m'y met à ce tuto.
J'aimerais bien des pistes de réalisation de classement de scores.
Par exemple le meilleur score du jour, du mois, général, et comment trier les scores.
Ca se fait en php ou directement dans mmf?

En fait, comment on peut les manipuler ces score stoqués dans la base mysql?
A+ Pit
Mon wip torture test >> http://patrick.gimeno.free.fr/tmp/race/racing.html

Hors ligne Monos

  • Webmaster
  • Clickeur de Légende
  • Messages: 1311
    • Voir le profil
    • Offgame
  • Google Play: Oui
  • Logiciel: Fusion 2.5Dev
  • Module APK: Oui
  • Module Flash: Oui
  • Module HTML5: Oui
  • Module iOS: Oui
  • Module XNA: Oui
Re : Score en ligne
« Réponse #2 le: 02 août 2013 à 16:51:51 »
Citer
Ca se fait en php ou directement dans mmf?
Tu peux mais de toute façon il faut que tu lises des infos sur une page web au temps faire ça sur une page php.

Citer
En fait, comment on peut les manipuler ces score stoqués dans la base mysql?
C'est des requettes comme si tu affichés du texte, ou autre. Une petite connaisssance en php/mysquel est indispensable. Le site du zero explique bien la partie MSquel pour enregistrer, afficher et trier des données.

 


+-MiniChat

Aujourd'hui à 19:03:21 Crystal Noir dit: Episode 3 disponible :)
Aujourd'hui à 12:26:23 Capitaine_Caverne dit: bon anniversaire françois
Aujourd'hui à 10:56:52 Crystal Noir dit: Bon anniversaire François :)
Aujourd'hui à 08:52:23 Monos dit: Joyeux anniversaire François si tu passes par ici.
05 juillet 2014 à 19:00:06 Crystal Noir dit: Les deux premiers épisodes de la série de tutos sont en lignes : http://comptoir-mmf.eu/Forum/index.php?topic=777.0
05 juillet 2014 à 18:36:39 Capitaine_Caverne dit: merci bien oui a monos il ma dit la même chose que dans fusion il maintenant des variable réservé.
05 juillet 2014 à 17:12:08 Funkadicte dit: Capitaine_Caverne: Oui J'ai remarqué sa aussi on ne peux pas renommer une variable d’un objet comme on le souhait speed,angle n'est pas acceptée et les autre aussi je pense
05 juillet 2014 à 16:43:02 Pit73 dit: il y a des nom de variable réservé il me semble.
05 juillet 2014 à 15:23:02 Capitaine_Caverne dit: bonjour dit moi sur fusion la j ai bug faite un test  si vous renommer le nom de la variable d un objet  en nom  ( angle ) j ai un message d erreur mais si je mais un autre nom dit moi s ça vous fait la même chose.
05 juillet 2014 à 14:55:41 Funkadicte dit: Ok merci
Voir l'historique
Powered by EzPortal