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 

Avancement du projet
Aller à la page Précédente  1, 2, 3, 4  Suivante
 
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
jopfleger



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

MessagePosté le: 15 Oct 2003 7:19    Sujet du message: jopfleger Répondre en citant

Dsl, Fremen. Mais Winzip refuse toujours d'ouvrir le dernier fichier (.rar).
Faut-il que je télécharges un compresseur/décompresseur rar?
Pour ne pas te faire perdre de temps inutilement, c'est ce que je vais faire tt de suite.

Big thanks for the information about scene.bin PC and scene.bin PSX. Very helpful!

Sinon, pour la partie internationalisation, il existe dans vb la possibilité de faire appel à des fichiers ressources (en gros, avec un pointeur identifiant le nom de l'étiquette ou du libellé ou du caption etc, plus un pointeur identifiant le code langue), VB "attrappe" automatiquement le texte, ainsi on peut gérer le multilingue. La difficulté est de rendre les contrôles soit élastiques (cela pose des contraintes aussi), soit de les ajuster de telle manière que les libellés des langues les plus longues (Hoch-Deutsch) ne soient pas tronqués, donc définir des contrôles largement taillés.
Mais cela ne commence à avoir son intérêt que lorsque la maquette et son aspect général est acceptable.
La résolution que j'ai adoptée est 1024*768, on prenant le plus petit dénominateur commun et en négligeant le 640*480. Mais VB par ex ne redynamise pas la présentation de l'écran si l'user a 1200*... ou au-delà.
_________________
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
jopfleger



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

MessagePosté le: 15 Oct 2003 8:20    Sujet du message: Répondre en citant

C'est OK, j'ai téléchargé winrar et donc le fichier se laisse parfaitement décompresser.
On trouve :
scenebin.rar\scenePC - RAR archive, la taille non compressée est de 827 392 octets
scenebin.rar\scenePCen - RAR archive, la taille non compressée est de 827 392 octets
scenebin.rar\scenePSX - RAR archive, la taille non compressée est de 827 392 octets

J'imagine que scenePCen est la version anglaise?

Comment accédez-vous directement au scene.bin? Y lisez-vous directement les données en mode binaire (non décompressé) pour renseigner des tables en mémoire? Ce serait possible pour les scene.bin originaux, mais pas pour les variantes.
Ou alors intégrer l'algo LZV au coeur du prog.
Pour ma part, je préférerais le décompresser en utilisant le prog de Fremen (je ne l'ai pas testé, mais ce doit être quasi instantané, même sur mes vieux PC)? En lançant en live le prog de décompression (invisible pour l'user), et en se mettant d'accord pour que le scenestat.txt issu de la décompression soit stocké dans un endroit prédéfini, il n'y aurait rien changer à mon prog existant.
Pouvez-vous un peu détailler comment vous procédez car vous avez certainement une phase préliminaire?
_________________
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
jopfleger



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

MessagePosté le: 15 Oct 2003 11:54    Sujet du message: Répondre en citant

En testant le prog VB à l'instant, j'ai remarqué que le fichier des objets comprend un "trou" entre "0x068 Guide Book" et "0x080 Buster Sword".
Quelqu'un pourait-il juste me dire que c'est normal?
En fait, je vais me servir directement de l'id de l'objet en tant qu'index, ce n'est pas grave s'il y a des trous, mais j'aurais besoin de le savoir.

Merci.

Cf un court extrait du fichier:
0x060 Super Sweeper
0x061 Masamune Blade
0x062 Save Crystal
0x063 Combat Diary
0x064 Autograph
0x065 Gambler
0x066 Desert Rose
0x067 Earth Harp
0x068 Guide Book
0x080 Buster Sword
0x081 Mythril Saber
0x082 Hardedge
0x083 Butterfly Edge
0x084 Enhance Sword
0x085 Organics
0x086 Crystal Sword
0x087 Force Stealer
0x088 Rune Blade.- 8 -
0x089 Murasame
0x08A Nail Bat
0x08B Yoshiyuki
0x08C Apocalypse
0x08D Heaven's Cloud
0x08E Ragnarok
0x08F Ultima Weapon
_________________
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: 860
Localisation: Versailles

MessagePosté le: 16 Oct 2003 4:26    Sujet du message: Répondre en citant

Content que tu aies pu récupérer les différents fichiers scene.bin Jop Clin d'oeil
Par contre je n'ai pas compris les "RAR archive, la taille non compressée est de 827 392 octets" dans ton post. Winrar te dit que chaque fichier fait 827392 octets ? Car si c'est le cas, il y a un petit problème puisqu'ils n'en font que 300000 environ.

J'imagine que scenePCen est la version anglaise?

C'est effectivement la version anglaise.

Comment accédez-vous directement au scene.bin? Y lisez-vous directement les données en mode binaire (non décompressé) pour renseigner des tables en mémoire? Ce serait possible pour les scene.bin originaux, mais pas pour les variantes.

Hélas on ne lit pas directement les données dans scene.bin. Cela aurait été plus simple, mais en ce qui concerne le script en PHP/CGI dont on parle depuis quelques temps, Speedy m'a expliqué que la lecture de données binaires en PHP n'a rien de très pratique. Donc on a dû se tourner vers un fonctionnement moins pratique :

1) Le script en cgi retire tous les "file" du fichier scene.bin
2) Chaque file est ensuite décompressé avec "gunzip"
3) Le script en cgi va lire chaque "file" décompressée et va générer des fichiers texte correspondants pour que le script en PHP puisse les lire.
4) Le script en PHP met ensuite les données dans des tables SQL. L'utilisateur peut ensuite modifier ce qu'il souhaite.

