L'Extend Editor !
{Utilitaire RPG Maker VX Ace}
Un outil créé par l'Event Extender pour l'Event Extender !
Très pratique pour faciliter la génération de commandes de l'Event Extender et nous éviter de retenir leur sémantique.
- Nuki, Joke, Hiino, Grim, 03/06/2013 à 23h21.


L'Extend Editor ! - Nuki, Joke, Hiino, Grim


{Utilitaire RPG Maker VX Ace}


Oyez oyez, ici Nuki et Joke qui présentent un petit utilitaire écrit par Grim, Hiino et nous-mêmes ! Le premier Bilou Tool pour simplifier l'utilisation de l'Event Extender!


icone Introduction



L'Event Extender est un superbe script (réalisé par Grim) qui permet d'étendre naturellement les commandes disponibles pour l'Event Making. En tant qu'utilisateur fréquent de ce script, je le trouve très pratique, malheureusement il faut trop souvent se référer à la documentation car il possède vraiment trop de commandes pour toutes les mémoriser. Nous avons donc créé un petit logiciel qui nous permettra de générer des commandes pour l'Event Extender.
Dans un premier temps nous verrons comme l'installer, ensuite nous verrons comment l'utiliser et la dernière partie sera réservée au scripteur, où nous expliquerons comment permettre à leurs commandes personnalisées de s'intégrer dans l'Extend Editor !
Bonne lecture !

Pour fonctionner, l'Extend Editor est obligé d'utiliser une version supérieure (ou égale) à la version 4.5.4, donc rendez-vous ici pour récupérer la dernière version ! Il faut aussi impérativement que la boucle principale du jeu (qui s'appelle, dans l'éditeur de script, Main) s'appelle bien "Main" car il ne faudrait pas que l'Extend Editor la charge, sinon le jeu ne se lancerait jamais =D

Smiley


icone Téléchargement


Et oui, comme il s'agit d'un logiciel, il faut le télécharger ! Rassurez-vous, le fichier est vraiment léger (et au format .zip, donc relativement générique).

Téléchargement :
Taille du fichier :
Auteur :
Informations :

EEditor.zip
1.7 MO
Grim, Hiino, Joke, Nuki
Décompressez le fichier zip dans le
répertoire d' un projet qui utilise
l'Event Extender


icone Installation



Lorsque vous aurez téléchargé le logiciel, vous devrez le décompresser dans le répertoire d'un projet utilisant l'Event Extender (>= 4.5.4) car l'Extend Editor lira ses scripts (ce qui permettra aux scripteurs d'ajouter des commandes à l'Event Extender sans devoir "recompiler" le logiciel pour offrir le support de l'Extend Editor à ces commandes), il suffit de décompresser le contenu du zip dans le répertoire du projet.



En décompressant l'archive, deux fichiers feront leur apparition dans le répertoire du projet. Un répertoire EEditor et un exécutable (avec pour icône une superbe petite spirale verte).



