Messagerie

  • anthonyp
    Petit coucou à toute la communauté Fusion. Je partage une nouvelle petite vidéo bande annonce de mon projet fait sur Fusion : https://www.youtube.com/watch?v=eAg15yPxZfM
    anthonyp - 07/11/2023 15:40:29
  • Emmanuel
    coucou Xenon3k si du passe par la :-) on ne peu plus ajoute les jeux sur le site.
    Emmanuel - 13/03/2024 21:18:06
  • Xenon3K
    Merci Manu, il faut que je trouve un peu de temps pour regarder ça.
    Xenon3K - 16/03/2024 00:03:19
  • Emmanuel
    Bonjour ATTENTION sur le site il y a des lien Néfaste.
    Emmanuel - 24/04/2024 10:24:51

Score en ligne

Monos
2713 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur Android Exporteur HTML5
dimanche 13 novembre 2011 à 11:46
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é le mercredi 1 mai 2013 à 11:05 par Monos
Pit73
1053 messages
Fusion 2.5 Dev
Exporteur iOS Exporteur Android Exporteur HTML5
vendredi 2 août 2013 à 16:25
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
Monos
2713 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur Android Exporteur HTML5
vendredi 2 août 2013 à 16:51

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.

[quote]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.
ValLoche23
1452 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
lundi 25 mai 2015 à 17:04
Très bon tuto, mais comment on peut faire pour faire l'inverse. C'est à dire ne pas envoyé, mais recevoir ! C'est possible ?
Monos
2713 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur Android Exporteur HTML5
lundi 25 mai 2015 à 17:10
Dans le logiciel utilise Get avec l'option récupérer le contenu de l'url en français. Cible par exemple l'index de ce site.
Une fois la récupération terminé, affiche les donnés reçu dans une chaine par exemple.
Fait ensuite un click droit sur le site pour afficher le code source. Tu verras get affiche "le code source HTML" de la page donc ce qui est affichable en gros avec les balise en passant.

De la tu peux faire une page en PHP qui sort les scores par exemple et tu les récupérés avec tu les traites dans fusion. (String parser peut être utile pour découper les scores avec un séparateur par exemple.)
ValLoche23
1452 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
lundi 25 mai 2015 à 17:13
Mais moi, ce sont des message, des "chaînes". cela pose pas de problème ?
Monos
2713 messages
Fusion 2.5 Dev
Fusion 2.5+ Exporteur Android Exporteur HTML5
lundi 25 mai 2015 à 17:17
C'est plus ou moins la même chose. Ton script php va chercher le dernier messages enregistré par exemple et mmf va charger cette page pour lire le code source de la page dans mmf et tu en fais ce que tu veux.
Test get ! tu vas comprendre.

Encore une fois une connaissance en PHP/mysquel/sécurité est vitale pour ça.
Attention Get en flash c'est un peu spécial, du dois autoriser ton serveur avec un fichier. Je ne sais plus comment.
Et il te faut un serveur qui tienne la route pour ce genre de truc. Si c'est free laisse tombé ça ne tiendra pas charge.
Menestroll
dimanche 21 juin 2015 à 14:19
Bonjour !

Merci pour ce tuto qui m'a été très utile dans la mise en place de mon système de score en ligne.

Néanmoins je voudrais que les joueurs les scores des joueurs soient rattachés à un compte qu'il possède sur mon site.
Comment puis-je faire pour intégrer les comptes du joueur au jeu ?

J'imaginais quelque chose dans ce gout la mais je vois mal comment le mettre en place.
Le joueur rentre son pseudo et son mdp dans deux chaines de caractères qui sont ensuite envoyés sur serveur via la fonction get. J'imagine que cela nécessite un bout de code php pour comparer les données de connexion avec la base données du site.
Ensuite c'est le flou, je n'arrive pas à me projeter plus loin.
Xsoul
dimanche 21 juin 2015 à 14:23
Je pense effectivement qu'il faut avoir des connaissances en PHP pour répondre à ça.

Pour mes scores en ligne j'avais suivi ce tuto que je trouvais particulièrement simple : http://community.clickteam.com/threads/87185-Online-High-Score-Tutorial
Emmanuel
2393 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
dimanche 21 juin 2015 à 15:59
Bonjour voila pour toi exemple fait par RickyRombo.
Pièces jointes
Menestroll
dimanche 21 juin 2015 à 17:00
Merci pour vos conseils.

Le tuto de RickyBombo m'a été d'une grande aide !
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 14 visiteurs au total

Derniers messages