Echanges en temps réel
:? Arrête de flooder l'ami... C'est pas drôle comme blague !
Si seulement c'était une blague. Mais c'est tout à fait réel ! Enfin maintenant, ca l'est ^^ Mais je vais vous détailler tout ca, car c'est un topic on ne peut plus sérieux :p
Pour créer la version 1.0b présentée ici, j'ai repris le concept créé par Krosk
- l'échange qui se base sur les codes échanges que les deux joueurs devront s'échanger avant, en gros comme ca se fait déjà avec le système disponible par défaut - à partir duquel j'ai basé le système d'échanges en temps réel.
Après avoir échangé au préalable leurs codes échanges respectifs, les deux joueurs n'ont plus qu'à accéder au centre d'échanges, puis à échanger leurs pokémons. Etant donné que l'échange se fait en temps réel, entre chaque décision, un temps d'attente peut être observé (l'échange ne se poursuit que lorsque les deux joueurs ont validé l'étape précédente). Afin de la faire passer plus agréablement, une petite animation a été dessinée tout spécialement par Disscat.
Si l'option SAVEBOUNDSLOT (option de PSP0.7 activée par défaut qui oblige le joueur à sauvegarder sa partie sur le même slot) est activée, la partie est automatiquement sauvegardée avant puis à la fin de l'échange.
Cette partie est la plus complexe de ce tutorial. Je vais donc faire au mieux pour ne pas m'attarder sur les détails
- pour ceux que ca intéresse, j'y consacrerai la prochaine partie -, mais je vous conseille également de relire autant de fois que nécessaire.
L'installation se décompose en deux sous parties :
A) Installation côté serveur :
Derrière ce titre effrayant se cache quelque chose de très simple, finalement. Le seul prérequis indispensable, c'est un hébergement qui permette d'exécuter des pages PHP (il en existe énormément de gratuits sur internet, inutile de vous ruiner pour ce tutorial). Ceci dit, je n'ai testé qu'avec un serveur Free (inutile d'être chez eux pour vous ouvrir un espace perso gratuit chez eux ) dont je me suis servi pour mettre au point ce système. Mais tout semble indiquer que ca marchera très bien également sur n'importe quel autre hébergeur, quoiqu'il vaudrait mieux éviter ceux qui ajoutent automatiquement des pubs.
Pour faire simple, créez simplement un dossier (que vous pouvez appeler echanges, placé à la racine de votre serveur par exemple) puis placez y ce fichier :
(pensez à le dézipper avant de le placer sur votre serveur, bien sur ^^)
Retenez l'endroit où est placé ce fichier, vous en aurez besoin tout à l'heure.
B) Installation dans votre projet :
Cette fois le titre est simple à comprendre, et ne fait pas peur. Toutefois, vous verrez qu'il y a plusieurs scripts à installer, ce sera donc un peu plus long que pour le point précédent.
Tout d'abord, vous devrez installer les scripts suivants :
Ensuite, vous devez copier les scripts suivants au dessus de Main dans votre projet :
Citation: |
Les poster ici provoquait un bug avec les balises Code & Spoiler, donc je les ai uploadés et je les ai compressés dans ce fichier : qui contient 3 fichiers texte, ce sont les 3 scripts à copier/coller dans votre projet. |
Au début du script Scene_Echanges, vous avez ca :
Code: |
# L'adresse de votre site internet HOSTNAME = "" # Le chemin d'accès vers le script d'échange PHP # (exemple /dossier/fichier.php) DIRNAME = "" # Nombre de frames avant annulation de l'échange FRAME_TIME_OUT = 600
|
Indiquez entre les guillemets de HOSTNAME l'adresse de votre serveur sans le précéder de http://.
Entre les guillemets de DIRNAME, indiquez le chemin d'accès vers le fichier index.php que vous avez mis sur votre serveur tout à l'heure.
Ensuite, la valeur du FRAME_TIME_OUT sert à déterminer le nombre de frames qui seront affichées en attendant l'autre partie.
Enfin, téléchargez cette archive qui contient les ressources graphiques et audio utilisées par ce script, puis dézippez le dans le dossier de votre projet.
Voici la liste des fichiers contenus dans l'archive ZIP :
- Audio/
- BGM/
- PkmRS-Evolving.mid
Musique de l'animation d'échange
- PkmRS-MtChimney.mid
Musique de fond de la scène
- ME/
- Caughtjingle.mid
Son de fin de l'animation d'échange
- SE/
- Pokemove.WAV
Son utilisé dans l'animation d'échange
- Graphics/
- Pictures/
- echange_barre.png
- echange_fond.png
- echange_interface1-1.png
- echange_interface1-2.png
- echange_interface1-3.png
- echange_interface2.png
- echange_interface3.png
- echange_interface4.png
Eléments de l'animation d'échange
- messagedummy.png
- Persian_00.png
- Persian_01.png
- Persian_02.png
- Persian_03.png
- Persian_04.png
- Persian_05.png
- Persian_06.png
- Persian_07.png
- Persian_08.png
- Persian_09.png
- Persian_10.png
- Persian_11.png
Les 12 frames de l'animation d'attente
Si certaines de vos ressources portent déjà ce nom là, à fortiori si vous les avez personnalisées, renommez les avant de décompresser l'archive, vous éviterez de les remplacer.
Et voilà, vous avez fini l'installation de ce système ! Vous pouvez souffler maintenant ! ^^
Après une installation assez longue, je suis au regret de vous annoncer que l'utilisation de ce système est on ne peut plus complexe... Il faut créer un évènement, et y glisser cette insertion de scripts :
Si vous y êtes arrivé, je vous tire mon chapeau :p
Ensuite, réchauffez, servez, puis testez ^^
La vidéo ci après représente 2 fenêtres du jeu ouvertes filmées au même moment sur 2 ordinateurs différents (j'ai assemblé les 2 vidéos en une seule), pour vous montrer que le système tourne bien en temps réel.
V) LMDLF (Le mot de la fin) :
J'ai fait divers tests (j'ai testé un maximum de situations, une majorité lors de l'élaboration du système avec des bêtatesteurs qui ont bien volontiers accepté de sacrifier de leur temps, puis je l'ai fini ces jours ci en le testant seul sur deux ordinateurs) et le système est fonctionnel. N'hésitez pas à le tester et à me signaler d'éventuels effets de bord.
V) Nombreux crédits - par ordre alphabétique - :
Tout d'abord, je remercie ceux qui ont contribué à la mise en place de ce système (y compris en perdant un peu de leur temps en testant ce système) :- Disscat, pour l'animation d'échange ainsi que l'animation d'attente ;
- Samyh, pour le back de la scène d'échange ;
- Yuri, pour les classes Socket et Web_File qui permettent de contacter le serveur PHP.
Je remercie également les testeurs qui ont également bien aidé à l'élaboration du système d'échanges en temps réel :- Angi-Mk ;
- Emeraude ;
- Spiky ;