Vous pouvez maintenant supprimer le fichier zip (surligné de rouge) ou le conserver en admettant que vous l'utiliserez pour d'autres projets (ce que j'espère Smiley).
A ce stade-ci, vous pouvez lancer l'Extend Editor en cliquant sur l'exécutable EEditor.exe.

L'intérêt de l'installation dans un répertoire de projet est qu'il est possible de lire les commandes installées, rien de plus, donc si vous avez deux projets qui utilisent l'Event Extender, vous n'êtes pas obligé d'avoir un clone de l'Extend Editor. Si vos deux versions sont identiques, rien ne vous empêche de n'utiliser qu'une seule version de l'éditeur.

Smiley
L'Extend Editor est dorénavant installé, nous allons voir comment nous en servir dans les rubriques suivantes. Rassurez-vous, tout est aussi facile que cette partie, et oui, c'est tout de même pour faciliter la tâche des gens que nous avons écrit cet utilitaire Smiley.

icone Utiliser l'Extend Editor


Maintenant que l'utilitaire est installé, nous allons voir comment nous en servir pour créer des commandes. Je vous invite à lancer l'exécutable EEditor.exe. Pour les ordinateurs à faible configuration, il est possible que quelques secondes soient nécessaires au lancement de l'application, rassurez-vous, ce n'est pas que le programme plante (du moins je l'espère).

La sélection de commande


A l'ouverture du logiciel vous devriez vous retrouver face à une fenêtre qui récapitule toutes les commandes installées dans votre Event Extender. Voici "grosso modo" à quoi devrait ressembler cette fenêtre:



icone
Liste des commandes :
Dans cette fenêtre se trouve l'intégralité des commandes installées dans l'EE. Il est possible de changer le curseur au moyen des flèches directionnelles du clavier.


icone
Description de la commande :
Cette fenêtre affiche une description sommaire de la commande sur laquelle se trouve le curseur. Dans le cas où la description est plus longue que ce que la fenêtre permet d'afficher, il y a une petite scrollbar latérale, manipulable à la souris.


Les commandes sont ordonnées par ordre alphabétique, car c'est, selon nous, le genre qui permet de naturellement grouper les commandes par type et qu'il devient très facile de retrouver une commande.

Smiley


Cette présentation permet déjà de survoler l'intégralité des commandes installées et d'offrir un petit aide-mémoire. Cependant, nous allons voir que ce logiciel est vraiment plus qu'un simple pense-bête. Je vous invite à sélectionner une commande de votre choix et à cliquer sur [Enter] pour vous rendre dans la procédure de création d'une commande.

Générer une commande


Une fois que vous avez choisi une commande, et que vous l'avez validé, le logiciel vous prend par la main pour vous montrer un nouveau paysage tout plein de joyeusetés. C'est ici que nous allons donner des valeurs à notre commande (ses arguments) et que nous allons la générer. Nous avons choisi la commande collide? comme exemple, attention les yeux :




Ouille, ça fait beaucoup d'éléments ! Rassurez-vous, nous allons tâcher de les expliquer de la manière la plus claire possible.

Smiley

icone
Description de la commande :
Comme à l'écran précédent, nous avons mis un rappel de la description de la commande.

icone
Formaté ou Libre :
Ce bouton qui est propre à chaque argument de la commande permet de définir quel champ (3 ou 4, nous en expliquerons la nuances juste en dessous) va être choisi pour générer la commande. Dans le premier argument (ID 1), c'est le style "formaté" qui a été choisi, dans le second (ID 2) c'est le champ libre qui a été choisi.
Un simple clic sur ce bouton inverse le champ choisi (rassurez-vous, ce que vous aurez écrit dans l'un y restera et en re-cliquant sur le bouton vous n'aurez pas perdu votre contenu saisi !).

icone
Le champ de texte "formaté" :
Ce champ est régi par le script, donc il a des informations sur le type de données qu'il attend. Il ne sera donc pas possible d'écrire autre chose que ce qui est demandé. Dans cet exemple, la commande attend deux arguments, deux IDs d'évènements, donc uniquement des nombres entiers. Il ne sera donc possible de n'écrire que des entiers. Si la commande avait demandé des touches de clavier, il n'aurait été possible d'y écrire que des touches de clavier. C'est donc le champ de texte minimaliste qui force l'utilisateur à entrer des valeurs "potentiellement correctes".

icone
Le champ de texte "libre" :
Contrairement au champ de texte formaté, il est ici possible d'écrire ce que l'on veut, on peut donc écrire une commande, une variable (au moyen de V[x] ou SV[x,y,z] etc.), ce champ est présent pour les commandes qui prendraient directement une autre commande en argument. Il suffit de choisir "libre" plutôt que "formaté", se référer au point 2. Dans l'exemple, ID 2 prend une variable en argument, la variable 2.
Pour rappel il suffit de cliquer sur un champ texte pour l'activer Smiley

icone
Le champ de retour :
Certaines commandes renvoient des valeurs. Par exemple la commande collide? renvoie true ou false en fonction de si les deux caractères référencés par leurs IDs sont en collision. Il est donc possible de lier le résultat dans une variable (ou une variable locale, ou un interrupteur ou encore un interrupteur local ou encore une variable Ruby). Il suffit de l'écrire dans ce champ. Ici la commande "générer" placera son résultat dans la variable 1. Il arrive que certaines fonctions ne retournent rien, donc ce champ ne sera pas présent. Si vous ne voulez pas lier le résultat d'une commande à une variable (ou autre) il suffit de vider le champ de retour.

icone
Créer Texte :
Au clic de la souris, ce bouton générera, dans le presse-papier, le texte qu'il faut placer dans un appel script pour exécuter la commande. Par exemple, en appuyant sur ce bouton, vous aurez exactement le même résultat que si vous aviez copié ceci :

Code (Ruby):
  1. V[1] = collide?(538, V[2])

icone
Créer Commande :
Au clic de la souris, ce bouton générera, dans le presse-papier, la commande évènementielle. Il suffit donc de le coller dans un évènement. Un exemple avec cette commande, voici ce que vous obtiendrez en collant ce que vous aurez généré avec le bouton "Créer Commande" . C'est sans doute l'élément principal de cet utilitaire !
(On ne se posera pas de question sur la probabilité d'avoir un évènement d'ID 538... Smiley)


Comme vous pouvez le voir, générer des commandes est vraiment facile et relativement flexible ! Il existe des cas où les commandes ne prennent pas d'arguments, où elles ne retournent rien, l'interface à été pensée pour s'adapter à tout ça. Dans certains cas, comme l'utilisation des champs de textes ou des zones, les commandes prennent en argument la référence d'une zone ou d'un champ de texte, pour ça, seul le champ de texte est disponible, pour n'avoir qu'à entrer la variable où est stockée la zone.
Comme pour les zones de description, il est possible d'utiliser la scrollbar si le contenu est trop grand.

icone Ajouter ses propres commandes


Si l'Extend Editor devait être recompilé pour chaque version de l'Event Extender et à chaque ajout de commande, ce serait une catastrophe. Donc l'éditeur va lire les scripts et va en extraire les données nécessaire à la génération d'interface pour construire des commandes.
Nous allons donc voir comment, en tant que scripteur, on peut créer une description de commande pour qu'une commande personnalisée soit prise en charge dans l'Extend Editor.

Cette partie concerne les joyeux copains champêtres qui font un peu des scripts !

Rappel sur comment créer sa propre commande


Pour rappel, la création d'une commande de l'Event Extender consiste simplement à étendre le module Command et y ajouter une méthode ! Par exemple, si je veux créer une commande qui s'appelle bilou et qui affichera une "message box" avec écrit dedans "bilou" Smiley

Code (Ruby):
  1. # Extension du module Command
  2. module Command
  3. # Intégration de la commande bilou
  4. def bilou
  5. msgbox("Bilouuuu")
  6. end
  7. end


Donc maintenant, notre Event Extender possède une commande en plus (qui ne sert vraiment à rien AHA). Cependant, l'Extend Editor ne possède pas assez d'information pour composer l'interface propre à la commande. Il faudra donc lui greffer des informations.

Décrire une commande


La description d'une commande passe par l'extension d'un autre module, Command_Description et il faudra y implémenter une méthode du nom de notre nouvelle commande qui retournera un hash contenant des informations.

Code (Ruby):
  1. # Déscription de la commande Bilou
  2. module Command_Description
  3. def bilou
  4. {desc: "Commande inutile qui affiche Bilou"}
  5. end
  6. end


Cette commande ne prend aucun argument et ne retourne rien, elle n'est donc pas très intéressante à étudier, alors nous allons prendre un autre exemple, la commande random. Pour rappel, cette commande prend deux entiers en arguments et retourne un nombre aléatoire (ne nous arrêtons pas sur le débat philosophique concernant l'existence ou nom de l'aléatoire) compris entre ces deux nombres, voici son implémentation :

Code (Ruby):
  1. module Command
  2. #--------------------------------------------------------------------------
  3. # * Get a random number
  4. #--------------------------------------------------------------------------
  5. def random(x, y); x + rand(y-x); end
  6. end


Voyons maintenant de quelle manière sera décrite cette méthode :

Code (Ruby):
  1. # Déscription de la commande Bilou
  2. module Command_Description
  3. def random
  4. {description:"Renvoie un nombre aléatoire compris entre Min et Max",
  5. args:[
  6. {name:"Min", type: :int},
  7. {name:"Max", type: :int}
  8. ],
  9. returnable: true}
  10. end
  11. end


Je vais utiliser un vocabulaire de programmeur car cette rubrique s'adresse principalement (pour ne pas dire uniquement) aux programmeurs. La commande renvoie un hash qui doit avoir la clé (impérativement) :desc (j'utilise la syntaxe raccourcie des hash mais {desc: "lol"} est identique à {:desc => "lol"}), la clé :args s'occupera des arguments, et aura pour valeur une liste de hash possédant les clés :name (qui correspond au nom de l'argument) et :type (le type de l'argument : les valeurs admises sont :int, :float, :bool, :enum (si Enum est choisi, il faut ajouter une clé :enum qui a une liste de symboles qui sont les valeurs énumérables), et :none qui bloquera le champ de texte formaté pour ne laisser qu'un champ de texte libre). La dernière clé est :returnable qui peut être à true ou à false qui indique si la commande retourne quelque chose ou non, à noter que si une commande ne retourne rien, la clé :returnable peut être occultée, de même pour la clé :args.
Si cette explication peut vous paraître floue, n'hésitez pas à vous inspirer du code de l'Event Extender qui décrit les commandes standard au moyen de cette syntaxe.


