André de Cuyne
Knight


Pythonic Module Editor
Réécriture des sources de Fujiwara.
ou
Éditeur de Module Pythonesque
Nouvelle mouture par AdC.
Voyez ici si vous êtes intéressé pour faire une traduction dans une autre langue.
La version espagnole est disponible (pour la version 0.9.4) là !
Merci à Megale91 !
La version espagnole est disponible (pour la version 0.9.4) là !
Merci à Megale91 !
Je suis heureux de vous annoncer, qu'après de longs mois de codage, l'EMPy 0.9.5a (0.9.5 corrigé) est sorti !
Il est téléchargeable ici.
N'hésitez pas à me signaler tout bug ou problème !
Bon, voilà (enfin) une version francophone du sujet homonyme de la section Unofficial Editing Tools de The Forge - Mod Development.
D'abord, que veut dire PyME, ou EMPy en français ?
C'est l'acronyme de Pythonic Module Editor, soit en langue de Molière : Éditeur de Modules Pythonesque.
Éditeur de modules signifie qu'il vous permet d'éditer les fichiers module_... du Module System, sans vous faire c**** à trifouiller des fichiers parfois d'une taille titanesque, et d'une syntaxe peu évidente.
Pythonesque parce que le Module System repose sur un processus de compilation en Python, et que ses fichiers contiennent des "objets" Python. Et puis, EMPy lui-même est programmé en Python !
Y a-t-il du nouveau dans la version 0.9.5 (et 0.9.5a) ?
Bien sûr !
Version 0.9.5
- Compatible Warband : le MS et les mod de WB peuvent être édités avec l'EMPy.
- Interface utilisateur refondue (partiellement) : la plus part du code a été modifié pour plus d'efficacité, mais cela ne change pas grand chose pour l'utilisateur.
- L'option 'Afficher les changements' ajoutée au menu d'aide ('?') : les objets nécessaires ont été ajoutés aussi.
- L'option 'Lisez-moi' ajoutée au menu d'aide ('?') : les objets nécessaires ont été ajoutés aussi.
Version 0.9.5a
- La fenêtre des animations ainsi que d'autres bugs ont été corrigés.
- Les fonctions d'import des mods ont été mises à jour.
- Un nouveau greffon a été ajouté pour compatibilité avec les mods basés sur "Fire Arrow".
Version 0.9.41a
Version 0.9.41
La version 0.9.4a a eu la plupart des bugs de l'interface corrigés.
- Gestionnaire de greffons implémenté pour pouvoir éditer certains mods (comme "Form Ranks !").
Vous pouvez écrire vos propres greffons si vous en avez besoin. - Implémentation du format PPF (PyME Project File), qui prend moins de place et est plus rapide au chargement que le Module System.
Un fichier PPF est inclus dans la distribution. Il contient le Module System Native 1.01x et est automatiquement chargé lorsque vous créez un nouveau projet.
Les fichiers PPF sont exportés comme Module System lorsque vous construisez les mods. - Une fenêtre des message a été ajoutée.
Très pratique pour rapporter les erreurs...
Version 0.9.41
- Fonctions de recherches implémentées.
- Eléments des listes déplaçables.
- Menu contextuel pour les listes.
- Menu contextuel pour les éditeurs de code.
- Il n'est plus nécessaire d'installer Python pour compiler les mods.
- un 'readme' en français (mais entends-je plusieurs personnes dire "enfin" ?).
La version 0.9.4a a eu la plupart des bugs de l'interface corrigés.
Et d'ailleurs en parlant de 'readme', le voici :
Readme.txt pour EMPy (Éditeur de Modules Pythonesque) version D.C.-G. 0.9.5a pour Mount & Blade.
Pour avoir une meilleure lisibilité de ce document, sélectionnez la police de caractères Lucida Console.
Ce programme 'stand alone' est la complétion et la correction du travail de Fujiwara.
Avec l'EMPy, vous pouvez modifier le Module System de Mount & Blade sans avoir à chercher la bonne ligne parmi plusieurs milliers.
Oubliez les erreurs de parenthèses non fermées ou de virgules manquantes ! Grâce à la syntaxe simplifie des éditeurs de code de l'EMPy, vous n'avez plus à vous en soucier.
L'EMPy se charge des parenthèses et des virgules, vous laissant vous concentrer sur la programmation.
SOMMAIRE :
----------
I. - INSTALLATION
II. - UTILISATION
1) Premier démarrage
2) Après le premier démarrage
3) Fenêtre principale
i) Liste des modules
ii) Premier groupe de boutons
iii) Deuxième groupe de boutons
iv) Troisième groupe de boutons
v) Bouton 'Sortir'
vi) Menu 'Affichage'
vii) Menu 'Version'
4) Fenêtres de modules
5) Localisation (langue)
6) Menu 'éditer'
III - COMPATIBILITÉ AVEC WARBAND
IV - ÉCRIRE UNE RESSOURCE LINGUISTIQUE
V - GREFFONS
VI - PROBLÈMES CONNUS
VII - QUOI DE NEUF DEPUIS LA VERSION 0.9.3
VIII - LIMITATIONS
IX - RAPPOTER UN (DES) BUG(S)/PROBLME(S)
X - LIMITES DE RESPONSABILITÉS
XI - LICENSE
XII - CONTACTS
I - INSTALLATION :
------------------
- Installez l'EMPy où vous le voulez. Il n'y as pas besoin de Python pour que ce programme fonctionne.
- Si ce n'est déjà fait, téléchargez et dézippez le Module System pour Mount & Blade ou Warband.
II - UTILISATION :
------------------
!!! Faites une copie du Module System des mods que vous voulez éditer !!!
1) Premier démarrage :
- Une fenêtre d'alerte vous dit que les données pour Mount & Blade version X.XXX ne sont pas configurées. Ne paniquez pas !
Suivez les instructions, et configurez au moins le répertoire du jeu et le répertoire du Module System. Si vous ne le faites pas, vous ne pourrez pas éditer les modules, et aurez des messages d'erreurs, ainsi qu'un fichier 'log' lorsque vous quitterez l'EMPy.
2) Après le premier démarrage :
- Si vous sélectionnez une version de Mount & Blade qui n'est pas configurée, la même fenêtre que celle du premier démarrage vous en informera.
- Ouvrez un mod existant ou créez en un (menu 'Fichier', option 'Ouvrir modification' ou bouton 'Ouvrir projet' ou Ctrl+M ; menu 'Fichier', option 'Nouveau' ou bouton 'Nouveau projet' ou Ctrl+N).
3) Fenêtre principale :
i) Liste des modules :
Cette liste sur la gauche n'est active qu'après qu'un mod soit chargé en mémoire ou créé.
Elle varie selon la version de Mount & Blade, tous les fichiers du dernier Module System n'étant pas forcément dans les autres.
En double-cliquant sur un élément, vous ouvrez la fenêtre correspondante.
ii) Premier groupe de boutons :
'Nouveau projet' : crée un nouveau projet (ou mod) ; équivalent menu 'Fichier'->'Nouveau'
'Ouvrir projet' : ouvre un mod ; équivalent menu 'Fichier'->'Ouvrir modification'
'Sauver projet' : sauve un mod ; équivalent menu 'Fichier'->'Enregistrer' ou 'Enregistrer sous...'
'Construire la modification' : compile le mod. Attention, ne compile pas les données en mémoire dans l'EMPy, mais les fichiers enregistrés sur le disque.
Vous devez sauvegarder le mod pour que les changements soient pris en compte lors de la compilation ou cocher la case 'Sauvegarder avant compilation' dans le panneau de configuration.
Lorsque vous cliquez sur ce bouton, une fenêtre s'ouvre.
En haut, une zone de texte où s'afficheront les messages de compilation du mod.
En bas, trois boutons vous permettent de commencer la compilation, de sauver les messages de compilation dans un fichier de votre choix et de fermer la fenêtre.
iii) Deuxième groupe de boutons :
'Ouvrir module' : ouvre la fenêtre du module sélectionné dans la liste ; équivalent double-clic sur la liste des modules.
'Éditer l'entête' : ouvre la fenêtre d'édition de l'entête du module sélectionné dans la liste.
iv) Troisième groupe de boutons :
'Exporter module' : exporte le module sélectionné dans la liste. Le répertoire d'export est Export dans le répertoire de l'EMPy.
Attention, l'export est 'brutal'. Si le fichier existe déjà, il est écrasé sans confirmation de votre part.
'Tout exporter' : fait la même chose que le précédant, mais avec tous les modules.
v) Bouton 'Sortir' :
Son nom est assez explicite.
Sachez toutes fois que la sortie est brutale, aucune confirmation de sortie sans sauvegarder ne vous est demande.
vi) Menu 'Affichage' :
Ce menu vous donne accès au panneau de configuration, la fenêtre des messages et au gestionnaire de greffons.
Le panneau de configuration :
Il vous permet de configurer l'EMPy d'un seul coup d'œil
Vous pouvez y modifier les chemins du jeu et du Module System, la langue, et ajouter ou enlever des utilitaires.
Cochez la case 'Copier Native' pour que l'EMPy copie à votre place les dossiers et fichiers de Native vers un nouveau mod.
Cochez la case 'Corriger le bug '+'' pour que l'EMPy corrige les 'max_inventory_items + num_equipment_kinds'. (Fonction obsolète.)
Cochez la case 'Sauvegarder avant compilation' pour que l'EMPy sauvegarde automatiquement le mod lorsque vous cliquez sur le bouton 'Construire la modification'.
Cochez la case 'Projets au format PPF' pour sauvegarder/charger vos mods au format 'PyME Project File'. Ce format rassemble tous les éléments du Module System dont l'EMPy a besoin en un seul fichier.
Vous économisez ainsi de la place sur votre disque, et, de plus, le temps de chargement des mods est grandement réduit
Vous pouvez contourner cela en faisant un clic droit sur les fichiers concernés et en choisissant le programme approprié
Cependant, cette association d'extension avec l'EMPy vous permet d'ouvrir un projet .PPF d'un simple double-clic.
Cochez la case 'Compilateur interne' pour utiliser les fonction de compilation de modification interne de l'EMPy.
Ces fonctions sont les scripts python 'process_...' de Tale Worlds réunies en un seul.
Le temps de compilation d'un mod peut être divisé par à peu près 1,75 !
Le compilateur interne est contenu dans un fichier séparé (!). Il s'agit de '[dossier_empy]\extern\modulecompiler.py', où [dossier_empy] est le répertoire où l'EMPy est installé.
Vous pouvez modifier ce fichier pour en augmenter l'efficacité ou correspondre vos besoins, vu que le travail que j'ai effectué dessus consiste essentiellement à avoir 'copié collé' le code de Tale Worlds.
Mais N'IMPORTEZ PAS DE MODULE PYTHON QUI N'EST PAS INCLUS DANS L'EMPy, moins que vous ne sachiez comment faire.
Attention ! Le compilateur interne est encore expérimental !
La fenêtre des messages :
Cette fenêtre vous donne accès aux messages renvoyés par l'EMPy, informations de débogage, chargement des greffons, erreurs diverses, etc.
Le gestionnaire de greffons :
Cette fenêtre vous permet de choisir le ou les greffons utiles au développement de votre mod.
Pour plus de renseignements sur les greffons, voyez la section IV.
vii) Menu 'Version' :
Ce menu vous permet de choisir la version de Mount & Blade sur laquelle vous travaillez, et donc la version du Module System.
La version actuelle de Mount & Blade est visible en dessous des boutons.
Attention ! Lors du changement de la version du jeu, toutes les données sont remises à zéro, sans confirmation de la part de l'utilisateur.
Vous devez ensuite ouvrir un mod existant ou en créer un nouveau.
4) Fenêtres de modules :
Ces informations sont vraies pour la plupart des fenêtres.
- Sur la gauche se trouve la liste des entrées du module. Cliquez sur une, et les champs sur la droite se remplissent.
Un clic droit fait apparaître un menu qui vous permet de déplacer l'élément sélectionné vers le haut ou vers le bas, de le couper, de le copier et de le coller.
Vous pouvez déplacer un élément en maintenant le bouton gauche de la souris appuyé.
- Cliquez sur 'Nouveau' ou 'Ajouter' pour ajouter une entrée au module ou des éléments une entrée.
Une nouvelle entrée d'un module est insérée après celle sélectionnée. Si aucune entrée n'est sélectionnée, la nouvelle est ajoutée en fin de liste.
- En cliquant 'Sauver', vous enregistrez l'entrée dans le module.
- 'Fermer' ferme la fenêtre sans annuler les changements, ni les enregistrer dans le module.
- 'Sauver & fermer' valide les changements en les enregistrant dans le module et ferme la fenêtre.
- 'Supprimer' ou 'Enlever' supprime une entrée ou un de ses éléments.
- S'il y a un éditeur de code (ou plus...), son menu contextuel vous permet de couper, copier et coller du texte, mais aussi d'y faire une recherche.
5) Localisation (langue) :
Il est possible de changer la langue utilisée par l'EMPy en la choisissant une dans le menu 'Configuration', ou le panneau de configuration.
Le changement ne prend effet qu'au démarrage suivant de l'EMPy.
Pour savoir comment écrire une ressource linguistique pour l'EMPy, reportez vous au chapitre III.
6) Menu 'éditer' :
Option 'Recherche' :
Quand vous cliquez sur cette option la fenêtre de recherche apparaît.
Fenêtre de recherche :
Choisissez le ou les modules dans lesquels vous voulez faire la recherche, entrez un ou des mots et cliquez sur 'Rechercher'.
Il peut s'écouler quelques secondes avant que le résultat n'apparaisse.
Fenêtre de résultat :
La liste des résultats est séparée en trois colonnes.
La première donne le module où la recherche a été fructueuse.
La deuxième donne les zones du module.
La troisième indique la ligne/zone exacte.
La syntaxe de la deuxième colonne est un peu dure à saisir.
Exemple:
Une recherche de 'player' dans les icônes de la carte de Native donne ce résultat :
+--------------+--------+--------------------+
| map_icons | 0,0 | player |
| map_icons | 0,2 | player |
| map_icons | 1,0 | player_horseman |
| map_icons | 1,2 | player_horseman |
+--------------+--------+--------------------+
La première ligne nous dit que 'player' a t trouv dans 'map_icons'.
Le 'map_icon' concern est le premier (le premier '0' dans la deuxième colonne) et que la zone concerne de ce 'map_icon' est aussi la première (le deuxième '0', qui correspond son ID).
Le mot 'player' a été également trouvé dans la troisième zone du premier 'map_icon', comme nous l'indique la deuxième ligne.
N'oubliez pas, en scrutant ces chiffres, qu'en informatique, on compte partir de zéro.
Vous pouvez aussi double-cliquer sur une entre pour tout de suite ouvrir la fenêtre de module correspondante.
III - COMPATIBILITÉ WARBAND :
-----------------------------
L'EMPY est compatible avec Warband, c'est dire que l'EMPY peut éditer le Module System de Warband comme ceux de Mount & Blade.
Cependant, il vous faudra tout de même modifier le MS de Warband. Pas de panique, il ne s'agit de modifier que quelques lignes.
- Dans 'module_animations.py', coupez toutes les variables 'amf_' et collez-les dans 'header_animations.py'. Faites de même avec les variables 'attack_...', 'cancel_...', 'defend_...' et 'ready_...'.
- Dans 'module_troops.py', ajoutez une indentation (espaces ou tabulation) devant toutes les lignes commentées des fonctions (les trucs qui commencent par ('def').
IV - ÉCRIRE UNE RESSOURCE LINGUISTIQUE :
----------------------------------------
C'est simple.
Copiez un des fichier du répertoire 'lang' de l'EMPy, et renommez le comme vous le voulez, mais avec l'extension '.lng'
Éditez le fichier (qui est au format texte) et traduisez chaque ligne.
N'oubliez pas de changer le premier mot du fichier, c'est le nom de la langue.
Au démarrage suivant de l'EMPy, vous pourrez voir la nouvelle langue disponible.
V - GREFFONS :
--------------
GREFFONS :
----------
L'implémentation de greffons et d'un gestionnaire de greffons peut aider à éditer des mods dont la structure du Module System a t change.
En effet, l'EMPy peut avoir du mal lire et trier les informations de tels mods, ce qui le conduit 'planter' et renvoyer des messages d'erreur.
Les greffons rassemblent des informations sur ce qui cause des problèmes, et qu'il faut remplacer. C'est d'ailleurs le but de ces greffons.
Un greffon peut avoir n'importe quel nom, mais si vous lui donnez exactement le même nom qu'un mod existant, ce greffon sera chargé automatiquement lorsque vous éditerez le mod.
Le greffon inclus avec cette distribution est prévu pour le mod 'Form Ranks !', et doit être utilisé lorsque vous éditez ce mod, ou un mod l'incluant.
Vous pouvez vous-même rédiger des greffons. Ce sont des fichiers Python, mais dont l'organisation est propre aux greffons de l'EMPy, et dont le nom doit se terminer par '.plg.py'.
Voici le code de 'Form Ranks.plg.py' :
Comme vous l'avez remarqué, quelques mots clés sont utilisés.
"None" signifie que l'EMPy doit conserver la valeur originale du mod, telle qu'indique dans le Module System.
'$str" indique que les données comprises entre les guillemets (") doivent être traitées comme des chaînes de caractères Comme vous pouvez le voir dans le code au dessus, la valeur de l'entrée "debug_point" commence et se termine avec une apostrophe, ne les oubliez pas, ou l'EMPy génèrera des erreurs.
'$float", '$hex", '$int", '$list", '$long" ont les mêmes buts et fonctionnements que '$str".
GESTIONNAIRE DE GREFFONS :
--------------------------
Vous pouvez accéder au gestionnaire de greffons par le menu 'Affichage'.
Vous chargez et déchargez les greffons en les cochant ou les décochant dans cette fenêtre. Les greffons sont chargé/déchargés dans l'ordre de la liste lorsque vous appuyez sur le bouton 'Ok'.
Cela signifie que vous pouvez écraser des valeurs, en créant un nouveau greffon et en y écrivant les changements que vous désirez
En chargeant le greffon suivant ('foo'), le greffon 'Form Ranks !" sera chargé en premier, ensuite, les valeurs spécifiées dans 'foo' écraseront celles de 'Form Ranks !'.
Cela est d au conteneur optionnel 'dependencies', qui contient les noms des greffon charger avant celui-ci.
Si vous décochez 'foo', il sera le seul être déchargé ; 'Form Ranks !' restant activé jusqu'à' ce que vous le décochiez
Les greffons ne peuvent être chargés en même temps qu'un fichier PPF. Il vous faut ouvrir le Module System d'un mod existant pour pouvoir utiliser un greffon.
La gestion de greffons de l'EMPy a été principalement développée pour pouvoir éditer le mod 'Form Ranks !' et ses dérivés.
VI - PROBLMES CONNUS :
-----------------------
- Les composants des fenêtres ne sont pas tous ordonnés, la navigation au clavier est particulière.
- Certaines fenêtres ne sont pas très belles. Elles n'ont pas encore été (ré-)ordonnées.
- Lors de l'édition de mods Warband, les flags 'itp_type' et 'itp_attach' des objets (items) ne sont pas initialisés correctement.
Pour palier à cela, créez d'abord un nouveau projet pour M&B 1.01x, puis ouvrez (ou) créez le mod pour Warband. L'initialisation est alors faite.
- Quand vous double-cliquez sur une ligne dans la liste de résultats de recherche, la fenêtre du module apparaît, mais tous ses composants sont désactivés
Il est impossible d'éditer quoi que soit.
Pour remédier au problème, double-cliquez de nouveau sur la ligne de résultat ou choisissez une entrée dans liste de la fenêtre du module.
- Cette application tant une version bêta, il est possible qu'il y ait d'autres bugs/problèmes que je n'ai pas trouvés Les rapports d'erreurs sont les bienvenus !
VII - QUOI DE NEUF DEPUIS LA VERSION 0.9.3 ?
--------------------------------------------
- Fonctions de recherches implémentés.
- Éléments des listes déplaçables.
- Menu contextuel pour les listes.
- Menu contextuel pour les éditeurs de code.
- Il n'est plus nécessaire d'installer Python pour compiler les mods.
- Version 0.9.4a : correction de bugs de l'interface graphique.
- La plus part des bugs de l'interface sont corrigés.
- Version 0.9.41a : implémentation du gestionnaire de greffons (plugins).
- Version 0.9.42 (non publiée): implémentation du compilateur interne.
- Dans la fenêtre des map icons, il est maintenant possible de basculer des coordonnées vers un trigger et vice versa.
- L'aspect de toutes le fenêtres de modules ont été corrigés.
- L'association des fichier .PPF n'est plus automatique lors de l'installation, mais laisse l'appréciation de l'utilisateur.
- Version 0.9.5 : compatibilité avec Warband.
- Corrections au code de l'interface utilisateur.
- Affichage des changement de l'EMPy selon la langue.
- Affichage du lisez-moi selon la langue.
VIII - LIMITATIONS :
--------------------
- Les commentaires du Modules System ne sont pas pris en compte lors du chargement des mods.
Il sont purement et simplement retirés, et ne sont donc pas exports.
! ! Attention ! ! Si vous ajoutez des commentaires dans les blocs d'opération via l'EMPy, vous aurez des erreurs la compilation du mod !
Pour pallier cela, il faut que je révise (encore) les fonction d'import/export.
- Toutes les versions du menu 'Version' son théoriquement importables et éditables dans l'EMPy. Cependant, seules les versions les plus récentes du
Module System sont exportables (0.960, 1.010, .1011) ; cela étant dû aux changements du Module System entre les versions.
- Si des listes ou des fonctions sont déclares sur plusieurs lignes dans 'module_constants.py', elles peuvent générer des erreurs dans la fenêtre d'édition des constantes.
Mais elles sont correctement récrites dans le fichier lors de l'export/sauvegarde.
Il convient donc de ne pas les éditer via l'EMPy, mais directement dans le Module System.
IX - RAPPOTER UN (DES) BUG(S)/PROBLME(S) :
-------------------------------------------
Si vous voulez signaler un bug ou un problème, faites-le dans le sujet dédié sur le site de Tale Worlds (www.forums.taleworlds.com), sujet 'PyME' de la section 'Unofficial Editing Tools' de 'The Forge' (en anglais) ou sujet 'EMPy' de la section francophone.
Avant de le faire, veillez préparer un rapport le plus complet possible :
- Si un fichier 'pyme.exe.log' est cr dans le répertoire d'installation de l'EMPy, copiez le contenu de ce fichier dans votre message.
Si un tel fichier est créé, l'EMPy vous en averti lorsque vous en sortez.
- Précisez ce que vous avez fait avec l'EMPy (ouverture ou création de modification, ajout/suppression d'une entrée dans une liste, etc.)
- Précisez le nom de la modification si son Module System peut être obtenu.
- Si vous avez ajout des fonctions ou des classes au Module System, merci de le préciser aussi.
Les messages du genre "ça ne marche pas, pourquoi ?", sans autres explications, seront ignorés (car je n'ai pas, à l'heure actuelle, le pouvoir de les supprimer) ; de même pour les messages où il apparat que l'auteur n'a pas lu ce fichier.
X - LIMITES DE RESPONSABILITS :
--------------------------------
Cette application est une version bêta et est distribue 'telle-que', vous l'utilisez vos risques et périls.
Les auteurs ne peuvent en aucun cas être tenus responsable d'éventuels dommages physiques, informatiques, pertes
de donnes et autres effets indésirables occasionnés par l'utilisation de cette application.
XI - LICENSE :
--------------
Cette application a été écrite en Python et compile avec py2exe. Elle inclut des modules de base de Python et ces autres :
- wx,
- PythonCard,
- PIL,
- ConfigParser,
qui sont sous GNU-GPL.
Cette application est la propriété de ses auteurs. Elle est distribue gratuitement, espérant qu'elle puisse être utile.
Vous pouvez utiliser cette application dans un but personnel seulement.
Vous ne pouvez pas vendre ou distribuer contre argent le travail fait avec cette application.
Vous ne pouvez pas vendre cette application ou la distribuer contre argent.
Si vous diffusez une modification pour laquelle l'EMPy a t utilisé à quelque niveau que ce soit, indiquez-le dans vos crédits.
XII - CONTACTS :
----------------
L'auteur original est Fujiwara. Vous pouvez le contacter sur les forums de TalesWorld (www.forums.taleworlds.com).
L'auteur de la version actuelle est D.C.-G.. Contact sur les forums de TaleWorlds (www.forums.talesworlds.com, pseudo André de Cuyne).
Le traducteur pour la version espagnole est Megale91. Contact sur les forums de TalesWorld (www.forums.talesworld.com).
Pour vous tenir au courant, vous pouvez visiter la page anglophone (www.forums.taleworlds.com, section 'The Forge', sous-section 'Unofficial Editing Tools', sujet 'PyME') ou la page francophone (www.forums.talesworld.com, forum francophone, sujet 'EMPy').
Pour avoir une meilleure lisibilité de ce document, sélectionnez la police de caractères Lucida Console.
Ce programme 'stand alone' est la complétion et la correction du travail de Fujiwara.
Avec l'EMPy, vous pouvez modifier le Module System de Mount & Blade sans avoir à chercher la bonne ligne parmi plusieurs milliers.
Oubliez les erreurs de parenthèses non fermées ou de virgules manquantes ! Grâce à la syntaxe simplifie des éditeurs de code de l'EMPy, vous n'avez plus à vous en soucier.
L'EMPy se charge des parenthèses et des virgules, vous laissant vous concentrer sur la programmation.
SOMMAIRE :
----------
I. - INSTALLATION
II. - UTILISATION
1) Premier démarrage
2) Après le premier démarrage
3) Fenêtre principale
i) Liste des modules
ii) Premier groupe de boutons
iii) Deuxième groupe de boutons
iv) Troisième groupe de boutons
v) Bouton 'Sortir'
vi) Menu 'Affichage'
vii) Menu 'Version'
4) Fenêtres de modules
5) Localisation (langue)
6) Menu 'éditer'
III - COMPATIBILITÉ AVEC WARBAND
IV - ÉCRIRE UNE RESSOURCE LINGUISTIQUE
V - GREFFONS
VI - PROBLÈMES CONNUS
VII - QUOI DE NEUF DEPUIS LA VERSION 0.9.3
VIII - LIMITATIONS
IX - RAPPOTER UN (DES) BUG(S)/PROBLME(S)
X - LIMITES DE RESPONSABILITÉS
XI - LICENSE
XII - CONTACTS
I - INSTALLATION :
------------------
- Installez l'EMPy où vous le voulez. Il n'y as pas besoin de Python pour que ce programme fonctionne.
- Si ce n'est déjà fait, téléchargez et dézippez le Module System pour Mount & Blade ou Warband.
II - UTILISATION :
------------------
!!! Faites une copie du Module System des mods que vous voulez éditer !!!
1) Premier démarrage :
- Une fenêtre d'alerte vous dit que les données pour Mount & Blade version X.XXX ne sont pas configurées. Ne paniquez pas !
Suivez les instructions, et configurez au moins le répertoire du jeu et le répertoire du Module System. Si vous ne le faites pas, vous ne pourrez pas éditer les modules, et aurez des messages d'erreurs, ainsi qu'un fichier 'log' lorsque vous quitterez l'EMPy.
2) Après le premier démarrage :
- Si vous sélectionnez une version de Mount & Blade qui n'est pas configurée, la même fenêtre que celle du premier démarrage vous en informera.
- Ouvrez un mod existant ou créez en un (menu 'Fichier', option 'Ouvrir modification' ou bouton 'Ouvrir projet' ou Ctrl+M ; menu 'Fichier', option 'Nouveau' ou bouton 'Nouveau projet' ou Ctrl+N).
3) Fenêtre principale :
i) Liste des modules :
Cette liste sur la gauche n'est active qu'après qu'un mod soit chargé en mémoire ou créé.
Elle varie selon la version de Mount & Blade, tous les fichiers du dernier Module System n'étant pas forcément dans les autres.
En double-cliquant sur un élément, vous ouvrez la fenêtre correspondante.
ii) Premier groupe de boutons :
'Nouveau projet' : crée un nouveau projet (ou mod) ; équivalent menu 'Fichier'->'Nouveau'
'Ouvrir projet' : ouvre un mod ; équivalent menu 'Fichier'->'Ouvrir modification'
'Sauver projet' : sauve un mod ; équivalent menu 'Fichier'->'Enregistrer' ou 'Enregistrer sous...'
'Construire la modification' : compile le mod. Attention, ne compile pas les données en mémoire dans l'EMPy, mais les fichiers enregistrés sur le disque.
Vous devez sauvegarder le mod pour que les changements soient pris en compte lors de la compilation ou cocher la case 'Sauvegarder avant compilation' dans le panneau de configuration.
Lorsque vous cliquez sur ce bouton, une fenêtre s'ouvre.
En haut, une zone de texte où s'afficheront les messages de compilation du mod.
En bas, trois boutons vous permettent de commencer la compilation, de sauver les messages de compilation dans un fichier de votre choix et de fermer la fenêtre.
iii) Deuxième groupe de boutons :
'Ouvrir module' : ouvre la fenêtre du module sélectionné dans la liste ; équivalent double-clic sur la liste des modules.
'Éditer l'entête' : ouvre la fenêtre d'édition de l'entête du module sélectionné dans la liste.
iv) Troisième groupe de boutons :
'Exporter module' : exporte le module sélectionné dans la liste. Le répertoire d'export est Export dans le répertoire de l'EMPy.
Attention, l'export est 'brutal'. Si le fichier existe déjà, il est écrasé sans confirmation de votre part.
'Tout exporter' : fait la même chose que le précédant, mais avec tous les modules.
v) Bouton 'Sortir' :
Son nom est assez explicite.
Sachez toutes fois que la sortie est brutale, aucune confirmation de sortie sans sauvegarder ne vous est demande.
vi) Menu 'Affichage' :
Ce menu vous donne accès au panneau de configuration, la fenêtre des messages et au gestionnaire de greffons.
Le panneau de configuration :
Il vous permet de configurer l'EMPy d'un seul coup d'œil
Vous pouvez y modifier les chemins du jeu et du Module System, la langue, et ajouter ou enlever des utilitaires.
Cochez la case 'Copier Native' pour que l'EMPy copie à votre place les dossiers et fichiers de Native vers un nouveau mod.
Cochez la case 'Corriger le bug '+'' pour que l'EMPy corrige les 'max_inventory_items + num_equipment_kinds'. (Fonction obsolète.)
Cochez la case 'Sauvegarder avant compilation' pour que l'EMPy sauvegarde automatiquement le mod lorsque vous cliquez sur le bouton 'Construire la modification'.
Cochez la case 'Projets au format PPF' pour sauvegarder/charger vos mods au format 'PyME Project File'. Ce format rassemble tous les éléments du Module System dont l'EMPy a besoin en un seul fichier.
Vous économisez ainsi de la place sur votre disque, et, de plus, le temps de chargement des mods est grandement réduit
Vous pouvez contourner cela en faisant un clic droit sur les fichiers concernés et en choisissant le programme approprié
Cependant, cette association d'extension avec l'EMPy vous permet d'ouvrir un projet .PPF d'un simple double-clic.
Cochez la case 'Compilateur interne' pour utiliser les fonction de compilation de modification interne de l'EMPy.
Ces fonctions sont les scripts python 'process_...' de Tale Worlds réunies en un seul.
Le temps de compilation d'un mod peut être divisé par à peu près 1,75 !
Le compilateur interne est contenu dans un fichier séparé (!). Il s'agit de '[dossier_empy]\extern\modulecompiler.py', où [dossier_empy] est le répertoire où l'EMPy est installé.
Vous pouvez modifier ce fichier pour en augmenter l'efficacité ou correspondre vos besoins, vu que le travail que j'ai effectué dessus consiste essentiellement à avoir 'copié collé' le code de Tale Worlds.
Mais N'IMPORTEZ PAS DE MODULE PYTHON QUI N'EST PAS INCLUS DANS L'EMPy, moins que vous ne sachiez comment faire.
Attention ! Le compilateur interne est encore expérimental !
La fenêtre des messages :
Cette fenêtre vous donne accès aux messages renvoyés par l'EMPy, informations de débogage, chargement des greffons, erreurs diverses, etc.
Le gestionnaire de greffons :
Cette fenêtre vous permet de choisir le ou les greffons utiles au développement de votre mod.
Pour plus de renseignements sur les greffons, voyez la section IV.
vii) Menu 'Version' :
Ce menu vous permet de choisir la version de Mount & Blade sur laquelle vous travaillez, et donc la version du Module System.
La version actuelle de Mount & Blade est visible en dessous des boutons.
Attention ! Lors du changement de la version du jeu, toutes les données sont remises à zéro, sans confirmation de la part de l'utilisateur.
Vous devez ensuite ouvrir un mod existant ou en créer un nouveau.
4) Fenêtres de modules :
Ces informations sont vraies pour la plupart des fenêtres.
- Sur la gauche se trouve la liste des entrées du module. Cliquez sur une, et les champs sur la droite se remplissent.
Un clic droit fait apparaître un menu qui vous permet de déplacer l'élément sélectionné vers le haut ou vers le bas, de le couper, de le copier et de le coller.
Vous pouvez déplacer un élément en maintenant le bouton gauche de la souris appuyé.
- Cliquez sur 'Nouveau' ou 'Ajouter' pour ajouter une entrée au module ou des éléments une entrée.
Une nouvelle entrée d'un module est insérée après celle sélectionnée. Si aucune entrée n'est sélectionnée, la nouvelle est ajoutée en fin de liste.
- En cliquant 'Sauver', vous enregistrez l'entrée dans le module.
- 'Fermer' ferme la fenêtre sans annuler les changements, ni les enregistrer dans le module.
- 'Sauver & fermer' valide les changements en les enregistrant dans le module et ferme la fenêtre.
- 'Supprimer' ou 'Enlever' supprime une entrée ou un de ses éléments.
- S'il y a un éditeur de code (ou plus...), son menu contextuel vous permet de couper, copier et coller du texte, mais aussi d'y faire une recherche.
5) Localisation (langue) :
Il est possible de changer la langue utilisée par l'EMPy en la choisissant une dans le menu 'Configuration', ou le panneau de configuration.
Le changement ne prend effet qu'au démarrage suivant de l'EMPy.
Pour savoir comment écrire une ressource linguistique pour l'EMPy, reportez vous au chapitre III.
6) Menu 'éditer' :
Option 'Recherche' :
Quand vous cliquez sur cette option la fenêtre de recherche apparaît.
Fenêtre de recherche :
Choisissez le ou les modules dans lesquels vous voulez faire la recherche, entrez un ou des mots et cliquez sur 'Rechercher'.
Il peut s'écouler quelques secondes avant que le résultat n'apparaisse.
Fenêtre de résultat :
La liste des résultats est séparée en trois colonnes.
La première donne le module où la recherche a été fructueuse.
La deuxième donne les zones du module.
La troisième indique la ligne/zone exacte.
La syntaxe de la deuxième colonne est un peu dure à saisir.
Exemple:
Une recherche de 'player' dans les icônes de la carte de Native donne ce résultat :
+--------------+--------+--------------------+
| map_icons | 0,0 | player |
| map_icons | 0,2 | player |
| map_icons | 1,0 | player_horseman |
| map_icons | 1,2 | player_horseman |
+--------------+--------+--------------------+
La première ligne nous dit que 'player' a t trouv dans 'map_icons'.
Le 'map_icon' concern est le premier (le premier '0' dans la deuxième colonne) et que la zone concerne de ce 'map_icon' est aussi la première (le deuxième '0', qui correspond son ID).
Le mot 'player' a été également trouvé dans la troisième zone du premier 'map_icon', comme nous l'indique la deuxième ligne.
N'oubliez pas, en scrutant ces chiffres, qu'en informatique, on compte partir de zéro.
Vous pouvez aussi double-cliquer sur une entre pour tout de suite ouvrir la fenêtre de module correspondante.
III - COMPATIBILITÉ WARBAND :
-----------------------------
L'EMPY est compatible avec Warband, c'est dire que l'EMPY peut éditer le Module System de Warband comme ceux de Mount & Blade.
Cependant, il vous faudra tout de même modifier le MS de Warband. Pas de panique, il ne s'agit de modifier que quelques lignes.
- Dans 'module_animations.py', coupez toutes les variables 'amf_' et collez-les dans 'header_animations.py'. Faites de même avec les variables 'attack_...', 'cancel_...', 'defend_...' et 'ready_...'.
- Dans 'module_troops.py', ajoutez une indentation (espaces ou tabulation) devant toutes les lignes commentées des fonctions (les trucs qui commencent par ('def').
IV - ÉCRIRE UNE RESSOURCE LINGUISTIQUE :
----------------------------------------
C'est simple.
Copiez un des fichier du répertoire 'lang' de l'EMPy, et renommez le comme vous le voulez, mais avec l'extension '.lng'
Éditez le fichier (qui est au format texte) et traduisez chaque ligne.
N'oubliez pas de changer le premier mot du fichier, c'est le nom de la langue.
Au démarrage suivant de l'EMPy, vous pourrez voir la nouvelle langue disponible.
V - GREFFONS :
--------------
GREFFONS :
----------
L'implémentation de greffons et d'un gestionnaire de greffons peut aider à éditer des mods dont la structure du Module System a t change.
En effet, l'EMPy peut avoir du mal lire et trier les informations de tels mods, ce qui le conduit 'planter' et renvoyer des messages d'erreur.
Les greffons rassemblent des informations sur ce qui cause des problèmes, et qu'il faut remplacer. C'est d'ailleurs le but de ces greffons.
Un greffon peut avoir n'importe quel nom, mais si vous lui donnez exactement le même nom qu'un mod existant, ce greffon sera chargé automatiquement lorsque vous éditerez le mod.
Le greffon inclus avec cette distribution est prévu pour le mod 'Form Ranks !', et doit être utilisé lorsque vous éditez ce mod, ou un mod l'incluant.
Vous pouvez vous-même rédiger des greffons. Ce sont des fichiers Python, mais dont l'organisation est propre aux greffons de l'EMPy, et dont le nom doit se terminer par '.plg.py'.
Voici le code de 'Form Ranks.plg.py' :
Code:
#PLG V1.0 # Cette signature n'est pas optionnelle. Si elle est
# absente, l'EMPy ignorera ce fichier.
"""Form Ranks !"""
# ^^---------- Ici sont indiqués les noms des mods pour lesquels
# ce greffon doit être chargé. Pour spécifier
# plusieurs noms, séparez les avec des virgules,
# de cette manière : """Form Ranks !,My Own Form
# Ranks !,an other mod""".
# Notez que vous ne devez pas utiliser de virgules
# dans le nom des mods, et que vous ne devez pas
# insérer d'espaces entre les virgules de sépara-
# tion et les noms.
# Le nom et le format des données de ce fichier ne peuvent être
# changés Il doit y avoir un dictionnaire appelé 'data', dont les en-
# trées doivent être des chaînes de caratères, les valeurs pouvant
# être de n'importe quel type.
data = {"concatenate_scripts":"""def concatenate_scripts(block_list):
result = []
for block in block_list:
result += block
return result
""", # ^^-- Vous pouvez mettre du code source...
"formation_arrays":"None", # ou dire l'EMPy de garder la valeur
# originale...
"formation_commands_pl_begin":"None",
"formation_default_key_list":"None",
"formation_keys_list":"None",
"formation_order_functions":"None",
"formation_types":"None",
"slot_formation_array_marks_begin":"None",
"slot_party_formation_ai_switch":"None",
"slot_party_formation_keys_begin":"None",
"sfas_speed_base":"None",
"sfas_speed_unit":"None",
"sfas_charge":"None",
"sfas_fall_back":"None",
"sfas_speed":"None",
"slot_formation_tmp_alg_stat_begin":"None",
"slot_formation_array_marks_begin":"None",
"slot_formation_tmp_clustering":"None",
"debug_point":'$str"debug_point"', # ou spécifier ce dont vous avez
# besoin.
"sftt_formation_stage":"None",
"sftt_array_no_base":"None",
"sfas_density_base":"None",
"sfas_density_unit":"None",
"sfas_engaged":"None",
"sfas_roar":"None",
}
Comme vous l'avez remarqué, quelques mots clés sont utilisés.
"None" signifie que l'EMPy doit conserver la valeur originale du mod, telle qu'indique dans le Module System.
'$str" indique que les données comprises entre les guillemets (") doivent être traitées comme des chaînes de caractères Comme vous pouvez le voir dans le code au dessus, la valeur de l'entrée "debug_point" commence et se termine avec une apostrophe, ne les oubliez pas, ou l'EMPy génèrera des erreurs.
'$float", '$hex", '$int", '$list", '$long" ont les mêmes buts et fonctionnements que '$str".
GESTIONNAIRE DE GREFFONS :
--------------------------
Vous pouvez accéder au gestionnaire de greffons par le menu 'Affichage'.
Vous chargez et déchargez les greffons en les cochant ou les décochant dans cette fenêtre. Les greffons sont chargé/déchargés dans l'ordre de la liste lorsque vous appuyez sur le bouton 'Ok'.
Cela signifie que vous pouvez écraser des valeurs, en créant un nouveau greffon et en y écrivant les changements que vous désirez
En chargeant le greffon suivant ('foo'), le greffon 'Form Ranks !" sera chargé en premier, ensuite, les valeurs spécifiées dans 'foo' écraseront celles de 'Form Ranks !'.
Cela est d au conteneur optionnel 'dependencies', qui contient les noms des greffon charger avant celui-ci.
Si vous décochez 'foo', il sera le seul être déchargé ; 'Form Ranks !' restant activé jusqu'à' ce que vous le décochiez
Code:
#PLG V1.0
# foo.plg.py
""""""
dependencies = ["Form Ranks !"]
data = {"sfas_speed_base":'$int"25"',
"sfas_speed_unit":'$int"30"',
"sfas_charge":'$int"100",
"sfas_fall_back":'$int"10"',
"sfas_speed":'$int"50"',
}
Les greffons ne peuvent être chargés en même temps qu'un fichier PPF. Il vous faut ouvrir le Module System d'un mod existant pour pouvoir utiliser un greffon.
La gestion de greffons de l'EMPy a été principalement développée pour pouvoir éditer le mod 'Form Ranks !' et ses dérivés.
VI - PROBLMES CONNUS :
-----------------------
- Les composants des fenêtres ne sont pas tous ordonnés, la navigation au clavier est particulière.
- Certaines fenêtres ne sont pas très belles. Elles n'ont pas encore été (ré-)ordonnées.
- Lors de l'édition de mods Warband, les flags 'itp_type' et 'itp_attach' des objets (items) ne sont pas initialisés correctement.
Pour palier à cela, créez d'abord un nouveau projet pour M&B 1.01x, puis ouvrez (ou) créez le mod pour Warband. L'initialisation est alors faite.
- Quand vous double-cliquez sur une ligne dans la liste de résultats de recherche, la fenêtre du module apparaît, mais tous ses composants sont désactivés
Il est impossible d'éditer quoi que soit.
Pour remédier au problème, double-cliquez de nouveau sur la ligne de résultat ou choisissez une entrée dans liste de la fenêtre du module.
- Cette application tant une version bêta, il est possible qu'il y ait d'autres bugs/problèmes que je n'ai pas trouvés Les rapports d'erreurs sont les bienvenus !
VII - QUOI DE NEUF DEPUIS LA VERSION 0.9.3 ?
--------------------------------------------
- Fonctions de recherches implémentés.
- Éléments des listes déplaçables.
- Menu contextuel pour les listes.
- Menu contextuel pour les éditeurs de code.
- Il n'est plus nécessaire d'installer Python pour compiler les mods.
- Version 0.9.4a : correction de bugs de l'interface graphique.
- La plus part des bugs de l'interface sont corrigés.
- Version 0.9.41a : implémentation du gestionnaire de greffons (plugins).
- Version 0.9.42 (non publiée): implémentation du compilateur interne.
- Dans la fenêtre des map icons, il est maintenant possible de basculer des coordonnées vers un trigger et vice versa.
- L'aspect de toutes le fenêtres de modules ont été corrigés.
- L'association des fichier .PPF n'est plus automatique lors de l'installation, mais laisse l'appréciation de l'utilisateur.
- Version 0.9.5 : compatibilité avec Warband.
- Corrections au code de l'interface utilisateur.
- Affichage des changement de l'EMPy selon la langue.
- Affichage du lisez-moi selon la langue.
VIII - LIMITATIONS :
--------------------
- Les commentaires du Modules System ne sont pas pris en compte lors du chargement des mods.
Il sont purement et simplement retirés, et ne sont donc pas exports.
! ! Attention ! ! Si vous ajoutez des commentaires dans les blocs d'opération via l'EMPy, vous aurez des erreurs la compilation du mod !
Pour pallier cela, il faut que je révise (encore) les fonction d'import/export.
- Toutes les versions du menu 'Version' son théoriquement importables et éditables dans l'EMPy. Cependant, seules les versions les plus récentes du
Module System sont exportables (0.960, 1.010, .1011) ; cela étant dû aux changements du Module System entre les versions.
- Si des listes ou des fonctions sont déclares sur plusieurs lignes dans 'module_constants.py', elles peuvent générer des erreurs dans la fenêtre d'édition des constantes.
Mais elles sont correctement récrites dans le fichier lors de l'export/sauvegarde.
Il convient donc de ne pas les éditer via l'EMPy, mais directement dans le Module System.
IX - RAPPOTER UN (DES) BUG(S)/PROBLME(S) :
-------------------------------------------
Si vous voulez signaler un bug ou un problème, faites-le dans le sujet dédié sur le site de Tale Worlds (www.forums.taleworlds.com), sujet 'PyME' de la section 'Unofficial Editing Tools' de 'The Forge' (en anglais) ou sujet 'EMPy' de la section francophone.
Avant de le faire, veillez préparer un rapport le plus complet possible :
- Si un fichier 'pyme.exe.log' est cr dans le répertoire d'installation de l'EMPy, copiez le contenu de ce fichier dans votre message.
Si un tel fichier est créé, l'EMPy vous en averti lorsque vous en sortez.
- Précisez ce que vous avez fait avec l'EMPy (ouverture ou création de modification, ajout/suppression d'une entrée dans une liste, etc.)
- Précisez le nom de la modification si son Module System peut être obtenu.
- Si vous avez ajout des fonctions ou des classes au Module System, merci de le préciser aussi.
Les messages du genre "ça ne marche pas, pourquoi ?", sans autres explications, seront ignorés (car je n'ai pas, à l'heure actuelle, le pouvoir de les supprimer) ; de même pour les messages où il apparat que l'auteur n'a pas lu ce fichier.
X - LIMITES DE RESPONSABILITS :
--------------------------------
Cette application est une version bêta et est distribue 'telle-que', vous l'utilisez vos risques et périls.
Les auteurs ne peuvent en aucun cas être tenus responsable d'éventuels dommages physiques, informatiques, pertes
de donnes et autres effets indésirables occasionnés par l'utilisation de cette application.
XI - LICENSE :
--------------
Cette application a été écrite en Python et compile avec py2exe. Elle inclut des modules de base de Python et ces autres :
- wx,
- PythonCard,
- PIL,
- ConfigParser,
qui sont sous GNU-GPL.
Cette application est la propriété de ses auteurs. Elle est distribue gratuitement, espérant qu'elle puisse être utile.
Vous pouvez utiliser cette application dans un but personnel seulement.
Vous ne pouvez pas vendre ou distribuer contre argent le travail fait avec cette application.
Vous ne pouvez pas vendre cette application ou la distribuer contre argent.
Si vous diffusez une modification pour laquelle l'EMPy a t utilisé à quelque niveau que ce soit, indiquez-le dans vos crédits.
XII - CONTACTS :
----------------
L'auteur original est Fujiwara. Vous pouvez le contacter sur les forums de TalesWorld (www.forums.taleworlds.com).
L'auteur de la version actuelle est D.C.-G.. Contact sur les forums de TaleWorlds (www.forums.talesworlds.com, pseudo André de Cuyne).
Le traducteur pour la version espagnole est Megale91. Contact sur les forums de TalesWorld (www.forums.talesworld.com).
Pour vous tenir au courant, vous pouvez visiter la page anglophone (www.forums.taleworlds.com, section 'The Forge', sous-section 'Unofficial Editing Tools', sujet 'PyME') ou la page francophone (www.forums.talesworld.com, forum francophone, sujet 'EMPy').
Quelques images...