Après, inversement :
1) Le script en PHP recrée des fichiers textes représentant chaque "file".
2) Le script en PHP appelle un autre script en CGI. Ce dernier va convertir les textes en "file" (au format binaire d'origine), puis il appeler Gzip pour les recompresser.
3) Le script en CGI génère alors un nouveau fichier SCENE.BIN.

J'espère que mon explication est à peu près claire. En résumé on retrouve le même schéma qu'avant ; c'est pas très pratique mais on n'a trouvé que ce système pour éviter d'avoir à tout faire en PHP.

Sinon pour répondre à ce que tu demandes, rien n'empêche de modifier un fichier scene.bin qui aurait déjà été modifié.

Pour ma part, je préférerais le décompresser en utilisant le prog de Fremen (je ne l'ai pas testé, mais ce doit être quasi instantané, même sur mes vieux PC)? En lançant en live le prog de décompression (invisible pour l'user), et en se mettant d'accord pour que le scenestat.txt issu de la décompression soit stocké dans un endroit prédéfini, il n'y aurait rien changer à mon prog existant.

Dans ce cas on repart sur l'idée de faire un programme qui génère un fichier scenestats.txt (de ce type) avec des "champs" ? Et ce programme récupérerait le fichier scenestats.txt pour générer un nouveau fichier scene.bin ?

En fait, je vais me servir directement de l'id de l'objet en tant qu'index, ce n'est pas grave s'il y a des trous, mais j'aurais besoin de le savoir.

A priori la liste est complète.
En fait il semblerait que,
- à partir de 0x000 se trouvent tous les objets courants/objets-clés
- à partir de 0x080 se trouvent toutes les armes
- à partir de 0x100 se trouvent tous les accessoires

Donc s'il y a un saut entre 0x68 et 0x80, à mon avis c'est juste parce qu'ils ont délimité chaque catégorie d'objets avec des nombres "ronds". Mais ça n'empêche pas la liste d'être complète pour autant 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 7:54    Sujet du message: Répondre en citant