icone Conclusion !



C'en est fini de la présentation de l'Extend Editor ! J'espère de tout cœur que cet utilitaire sera utile et qu'il démystifiera un peu l'Event Extender qui est vraiment un outil pratique pour aller plus loin que ce que permettent les commandes Event-Making standard.
Nous sommes ouverts à des critiques, idées d'améliorations, en effet, cet utilitaire sera amené à changer !

Bonne utilisation !

Smiley

Index

Tags

Annonces
Bilou Concept
BilouCorp
Découvertes
Event Extender
Jeux
RPG Maker
Script
Tutoriel

Auteurs

2cri
Grim
Hiino
Joke
Nuki
PypeBros
Raho
S4suk3

Suivez nous
Rss

Poster un commentaire



Commentaires

Racc00n
Vous êtes des bg les gars ! Posté le : 17/07/2015 à 20h43
kal
fonctionne pas
Posté le : 13/05/2014 à 00h12
Nuki
Work in progress ;) Posté le : 21/02/2014 à 09h24
LightNox
Dommage Grim vous êtes une équipe du tonnerre, et votre travail et tout simplement superbe, j'aurais vraiment aimer voir naître l'EE5 un jour, j'espère qu'il n'est mis que temporairement de côté ^^.
Posté le : 11/02/2014 à 23h24
Grim
Tu utilises une version de RM Anglaise ?
Lightnonx > On y travail plus trop :/ Posté le : 05/02/2014 à 19h28
Blitz
J'ai un soucis avec l'extend editor, j'obtient l'erreur :