La fenêtre principale est toujours la même...

La fenêtre des animations permet de les modifier.
Les boutons 'human' et 'horse' sont bloqués pour l'instant (càd qu'on ne peut pas changer une animation 'human' en 'horse' et vice-versa).
Il seront débloqués dès que j'aurais la confirmation (sûre) que l'openBRF de mtarini peut intégrer de nouvelles animation dans M&B.
(Ils seront alors remplacés par une liste déroulante, et certains autres élément permettant d'intégrer de nouvelles animations.)

Les menus du jeu.
Les boutons portant une flèche (<>V^) permettent d'étendre/cacher les éléments de la fenêtre pour mieux éditer les blocs d'opérations.

L'interface de recherche.

Les résultats de recherche.
Les deux fenêtres n'en sont qu'une seule.
Lorsque vous ouvrez la première (par le biais du menu 'Editer'), vous entrez la chaîne à trouver dans le champ correspondant.
Après quelques secondes, la fenêtre se modifie pour donner la deuxième image.
Un simple double-clic sur l'une des lignes de la fenêtre des résultats ouvre la fenêtre du module correspondant.

La fenêtre des objets
Elle est 'retaillable' (comme la plupart des autres fenêtres), mais les boutons permettant d'élargir l'éditeur de code ne sont pas encore implémentés.
La disposition des éléments de la fenêtres pour obtenir une taille minimale a été assez complexe, je vous laisse imaginer l'imbroglio...

La fenêtre des unités.
On peu voir le menu contextuel... Qui est d'ailleurs disponible pour toutes les fenêtres (sauf la fenêtre principale).

Le menu contextuel permet diverses actions... Disponible pour tous les éditeurs de code de l'EMPy.