Merci de tes infos, Fremen.
1. Les fichiers scene.bin PC et PSX sont effectivement identiques.
J'ai lancé une comparaison binaire (frhed.exe), j'ai comparé le premier bloc (4096 octets, un bloc au milieu (adr hex 20000), et le tout dernier.
Tous les blocs sont identiques, comme d'ailleurs vous l'aviez indiqué. J'ai pour ma part préféré vérifier.
2. Winrar m'a donné des infos fausses. En décompressant les fichiers, j'ai parfaitement les tailles 275528 (versions françaises), et la taille 270336 (version anglaise).
3. cf "Comment accédez-vous directement au scene.bin? Y lisez-vous directement les données en mode binaire (non décompressé) pour renseigner des tables en mémoire? Ce serait possible pour les scene.bin originaux, mais pas pour les variantes. "
Je m'explique: à partir du moment où on a parfaitement décrypté un scene.bin original (ex scene.bin fr, PS1 ou PC), on pourrait l'adresser directement en générant une table de pointeurs
ex Ennemi1,
Id=adr hexa xxxxx,
Nom=adr hexa yyyyy,
Level=adr hexa zzzzz,
Hélas cela ne tient plus à partir du moment où l'user a modifié certaines caractéristiques, car les adresses hexa pourraient avoir changé.
Donc pour mon prog VB, j'utilise le fichier scenestats.txt avec les champs, c'est pour moi la meilleure exploitation possible. Mais je ne voulais pas vous obliger à utiliser ce même format. Mais comme j'ai les sources en C, je peux maintenir cet utilitaire si vous partez sur un autre format. Je ne vous demande pas de maintenir deux versions du programme de décryptage. De plus l'utilitaire (que je n'ai pas testé) doit parfaitement fonctionner.
4. Je "pensais" bien que la liste des objets était complète, et j'ai programmé les aménagements en conséquence.

Q:
A. Utilisez-vous directement les FileID + SubfileID pour indicer la table?
cf: "champ01:file=file58,2µchamp02:name=Ver de mer"
Pour ma part, je ne l'ai pas fait, j'utilise un petit tableau à côté qui me donne FileId + SubFileId à quoi j'associe l'indice à la table générale (où je retrouve les ennemis, leurs lvl, hp, mp, speed...)
J'utilise directement l'Id des objets par contre comme indice de table.
B. Avez-vous en VB des fonctions de SortArray très performantes?
Je peux vous communiquer mes tools si cela vous intéresse, mon utilitaire de tri de table en mémoire ne sait pas trier des tables qui sont multiniveau, j'utilise des astuces pour cela, mais je n'ai pas un tool faisant cela directement. En exécution cela a l'air performant.
C. Même ordre d'idées: avez-vous des fonctions VB de SearchArray très performantes?

Le prog avance à petits pas, le compilat grossit également (il fait maintenant 30ko).
J'ai mis au point parallèlement une application Access (énormes facilités de manipulation des requêtes, excellent générateur de forms et de reports), figurez-vous que le mbd fait déjà 12MO! Consternant!

Mais au moins j'ai deux applications parallèles.

Pour mon excès de vitesse (classe V, + 48kmh), j'ai plaidé l'amour du sport (retour du Racing Strasbourg le soir de la première victoire à domicile contre Montpellier, 2-1 dans les prolongations, pour voir Jour de foot), je dois faire un stage payant (185€), suite à cela il n'y aura pas d'autres poursuites. Le juge a souri (fan de foot, c'est assez universel). Je respire.
_________________
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
jopfleger



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

MessagePosté le: 17 Oct 2003 8:19    Sujet du message: Lenteur à l'exécution. Répondre en citant

J'ai des lenteurs à l'excution, et j'ai essayé de savoir pourquoi.
En fait, il y a au moins 1 seconde d'attente au moment du chargement.
Durant cette seconde, j'exécute les fonctions suivantes:
- lecture d'un scenestats (préalablement construit, temps non inclus dans la seconde),
- extraction de toutes les infos utililes du scenestats pour alimenter une table en mémoire (1000 lignes de 28 champs)
- extraction des 300 et quelque objets depusi objets.txt et alimentation table en mémoire, indice direct
- chargement d'une combo box avec des constantes (pour que l'user puisse choisir ses critères de tri) ex: level;HP;MP;Speed;EXP;Gils...
- simultation des régions du jeu et attribution de ces régions à chaque ennemi par une fonction random (à défaut d'avoir une table "donnant" cette association, je compte sur FWS pour nous "fabriquer" une minitable de correspondance sous le format qu'il veut, excel ou txt ou bin...)
Ex: FileId + SubFileId and Location
Je propose une table des localisations (régions du jeu) à titre indicatif, elle correspond aux localisations de ffworld qui paraît assez universelle au moins en France,
cf: c'est un extrait de mon source, ne tenez pas compte du code,
LieuxFF7(0) = "Midgar" & "?" & "1. A l'assaut du réacteur Mako Numéro 1"
LieuxFF7(1) = "Midgar" & "?" & "2. Auberge au Secteur 7"
LieuxFF7(2) = "Midgar" & "?" & "3. A l'assaut du réacteur dans le Secteur 5"
LieuxFF7(3) = "Midgar" & "?" & "4. La jeune fille qui se nomme Aeris"
LieuxFF7(4) = "Midgar" & "?" & "5. Les huttes du Secteur 5 et la maison de Aeris"
LieuxFF7(5) = "Midgar" & "?" & "6. Secteur 6"
LieuxFF7(6) = "Midgar" & "?" & "7. Le Marchée aux puces"
LieuxFF7(7) = "Midgar" & "?" & "8. L'assaut du pilier"
LieuxFF7(Cool = "Midgar" & "?" & "9. La désolation"
LieuxFF7(9) = "Midgar" & "?" & "10. La tour de la Shinra"
LieuxFF7(10) = "Midgar" & "?" & "11. La sortie de Midgar."
LieuxFF7(11) = "Premier Continent" & "?" & "12. Kalm: Sephiroth est à Nibelheim"
LieuxFF7(12) = "Premier Continent" & "?" & "13. Kalm"""
LieuxFF7(13) = "Premier Continent" & "?" & "14.Le Ranch de Chocobo"
LieuxFF7(14) = "Premier Continent" & "?" & "15. La mine Mythril"
LieuxFF7(15) = "Premier Continent" & "?" & "16. Le Fort Condor"
LieuxFF7(16) = "Premier Continent" & "?" & "17. Le Port de Junon"
LieuxFF7(17) = "Premier Continent" & "?" & "18. Junon"
LieuxFF7(1Cool = "Premier Continent" & "?" & "19. Le navire de la Shinra."
LieuxFF7(19) = "Deuxième Continent" & "?" & "20. Costa Del Sol."
LieuxFF7(20) = "Deuxième Continent" & "?" & "21. Le Mont Corel."
LieuxFF7(21) = "Deuxième Continent" & "?" & "22. North Corel."
LieuxFF7(22) = "Deuxième Continent" & "?" & "23. Gold Saucer."
LieuxFF7(23) = "Deuxième Continent" & "?" & "24. La prison Corel."
LieuxFF7(24) = "Deuxième Continent" & "?" & "25. Le Village Gongaga."
LieuxFF7(25) = "Deuxième Continent" & "?" & "26. Le Cosmo Canyon."
LieuxFF7(26) = "Deuxième Continent" & "?" & "27. La Cave des Morts GI."
LieuxFF7(27) = "Deuxième Continent" & "?" & "28. Nibelheim."
LieuxFF7(2Cool = "Deuxième Continent" & "?" & "29. La Maison de la Shinra."
LieuxFF7(29) = "Deuxième Continent" & "?" & "30. Le Mont Nibel."
LieuxFF7(30) = "Deuxième Continent" & "?" & "31. Le village de la fusée."
LieuxFF7(31) = "Autre Continents" & "?" & "32. Wutai."
LieuxFF7(32) = "Autre Continents" & "?" & "33. La Clé du Temple des Anciens."
LieuxFF7(33) = "Autre Continents" & "?" & "34. Le Temple des Anciens."
LieuxFF7(34) = "Autre Continents" & "?" & "35. Le Village d'Ossements."
LieuxFF7(35) = "Autre Continents" & "?" & "36. La Citée des Anciens"
LieuxFF7(36) = "Le Glacier" & "?" & "37. Le Village de Glace."
LieuxFF7(37) = "Le Glacier" & "?" & "38. Le Grand Glacier."
LieuxFF7(3Cool = "Le Glacier" & "?" & "39. L'Ascension du Glacier."
LieuxFF7(39) = "Le Glacier" & "?" & "40. Le Cratère."
LieuxFF7(40) = "Les retours" & "?" & "41. L'exécution."
LieuxFF7(41) = "Les retours" & "?" & "42. Mideel."
LieuxFF7(42) = "Les retours" & "?" & "43. Le train au Mont Corel."
LieuxFF7(43) = "Les retours" & "?" & "44. Bataille final au Fort Condor"
LieuxFF7(44) = "Les retours" & "?" & "45. Le retour de Cloud"
LieuxFF7(45) = "Les retours" & "?" & "46. Réacteur sous la mer."
LieuxFF7(46) = "Les retours" & "?" & "47. Bataille de Sous-Marin."
LieuxFF7(47) = "Les retours" & "?" & "48. Le premier homme dans l'espace."
LieuxFF7(4Cool = "Les retours" & "?" & "49. La machine des Anciens"
LieuxFF7(49) = "Les retours" & "?" & "50. Le retour à Midgar"
LieuxFF7(50) = "Le Cratère" & "?" & "51. Le fond du Cratère"
LieuxFF7(51) = "Le Cratère" & "?" & "52. La Confrontation Finale"


Je charge simultanément 3 combos box (objets, ennemis, critères de tri)
Parallèlement, je charge deux treeviews (objets, ennemis avec quatre sous-niveaux d'arborescence). Les treeviews et les combos font double emploi, c'est justement pour tester ce qui provoque le ralentissement.

Et le ralentissement vient du treeview des ennemis.
Pensez-vous qu'une seconde de temps mort (j'affiche le sablier à l'ouverture jusqu'à la fin du chargement) soit acceptable, vous les "puristes" du C?
_________________
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
FWS



Inscrit le: 05 Oct 2003
Messages: 25
Localisation: Près de St Malo

MessagePosté le: 17 Oct 2003 21:44    Sujet du message: Répondre en citant

Salut Sourire
Je pouvais aller sur internet cette semaine, et j'arrivais à aller sur le forum et voir les topics mais quand je voulais voir les messages, rien ne s'affichait. Et donc je ne pouvais ni poster ni envoyer de message privé.

jopfleger : Concernant nos exploits, je ne crois pas que cela ait fait beaucoup de bruit. Lorsque j'établissait des records ou parlait de tactiques je le faisait sur mon topic et donc peu ont du le voir. J'ai juste crée un topic qui explique comment battre Emeraude tres facilement avec materias, ce n'était pas pour un challenge mais destiné à ceux qui n'arrivent pas à la battre. Je viens encore sur le forum, mais je ne poste que pour les questions ou le nomateria challenge où j'ai commencé un autre challenge celui d'avoir un bas niveau : je suis Nv13 avec Clad et je dois aller au temple des anciens.
Pour la table des terrains, pour celle par défaut, tu parles d'indiquer qules monstres pour quels lieux (ex: region des prairies) pour quels sous lieux (ex : le decor de plage des prairie pendant un combat) ? (je ne comprends pas trop le subfield)

Fremen : Ok, pour l'emulateur, je vais voir çà.
Pour les unknown, j'ai quelques idées, et il faudrait que puisse tester. Par exemple pour les 4 'random' nombres, je pense que c'est là que se trouve les états, dans le jeu il y en à 26 dont certains vraiment étranges ex : 'sans pareil' ? Et cela doit être codé sur un bit. En tout cas un test simple serai de mettre des FF FF FF FF pour le zolom (encore lui qui joue le role de cobaye...) et voir s'il est possible de le mettre en mini par exemple ou lui lancer un chaudron qui donne divers états.
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 Adresse AIM
Fremen^SF
GDB des Shit Fliez


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

MessagePosté le: 19 Oct 2003 14:06    Sujet du message: Répondre en citant

Tout d'abord désolé pour le temps de réponse, je m'étais lancé sur un programme (sans rapport) que je voulais finir, et je n'ai pas trop pris le temps de venir ici.

FWS : C'est quand même impressionnant les problèmes que tu rencontres avec ce forum ! Pour tes problèmes de "No session ID", j'ai augmenté la durée d'une session (je l'ai passée de 30 minutes à 1h30), peut-être que ça passera mieux chez toi.
Et pour ton problème depuis ta fac, c'est peut-être que tu es passé à des heures de "haute fréquentation" : on se fait héberger par Online, mais à partir de 18h c'est à se demander si notre hébergement existe Clin d'oeil (pour être plus clair c'est vrai que ça peut ramer, alors est-ce que ça vient de ça ?).

Concernant l'histoire des Fields/Subfileds moins non plus je n'ai rien compris. Je vais passer après sur le forum de Qhimm (les "petits" gars qui font plein de gros trucs ^^) pour voir s'ils n'ont pas déjà établi une liste des lieus, car ça représente beaucoup de boulot et ça me paraît très dur de faire une liste complète et de trouver la liste des monstres qu'on trouve à chaque fois.

Concernant ton idée sur les états, ça nous retirerait à tous une grosse épine du pied si tu trouves ce que c'est. Clin d'oeil Je vais finir de répondre aux posts et je reboote pour tester ça.
Pour information, on a nos persos qui sont en "sans pareil" lorsqu'on utilise la limite niveau4 d'Aeris (qui nous rend invulnérables une minute ou deux). Je teste tout ça et je te tiens au courant.
_________________
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: 860
Localisation: Versailles

MessagePosté le: 19 Oct 2003 14:42    Sujet du message: Répondre en citant

Jopfleger :

Pour les tailles des fichiers scene.bin, j'ai vérifié et tout correspond. Sur ce point c'est parfait Clin d'oeil

à partir du moment où on a parfaitement décrypté un scene.bin original (ex scene.bin fr, PS1 ou PC), on pourrait l'adresser directement en générant une table de pointeurs
ex Ennemi1,
Id=adr hexa xxxxx,
Nom=adr hexa yyyyy,
Level=adr hexa zzzzz,
Hélas cela ne tient plus à partir du moment où l'user a modifié certaines caractéristiques, car les adresses hexa pourraient avoir changé.


A vrai dire, la seule partie dont la taille peut varier dans un "file" c'est la partie tout à la fin (à partir de l'octet 0xE80) qui contient les scripts. Chaque valeur (autre que dans les scripts) a une taille fixée, même les noms des monstres font tous 32 octets (=une chaîne de caractères complétée par des 0xFF).

Donc pour mon prog VB, j'utilise le fichier scenestats.txt avec les champs, c'est pour moi la meilleure exploitation possible. Mais je ne voulais pas vous obliger à utiliser ce même format. Mais comme j'ai les sources en C, je peux maintenir cet utilitaire si vous partez sur un autre format. Je ne vous demande pas de maintenir deux versions du programme de décryptage. De plus l'utilitaire (que je n'ai pas testé) doit parfaitement fonctionner.

Les sources en C que tu as sont-ils encore à jour ? Car a priori la version qui génère un fichier scenestats.txt avec des champs n'est pas encore capable de récupérer ce scenestats.txt pour faire un fichier scene.bin.
A moins que tu aies déjà avancé de ton côté, je te propose une idée pour le fonctionnement de ton programme (c'est une proposition, évidemment après tu fais comme tu le souhaites) :

1) Ton programme appelle scene_extract qui va décomposer "SCENE.BIN" en fichiers "file*.gz"
2) Ton programme appelle gunzip pour décompresser chaque "file*.gz" en "file*"

3) Ton programme peut alors lire et écrire dans chaque "file" en mode binaire. Pour cela tu crées une structure :

[ccod:1:468357f151]
// Structures definitions
// Total size : 7808 bytes / 0x1E80 bytes
// Each battle scene structure has got the same length
// Each monster structure has got the same length

typedef struct _battle_scene {
unsigned char battleUnknown[4][20];
unsigned char battleUnknown2[4][4][12]; // seems to include coordinates
} battle_scene_t;

typedef struct _battle_scene_spec {
unsigned short int monsterID; // monster's ID number (see beginning of filetype)
short int axisX; // monster's X coordinates
short int axisY; // monster's Y coordinates
short int axisZ; // monster's Z coordinates
unsigned short int line; // "line" where the monster is. (First or second)
unsigned short int line2; // SEEMS to have something to do with line
unsigned int undefined; // usually 0xFFFFFFFF
// with 0xFFFFFFFE, monster will be vanished
} battle_scene_spec_t;

typedef struct _monster_main_carac {
unsigned char level; // monster's level
unsigned char speed; // monster's speed
unsigned char luck; // luck
unsigned char physic_esq; // percent of physical dodge
unsigned char strength; // strength
unsigned char physic_def; // physical defense
unsigned char magi; // magic power
unsigned char magic_def; // magic defense
} monster_main_carac_t;

typedef struct _monster_carac {
unsigned char name[32]; // monster's name
monster_main_carac_t main_carac; // see struct above
unsigned char elements[8]; // list of elements
unsigned char links[8]; // "links" between elements and monster (absorb, resist...)
unsigned char actionID[16]; // ID of special attacks of the monster
unsigned short int actionTextID[16];// ID of special attacks' names
unsigned char unknown1[2*16 + 4]; // unknown data
unsigned short int object; // object you can obtain when battle's finished
unsigned short int steal_object; // object you can steal to monster
unsigned char unknown5[12]; // unknown data
unsigned short int MP; // MP
unsigned short int AP; // AP when battle's over
unsigned short int trans_object; // object obtained with Trans. materia
unsigned char unknown2[2]; // usually 2 numbers + 10 FF
unsigned int HP; // HP
unsigned int EXP; // Exp when battle's over
unsigned int gils; // gils when battle's over
unsigned char unknown3[4]; // 4 "random" numbers
unsigned char unknown4[4]; // usually FF FF FF FF
} monster_carac_t;

typedef struct _unknown_struct {
unsigned char unknown[32][28]; // SEEMS to be 4*7 bytes blocks
} unknown_struct_t;

typedef struct _attacks_names {
unsigned short int nameID[32]; // ID of special attacks' names (see. monster_carac)
unsigned char attackName[32][32]; // Text which corresponds to special attack
unsigned char unknown[512]; // Has it anything to do with attacks names ?
} attacks_names_t;

typedef struct _block {
unsigned short int subPointer[16]; // Points to each sub-block
unsigned char *subBlock[16]; // Up to 16 sub-block
unsigned short int subBlockSize[16];// Size of subBlock
} block_t;

typedef struct _scripts {
unsigned short int pointer[3]; // Up to 3 script blocks
block_t block[3]; // Contains script blocks
} scripts_t;

typedef struct _file_type {
unsigned short int monsterID[4]; // 0x000 IDs of the monsters
battle_scene_t battle; // 0x008 Has something to do with battle rendering
battle_scene_spec_t battle_spec[4][6];// 0x118 Battle scenes specifications
monster_carac_t monsterSpec[3]; // 0x298 Description of the 1, 2 or 3 monsters
unknown_struct_t uk_struct; // 0x4C0 SEEMS to be 4*7 bytes blocks
attacks_names_t attacks; // 0x840 Attacks names
// scripts_t scripts; // 0xE80 Scripts (variable length) EN COMMENTAIRES (inutiles ici)
} file_type_t;

[/ccod:1:468357f151]

Bien sûr en VB une structure se déclare avec "Type", les "int" deviennent des "long", les tableaux de char deviennent des "dim tableau as string * taille", je ne pense pas que ça te soit utile de le rappeler.

Une fois ta structure créée, tu n'as plus qu'à faire un :

Code:

open "file20" for binary as #1
get #1,,mastructure
close #1


Et "mastructure" contiendra toutes les informations dont tu as besoin sur le "file20". Par exemple mastructure.monsterSpec[1].HP te donnera les HP du monstre 2, mastructure.monsterSpec[0].Gils te donnera des informations sur les Gils obtenus en battant le monstre 1.

L'avantage est que tu n'auras qu'à modifier ta structure si FWS, Speedy et moi trouvons le sens de certains "unknown". Le second (gros) avantage est que l'enregistrement se fait de la même façon, quelles que soient les modifications apportées.

Code:

open "file20" for binary as #1
put #1,,mastructure
close #1


4) Ensuite tu appelles gzip pour recompresser chaque "file" en "file.gz"
5) Tu appelles scene_create pour recréer un nouveau fichier scene.bin

Note que scene_extract et scene_create sont en version "finale", c'est-à-dire qu'ils doivent parfaitement fonctionner pour tous les cas de figure.

Donc si cette méthode t'intéresse, si nécessaire je peux te fournir plus de renseignements pour convertir la structure au format VB, et évidemment je te compilerai la dernière version Windows scene_extract et scene_create en te joignant les sources avec.


Sinon concernant tes "problèmes" d'optimisation, même en tant que puriste du C je trouve ça très acceptable. Honnêtement je ne pensais pas qu'il serait déjà possible d'atteindre une telle vitesse. Je trouve même tes résultats très concluants, c'est là qu'on sent ton expérience dans le domaine ! Clin d'oeil


Alors comme ça tu es supporter de Strasbourg ? Tu as vu la taule que vous avez mise à Marseille ? ^^
Sinon bon courage pour ton "stage payant", c'est sûr que c'est toujours mieux qu'une poursuite judiciaire, mais toi qui n'a déjà pas beaucoup de temps ça ne doit pas t'arranger. Neutre
_________________
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: 20 Oct 2003 14:52    Sujet du message: Répondre en citant

Merci de toutes vos infos.

FWS: désolé que tes time-challenges n'aient pas suscité davantage d'écho.
Tout de même, battre Emerald en nomateria en moins de 7', c'est impressionant. Tes tactiques sont imparables.
Ainsi tu as entrepris un low-level challenge? Mais dans ce cas, Clad lvl14 au Temple des Anciens, tu dois fuire les combats et sans arrêt alterner les persos, ou bien tu ne fais grimper qu'Aeris que tu fais combattre seule, Clad et les autres morts?
Pourrais-tu m'expliquer en quoi ce challenge t'oblige à trouver d'autres subtilités ou à réfléchir à des stratégies différentes? J'ai déjà un peu mon idée, mais je suis impatient de connaître tes explications.
Pour la table FileId + SubFileId + Location, je pensais établir la correspondance entre:
- 6,3,31 (Adamantaimai, File6, Subfile3) --> 32 "Autre Continents" & "?" & "32. Wutai."
- 8,2,13 (Sweeper personnalisé, File8, Subfile2) --> 13 "Premier Continent" & "?" & "13. Kalm"

En plur clair, associer à chaque monstre (donc identifié de manière univoque par le FileId + SubFileID, un Id de location. Je pensais proposer comme location les 52 locations recensées dans la solution ffworld.
ex:
1. A l'assaut du réacteur Mako Numéro 1
...
52. La Confrontation finale
_________________
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
jopfleger



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

MessagePosté le: 20 Oct 2003 15:04    Sujet du message: Répondre en citant

Correction:
Pour la table FileId + SubFileId + Location, je pensais établir la correspondance entre:
- 6,3,32 (Adamantaimai, File6, Subfile3) --> 32 "Autre Continents" & "?" & "32. Wutai."
- 8,2,13 (Sweeper personnalisé, File8, Subfile2) --> 13 "Premier Continent" & "?" & "13. Kalm"

Le fichier des ennemis pourrait ressember à ceci:
file005,2 Grand trouffion
file005,3 Grand trouffion
file006,3 Adamantaimai
file007,1 Chasseur
file008,1 Balade de démon
file008,2 Sweeper personnalisé
file008,3 Canine de Kalm
file009,1 Sweeper personnalisé
file009,2 Canine de Kalm
file009,3 Rôdeur
file010,1 Balade de démon
file010,2 Canine de Kalm
file010,3 Rôdeur
file011,1 Canine de Kalm
file011,2 Rôdeur
file012,1 Mu
file013,1 Elfadunk
file013,2 Mandragore
file013,3 Lévrikon
file014,1 Mandragore
file014,2 Lévrikon
file014,3 Chocobo
file015,1 Elfadunk
file015,2 Lévrikon
file015,3 Chocobo
...
file245,1 Arme de diamant
file245,2 Arme de rubis
file245,3 Ruby's Tentacle
file246,1 Arme d'émeraude
file246,2 Jambe
file246,3 Oeil
file247,2 Dernière arme
file248,1 Jungleur flotteur
file248,2 Bagnadrana
_________________
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: 860
Localisation: Versailles

MessagePosté le: 20 Oct 2003 15:44    Sujet du message: Répondre en citant

*Fremen se marre tout seul*

Jopfleger dans ton post précédent en lisant :
Ex: FileId + SubFileId and Location
j'avais compris "FieLd" et "SubFieLd", et non pas "FileID" et "SubFileID". Evidemment tout devient plus clair Sourire

Je crois que FWS avait lui aussi compris ça de la même façon.
FWS a écrit:
(je ne comprends pas trop le subfield)


Sinon concernant ma proposition pour ton programme, est-ce qu'elle ne te convient pas ou n'as-tu tout simplement pas eu le temps d'y jeter un oeil pour le moment ?
Dans tous les cas tu peux rester sur l'idée de travailler sur le fichier avec des champs, c'est juste que cette autre méthode me paraît plus pratique.
_________________
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: 20 Oct 2003 15:55    Sujet du message: Répondre en citant

Fremen: si j'ai bien compris, tu suggères d'utiliser directement le scene.bin après avoir décompressé les blocs individuellement?
En fait, dans ma phase initiale, je lis le scenestats.txt, cf:

champ01:file=file5,2µchamp02:name=Grand trouffion µchamp03:level=12µchamp04:speed=40... µchamp25:unknown4=255;255;255;255µ"

champ01:file=file5,3µchamp02:name=Grand trouffion µchamp03:level=12µchamp04:speed=55 ... µchamp25:unknown4=255;255;255;255µ"

champ01:file=file6,1µchamp02:name=êöô0(äð)µchamp03:level=3µchamp04:speed=200 ... µchamp25:unknown4=255;255;255;255µ

champ01:file=file6,3µchamp02:name=Adamantaimai µchamp03:level=30µchamp04:speed=62 ... µchamp25:unknown4=255;255;255;255µ

Ainsi, j'alimente très rapidement en mémoire l'intégralité des caractéristiques de chaque ennemi (1000 lignes de 28 champs), à une lecture du scenestats.txt correspondant un ennemi.

Par contre, je serais intéressé par le code source de ce prog si tu l'as gardé dans cette version, car je n'ai pas encore testé cet utilitaire.
Au besoin si tu l'as perdu, je lirai le scene.bin en binaire comme tu m'en as fait une démonstration convainquante (humour).

Je serai super intéressé par des tools extrêmement performants pour par ex:
- trier une table en mémoire sur un niveau quelconque d'une table multi dimensionnelle (j'ai fait le tool moi-même, mais je pense qu'on peut faire mieux).

Si vous voulez visualiser le source: aSort étant un Arrray

Function fnSort(aSort, intAsc)
'call the function second argument:
' * ascending sorted = 1
' * descending sorting = any other character

Dim intTempStore
Dim I, j
For I = 0 To UBound(aSort) - 1
For j = I To UBound(aSort)
'Sort Ascending
If intAsc = 1 Then
If aSort(I) > aSort(j) Then
intTempStore = aSort(I)
aSort(I) = aSort(j)
aSort(j) = intTempStore
End If 'i > j
'Sort Descending
Else
If aSort(I) < aSort(j) Then
intTempStore = aSort(I)
aSort(I) = aSort(j)
aSort(j) = intTempStore
End If 'i < j
End If 'intAsc = 1
Next 'j
Next 'i
fnSort = aSort
End Function 'fnSort


- rechercher un élément particulier dans une table sans décrire une boucle, du stype SearchArray (MyArray, Position, MonTexte) mais très performant en exécution
C'est à cause du cas SearchArray que je me suis livré à des élucubrations.
Et j'ai peur de ne pas m'être fait comprendre.
Je vais essayer de mieux m'expliquer.
L'utilisateur sélectionne un ennemi au hasard dans la treeview.
Je lui affiche les sliders de l'ennemi sélectionné et il "bouge" les carac.
Comment retrouver DIRECTEMENT cet ennemi dans ma grande table en mémoire, sachant que l'utilisateur a cliqué sur un treeview ?
En fait, ce que je connais, par rapport à son click, c'est l'Id de l'ennemi ainsi que son SubfileId (ex Adamantai est 6,3) mais je ne peux pas utiliser 6,3 soit 63 comme indice de la table (un des derniers est 248,2 Bagnadrana), cela me ferait une table de 2482 lignes à 28 éléments.
J'ai "astucié" le prob en créant une minitable:
En plus compréhensible, à l'adresse 52 se trouve l'indice 0 (1er indice, "Grand trouffion"),
A l'adresse 53 on trouve 1 (2ème indice, "Grand trouffion")
A l'adresse 63 on trouve 2 (3ème indice, "Adamantai")
A l'adresse 2482 on trouve xxx (xxxème indice, "Bagnadrana")

De manière générale, si vous avez des procédures de tri/recherche d'array multiniveaux très performantes (ex dichotomiques), je suis preneur.
C'était simplement un appel à l'aide à des supertechniciens. (ils ont d'autres caractéristiques heureusement ces chers supertechniciens, celle-là étant une des plus évidentes).
_________________
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
jopfleger



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

MessagePosté le: 21 Oct 2003 8:03    Sujet du message: Répondre en citant

Fremen:
J'avais lu attentivement tes derniers posts, hier malheureusement j'avais peu de temps.
- Ainsi vous avez remarqué comme moi que le Racing Strasbourg se porte bien? Je suis sûr que si j'étais "passé" en jugement APRES le match contre Marseille, je n'aurais même pas eu de stage à faire.
- Ta manière d'utiliser directement le scene.bin en alimantant des datastructures, je l'avais envisagé préalablement. Puis je l'avais écarté en pensant "bêtement" que les changements introduits par l'user pourraient provoquer des décalages. Je me rends compte qu'il n'en est rien, puisque co tu me l'as expliqué (et c'était déjà dit avant, comme quoi il faut tout lire), même les noms des ennemis occupent tjrs le même nombre d'octets dans l'espace.
- Ceci est un avantage considérable et je vais entreprendre une version ter qui accédera directement aux files du scenen.bin décompressés. Je vais adopter ton idée et voir ce que cela donne à l'exécution. Il ne faut pas oublier que dans ma phase préparatoire, j'alimente immédiatement tous les eneemis avec leurs carac, les objets associés...
- Si vous avez des tools très performants,
--- ex1: Trier sur le nième élément d'une table à n éléments (tri rapide, dichotomique)
--- ex2: Comment rechercher une chaîne de caractère dans le nième élément d'une table à n éléments, mais sans passer par une boucle. Il semble qu'en VB6 on puisse faire appel à une fonction Filter, mais elle e ma paraît pas ultra performante.

Félicitations à FWS qui continue d'investiguer les unknown!
Les qualités évidentes de FWS en tactique se marient merveilleusement à son esprit analytique, les constats sont admirables.
Pour ta gouverne, j'ai réussi à battre Emerald en nomateria avec le seul Clad, Clad étant en Fureur d'entrée. Au mois d'août, je m'étais "cassé les dents" sur Emerald à cause de cette configuration. Timer restant: 3'. Il faut un peu de chance pour que les Omnislash "cassent" les yeux et que l'Omnislash suivant ne frappe que le corps.

Malheureusement, à un niveau aussi subtil de décryptage, FWS, les manipulations peuvent induire des éléments trop perturbateurs si on permet des modifications aussi fines directement à nos chers users. Si on permute des attaques, si on change la manière dont un ennemi réagit par rapport aux éléments, ceci pour un ennemi ou un groupe ou une région, j'ai peur que cela ne nous entraîne trop loin et que nous aurons du mal à répondre à des questions du style: Je n'arive pas à battre les MallDancers qui arrivent par 5, ils sont insensibles aux attaques physiques ainsi qu'aux éléments. De plus je ne peux pas faire "Sentir" sur eux et je ne peux donc déterminer leur HP qui à mon avis est très élévé!
Pour ma part, je vais limiter les possibilités de "manipulation" aux caractéristiques de base (LVL, HP, MP, EXP, Gils, les 6 stats), ainsi qu'aux objets reçus ou volés ou transformés. Le but c'est aussi de "déboucher" avec une maquette que je puisse vous présenter un de ces jours.
Ceci dit, si tes investigations te permettent de délivrer des infos fiables, rien ne nous empêche de constrire un programme donnant un contrôle vraiment complet sur les manipulations. A toi après de le valider, car cela aussi prendra du temps.
_________________
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
FWS



Inscrit le: 05 Oct 2003
Messages: 25
Localisation: Près de St Malo

MessagePosté le: 25 Oct 2003 18:59    Sujet du message: Répondre en citant

Fremen : Effectivement, à partir 18H ça rame, mais le problème ne vient pas de là puisque à d'autre heures je peux aller sur le forum et voir les topics, mais c'est quand je clique sur le topic pour voir les messages que rien ne s'affiche, ou alors juste 1 ou 2 boutons icône (profil par exemple).
J'ai toujours le problème d'invalid session mais j'arrive à poster en essayant plusieurs fois
Pour l'emulateur, c'est au moment de la lecture du CD qu'il y a une erreur avec ePSXe, et avec PSEmuPro c'est après avoir parlé à Barret que le jeu bloque, c'est a dire avant que Clad ne lève la tête pour regarder le Réacteur.

J'avais moi aussi compris Field au lieu de FileID (et même en relisant je voyais encore field ^^)

jopfleger : Pour le low-level, il faut toujours fuir. Il n'y a que contre les boss que je fais le combat avec les 3 persos vivants puis je tue les 2 persos qui ont le niveau le plus elevé pour terminer le combat (j'utilisait sentir). Comme on fuie tout le temps, on a pas beaucoup de gils pour s'acheter des objets ou equipements ni de materia. J'ai juste fait quelques combats pour avoir les TalentE 'Grande garde' 'vent blanc' 'Beta'
De plus avec des niveau aussi bas, Beta avec Aeris Nv17 ne depasse pas les 800H, je me sers egalement des invocations qui sont puissantes car les materias ne gagnent pas d'AP et reste au niveau 1 donc tres faibles. En fait, c'est un peu comme si les boss étaient plus forts puisque nos coups ne sont pas tres puissants et on est moins résistant
Contre le scorpion gardien, heureusement que je l'avait empoisonné, car à la fin, je n'avais qu'un perso de vivant (sans le faire exprès) et j'étais obligé de me soigner après chacune de ses attaques, heureusement il avait peu de HP à ce moment là et est mort peu de temps après.
Mais c'est contre Palmer (qui l'eu cru...) que je suis mort plusieurs fois, en effet, Cald avec sont Nv13 mourrait en un coup, j'ai du le mettre en triste pour qu'il soit plus résistant. Maintenant je dois aller au temple des anciens. En fait attendre que le boss attaque avant de faire une action, un peu contre les Armes.
Pour l'instant, je garde Aeris car je sais qu'elle s'en ira. Mais youfie et cid sont déjà Nv17 quand je les prends.
En low-level, nos persos sont trop faibles pour attaquer, c'est surtout la magie qui compte et elle n'est pas non plus très puissante.

