Shit Fliez Index du Forum Shit Fliez
Bienvenue sur le forum officiel des Shit Fliez !
 
 AccueilAccueil  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Programmation de l'?diteur en ligne

 
Poster un nouveau sujet   Répondre au sujet    Shit Fliez Index du Forum -> Edition de Final Fantasy VII
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Fremen^SF
GDB des Shit Fliez


Inscrit le: 21 Mar 2003
Messages: 849
Localisation: Versailles

MessagePosté le: 10 Oct 2003 4:04    Sujet du message: Programmation de l'?diteur en ligne Répondre en citant

Format du fichier mis ? jour le 01/11

Encore un nouveau topic, cette fois-ci pour parler de la programmation du site en php/cgi. Juste pour m?moire, il en a ?t? question dans le topic Avancement du projet, mais l'avis de chacun est le bienvenu.
Je me suis permi de prendre un peu d'avance, car j'ai du retard sur mes cours et j'ai profit? de mon "temps libre" actuel pour avancer sur ce projet. Car par la suite je passerai ici beaucoup plus rarement.

En ce qui concerne la partie cgi - dont je m'occupe - j'ai cr?? un programme import.cgi dont je vais expliquer la syntaxe. J'esp?re qu'elle correspond plus ou moins ? ce qu'on a pr?vu avec Speedy.

Pour le moment, c'est mon PC qui fait office de serveur cgi/php, mon PC est allum? tout le temps donc pour le moment ?a devrait suffire.
Les cgi sont donc stock?s ? cette adresse (? laquelle on ne peut de toute fa?on pas acc?der Sourire ) :
http://fremensf.no-ip.com/cgi-bin/
Et la partie php, ? laquelle Speedy a un acc?s via ftp, se trouvera ici :
http://fremensf.no-ip.com/ff7/
Si quelqu'un souhaite avoir un acc?s pour participer, il n'y a pas de probl?mes.

L'appel ? import.cgi peut se faire avec les param?tres suivants (dans n'importe quel ordre) :

subdir=sous-dossier o? se trouve la racine du site FF7
Par exemple ff7/, il suffit juste de penser ? mettre le slash ? la fin Sourire )
Par d?faut, ff7/ sera utilis?

filename=nom du fichier "file" ? extraire.
Par exemple en mettant file, des fichiers fileN seront g?n?r?s dans ff7/files/ (si subdir=ff7/). Le dossier "files" est un dossier que j'ai fix?, mais je ne pense pas que ?a cause probl?me. Embarass?

filenum=numero du file ? extraire (-1 signifie tous)
Par exemple, en mettant 24, et si subdir=ff7/ et filename=file, un fichier file24 sera g?n?r? dans ff7/files/

scenename=nom du fichier scene.bin ? extraire.
Tous les fichiers "scene.bin" se trouvent dans ff7/scenes/. Actuellement il y a les trois originaux que l'on poss?de : scenepsfr.bin (provenant de la version ps fran?aise), scenepcfr.bin (provenant de la version pc fran?aise) et scenepcen.bin (provenant de la version pc anglaise ou US).
Autrement dit, pour relire des donn?es originales d'un ou plusieurs "file", il suffira d'appeler import.cgi en lui donnant l'un de ces noms de fichiers.
Quant aux fichiers scene.bin suppl?mentaires, il suffirait de les stocker dans ce m?me dossier. J'ai pens? que ?a laisserait suffisamment de champ au niveau de la programmation php ?


Un petit exemple d'utilisation d'import.cgi :
http://fremensf.no-ip.com/cgi-bin/import.cgi?filenum=-1&filename=pc_fr_org_&scenename=scenepcfr.bin
va le lire fichier http://fremensf.no-ip.com/ff7/scenes/scenepcfr.bin (scenename=scenepcfr.bin et par d?faut subdir=ff7/), y extraire les 256 fichiers archiv?s (filenum=-1) et enfin g?n?rer des fichiers nomm?s pc_fr_org_0, pc_fr_org_1, ..., pc_fr_org_255 dans le r?pertoire http://fremensf.no-ip.com/ff7/files/

