FTP_DLL
Télécharger
FTP_DLL
Buhl Damien
allias daminetreg
http://lecbna.com/
http://www.gamemaker.fr/
GameMaker
6 et +
Enregistré
Bonjour,
Bienvenue dans le petit tuto sur ftp_dll, j'ai décidé de
l'écrire après la demande de certains membres qui
apparemment ne comprennent pas l'allemand, et qui aimeraient eux aussi
utiliser ftp_dll, cette petite perle créée par Cygnus en
2004. Le tutoriel se déroulera tout d'abord en regardant comment
fonctionne un ftp en general, puis nous définirons les fonctions
incluses dans ftp_dll, et pour finir nous ferons un petit projet pour
illustrer nos connaissances. (;
Voici le Sommaire:
1)
Fonctionnement d'un Serveur FTP en général
2)
Définition des différentes fonctions de ftp_dll
Un petit Projet
1)
Fonctionnement d'un Serveur FTP en général
Un serveur FTP, est un serveur sur lequel on upload (envoie) des
fichiers pour qu'ils puissent par d'autres utilisateurs de la toile
être téléchargés. La plupart des serveurs
actuels fonctionnent de la façon suivante: Upload par protocole
FTP et Download(Réception) par protocole HTTP, cependant, il
permettent toujours le download par protocole FTP.
Lorsque vous envoyez un fichier sur un FTP il vous faut
récupérer le nom du fichier et le répertoire dans
lequel il est placé, ensuite il vous suffit de donner cette
adresse à quelqu'un pour qu'il puisse télécharger
vos données. Par exemple vous uploadez un fichier: mydata.zip
dans le répétoire /data/ de
votre serveur ftp: ftp.provider.com
avec le nom d'utilisateur myname.
Pour que quelqu'un puisse le télécharger il vous faudra
lui fournir l'adresse: ftp://ftp.provider.com/myname/data/mydata.zip.
Bien maintenant vous savez en gros comment ça fonctionne alors
passons à la suite.
2)
Définition des différentes fonctions de ftp_dll
La plupart des arguments des fonctions qui suivent sont soient des
réels, soient des strings.
ftp_init()
La fonction où tout commence. Cette fonction permet
d'initialiser la dll, il est indispensable de l'appeller avant chaque
usage de ftp_dll.
ftp_connect(serv,user,pass)
Permet à ftp_dll de se connecter au serveur ftp de votre choix
où serv est l'adresse
ou IP du serveur ftp (ex: "ftp.provider.com"), et où user est le nom d'utilisateur que
vous désirez utiliser pour ce ftp, ainsi que pass est le mot de passe de cette
utilisateur.
Attention! Tous ces arguments sont des strings.
ftp_is_connected()
Retourne 1 si une connexion est en cours et 0 s'il n'y en a pas.
ftp_disconnect()
Deconnecte l'utilisateur du serveur ftp où il est actuellement
connecté, cette fonction n'est operationelle uniquement
après avoir appellé ftp_connect.
ftp_file_upload(namefile,namefileonserv,mode)
Permet d'envoyer un fichier sur un serveur FTP sur lequel vous
êtes actuellement connecté, cette fonction n'est
operationelle uniquement après avoir appellé ftp_connect.
Où namefile est le nom
du fichier sur votre disque dur à envoyer sur le serveur, namefileonserv sera le nom du
fichier lorsqu'il sera sur le serveur et mode un réel qui est soit 0
mode binaire, soit 1 mode ASCII. La plupart des ftp utilisent le mode
binaire.
ftp_file_download(namefile,namefileonserv,mode)
Permet de télecharger un fichier d'un serveur FTP, cette
fonction n'est operationelle uniquement après avoir
appellé ftp_connect.
Où namefile sera le nom
du fichier sur votre disque dur, namefileonserv
est le nom du fichier lorsqu'il est sur le serveur et mode un réel qui est soit 0
mode binaire, soit 1 mode ASCII. La plupart des ftp utilisent le mode
binaire.
ftp_directory_create(directoryname)
Fonction permettant la création d'un nouveau répertoire
sur le serveur ftp où vous êtes connecté, cette
fonction n'est operationelle uniquement après avoir
appellé ftp_connect.
Où directoryname est le
nom du repertoire à créer.
ftp_directory_remove(directoryname)
Fonction permettant la suppression d'un répertoire sur le
serveur
ftp où vous êtes connecté, cette fonction n'est
operationelle
uniquement après avoir appellé ftp_connect.
Où directoryname est le
nom du repertoire à supprimer.
ftp_set_current_directory(directoryname)
Fonction permettant de se placer dans un répertoire sur le
serveur
ftp où vous êtes connecté, cette fonction n'est
operationelle
uniquement après avoir appellé ftp_connect.
Où directoryname est le
nom du repertoire où se placer.
ftp_get_current_directory()
Fonction retournant le nom du repertoire courant, cette fonction n'est
operationelle
uniquement après avoir appellé ftp_connect.
ftp_file_find_first(mask,fa_volumeid)
C.f:
Aide GameMaker > file_find_first(). Cette fonction n'est
operationelle
uniquement après avoir appellé ftp_connect.
ftp_file_find_next()
Retourne le nom du fichier suivant, cette fonction n'est
operationelle
uniquement après avoir appellé ftp_connect.
ftp_file_find_close()
Stoppe le listage des fichiers, cette fonction n'est
operationelle
uniquement après avoir appellé ftp_connect.
ftp_file_rename(nomfichier,newnomfichier)
Fonction permettant de renommer un fichier, cette fonction n'est
operationelle
uniquement après avoir appellé ftp_connect.
Où nomfichier est le
nom du fichier à renommer et newnomfichier
est le nouveau nom du fichier.
ftp_file_delete(nomfichier)
Fonction permettant de supprimer un fichier, cette fonction n'est
operationelle
uniquement après avoir appellé ftp_connect.
Où nomfichier est le
nom du fichier à supprimer.
Note: Il peut s'avérer que certaines fonctions soient
indisponibles avec un serveur ftp mal configuré (Souvent les
serveurs ftp gratuit). Mais pour en être sûr, il faut
essayer.
Un petit Projet
Bien désormais nous allons
réaliser un petit système qui vous permettra de corriger
les bugs de vos jeux, sans pour autant gêner le joueur.
Légende:
Sprites
Sounds
Background
Paths
Scripts
Fonts
Timelines
Objects
Rooms
Groupe
Event
Action
§Point étape
!Information
importante
|
En premier lieu nous allons créer notre gm6 de
départ, il vous faut donc ouvrir GameMaker, puis
sélectionner le menu:
Scripts
puis cliquer sur
Import Scripts. Là
placez vous dans le répertoire de
ftp_dll et sélectionnez le
fichier:
ftp_dll.gml
Ceci fait sauvegardez votre gm6, sous le nom que vous
désirez dans le répertoire de
ftp_dll.
!Information
importante
Attention, il est très
important de sauvegarder votre gm6 dans le répertoire dans
lequel est placé la dll, sinon les
Scripts
que vous venez d'importer ne pourront pas appeller les differentes
fonctions de celle-ci. D'ailleurs cela est valable pour toutes les dll
usable avec GameMaker toutes versions confondues.
|
Maintenant
nous allons configurer le système pour qu'il envoie les erreurs
dans un fichier:
game_errors.log,
pour ce faire cliquez sur
Global Game
Settings puis sur l'onglet:
Errors,
ici déselectionnez la checkbox
Display
error messages puis sélectionnez Write error messages to
file
game_errors.log ainsi que
Treat uninitialized variable as value 0.
Puis bien entendu, cliquez sur
ok.
§Vous en êtes
là, Step 1:
Récapitulatif:
-Vous avez importé les scripts à partir de
ftp_dll.gml
-Vous avez
configuré le .gm6 pour qu'il écrivent les erreurs dans
game_errors.log
|
Enfin nous avons notre gm6 de base, nous pouvons enfin passer à
la programmation du système en lui même.
Nous crérons donc l'objet:
Y_errors,
dans lequel nous programmerons les évènements suivant:
Dans
Game
Start
nous placerons la pièce de
code suivante, qui permet de définir le nom du profil de notre
joueur:
if
!file_exists("config.dat")// Si le fichier config.dat n'existe pas
{
global.name = get_string("Entrez votre nom de
profil:","Entrez votre nom");
file = file_text_open_write("config.dat");
file_text_write_string(file,global.name);
file_text_close(file);
}
else// Si le fichier config.dat existe
{
file = file_text_open_read("config.dat");
global.name = file_text_read_string(file);
file_text_close(file);
}
|
Puis dans
Game End
la pièce de code qui
suit:
ftp_init();
ftp_connect("127.0.0.1","dede","dede");// Connexion au serveur ftp
if file_exists("game_errors.log")//Si game_errors.log existe
{
ftp_directory_create(string(global.name));//Créer un
répertoire à l'efigie du joueur
ftp_file_upload("game_errors.log",'/'+string(global.name)+"/game_errors.log",1);//Upload
du fichier
}
ftp_disconnect();//Deconnexion du serveur FTP
|
!Information
importante
Ici vous vous en êtes
certainement rendu compte, si un joueur a le même non le
système va réécrire un fichier dessus, cependant,
ce n'est pas important puisque nous cherchons juste à illustrer
nos connaissances, et si jamais vous désirez améliorer ce
système il vous suffit de faire usage de: ftp_file_find_first(mask,fa_volumeid)
|
Il ne vous reste plus qu'à créer un room:
Y_room et y placer l'objet:
Y_errors,
puis appuyer sur F5!
§Vous en êtes
là, Step Final:
Récapitulatif:
-Vous avez importé les scripts à partir de
ftp_dll.gml
-Vous avez
configuré le .gm6 pour qu'il écrivent les erreurs dans
game_errors.log
- Vous avez créé et
programmé l'objet Y_errors
- Vous avez créé la room: Y_room dans laquelle vous avez placé: Y_errors
|
Et voilà c'est fini! Le tutoriel est un peu court il est vrai,
mais je pars dans quelques heures en voyage, je n'avais pas le temps de
faire plus, et je pense de toutes façons que la première
partie est la plus interessante et je pense que cela vous sera utile.
Bonne chance pour tous vos projets! Je pars en vacances...
héhé...
Buhl
Damien
allias daminetreg
Fondateur et Webmestre du CBNA
http://lecbna.com/
@3