Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

380 connectés actuellement

30734540 visiteurs
depuis l'ouverture

1505 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker - La Communauté

RPG Maker VX

Guelnika & E-magination

Leo-Games

RPG Fusion

Tous nos partenaires

Devenir
partenaire



Gestion des scores en ligne

Un didacticiel pour multimédia fusion 2 et multimédia fusion dev 2 pour envoyer des données à partir du logiciel sur internet.
(Score en ligne)

Ecrit par Tata Monos le 31/12/2010


❤ 0

Didacticiel pour enregistrer des scores en ligne

imageimage


image
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.

image
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.

image
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..

image
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.


image
-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.
image


-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.
image



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

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

image
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.

image
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é.

image


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.


image
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.

image
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




image
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.

image
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.

image
(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" )

image

image
(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 !)

image

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.

image
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

image
(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.
image


image
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.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
<?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, le script php,n'est pas du tout sécurisé, c'est un exemple !

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



Tata Monos - posté le 01/01/2011 à 10:38:15 (28 messages postés)

❤ 0

Compte Non utilisé

:D


Lewys Crimson - posté le 01/01/2011 à 19:15:34 (19777 messages postés) -

❤ 0

Indie game Developer

Très très bon Monos, j'utilisais la version anglaise de ce tuto pour mes scores, mais c'est une excellente chose que d'avoir sortit une version français.
Très bonne mise en forme qui plus est.

Inexistence Rebirth - Inexistence - Portfolio


Tata Monos - posté le 01/01/2011 à 22:43:49 (28 messages postés)

❤ 0

Compte Non utilisé

Citation:

Très très bon Monos, j'utilisais la version anglaise de ce tuto pour mes scores


Idem. C'est la que j'ai compris comment on réalisé le truc.

Citation:

mais c'est une excellente chose que d'avoir sortit une version français.


Oui, car plusieurs personnes m'a demandé comment on fait des scores en lignes.

Attention, je r'appelle au niveau script php, il faut retravailler ça !
Ne pas utiliser mon script qui est la à titre d'exemple.
Il est pas du tous sécurisé, et manque plein de chose.

Citation:

Très bonne mise en forme qui plus est.


J'ai travaillé 3 jours dessus xd.


Root - posté le 02/01/2011 à 15:22:54 (11 messages postés)

❤ 0

Très bonne initiative, je savais pas que tu maîtrisais le scoring online. :)


Tata Monos - posté le 03/01/2011 à 12:13:06 (28 messages postés)

❤ 0

Compte Non utilisé

Citation:

je savais pas que tu maîtrisais le scoring online.


Ah tu sais pas tous petit colibris xd.
Si je savais faire des scores en ligne pratique des le début que j'ai eu mmf.
Après c'est plus ou moins sécurisé et j'ai du en retiré car au niveau php c'était pas encore ça.

En score en ligne il y a eu "pixel Mania 1" en flash mais vite faire retiré à cause du fichier flash qui se dé-compile facilement.
Il y a de nouveau des scores en ligne, mais je passe par Mochie.

J'ai aussi Winged light et Pixel Mania 2.


Tasslehoff - posté le 04/01/2011 à 00:24:52 (5274 messages postés)

❤ 0

Disciple de Pythagolf

Ah ça va m'être très utile vu que j'ai eu MMF2 pour noël. ^^
Par contre c'est quoi Mochie et comment peut-on protéger son fichier swf ?

~~


Tata Monos - posté le 04/01/2011 à 10:44:41 (28 messages postés)

❤ 0

Compte Non utilisé

Citation:

Par contre c'est quoi Mochie


Mochi c'est un site de "gestion" de flash on va dire.
Il fait office de fournisseur de publicité pour gagner un peu d'argent avec les applications flash.
Permet d'ouvrir une boutique d'objet.
Permet d'avoir des un gestionnaire de score en ligne.
Et d'autre truc que je n'ai pas encore regardé.
C'est exclusivement pour le format Flash (mmf ou pas)

Pour protéger un fichier flash, il existe des logiciels qui sont payants.
Mais en postant ton fichier flash directement sur le site mochi, je crois qu'il est protégé d'office.

Attention pour exporter en flash, il faut un module.

Citation:

Ah ça va m'être très utile vu que j'ai eu MMF2 pour noël.


Nice ça. N'oublie pas de placer les mises à jours.
Et tu peux installer la RC 250. Elle est stable. Je tourne avec.
Dans qu'elle que semaine je pense que ça passera en builde-250 officiellement.

N'hésite pas non plus à télécharger le module HWA qui permet d'utiliser la carte graphique. (Fluidité et tu peux jouer avec les pixel shader.)


Tasslehoff - posté le 04/01/2011 à 18:10:18 (5274 messages postés)

❤ 0

Disciple de Pythagolf

Merci.

Citation:

Attention pour exporter en flash, il faut un module.


Tkt, j'ai. ^^

~~

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers