1. Introduction
Pour commencer, si vous lisez ceci, vous savez probablement déjà ce qu'est le scripting. Dans le cas où vous ne le sauriez pas, c'est ce qui gère toutes les interactions dans les jeux Pokémon. Tout ce qui réagit quand vous pressez A : cela va de la pancarte qui vous donne une info inutile au Centre Pokémon, en passant par les Pokéballs qui vous donnent des objets. En gros, c'est quasi indispensable dans un hack. Les seuls cas où on peut s'en passer, c'est quand on modifie juste le niveau des Pokémon sauvages et des dresseurs, ou qu'on change les zones d'apparition sans toucher au reste.
2. Installer XSE
Pour scripter, il vous faut un programme appelé XSE. Dans ce tutoriel, je vais utiliser la version 1.1.1 que vous trouverez facilement sur Google. Je suppose ici que vous avez déjà la dernière version d'Advance Map (1.92). Après l'avoir installé, ouvrez A-Map, allez dans le menu " Préférences " et choisissez " Sélectionner l'éditeur de scripts " puis, avec l'explorateur, sélectionnez XSE. Vous êtes prêts à scripter.
3. Les bases
Avant tout, le scripting, c'est comme de la programmation : on écrit un " programme " qui fera quelque chose de précis. C'est une succession de commandes. Pour commencer par la base, où doit-on mettre le script pour qu'il fonctionne ? Dans un personnage ! Si vous ne savez pas ajouter un personnage, référez-vous aux guides correspondants.
A) La msgbox
C'est la commande la plus basique. Comme son nom l'indique, elle ouvre une boîte dans laquelle se trouve un message. Voici le script le plus facile qu'on puisse faire avec une msgbox :
#dynamic 0x800000
#org @start
msgbox @message 0x2
end
Comme c'est votre premier script, il y a pas mal de trucs à apprendre sur ce tout petit code. Pour commencer :
#dynamic 0x800000
Ça, c'est ce qui dit à XSE à partir de quel endroit il doit commencer à écrire les commandes dans la ROM. Pour éviter des problèmes, il faut chercher un offset libre. Un offset, c'est en quelque sorte un point de repère qu'on trouve dans la ROM, mais je reviendrai plus tard sur la méthode pour bien trouver un bon offset. Ensuite :
#org @start
#org est ce qui dit qu'on a affaire à quelque chose qui se trouve à un autre endroit de la mémoire. @start, c'est l'offset dynamique. Quand vous ouvrirez un script existant, il n'y aura jamais ce genre de chose, mais un offset précis. C'est un repère pour XSE. Pour vous éviter de devoir chercher tous les offsets manuellement (bien que ce soit possible), le programme met à votre disposition un système d'offset dynamique. La commande vue plus tôt sert à dire à XSE que notre script va contenir ce genre d'offsets et surtout à lui indiquer à partir d'où il doit écrire les commandes dans la ROM. En gros, c'est très technique, mais on peut l'utiliser sans savoir exactement comment cela fonctionne. Venons-en au fait principal :
msgbox @message 0x2
C'est la commande qui permet d'ouvrir une boîte de message. Elle a deux paramètres : un offset (l'endroit où le jeu va aller lire le texte à afficher) et le type de message (ici 0x2, ce qui correspond à un message normal). Référez-vous à la section " Types de messages " pour plus de précisions. Enfin :
end
C'est ce qui dit au jeu que le script est fini, pour ne pas qu'il continue à interpréter la suite des données comme du script.
Bon maintenant, comment personnaliser son message ? Eh bien, il faut l'écrire dans la ROM. C'est comme pour le début du script, sauf que comme on a déjà mis la commande #dynamic, on n'a plus besoin de la remettre.
#org @message
= Votre texte