Dans tous les cas, si le cgi ne plante pas (il y aurait une raison ? ^^), il enverra une page en text (text/plain) contenant (uniquement) la cha?ne "OK" lorsqu'il aura fini ses op?rations.
Autre remarque, si le programme en cgi est d?j? utilis? par un autre utilisateur (le script s'?x?cute tr?s rapidement mais on ne sait jamais), il se mettra en pause pendant une seconde avant de r?essayer, de sorte ? lib?rer du temps CPU.

Bref, maintenant voici le "format" des fichiers que ce programme g?n?re. J'ai v?rifi? le contenu du "file0" et il correspondait ? l'original, n?anmoins il se peut qu'il contienne encore de petites b?tises. Une fa?on de le v?rifier sera de faire le programme cgi inverse pour voir s'il reconstitue bien un fichier scene.bin valide.

Chaque fichier contient toutes les valeurs d'un "file", dans le m?me ordre que dans le fichier scenestats.txt. Toutes les valeurs sont exprim?s en d?cimal, et il n'y a qu'une seule valeur par ligne. Exception faite des cha?nes de caract?res qui elles ne prennent qu'une ligne chacune. Autre remarque, pour les valeurs connues (tous les trucs qui ne sont pas "unkwnown"), lorsque la valeur est "vide" (exemple : pas d'objet, pas de monstre ? un emplacement, etc...), on trouve ? la place une ligne vide. Voici maintenant le format du fichier, (grossi?rement). Pour faire plus propre, je remplace parfois les sauts de ligne par des ";"

Code:

// Note : les fichiers g?n?r?s ne contiennent pas de saut de ligne
// contrairement ? cet exemple
ID_monstre_1;ID_monstre_2;ID_monstre_3;ID_monstre_4 // entiers non sign?s 16bit
                                                    // peuvent ?tre des lignes vides si ID absent
unkwnown1;unknown2;...;unknown80 // 80 chars dont on ne connait pas le sens
unkwnown1;unknown2;...;unknown192 // encore 192 chars dont on ne connait pas le sens pr?cis
monster_ID01;X01;Y01;Z01;ligne_01;ligne2_01;unknown_01 // 6 short int et un long int
monster_ID02;X02;Y02;Z02;ligne_02;ligne2_02;unknown_02 // 6 short int et un long int
...
monster_ID24;X24;Y24;Z24;ligne_24;ligne2_24;unknown_02 // 6 short int et un long int
                                                       // si monster_ID est vide, les autres lignes du groupe seront vides aussi

// Caract?ristiques du monstre 1 (ou lignes vides s'il n'existe pas). Sauf si pr?cis?, ce sont des unsigned char
ID;nom;niveau;vitesse;chance;esquive_physique;force
d?fense_physique;magie;d?fense_magique;MP;AP;HP;EXP;gils

objet_methode1;...;objet_methode4 // *** m?thode d'obtention des objets
objet1;...;objet4 // *** (short int) id des objets

objet_obtenu_avec_Trans // ou vide si absent ^^ (short int)
element1;element2;...;element8 // liste de huit ?l?ments (ou vide si aucun)
lien1;lien2;...;lien8 // lien entre l'?l?ment et le monstre
actionID1;actionID2;...;actionID16 // liste des ID d'attaques sp?ciales (ou vide si aucun)
actiontextID1;actiontextID2;...;actiontextID16 // liste des ID de texte de chaque attaque (ou vide si aucun) (short int)
unknown1;unknown2;...;unknown32 // qu'est-ce que ces chars ? // *** 36 ?l?ments -> 32
unknown1;unknown2;...;unknown8  // qu'est-ce [...] ? // *** 12 ?l?ments -> 8
unknown1;unknown2               // qu'est-ce [...] ?
unknown1;unknown2;...;unknown4  // qu'est-ce [...] ?
unknown1;unknown2;...;unknown4  // qu'est-ce [...] ?

// Caract?ristiques du monstre 2 (ou lignes vides s'il n'existe pas).
...

// Caract?ristiques du monstre 3 (ou lignes vides s'il n'existe pas).
...

unknown1;unknown2;...;unknown896 // encore des chars :)
attack_name_ID1 // unsigned short int (vide si pas d'attaque)
attack_name1 // nom de l'attaque (sinon vide)
attack_name_ID2 // unsigned short int (vide si pas d'attaque)
attack_name2 // nom de l'attaque (sinon vide)
...
attack_name_ID32 // unsigned short int (vide si pas d'attaque)
attack_name32 // nom de l'attaque (sinon vide)

unknown1;unknown2;...;unknown512 // qu'est-ce que ces chars ?

// Ici commencent les scripts -_-
// Ils sont normalement formatt?s correctement, mais
// je laisse les explications pour quand ce sera utile.



Pour information, les "?l?ments" et les "liens" sont list?s dans mon ancienne doc - qui date d'une semaine ou deux Sourire

Quant ? la liste des objets, je l'ai mise en ligne ici. C'est une liste en anglais (qu'on ne me demande pas d'o? qu'elle vient Clin d'oeil ), mais c'est un d?but.


Voil?, je crois que c'est ? peu pr?s tout pour les sp?cifications de import.cgi, heureusement export.cgi fera le contraire, donc ce sera moins long ? raconter Sourire
Un dernier point tout de m?me : il y a aussi en ligne un importdbg.cgi. Il fonctionne presque pareil, sauf qu'au lieu d'?crire "OK", il va afficher tout le d?roulement du script ?tapes par ?tapes. On ne sait jamais, ?a peut ?tre utile en cas de besoin. Sinon son fonctionnement est identique.

En tout cas je suis ouvert ? tout commentaire sur quoi que ce soit.
_________________


Derničre édition par Fremen^SF le 01 Nov 2003 9:19; édité 1 fois
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
Fremen^SF
GDB des Shit Fliez


Inscrit le: 21 Mar 2003
Messages: 849
Localisation: Versailles

MessagePosté le: 16 Oct 2003 6:19    Sujet du message: Répondre en citant

Voyant que import.cgi a motiv? toute la population, sous cette pression je me suis empress? de faire export.cgi ! Clin d'oeil

Apr?s avoir utilis? import.cgi pour extraire des fichiers textes d'un scene.bin original, et export.cgi pour r?cup?rer ces m?mes fichiers textes et recr?er un nouveau "scene.bin", et apr?s avoir compar? mon ancien et nouveau "scene.bin", je pense pouvoir affirmer que tout doit fonctionner correctement. J'ai vraiment souffert sur cette partie, donc il se peut qu'il y ait quelques oublis.

export.cgi n'accepte que trois param?tres utiles :

- subdir : sous-dossier o? se trouve la racine du site FF7

- filename : le nom des fichiers "file" ? extraire.
Par exemple en mettant file, des fichiers fileN seront g?n?r?s dans ff7/files/ (si subdir=ff7/). Le dossier "files" est un dossier que j'ai fix?, mais je ne pense pas que ?a cause probl?me. Embarass?

- scenename : le nom du fichier "scene.bin" ? cr?er. Il sera automatiquement stock? dans le sous-dossier "scenes".

La syntaxe rejoint donc celle de import.cgi.

Il ne reste donc plus qu'? faire un joli script en PHP pour afficher tout ?a et le tour sera jou? Clin d'oeil
_________________
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
jopfleger



Inscrit le: 07 Oct 2003
Messages: 48
Localisation: Strasbourg

MessagePosté le: 17 Oct 2003 8:32    Sujet du message: Répondre en citant

La population qui a applaudi unanimement import.cgi salue export.cgi.
Si la population ne descend pas sur les Champs, c'est parcequ'on n'a pas le droit de projeter n'importe quelle photo (m?me Fremen rhabill? par un grand couturier) sur un mur d'eau au Trocad?ro, ce genre de pub est limit? aux footeux.
Il faut bien avouer qu'ils sont autrement m?ritants, c'est un fan qui parle.
_________________
Aimant s'instruire, partager le go?t des voyages et l'acquisition de connaissances, se sentant responsable ("spectateur engag?", Raymond Aron). Ma caract?ristique c'est l'?merveillement devant la diversification de toutes les formes de vie.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail
Fremen^SF
GDB des Shit Fliez


Inscrit le: 21 Mar 2003
Messages: 849
Localisation: Versailles

MessagePosté le: 01 Nov 2003 6:45    Sujet du message: Répondre en citant

Merci Jop, je n'avais m?me pas vu ce post, et en fait je n'en demandais pas autant Clin d'oeil

Voil? sinon je postais juste en m'adressant tout particuli?rement ? Speedy, pour pr?venir que j'ai enfin trouv? comment r?gler le probl?me de serveur SQL que j'avais. Autrement dit il ne reste plus qu'? passer ? la pratique, ou bien m?me donner un petit peu de nouvelles, ce serait toujours ?a de pris. Sourire

P.S.: Le format de fichier (plus haut) a ?t? modifi? en prenant en compte les d?couvertes de FWS (cf. topic "d?chiffrage du fichier SCENE.BIN"). Les 4 modifications sont indiqu?es par des ***
_________________
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
Speedy^SF
Shit Fliez


Inscrit le: 21 Mar 2003
Messages: 745
Localisation: Troyes

MessagePosté le: 05 Nov 2003 21:40    Sujet du message: Répondre en citant

Fremen : nouvelle prise en consid?ration STOP suis actuellement en manque de temps libre STOP retourne en production d?s que possible STOP salutation ? vous STOP cordialement JR STOP

^_^
_________________
Speeeeeeddyyyyyyyyyyy !!!!!!
Personnal Website
Team Website
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Shit Fliez Index du Forum -> Edition de Final Fantasy VII Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001 phpBB Group
trevorj :: theme by ~// TreVoR \\~
Traduction par : phpBB-fr.com