Script 'Main' line 7: Encoding::CompatibiltyError occured.

incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string).

Serait-il possible que l'Extend Editor soit incompatible avec certains scripts ?
Posté le : 05/02/2014 à 15h26
LightNox
Salut salut ^^
Alors des nouvelles de l'EE 5 ?
Posté le : 26/01/2014 à 00h54
Nuki
Peux-tu coller l'appel de script que tu utilises ici stp ? Merci. Posté le : 25/11/2013 à 18h38
Exo
J'ai un souci avec "si le héro est dans un cercle", ça met problème Scripte "Game_Interpreter" ligne 1411 :s Posté le : 21/11/2013 à 23h52
Joke
De bonnes choses ! ;D Posté le : 17/08/2013 à 00h19
LightNox
[Nuki à dit : Merci pour ton soutient, on a plusieurs chose sur le feu, on vous en fera part très bientôt ! Restez attentifs ! ]

Cela fait exactement 1 mois et 4 jours x)
Quelle sont ses choses sur le feu alors ^^ ? Posté le : 08/08/2013 à 01h19
Nuki
Merci pour ton soutient, on a plusieurs chose sur le feu, on vous en fera part très bientôt ! Restez attentifs ! Posté le : 04/07/2013 à 13h21
Raph
Bonjour ! Petit message pour vous encourager à continuer de partager vos connaissances et vos créations. Je suis un peu déçu du manque d'activité ces temps-ci, même si je peux comprendre que vous soyez occupé. J'espère que ce message vous encouragera à créer des articles aussi excellents que les derniers ! Posté le : 03/07/2013 à 12h43
Cryde
Yeah !

Super ! Bravo ! Posté le : 19/06/2013 à 09h15
???
Désolé du double post mais je viens d'avoir une autre idée pour L'Extend Editor ^^
vous pourriez rajouter une commande pour créer une condition comme sous rpg maker vx ace se serait pas mal :)
Merci de m'avoir lu :p Posté le : 04/06/2013 à 20h44
Lightnox
Bonjour bonjour ^^
J'ai essayer de rajouter une commande a l'Extend Editor pour pouvoir afficher les facesets des héros de l'équipe et je n'y suis pas arriver donc pourrais tu me donner les commandes qui ferais afficher un face d'un héro en fonction de son ID, qui définirais la position X du faceset sur l'ecran et celle qui définirais la position Y du faceset sur l'écran s'il te plaît x)
En tout cas je viens de faire un CMS avec l'EE est c'est vraiment génial vraiment bravo ^^ Posté le : 04/06/2013 à 20h21
Grim
Je me suis permis d'ajouter le support du copy/paste, merci pour votre travail les gars !
N'hésitez donc pas à mettre votre EE et votre ExtendEditor à jour ! Vous pouvez maintenant coller des commandes générées dans les champs "libres" :) Posté le : 04/06/2013 à 14h58
Joke
Moi-même je suis très très content, gros débile que je suis ça m'aurait fait chier d'éplucher la doc à chaque fois que je veux faire un truc, là c'est direct, et vraiment rapide ! <3

Merci à Grim pour avoir initié cette idée fabuleuse et inédite dans l'histoire du script ! =D Ainsi qu'à Nuki qui a beaucoup travaillé dessus et appliqué mes SUPERBES conseils !

Il est possible que cet outil évolue alors n'hésitez pas à nous retourner vos avis et suggestions ! Posté le : 03/06/2013 à 17h51
Zangther
Superbe outil. L'on peut désormais utiliser l'Event Extender avec facilité et aisance lorsque l'on n'est pas à l'aise avec les appels de script. Merci Nuki, Grim et Joke pour ces fantastiques biloutils. Posté le : 03/06/2013 à 17h39
Nuki
Dans ton press papier... Et tu peux l'a coller dans un Event RM. Posté le : 02/06/2013 à 10h03
Lightnox
j'ai un petit problème sur Extend Editor, quand je clique sur créer la commande il me fait ça : Command push in Clipboard

Ou est passer la commande ? Posté le : 02/06/2013 à 09h10