Pour les locations est ce que ce sera le plus précis possible ? par exemple :
LieuxFF7(17) = "Premier Continent" & "?" & "18. Junon"
à junon, il y a les forêts, la plage, la terre, la prairie donc 4 sous-lieux.
Mais certains monstres ne se trouvent qu'à un endroit très précis, comme le Piqueur qui se trouve au niveau des toiles d'araignée dans la grotte Gi. Et même dans des lieux fermés (exemple : Mine mythril), à des écrns differents on ne trouvent pas les mêmes monstres, on ne trouve le dragon vouté que dans l'écran de la materia Longue portée.

Félicitation pour ta victoire avec Clad Seul, Je suppose que tu as du t'équiper d'un anneau résistant de manière à pouvoir subir 2 'Tir d'émeraude' ? Pour les yeux, la technique est de se soigner avant qu'il ne fasse 'tir d'emeraude' se qui rempli la jauge de limite comme cela on peux tout de suite l'utilsier avant que tous ses yeux aient attaqué ce qui en détruit 2 environ (mais j'ai réussi une fois à détruire les 4 en un coup) puis n'attaquer que les yeux avec une attaque tant que la limite n'est pas pleine.

Pour le décryptage, c'est pour en savoir le plus possible même si on ne permettra pas ses modifications.
Mais cela peut servir si l'on modifie nous-même ces caracteristiques, en proposant un scene.bin spécial qui aurait subi des manipulations que les users ne pourraient faire avec leur programme.
Une chose qui me plairait bien c'est qu'il soit possible de mettre Emerald et Ruby dans un même combat. Sauf qu'il faudrait supprimer l'attaque 'tempête de sable' de Ruby pour pouvoir rester à 3 contre les 2 Armes.
En tout cas pour les objets volés,reçus... il te faudra modifier le programme, car comme je l'ai mis dans le topic de décryptage, les objets semblent en relation avec un octet indiquant la façon de les obtenir et peut-être la probabilité de les avoir.
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 Adresse AIM
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
Aller à la page Précédente  1, 2, 3, 4  Suivante
Page 2 sur 4

 
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