Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=726d400e1aa6a7d6b0496731a531e72eMédailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

Récupérer les données d'un fichier txt

 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Autre
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Ectelion
Membre reconnu


Inscrit le: 12 Nov 2011
Messages: 1062
Sujets: 107
Spécialité en worldedit: Inactif(Enfin presque)
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 07/11/15 19:21    Sujet du message: Récupérer les données d'un fichier txt Citer

C'est possible ? Je sais qu'on peut exporter des données(généralement on exporte un code de save/load comme dans GoH ou TKoK)

ex: le résultat d'un export de code sur TKoK
Jass:
function PreloadFiles takes nothing returns nothing

   call Preload( "



Name: Ectelion

Class: Paladin

Level: 9

Exp: 2180

Gold: 235

Password:
4A8y3-YYmw1-UinRe-wWTXA-oh1bW-1f949-Rl2Mc-MIz3K-wArti-iXG9A-w8jsG-SWgMe-7f4P8-SJE2y-nOJgS-7yHFT-FBnd3-O



Note: Ignore the text about Preloading, that is normal.


" )
   call PreloadEnd( 0.0 )

endfunction



En fait je faisait le tour des fonctions GUI et je suis tombé sur celles de Preload dans Partie.

Et du coup je me suis dit que si on pouvait exporter des données, on devait pouvoir les importer (pour obtenir un truc mimant les BDD de SCII(même si sur SCII ça doit pas marcher avec des fichiers, j'ai passé 10min sur l'éditeur mais je pense pas que les deux systèmes soient comparables.).)

Après je parle du GUI, mais j'imagine que ça doit être aussi/seulement possible en JASS/vJASS(à supposer que ça le soit).
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2004
Sujets: 49

Médailles: 2 (En savoir plus...)
Ayane (Quantité : 1) Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 11/11/15 10:09    Sujet du message: Citer

Pour l'écriture d'un fichier:
Jass:
    call PreloadGenStart()
    call Preload("Your save/load code is: load-load-load-load")
    call PreloadGenEnd("C:\\saveloadcode.txt")


Généra le fichier:
Jass:
function PreloadFiles takes nothing returns nothing

    call Preload( "Your save/load code is: load-load-load-load" )
    call PreloadEnd( 0.0 )

endfunction


Le truc c'est que Warcraft écris le paramètre texte de la fonction Preload dans le fichier sans échapper les caractères, donc le code suivant
Jass:
    call PreloadGenStart()
    call Preload("\")\n
    call LoadCharacter(\"load-load-load-load\")\n
")
    call PreloadGenEnd("C:\\saveloadcode.txt")


Généra le fichier:
Jass:
function PreloadFiles takes nothing returns nothing

    call Preload( "" )
    call LoadCharacter("load-load-load-load")
    call PreloadEnd( 0.0 )

endfunction

Que tu peux exécuter avec PreloadFile.
Donc oui c'est possible de lire un fichier, le problème? c'est que tu dois avoir la clé de registre AllowLocalFiles à true pour que Warcraft essaye d'ouvrir un fichier local, autrement il va uniquement chercher dans les archives mopaqs.

C'est pour cela que des RPG comme TKoK se contentent seulement d'écrire le fichier pour que l'utilisateur fasse seulement un copier/coller.
Il est néanmoins possible avec ces hacks sur le Preload d'écrire un fichier .bat que tu peux faire changer la clé de registre AllowLocalFiles, le problème c'est que l'utilisateur doit exécuter le fichier .bat.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Ectelion
Membre reconnu


Inscrit le: 12 Nov 2011
Messages: 1062
Sujets: 107
Spécialité en worldedit: Inactif(Enfin presque)
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 11/11/15 17:44    Sujet du message: Citer

D'accord, donc il est (techniquement) possible de créer un save-load automatique.

En gros(si j'ai bien compris), si l'on voulait se rapprocher au plus près de l'automatisme il faudrait que le déclencheur de sauvegarde check si il y a un fichier .txt qui indique que l'automatisation est faîte, comme au 1er lancement, il ne trouvera pas le fichier puisque la clé de registre AllowLocalFiles ne vaut pas true, il le crée ainsi que le fichier correspondant au héros, de plus il doit créer un fichier .bat qui devrait s'exécuter tout seul[ pour changer la valeur de AllowLocalFiles en true puis s'autosupprimer. aux autres sauvegardes, comme on aurait le fichier qui indique que la sauvegarde se fait automatiquement, on aurait pas besoin de le faire.

Je pense que c'est trop fastidieux(et en plus là je parle du fonctionnement théorique) pour représenter un réel intérêt car c'est pas ce que ça coute à l'utilisateur de copier-coller son code.

En tous cas, c'est bon à savoir
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2004
Sujets: 49

Médailles: 2 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1) Ayane (Quantité : 1)

MessagePosté le: 12/11/15 12:10    Sujet du message: Citer

Je viens de penser qu'il y a un moyen:
Lorsque Warcraft essaye d'ouvrir une archive mpq il lis les premiers octets pour trouver la signature du format de fichier quelques choses comme tous les 512 octets. C'est comme cela que l'on peut voir des mods Warcraft qui se font en un exécutable à placer dans le dossier de Warcraft, en réalité on peut l'ouvrir avec un archiveur mpq, ils ont tout simplement rajouter les données du fichier mpq à la fin de l'exécutable et changer le code de l'exécutable pour qu'il ouvre en plus l'archive exécutable.
Bref PreloadGenEnd génère du texte en début de fichier et fin de fichier, mais entre les deux on peut écrire du texte et normalement des données binaires.
En conclusion il est possible d'écrire un fichier mpq, si on lui donne un nom de fichier que warcraft ouvre automatiquement au lancement on pourrait donc faire un système de sauvegarde/chargement automatique et d'autres choses car cela ne se limiterai pas seulement à l'exécution de Jass.
Après cela nécessite d'écrire en Jass un archiveur mpq, cela n'est pas si compliqué que cela car le format est bien documenté et il n'oblige pas la compression des fichiers.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Autre 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, 2005 phpBB Group
Traduction par : phpBB-fr.com