Vous en avez marre de devoir chercher à droite et à gauche pour apprendre à scripter ? Les tutoriels que vous trouvez sont périmé ? Ils ne marchent plus sur les versions actuelles ? Cet apprentissage est là pour vous, vous deviendrez un vrai pro' sur XSE 1.1.1 ! Commençons sans plus tarder.
Vous aurez besoin de matériel, comme à chaque fois :
-XSE 1.1.1, téléchargeable ici
-Une rom GBA
-Advance Map, téléchargeable ici
-Un fusil ou une corde (niark)
Bon, déjà, assurez-vous que XSE 1.1.1 soit assigné à Advance Map. C'est bon ? Let's go !
On va commencer par quelquechose de simple, très simple, où je vais en profiter pour vous expliquer en détail la fonction de chaque commande. On va apprendre à faire un "Message normal". Quand vous approcherez du personnage, et que vous parlerez avec lui en appuyant sur la touche A, il vous dira le message que vous avez scripté. Voici un exemple de "Message normal" :
'---------------
#org 0x6C54B2
msgbox 0x86D59B3 MSG_FACE '"Voici un mess..."
end
'---------
'Strings
'---------
#org 0x6D59B3
= Voici un message. Cool!
On va décortiquer le script.On va décortiquer le script.
'---------------
#org 0x6C54B2
Tout script commence par cette commande. C'est la base absolue. #org 0x[offset] signifie que votre script est entré dans la mémoire, il est assigné à un offset de la rom. C'est un peu le point de sauvegarde.Tout script commence par cette commande. C'est la base absolue. #org 0x[offset] signifie que votre script est entré dans la mémoire, il est assigné à un offset de la rom. C'est un peu le point de sauvegarde.
msgbox 0x8[autreoffset] MSG_FACE '""
"msgbox" signifie que votre message est dans une boîte de dialogue. Un dialogue commence toujours par cette commande, après le #org et compagnie. 0x8[autreoffset] est un appel au message. Votre message sera situé plus bas dans votre script, et assigné à un offset. On inscrit donc cet offset ici, mais aussi plus bas. MSG_FACE est une commande qui sert à ce que le personnage à qui vous parler vous regarde, et ne tourne pas la tête pendant le message. '"" n'est pas une commande à proprement parlé, mais il faut la mettre quand même."msgbox" signifie que votre message est dans une boîte de dialogue. Un dialogue commence toujours par cette commande, après le #org et compagnie. 0x8[autreoffset] est un appel au message. Votre message sera situé plus bas dans votre script, et assigné à un offset. On inscrit donc cet offset ici, mais aussi plus bas. MSG_FACE est une commande qui sert à ce que le personnage à qui vous parler vous regarde, et ne tourne pas la tête pendant le message. '"" n'est pas une commande à proprement parlé, mais il faut la mettre quand même.Ca vous indique que vous entrez dans une zone interdite. Nan, je rigole Ca vous indique que vous entrez dans une zone interdite. Nan, je rigole En fait, vous entrez dans la zone où le message sera écrit. En fait, vous entrez dans la zone où le message sera écrit.On revient à ce que je disait tout à l'heure. c'est le même offset qui est après msgbox 0x8.On revient à ce que je disait tout à l'heure. c'est le même offset qui est après msgbox 0x8.Ici, vous inscrivez votre message. Attention tout de même, je vous conseille d'utiliser l'ajusteur de texte (Outil > Ajusteur de texte) disponible dans XSE pour inscrire un texte long.Ici, vous inscrivez votre message. Attention tout de même, je vous conseille d'utiliser l'ajusteur de texte (OutilrnAjusteur de texte) disponible dans XSE pour inscrire un texte long.Vous savez maintenant inscrire un nouveau message. Pour compiler votre script, reportez-vous au tuto d'initiation si vous ne savez pas comment faire. Il est possible qu'après avoir compiler, votre script bug. Vérifiez toujours. Dans ce cas, changer simplement l'offset. Je vous recommande également de faire vos scripts sous bloc-note, et de les copier/coller dans les script des personnages.Vous savez maintenant inscrire un nouveau message. Pour compiler votre script, reportez-vous au tuto d'initiation si vous ne savez pas comment faire. Il est possible qu'après avoir compiler, votre script bug. Vérifiez toujours. Dans ce cas, changer simplement l'offset. Je vous recommande également de faire vos scripts sous bloc-note, et de les copier/coller dans les script des personnages.Maintenant, on va apprendre à faire un message de pancarte. Ce script sera à rentrer dans un évent "Pancarte". Commençons sans tarder.Maintenant, on va apprendre à faire un message de pancarte. Ce script sera à rentrer dans un évent "Pancarte". Commençons sans tarder.Le début, c'est du classique. Pas besoin de réxpliquer.Le début, c'est du classique. Pas besoin de réxpliquer.C'est pareil que tout à l'heure, sauf le type de message : MSG_SIGN. A utiliser pour les pancartes.C'est pareil que tout à l'heure, sauf le type de message : MSG_SIGN. A utiliser pour les pancartes.Exactement pareil que tout à l'heure.Exactement pareil que tout à l'heure.Vous pouvez donc constater que c'est très similaire, les script de message normal et message de pancarte se ressemblent beaucoup. Rien à ajouter Vous pouvez donc constater que c'est très similaire, les script de message normal et message de pancarte se ressemblent beaucoup. Rien à ajouter Même topo que tout à l'heure, faites vos scripts sous bloc-notes et c/c. Vous savez maintenant faire un nouveau script de message de pancarte. GG !Même topo que tout à l'heure, faites vos scripts sous bloc-notes et c/c. Vous savez maintenant faire un nouveau script de message de pancarte. GG !On entre maintenant dans le compliqué. Mais c'est beaucoup plus fun, question résultat ! On va faire un "applymovement". Kézako ? C'est un script qui a pour fonction de faire déplacer un personnage, quand vous lui "parlez", ou que vous marchez sur un script (vert). C'est un peu plus complexe que les deux script du dessus :On entre maintenant dans le compliqué. Mais c'est beaucoup plus fun, question résultat ! On va faire un "applymovement". Kézako ? C'est un script qui a pour fonction de faire déplacer un personnage, quand vous lui "parlez", ou que vous marchez sur un script (vert). C'est un peu plus complexe que les deux script du dessus :Cet "applymovement" va faire en sorte que quand vous parlez au personnage qui contient ce script, un point d'exclamation va appraître sur sa tête. Mais, voyons ça à la loupe Cet "applymovement" va faire en sorte que quand vous parlez au personnage qui contient ce script, un point d'exclamation va appraître sur sa tête. Mais, voyons ça à la loupe Toujours du classique. Toujours du classique. "lock", ou "lockall". Cette fonction permet que tout soit bloquer. A mettre à chaque applymovement, pour que la map soit figée. Très important, donc."lock", ou "lockall". Cette fonction permet que tout soit bloquer. A mettre à chaque applymovement, pour que la map soit figée. Très important, donc."applymovement", vous vous en doutez, c'est la fonction qui fait débuter l'applymovement. 0x1, c'est l'ID du personnage. En effet, chaque personnage à un numéro. Pour trouver ce numéro, regardez sur la droite de la fenêtre d'Advance map (quand votre personnage est selectionné), dans "Numéro du Personnage". Copiez/collez le chiffre après 0x, "1" pour ma part. Enfin, 0x8[autreoffset], c'est la commande d'appel aux mouvements à exécuter."applymovement", vous vous en doutez, c'est la fonction qui fait débuter l'applymovement. 0x1, c'est l'ID du personnage. En effet, chaque personnage à un numéro. Pour trouver ce numéro, regardez sur la droite de la fenêtre d'Advance map (quand votre personnage est selectionné), dans "Numéro du Personnage". Copiez/collez le chiffre après 0x, "1" pour ma part. Enfin, 0x8[autreoffset], c'est la commande d'appel aux mouvements à exécuter.Cette commande suit chaque, je dit bien chaque, applymovement. 0x0 ne change pas.Cette commande suit chaque, je dit bien chaque, applymovement. 0x0 ne change pas.Cette fonction, très importante, permet au script de débloquer la map, quand il se finit.Cette fonction, très importante, permet au script de débloquer la map, quand il se finit.Classique, il finit le script.Classique, il finit le script.#org 0x[autreoffset], pareil que pour un message normal, mettre le même qu'après 0x8, plus haut. Mais que peut bien signifier #raw 0x56 et #raw 0xFE ? C'est tout simplement les mouvements ! Il en existe une grande liste pour chque version (ici, Saphir). Il faut obligatoirement mettre un #raw avant la commande. Dans l'exemple, 0x56 fait apparaître un point d'exclamation au-dessus du personnage. Je mettrai la liste de tout les mouvements en bas de page. 0xFE est présent à chaque fin de mouvement. C'est pour dire au script que les mouvements sont fini.#org 0x[autreoffset], pareil que pour un message normal, mettre le même qu'après 0x8, plus haut. Mais que peut bien signifier #raw 0x56 et #raw 0xFE ? C'est tout simplement les mouvements ! Il en existe une grande liste pour chque version (ici, Saphir). Il faut obligatoirement mettre un #raw avant la commande. Dans l'exemple, 0x56 fait apparaître un point d'exclamation au-dessus du personnage. Je mettrai la liste de tout les mouvements en bas de page. 0xFE est présent à chaque fin de mouvement. C'est pour dire au script que les mouvements sont fini.Evidemment, cet applymovement était très simple, il en existe des plus complexes Evidemment, cet applymovement était très simple, il en existe des plus complexes J'espère que vous avez tout compris, parce que c'était coton à expliquer ^^' J'espère que vous avez tout compris, parce que c'était coton à expliquer ^^'Il est possible de faire faire des mouvements à son personnage (Brice ou Flora). Pour cela, à la place de "0xID" (du personnage), mettez tout simplement "MOVE_PLAYER". Vous pouvez aussi faire plusieurs applymovement à la suite. Il faudra procéder comme ceci :Il est possible de faire faire des mouvements à son personnage (Brice ou Flora). Pour cela, à la place de "0xID" (du personnage), mettez tout simplement "MOVE_PLAYER". Vous pouvez aussi faire plusieurs applymovement à la suite. Il faudra procéder comme ceci :Plus bas, vous devrez mettre ceci :Plus bas, vous devrez mettre ceci :Il est aussi possible de compiler un applymovement dans un script, sous Advance Map (les verts marqués d'un "S"). Pour ça, il suffit de faire exactement pareil qu'au dessus, dans le script. Sauf qu'il vous faudra faire une petite chose en plus. Quand votre script est sélectionné, regardez à droite de la fenêtre d'Advance Map. Dans "Inconnu", mettez 0003, au lieu du 0000. Puis, dans N° du Var, au lieu du 0000, inscrivez 4050. Et voilà !Il est aussi possible de compiler un applymovement dans un script, sous Advance Map (les verts marqués d'un "S"). Pour ça, il suffit de faire exactement pareil qu'au dessus, dans le script. Sauf qu'il vous faudra faire une petite chose en plus. Quand votre script est sélectionné, regardez à droite de la fenêtre d'Advance Map. Dans "Inconnu", mettez 0003, au lieu du 0000. Puis, dans N° du Var, au lieu du 0000, inscrivez 4050. Et voilà !Vous devriez être en mesure de compiler ça Vous devriez être en mesure de compiler ça Toujours la même, bloc-note puis c/c dans un personnage OU dans un script (vous savez les petits verts Toujours la même, bloc-note puis c/c dans un personnage OU dans un script (vous savez les petits verts ). Si il y a bug, il vous suffit de changer l'offset et en mettre un plus grand (pour ça, dans FSF, à gauche, au lieu de mettre 64 bytes, mettez 500).). Si il y a bug, il vous suffit de changer l'offset et en mettre un plus grand (pour ça, dans FSF, à gauche, au lieu de mettre 64 bytes, mettez 500).On s'attaque à autre chose ? Hmm ? Ok, vous l'aurez voulu On s'attaque à autre chose ? Hmm ? Ok, vous l'aurez voulu On va faire un truc simple, pour souffler un peu. On va apprendre à faire un "giveitem". C'est quoi, ce machin ? Eh bien, quand vous parlez à un personnage, ou que vous trouvez une pokéball par terre, vous obtenez un objet ! Pratique, non ? Hyper facile On va faire un truc simple, pour souffler un peu. On va apprendre à faire un "giveitem". C'est quoi, ce machin ? Eh bien, quand vous parlez à un personnage, ou que vous trouvez une pokéball par terre, vous obtenez un objet ! Pratique, non ? Hyper facile C'est tout ! Décortiquons un peu :C'est tout ! Décortiquons un peu :Vous savez ce que ça signifie Vous savez ce que ça signifie "giveitem" débute le script. 0x1, c'est le type de l'objet, Chaque objet correspond à un numéro. Ici, "1", c'est une Masterball. Si j'avais voulu mettre une Hyperball, j'aurais mis "2". L'autre 0x1 signifie la quantité. Pas de problème, j'ai UNE Masterball. Si j'en avais voulu 5, j'aurais mis 0x5 "giveitem" débute le script. 0x1, c'est le type de l'objet, Chaque objet correspond à un numéro. Ici, "1", c'est une Masterball. Si j'avais voulu mettre une Hyperball, j'aurais mis "2". L'autre 0x1 signifie la quantité. Pas de problème, j'ai UNE Masterball. Si j'en avais voulu 5, j'aurais mis 0x5 MSG_FIND, c'est tout simplement, le message qui s'affiche quand vous obtenez un objet. MSG_FIND, c'est tout simplement, le message qui s'affiche quand vous obtenez un objet.Classique.Classique.Mais c'est pas encore terminer. Nan mais. Si on ne fais pas la manipulation qui suit, l'objet réapparaîtra encore et encore ! Pour éviter ça, aller dans Advance Map (vous y êtes déjà, haha). Sélectionnez votre objet, ou votre personnage. Sur la droite, en dessous de "Offset du Script", vous avez "ID du personnage". Normalement, il est à 0000. Mettez le à 03EC. Ensuite, si vous avez mis une Pokéball en guise de personnage (sprite), dans les mouvements, toujours sur la droite, au lieu de "Pas de mouvement", vous mettez "Regarde alentour". Et voilà !Mais c'est pas encore terminer. Nan mais. Si on ne fais pas la manipulation qui suit, l'objet réapparaîtra encore et encore ! Pour éviter ça, aller dans Advance Map (vous y êtes déjà, haha). Sélectionnez votre objet, ou votre personnage. Sur la droite, en dessous de "Offset du Script", vous avez "ID du personnage". Normalement, il est à 0000. Mettez le à 03EC. Ensuite, si vous avez mis une Pokéball en guise de personnage (sprite), dans les mouvements, toujours sur la droite, au lieu de "Pas de mouvement", vous mettez "Regarde alentour". Et voilà !Bon, la même qu'à chaque fois, hein, j'vais pas toujours vous le rabacher Bon, la même qu'à chaque fois, hein, j'vais pas toujours vous le rabacher On va s'orienter sur quelquechose d'encore plus fun, un Wildbattle. On va s'orienter sur quelquechose d'encore plus fun, un Wildbattle.On va apprendre à faire un Wildbattle. C'est quand vous trouvez un Pokémon dans la nature, pas dans les hautes herbes, mais en "vrai", comme Rayquaza, Kyogre ou Groudon. Ce sont des personnages, mais dont leur sprite a été changé, via Advance Map. Donc, ce script est à entrer dans les personnages. En exemple, un Ronflex :On va apprendre à faire un Wildbattle. C'est quand vous trouvez un Pokémon dans la nature, pas dans les hautes herbes, mais en "vrai", comme Rayquaza, Kyogre ou Groudon. Ce sont des personnages, mais dont leur sprite a été changé, via Advance Map. Donc, ce script est à entrer dans les personnages. En exemple, un Ronflex :C'est déjà plus long :/ Mais toujours assez facile C'est déjà plus long :/ Mais toujours assez facile Sherlock, passez moi la loupe, qu'on voit ça en détail Sherlock, passez moi la loupe, qu'on voit ça en détail (Je vous laisse deviner à quoi sert le #org 0x[offset] ^^)(Je vous laisse deviner à quoi sert le #org 0x[offset] ^^)"lock", vous connaissez. "faceplayer", un peu moins. Ca fonctionne comme MSG_FACE, ça dit au personnage de vous regardez."lock", vous connaissez. "faceplayer", un peu moins. Ca fonctionne comme MSG_FACE, ça dit au personnage de vous regardez.setwildbattle débute le cript. Facile. Par contre, la suite l'est moins. 0x8F est l'espèce du Pokémon, mais en hexadécimal. En effet, dans la liste décimale, Ronflex est le numéro 143. en hexa', 143 équivaut à 8F. Donc, après 0x, on inscrit 8F. Vous voulez savoir comment obtenir de l'hexadécimal à partir du décimal ? Rien de plus facile, sur la droite de la fenêtre de XSE, vous avez une espèce de calculette. Elle est équipée d'un convertisseur. Vous cochez DEC, et vous inscrivez votre nombre (ici, 143). Ensuite, vous cochez HEX, et il change tout seul (ici, on obtient 8F). Passons. Continuons la suite du script. 0x5A. C'est le niveau de votre Pokémon. Je veux, ici, que le Ronflex soit au niveau 90. En hexadécimal, 90 équivaut à 5A. 0x0 signifie l'objet que le Pokémon porte. Je ne lui en ai pas mis.setwildbattle débute le cript. Facile. Par contre, la suite l'est moins. 0x8F est l'espèce du Pokémon, mais en hexadécimal. En effet, dans la liste décimale, Ronflex est le numéro 143. en hexa', 143 équivaut à 8F. Donc, après 0x, on inscrit 8F. Vous voulez savoir comment obtenir de l'hexadécimal à partir du décimal ? Rien de plus facile, sur la droite de la fenêtre de XSE, vous avez une espèce de calculette. Elle est équipée d'un convertisseur. Vous cochez DEC, et vous inscrivez votre nombre (ici, 143). Ensuite, vous cochez HEX, et il change tout seul (ici, on obtient 8F). Passons. Continuons la suite du script. 0x5A. C'est le niveau de votre Pokémon. Je veux, ici, que le Ronflex soit au niveau 90. En hexadécimal, 90 équivaut à 5A. 0x0 signifie l'objet que le Pokémon porte. Je ne lui en ai pas mis."checksound" signifie qu'on "check" (change) sur le cri du Pokémon. Donc, cry 0x8F, c'est le cri de Ronflex. 0x2, on ne le change pas, c'est toujours pareil."checksound" signifie qu'on "check" (change) sur le cri du Pokémon. Donc, cry 0x8F, c'est le cri de Ronflex. 0x2, on ne le change pas, c'est toujours pareil.pause 0x28 signifie qu'il va y avoir une pause (petite) avant le début du combat. 0x28, c'est le temps "par défaut". "waitcry", littéralement, signifie qu'on va attendre le cri pendant le combat. Il fonctionne un peu comme le "waitmovement".pause 0x28 signifie qu'il va y avoir une pause (petite) avant le début du combat. 0x28, c'est le temps "par défaut". "waitcry", littéralement, signifie qu'on va attendre le cri pendant le combat. Il fonctionne un peu comme le "waitmovement".Tout ceci, c'est à ne pas changer. Ce sont les données de l'écran noir et du commencement du combat. Très important, mais juste à c/c Tout ceci, c'est à ne pas changer. Ce sont les données de l'écran noir et du commencement du combat. Très important, mais juste à c/c ..Classique. Une fois le combat fini, le Pokémon disparaît, et vous êtes libéré.Classique. Une fois le combat fini, le Pokémon disparaît, et vous êtes libéré.Maintenant que vous savez faire un Wildbattle, vous allez apprendre à faire un Trainerbattle. Même chose, mais avec un dresseur.Maintenant que vous savez faire un Wildbattle, vous allez apprendre à faire un Trainerbattle. Même chose, mais avec un dresseur.Un Trainerbattle sert à faire un combat contre un dresseur dans la nature. Cependant, il existe plusieurs types de dresseurs (dresseurs normaux, champions d'arènes, etc..). Nous allons pour l'instant voir le plus simple. Exemple :Un Trainerbattle sert à faire un combat contre un dresseur dans la nature. Cependant, il existe plusieurs types de dresseurs (dresseurs normaux, champions d'arènes, etc..). Nous allons pour l'instant voir le plus simple. Exemple :Comme d'hab', on voit ça élément par élément.Comme d'hab', on voit ça élément par élément."trainerbattle" débute le script. 0x0 définit le type de combat. Si cela avait été un combat de champion d'arène, j'aurais mis 0x2. Ici, c'est un combat normal, qui se déclenche quand vous êtes dans le champ de vision du personnage. 0x25B correspond à une donnée de personnage. Pour voir cette donnée, il faut utiliser A-Trainer. Pour un nouveau personnage, il vous faudra au préalable créer un nouveau dresseur via A-Trainer. Le second 0x0 est là tout le temps, on le met à chaque fois. Ensuite, il faut mettre deux offset. Ces offset seront à retrouver plus bas dans le "Strings", car ce sont les messages que dit le dresseur. Le premier correspond à ce qu'il vous dit en engageant le combat. Le second correspond à ce qu'il vous dit lorsqu'il perd le combat."trainerbattle" débute le script. 0x0 définit le type de combat. Si cela avait été un combat de champion d'arène, j'aurais mis 0x2. Ici, c'est un combat normal, qui se déclenche quand vous êtes dans le champ de vision du personnage. 0x25B correspond à une donnée de personnage. Pour voir cette donnée, il faut utiliser A-Trainer. Pour un nouveau personnage, il vous faudra au préalable créer un nouveau dresseur via A-Trainer. Le second 0x0 est là tout le temps, on le met à chaque fois. Ensuite, il faut mettre deux offset. Ces offset seront à retrouver plus bas dans le "Strings", car ce sont les messages que dit le dresseur. Le premier correspond à ce qu'il vous dit en engageant le combat. Le second correspond à ce qu'il vous dit lorsqu'il perd le combat.Vous connaissez. Cette fonction permet au personnage de dire quelquechose, rappelez-vous, bon sang ! Juste que MSG_FACE est remplacé par MSG_NORMAL. Cette fonction va permettre au personnage de dire quelquechose après l'avoir battu. Bon, je pense que vous avez compris le reste du script, après le Vous connaissez. Cette fonction permet au personnage de dire quelquechose, rappelez-vous, bon sang ! Juste que MSG_FACE est remplacé par MSG_NORMAL. Cette fonction va permettre au personnage de dire quelquechose après l'avoir battu. Bon, je pense que vous avez compris le reste du script, après le Strings Strings Me revoilà! Et avec un nouveau script à vous apprendre! Très facile, vous verrez Me revoilà! Et avec un nouveau script à vous apprendre! Très facile, vous verrez On va faire un "Spécial". Qu'est-ce qu'un spécial ? C'est une commande qui sert à faire quelquechose de spécial, comme soigner les Pokémon via l'infirmière On va faire un "Spécial". Qu'est-ce qu'un spécial ? C'est une commande qui sert à faire quelquechose de spécial, comme soigner les Pokémon via l'infirmière Vous pouvez aussi faire un tremblement de terre (r/s). Sans plus tarder, voyons ça plus en détail : Vous pouvez aussi faire un tremblement de terre (r/s). Sans plus tarder, voyons ça plus en détail :C'est tout! Facile, hein ? Bon, je n'ai qu'une commande à décortiquer, le reste, vous connaissez.C'est tout! Facile, hein ? Bon, je n'ai qu'une commande à décortiquer, le reste, vous connaissez."special" va commencer le script. 0x[numéroduspécial] va faire quelquechose de spécial, du genre donner le Pokédex, le Pokénav (r/s), des trucs comme ça, quoi. Vous vous doutez qu'il vous faudra piocher dans une liste plus bas pour trouver le numéro à mettre "special" va commencer le script. 0x[numéroduspécial] va faire quelquechose de spécial, du genre donner le Pokédex, le Pokénav (r/s), des trucs comme ça, quoi. Vous vous doutez qu'il vous faudra piocher dans une liste plus bas pour trouver le numéro à mettre Evidemment, ce type de script est à coupler avec un ou deux message, des applymovement, mais tout seul, c'est plutôt à mettre dans les p'tits verts Evidemment, ce type de script est à coupler avec un ou deux message, des applymovement, mais tout seul, c'est plutôt à mettre dans les p'tits verts 16/08/2010 : Plop à tous! Je reviens avec un nouveau script, le célèbre GivePokémon. Bon, ça va être un peu plus hard que les précédents, donc tenez vous bien à votre chaise, hein. Je dis ça parce qu'on va pas faire un pauvre GivePokémon tout seul, ce serait bien trop fade 16/08/2010 : Plop à tous! Je reviens avec un nouveau script, le célèbre GivePokémon. Bon, ça va être un peu plus hard que les précédents, donc tenez vous bien à votre chaise, hein. Je dis ça parce qu'on va pas faire un pauvre GivePokémon tout seul, ce serait bien trop fade On va laisser le choix au joueur de le prendre ou non! On commence ? Aller, ce serait bête de s'arrêter maintenant On va laisser le choix au joueur de le prendre ou non! On commence ? Aller, ce serait bête de s'arrêter maintenant Bon, on va y aller doucement, hein. Voilà :Bon, on va y aller doucement, hein. Voilà :Testé et approuvé Testé et approuvé Bon, j'ai mis des textes simples, histoire de pas faire trop long, hein. Allez on commence par des commandes que vous ne connaissez pas : Bon, j'ai mis des textes simples, histoire de pas faire trop long, hein. Allez on commence par des commandes que vous ne connaissez pas :Bon, cette commande débute un flag. C'est quoi, un flag ? Eh bien, pour faire court, c'est une commande qui permet à faire disparaître un personnage ou à ne faire exécuter un script qu'une seule fois. Eh oui, si on en mettait pas, le script pourrait s'exécuter à l'infini, et dans notre exemple, on recevrait le Pokémon des milliers des fois! Donc, très important.Bon, cette commande débute un flag. C'est quoi, un flag ? Eh bien, pour faire court, c'est une commande qui permet à faire disparaître un personnage ou à ne faire exécuter un script qu'une seule fois. Eh oui, si on en mettait pas, le script pourrait s'exécuter à l'infini, et dans notre exemple, on recevrait le Pokémon des milliers des fois! Donc, très important.Très important, comme commande. Très très importante. Vous en retrouverez dans pratiquement tous les scripts "complexes". Bon, on va décortiquer. "if 0x1 goto" appelle la commande. Cette commande sert à "transporter" le déroulement du script. C'est pour ça qu'il y a un offset. Exemple :Très important, comme commande. Très très importante. Vous en retrouverez dans pratiquement tous les scripts "complexes". Bon, on va décortiquer. "if 0x1 goto" appelle la commande. Cette commande sert à "transporter" le déroulement du script. C'est pour ça qu'il y a un offset. Exemple :M'voyez ? Une fois ce deuxième script terminé, le déroulement est "retransporté" où on l'avait déplacé. Capiche ?M'voyez ? Une fois ce deuxième script terminé, le déroulement est "retransporté" où on l'avait déplacé. Capiche ?On continue :On continue :Donc, passons ça à la loupe."msgbox 0x8offset MSG_YESNO", c'est nouveau, je crois. Ben, c'est simple, quand le perso' vous pose une question, vous pouvez répondre par Oui ou Non. Ici, il va nous demander si on veut le Pokémon. Fastoche. Ensuite, "compare LASTRESULT 0x1" va comparer votre réponse. Ainsi, le script va s'éxécuter différemment suivant votre réponse. Si vous répondez Oui, il va retourner une valeur positive, 1. Sinon, valeur négative, 0. On le couple donc avec "if ___ goto". Si vous dites Oui, c'est le "if ___ goto" qui va s'exécuter. Sinon, le script continue. C'est pour cela qu'à la fin, on voit "msgbox 0x8offset MSG_NORMAL '"A plus!"". C'est le message que le perso' vous dit si vous refusez son Pokémon.Donc, passons ça à la loupe."msgbox 0x8offset MSG_YESNO", c'est nouveau, je crois. Ben, c'est simple, quand le perso' vous pose une question, vous pouvez répondre par Oui ou Non. Ici, il va nous demander si on veut le Pokémon. Fastoche. Ensuite, "compare LASTRESULT 0x1" va comparer votre réponse. Ainsi, le script va s'éxécuter différemment suivant votre réponse. Si vous répondez Oui, il va retourner une valeur positive, 1. Sinon, valeur négative, 0. On le couple donc avec "if ___ goto". Si vous dites Oui, c'est le "if ___ goto" qui va s'exécuter. Sinon, le script continue. C'est pour cela qu'à la fin, on voit "msgbox 0x8offset MSG_NORMAL '"A plus!"". C'est le message que le perso' vous dit si vous refusez son Pokémon.Rappelez-vous. C'est là ou nous emmène le premier "if ___ goto". Il s'éxecute une fois que le Pokémon été donné. Eh oui, si vous lui parlez après, il faut bien qu'il vous dise quelque chose ^^. "end" revoie au script.Rappelez-vous. C'est là ou nous emmène le premier "if ___ goto". Il s'éxecute une fois que le Pokémon été donné. Eh oui, si vous lui parlez après, il faut bien qu'il vous dise quelque chose ^^. "end" revoie au script.Y en a des choses là-dedans!!! C'est là où nous emmène le deuxième "if ___ goto", si on a répondu Oui. "givepokemon" (nous y voilà enfin!) débute l'action. Ce qui suit est facile à comprendre. 0x15E, c'est le numéro en hexa' du Pokémon que je veux lui faire donner, ici un Azurill. 0x5, c'est, toujours en hexa' son niveau. Ici, niveau 5. 0x0, le premier, c'est l'objet qu'il tient, en hexa'. Je ne lui en ai pas mis. les trois derniers 0x0, ce sont des Filler, indispensables au GivePokémon. "fanfare 0x13E". C'est le petit bruit qu'on entend quand on obtient quelque chose. "msgbox 0x8offset MSG_NORMAL", c'est ce que le perso' nous dit en nous donnant le Pokémon. "waitfanfare", toujours avec la "fanfare". "closeonkeypress" tient le msgbox ouvert jusqu'à ce que vous ayez obtenu le Pokémon (pendant le temps de la "fanfare", donc). "setflag 0x201" termine le checkflag. Important, donc Y en a des choses là-dedans!!! C'est là où nous emmène le deuxième "if ___ goto", si on a répondu Oui. "givepokemon" (nous y voilà enfin!) débute l'action. Ce qui suit est facile à comprendre. 0x15E, c'est le numéro en hexa' du Pokémon que je veux lui faire donner, ici un Azurill. 0x5, c'est, toujours en hexa' son niveau. Ici, niveau 5. 0x0, le premier, c'est l'objet qu'il tient, en hexa'. Je ne lui en ai pas mis. les trois derniers 0x0, ce sont des Filler, indispensables au GivePokémon. "fanfare 0x13E". C'est le petit bruit qu'on entend quand on obtient quelque chose. "msgbox 0x8offset MSG_NORMAL", c'est ce que le perso' nous dit en nous donnant le Pokémon. "waitfanfare", toujours avec la "fanfare". "closeonkeypress" tient le msgbox ouvert jusqu'à ce que vous ayez obtenu le Pokémon (pendant le temps de la "fanfare", donc). "setflag 0x201" termine le checkflag. Important, donc Puis, le reste, vous connaissez =) Bon, c'était coton à expliquer, mais au bout de quelques essais, vous devriez avoir compris Puis, le reste, vous connaissez =) Bon, c'était coton à expliquer, mais au bout de quelques essais, vous devriez avoir compris A bientôt pour un nouveau script! A bientôt pour un nouveau script!31/08/2010 : Je reviens avec un nouveau type de script! C'est hyper simple, et assez utile, pour de gros script de scénario. C'est le script du warp. Il vous transporte ou vous le voulez lorsqu'il s'active. 31/08/2010 : Je reviens avec un nouveau type de script! C'est hyper simple, et assez utile, pour de gros script de scénario. C'est le script du warp. Il vous transporte ou vous le voulez lorsqu'il s'active. Je l'ai couplé à un applymovement, histoire de donner un peu de contenance Je l'ai couplé à un applymovement, histoire de donner un peu de contenance Je vous explique juste la commande du warp, vous connaissez le reste, hein. Je vous explique juste la commande du warp, vous connaissez le reste, hein.warp active la commande. 0x3, c'est le Bank de la map où on veut aller. 0x1, c'est sont numéro. 0x0, c'est le numéro du warp auquel le script va être relié. Eh oui, il faudra d'abord vous assurer qu'un warp existe déjà dans votre map! warp active la commande. 0x3, c'est le Bank de la map où on veut aller. 0x1, c'est sont numéro. 0x0, c'est le numéro du warp auquel le script va être relié. Eh oui, il faudra d'abord vous assurer qu'un warp existe déjà dans votre map! Ensuite, 0xC. C'est une coordonnée de Postion. Si vous ne savez pas comment trouver les coordonnées de position de votre warp, faites comme indiqué : dans Advance Map, allez dans la map où vous souhaitez faire apparaître votre perso'. Cliquez sur Event, puis sélectionnez le warp sur lequel vous souhaitez apparaître (²). Dans le panel de droite, vous apercevrez "Position...", et deux coordonnées. Ce sont ces valeurs là qu'il va falloir copier. Donc, si vous m'avez suivi, 0xC, c'est la première valeur. 0x13, c'est la deuxième. Ensuite, 0xC. C'est une coordonnée de Postion. Si vous ne savez pas comment trouver les coordonnées de position de votre warp, faites comme indiqué : dans Advance Map, allez dans la map où vous souhaitez faire apparaître votre perso'. Cliquez sur Event, puis sélectionnez le warp sur lequel vous souhaitez apparaître (²). Dans le panel de droite, vous apercevrez "Position...", et deux coordonnées. Ce sont ces valeurs là qu'il va falloir copier. Donc, si vous m'avez suivi, 0xC, c'est la première valeur. 0x13, c'est la deuxième. Compilez, et testez Compilez, et testez Merci à Giratino, pour m'avoir fait gagner du temps en me passant un script Pokémart vierge. On va apprendre ce que c'est, et comment le faire. Merci à Giratino, pour m'avoir fait gagner du temps en me passant un script Pokémart vierge. On va apprendre ce que c'est, et comment le faire. Qu'est-ce qu'un Pokémart ? C'est un script qui permet d'acheter ou de vendre des objets, comme en boutique Pokémon. Voilà le code, qui je le rappelle, est livré par Giratino (script pour RF/VF) :Qu'est-ce qu'un Pokémart ? C'est un script qui permet d'acheter ou de vendre des objets, comme en boutique Pokémon. Voilà le code, qui je le rappelle, est livré par Giratino (script pour RF/VF) :Il y a plusieurs nouvelles choses. Décortiquons, encore une fois.Il y a plusieurs nouvelles choses. Décortiquons, encore une fois.Le "special", c'est tout simplement la commande de départ d'un Pokémart pour RF/VF. "compare LASTRESULT 0x2" va comparer le résultat du "special", de sorte à savoir où il doit continuer le script. Le "special", c'est tout simplement la commande de départ d'un Pokémart pour RF/VF. "compare LASTRESULT 0x2" va comparer le résultat du "special", de sorte à savoir où il doit continuer le script. "preparemsg 0x8offset", c'est tout simplement le message que le personnage va dire avant de faire votre choix. Ce n'est pas un "msgbox", attention, car il va préparer le message, et le placer ailleurs lors de l'exécution du script. "waitmsg", semblable à "waitfanfare" vu précédemment, va faire patienter le message jusqu'à l'exécution du Pokémart."preparemsg 0x8offset", c'est tout simplement le message que le personnage va dire avant de faire votre choix. Ce n'est pas un "msgbox", attention, car il va préparer le message, et le placer ailleurs lors de l'exécution du script. "waitmsg", semblable à "waitfanfare" vu précédemment, va faire patienter le message jusqu'à l'exécution du Pokémart.Enfin, "pokemart 0x8offset" va débuter le Pokémart. Il se rapporte à ceci :Enfin, "pokemart 0x8offset" va débuter le Pokémart. Il se rapporte à ceci :"#raw word 0x", c'est semblable à "#raw 0x..." pour les applymovement, n'est-ce pas ? Après le 0x, il suffit de mettre le numéro en hexadécimal de l'objet que vous voulez faire vendre. Et voilà pour le Pokémart de RF/VF. Voyons dès à présent celui de R/S/E."#raw word 0x", c'est semblable à "#raw 0x..." pour les applymovement, n'est-ce pas ? Après le 0x, il suffit de mettre le numéro en hexadécimal de l'objet que vous voulez faire vendre. Et voilà pour le Pokémart de RF/VF. Voyons dès à présent celui de R/S/E.Z'avez vu ? C'est exactement pareil, mais sans le "special" et le "compare LASTRESULT 0x2" du début ! Ahah, ça va me faire gagner du temps, tout ça...Z'avez vu ? C'est exactement pareil, mais sans le "special" et le "compare LASTRESULT 0x2" du début ! Ahah, ça va me faire gagner du temps, tout ça...Eh ! Me lachez pas ! Eh ! Me lachez pas ! ............Bon, pour ceux qui restent, je vais vous apprendre à faire un Checkgender. C'est quoi ? C'est un script qui va agir différemment suivant le personnage que l'on a pris au début.Bon, pour ceux qui restent, je vais vous apprendre à faire un Checkgender. C'est quoi ? C'est un script qui va agir différemment suivant le personnage que l'on a pris au début.Bon, c'est simple, cool, et utile. Voici :Bon, c'est simple, cool, et utile. Voici :Voyons les nouvelles commandes.Voyons les nouvelles commandes."checkgender", c'est la commande, elle débute. "compare 0x800D 0x0" va, encore une fois, comparer le résultat du "checkgender". Si c'est un garçon, le "if ... goto" du dessous se déclenche, et emmène le script à l'exécution de ce que va dire le personnage si c'est un garçon."checkgender", c'est la commande, elle débute. "compare 0x800D 0x0" va, encore une fois, comparer le résultat du "checkgender". Si c'est un garçon, le "if ... goto" du dessous se déclenche, et emmène le script à l'exécution de ce que va dire le personnage si c'est un garçon.Sinon, il continue, et "compare 0x800D 0x1" va comparer une seconde fois. Si c'est pas un mec, c'est une fille, donc, le personnage ne va pas dire la même chose. Très utile pour les scénario, donc.Sinon, il continue, et "compare 0x800D 0x1" va comparer une seconde fois. Si c'est pas un mec, c'est une fille, donc, le personnage ne va pas dire la même chose. Très utile pour les scénario, donc.Nous sommes le 11 septembre 2010, et j'ai envie de vous apprendre un nouveau type de script. Quatre, plus précisément, mais ils se recoupent.Nous sommes le 11 septembre 2010, et j'ai envie de vous apprendre un nouveau type de script. Quatre, plus précisément, mais ils se recoupent.Bon, on va apprendre des choses hyper hyper hyper simple. Les Showpoképic/Hidepoképic et les Showsprite/Hidesprite. Les deux premiers servent à faire apparaître une fenêtre avec l'image d'un Pokémon dedans (comme dans RF/VF au moment de choisir le Pokémon) et la faire disparaître. Les deux autres, respectivement Showsprite et Hidesprite, servent à faire apparaître un sprite (overworld) ou à le faire disparaître. Indispensable pour tout bon scénario. On commence par le Showpoképic et le Hidepoképic :Bon, on va apprendre des choses hyper hyper hyper simple. Les Showpoképic/Hidepoképic et les Showsprite/Hidesprite. Les deux premiers servent à faire apparaître une fenêtre avec l'image d'un Pokémon dedans (comme dans RF/VF au moment de choisir le Pokémon) et la faire disparaître. Les deux autres, respectivement Showsprite et Hidesprite, servent à faire apparaître un sprite (overworld) ou à le faire disparaître. Indispensable pour tout bon scénario. On commence par le Showpoképic et le Hidepoképic :Bon, c'est ultra basique. Il y a juste deux commandes que vous ne connaissez pas :Bon, c'est ultra basique. Il y a juste deux commandes que vous ne connaissez pas :"showpokepic" débute la commande. 0x1, c'est le numéro du Pokémon qu'on veut faire apparaître (/!\ hexadécimal). 0xA et 0x3, ce sont les coordonnées de l'emplacement de la fenêtre dans l'écran. Je vous conseille vivement de garder 0xA et 0x3 car ce sont les coordonnées par défaut, celles qui placeront le fenêtre pile au milieu de l'écran."showpokepic" débute la commande. 0x1, c'est le numéro du Pokémon qu'on veut faire apparaître (/!\ hexadécimal). 0xA et 0x3, ce sont les coordonnées de l'emplacement de la fenêtre dans l'écran. Je vous conseille vivement de garder 0xA et 0x3 car ce sont les coordonnées par défaut, celles qui placeront le fenêtre pile au milieu de l'écran.Il fait tout simplement disparaître la fenêtre, avec 0x1 le numéro du Pokémon, toujours en hexa'. Voilà, on en a terminé avec ceux-là ! Passons aux Showsprite et Hidesprite.Il fait tout simplement disparaître la fenêtre, avec 0x1 le numéro du Pokémon, toujours en hexa'. Voilà, on en a terminé avec ceux-là ! Passons aux Showsprite et Hidesprite.Bon, ça se complique un tout petit peu. "checkflag 0x200", vous connaissez, et ici, c'est indispensable. Pourquoi ? Parce que le "200", il faudra l'inscrire dans l'ID du personnage que vous voudrez faire apparaître ou disparaître. Pour cela, cliquez sur votre personnage dans AM, descendez dans le panel de droite jusqu'à trouver "ID du personnage", et inscrivez le numéro de votre flag. Voilà =)Bon, ça se complique un tout petit peu. "checkflag 0x200", vous connaissez, et ici, c'est indispensable. Pourquoi ? Parce que le "200", il faudra l'inscrire dans l'ID du personnage que vous voudrez faire apparaître ou disparaître. Pour cela, cliquez sur votre personnage dans AM, descendez dans le panel de droite jusqu'à trouver "ID du personnage", et inscrivez le numéro de votre flag. Voilà =)Cette commande fait disparaître le personnage à qui vous parlez. Dans ce scirpt, il vous dit quelque chose, et disparaît. "hidesprite" débute la commande, et LASTALKED signifie que le dernier personnage à qui vous avez parlez disparaît. Si vous ne voulez pas faire disparaître le personnage à qui vous avez parler, alors, il faudra faire comme ceci :Cette commande fait disparaître le personnage à qui vous parlez. Dans ce scirpt, il vous dit quelque chose, et disparaît. "hidesprite" débute la commande, et LASTALKED signifie que le dernier personnage à qui vous avez parlez disparaît. Si vous ne voulez pas faire disparaître le personnage à qui vous avez parler, alors, il faudra faire comme ceci :Ensuite, le "showsprite". Il n'est plaçable QUE après un "hidesprite". Il fait réapparaître le personnage que vous avez fait disparaître. Dans mon script, le personnage vous parle. Ensuite il disparaît. Puis, le héros fait quelques pas. Enfin, le personnage que vous aviez fait disparaître réapparaît. Évidemment, mon script est ultra basique, à vous de l'étoffez. Ensuite, le "showsprite". Il n'est plaçable QUE après un "hidesprite". Il fait réapparaître le personnage que vous avez fait disparaître. Dans mon script, le personnage vous parle. Ensuite il disparaît. Puis, le héros fait quelques pas. Enfin, le personnage que vous aviez fait disparaître réapparaît. Évidemment, mon script est ultra basique, à vous de l'étoffez. Bon, bah, même explication que pour le "hidesprite". "0xnuméro du personnage" si vous ne voulez pas de "LASTALKED". Et voilà, j'ai fini de vous enseigner ces quatres petites choses ! A bientôt ! Bon, bah, même explication que pour le "hidesprite". "0xnuméro du personnage" si vous ne voulez pas de "LASTALKED". Et voilà, j'ai fini de vous enseigner ces quatres petites choses ! A bientôt ! Parce qu'on bon tuto de script doit contenir des exercices, je vous en propose quelques-uns ! Je vais les classer par difficultés, que vous sachiez à quoi vous attendre (peut-être) Parce qu'on bon tuto de script doit contenir des exercices, je vous en propose quelques-uns ! Je vais les classer par difficultés, que vous sachiez à quoi vous attendre (peut-être) 1er exercice : faites un message simple qui nous pose une question, et par laquelle on doit répondre par Oui ou Non, sans vous servir du tuto.1er exercice : faites un message simple qui nous pose une question, et par laquelle on doit répondre par Oui ou Non, sans vous servir du tuto.2eme exercice : faites un message de pancarte, sans vous servir du tuto.2eme exercice : faites un message de pancarte, sans vous servir du tuto.3eme exercice : faites un applymovement (au choix), suivi d'un message simple.3eme exercice : faites un applymovement (au choix), suivi d'un message simple.1er exercice : faites un applymovement du héros qui ira à droite, en haut, à gauche, en bas, et qui aura un point d'exclamation sur la tête à la fin.1er exercice : faites un applymovement du héros qui ira à droite, en haut, à gauche, en bas, et qui aura un point d'exclamation sur la tête à la fin.2eme exercice : faites moi un wildbattle précédé d'un spécial "tremblement de terre".2eme exercice : faites moi un wildbattle précédé d'un spécial "tremblement de terre".3eme exercice : compilez un message simple, suivi d'un giveitem et d'un givepokémon.3eme exercice : compilez un message simple, suivi d'un giveitem et d'un givepokémon.1er exercice : faites moi un message simple, suivi de deux givepokémon où le joueur devra choisir lequel il veut, puis faites disparaître le donneur une fois le choix fait.1er exercice : faites moi un message simple, suivi de deux givepokémon où le joueur devra choisir lequel il veut, puis faites disparaître le donneur une fois le choix fait.2eme exercice : compilez un message simple qui variera selon le genre du personnage (checkgender), suivi d'un giveitem, où l'objet sera encore différent selon le genre (sexisme, je sais). Puis, à la fin du script, je veux un trainerbattle.2eme exercice : compilez un message simple qui variera selon le genre du personnage (checkgender), suivi d'un giveitem, où l'objet sera encore différent selon le genre (sexisme, je sais). Puis, à la fin du script, je veux un trainerbattle.3eme exercice : faites un applymovement du héros et un autre apply d'un personnage qui s'exécutent en même temps, suivi d'un warp.3eme exercice : faites un applymovement du héros et un autre apply d'un personnage qui s'exécutent en même temps, suivi d'un warp.Attention, ça va chier des bulles.Attention, ça va chier des bulles.1er exercice : message simple différent selon le genre, puis applymovement du héros suivi de l'applymovement du personnage auquel on a parlé, suivi d'un message simple demandant si on veut un Pokémon (oui ou non), bien sûr suivi du givepokémon. Ensuite, applymovement du héros, puis warp.1er exercice : message simple différent selon le genre, puis applymovement du héros suivi de l'applymovement du personnage auquel on a parlé, suivi d'un message simple demandant si on veut un Pokémon (oui ou non), bien sûr suivi du givepokémon. Ensuite, applymovement du héros, puis warp.2eme exercice : trainerbattle, si on bat l'adversaire, giveitem, puis applymovement du héros jusqu'à un Pokémon legendaire, spécial "tremblement de terre", puis wildbattle. Vous rajouterez des messages simple là où il faut pour que la mini-histoire soit cohérente.2eme exercice : trainerbattle, si on bat l'adversaire, giveitem, puis applymovement du héros jusqu'à un Pokémon legendaire, spécial "tremblement de terre", puis wildbattle. Vous rajouterez des messages simple là où il faut pour que la mini-histoire soit cohérente.Listes en vrac :Listes en vrac :Vous connaissez déjà les commandes Vous connaissez déjà les commandes et et . Spritevisible et spriteinvisible fonctionnent un peu de la même façon.. Spritevisible et spriteinvisible fonctionnent un peu de la même façon.Une seule nouvelle commande.Une seule nouvelle commande.spriteinvisible débute la commande. 0x4, c'est le numéro du personnage. 0x3, c'est la bank sur laquelle le personnage se trouve. 0x0, c'est la map.spriteinvisible débute la commande. 0x4, c'est le numéro du personnage. 0x3, c'est la bank sur laquelle le personnage se trouve. 0x0, c'est la map.Mais attention, quand vous faites cette commande, le sprite est invisible, mais il est toujours présent sur la map, contraire au hidesprite qui le supprime complètement. Ainsi, même si le sprite est invisible, si vous parlez au "fantôme", le script s'exécutera quand même.Mais attention, quand vous faites cette commande, le sprite est invisible, mais il est toujours présent sur la map, contraire au hidesprite qui le supprime complètement. Ainsi, même si le sprite est invisible, si vous parlez au "fantôme", le script s'exécutera quand même.Vous me direz, "mais alors quel est l'avantage ?". C'est simple, pas besoin de flag, il reste invisible même si vous bougez. Vous pouvez aussi ainsi faire disparaitre votre sprite même si vous êtes sur une autre map (mais dans ce cas, il faut quand même le flag).Vous me direz, "mais alors quel est l'avantage ?". C'est simple, pas besoin de flag, il reste invisible même si vous bougez. Vous pouvez aussi ainsi faire disparaitre votre sprite même si vous êtes sur une autre map (mais dans ce cas, il faut quand même le flag).spritevisible est exactement pareil, mais dans le sens inverse spritevisible est exactement pareil, mais dans le sens inverse Les commandes suivantes servent à changer la météo.Les commandes suivantes servent à changer la météo.Voyons ça de plus près, rien de bien difficile Voyons ça de plus près, rien de bien difficile setweather 0x3 dit au script de préparer le temps 0x3 (ici, 0x3 = la pluie).setweather 0x3 dit au script de préparer le temps 0x3 (ici, 0x3 = la pluie).doweather dit au script d'exécuter le temps préparé. Pas de paramètres requis pour cette commande.doweather dit au script d'exécuter le temps préparé. Pas de paramètres requis pour cette commande.resetweather dit au sript de péparer le temps normal de la map (visible dans l'onglet "Entête").resetweather dit au sript de péparer le temps normal de la map (visible dans l'onglet "Entête").doweather, pareil, dit au script d'exécuter le temps préparé.doweather, pareil, dit au script d'exécuter le temps préparé.Aucun paramètre requis à nouveau pour ces deux commandes.Aucun paramètre requis à nouveau pour ces deux commandes.À noter que "doweather" doit suivre, sans exception, chaque commande de météo. Si vous ne mettez pas cette commande dans votre script, le temps ne se déclenchera pas À noter que "doweather" doit suivre, sans exception, chaque commande de météo. Si vous ne mettez pas cette commande dans votre script, le temps ne se déclenchera pas Voici une liste de toutes les météos possibles :Voici une liste de toutes les météos possibles :(Merci à pokemonbonjour pour la liste)(Merci à pokemonbonjour pour la liste)What's new ? What's new ? setdooropened est la commande qui ouvre une porte sur la map. 0x10 et 0xD sont les coordonnées respectives X et Y de la porte sur la map.setdooropened est la commande qui ouvre une porte sur la map. 0x10 et 0xD sont les coordonnées respectives X et Y de la porte sur la map.doorchange n'est pas tout à fait indispensable, mais ça donne un résultat tout simplement meilleur. doorchange peut se comparer à par exemple un waitfanfare. Ainsi, grâce à cette commande, le script attend que la porte soit ouverte complètement pour continuer le script.doorchange n'est pas tout à fait indispensable, mais ça donne un résultat tout simplement meilleur. doorchange peut se comparer à par exemple un waitfanfare. Ainsi, grâce à cette commande, le script attend que la porte soit ouverte complètement pour continuer le script.Utile, si vous avez mélangé à un applymovement, car quand le perso passe avant que la porte ne s'ouvre, ça le fait pas ! Utile, si vous avez mélangé à un applymovement, car quand le perso passe avant que la porte ne s'ouvre, ça le fait pas ! setdoorclosed marche exactement comme setdooropened, mais pour fermer une porte.setdoorclosed marche exactement comme setdooropened, mais pour fermer une porte.doorchange ne change pas justement ^^doorchange ne change pas justement ^^ On y va, c'est un peu coton à expliquer mais on va le faire ! On y va, c'est un peu coton à expliquer mais on va le faire ! Décortiquons.Décortiquons.Rien de particulier.Rien de particulier.checkflag 0x240 va regarder si le flag n°240 est activé ou pas.checkflag 0x240 va regarder si le flag n°240 est activé ou pas.if 0x1 goto 0x8[offset] ordonne au script d'aller à cet offset si le flag n°240 est activé.if 0x1 goto 0x8[offset] ordonne au script d'aller à cet offset si le flag n°240 est activé.Mais comment s'active-t-il ? Attendez un instant Mais comment s'active-t-il ? Attendez un instant Un msgbox, simple, suivi d'un giveitem (Master ball), et d'un nouveau msgbox.Un msgbox, simple, suivi d'un giveitem (Master ball), et d'un nouveau msgbox.Rien de bien particulier non plus.Rien de bien particulier non plus.On y vient ! Voilà comment le flag n°240 s'active.On y vient ! Voilà comment le flag n°240 s'active.La commande "setflag 0x[numéroduflag]" active le flag.La commande "setflag 0x[numéroduflag]" active le flag.Ainsi, quand je vais parler à la personne la première fois, il va me dire "Je te donne un objet", il me donne l'objet, puis me dit "A ploush". Ici, le flag 240 s'active. Ainsi, si je reparle une deuxième fois à la personne, "checkflag 0x240" va détecter que le flag est activé. Je vais donc être envoyé à la deuxième partie de mon script. La personne me dira donc "Tu as déjà eu l'objet". Ainsi, je ne pourrai pas obtenir l'objet à l'infinie.Ainsi, quand je vais parler à la personne la première fois, il va me dire "Je te donne un objet", il me donne l'objet, puis me dit "A ploush". Ici, le flag 240 s'active. Ainsi, si je reparle une deuxième fois à la personne, "checkflag 0x240" va détecter que le flag est activé. Je vais donc être envoyé à la deuxième partie de mon script. La personne me dira donc "Tu as déjà eu l'objet". Ainsi, je ne pourrai pas obtenir l'objet à l'infinie.Continuons.Continuons.clearflag 0x240, comme son nom l'indique, supprime, désactive le flag n°240.clearflag 0x240, comme son nom l'indique, supprime, désactive le flag n°240.Comme ça, quand je parle pour la deuxième fois à la personne, "clearflag" désactive le flag.Comme ça, quand je parle pour la deuxième fois à la personne, "clearflag" désactive le flag.Ainsi, si je lui reparle une troisième fois, "checkflag 0x240" va voir que le flag n'est pas activé. Donc, le script continue normalement.Ainsi, si je lui reparle une troisième fois, "checkflag 0x240" va voir que le flag n'est pas activé. Donc, le script continue normalement.Ici, dans mon exemple, les flags ne sont pas très importants, étant donné que grâce au clearflag, je peux obtenir l'objet à l'infinie. Si je ne l'obtenir qu'une fois, il faut supprimer "clearflag 0x240" du script Ici, dans mon exemple, les flags ne sont pas très importants, étant donné que grâce au clearflag, je peux obtenir l'objet à l'infinie. Si je ne l'obtenir qu'une fois, il faut supprimer "clearflag 0x240" du script À noter que vous pouvez activer un flag allant de 0001 à FFFF.À noter que vous pouvez activer un flag allant de 0001 à FFFF.Certains flags importants sont déjà utilisés dans le jeu, faites attention, cela peut provoquer quelques bugs dans le jeu.Certains flags importants sont déjà utilisés dans le jeu, faites attention, cela peut provoquer quelques bugs dans le jeu.Flags spéciauxFlags spéciauxIl existe des flags spéciaux qui active certaines choses dans le jeu (donner un bagde, ajouter un menu...). Voici un exemple :Il existe des flags spéciaux qui active certaines choses dans le jeu (donner un bagde, ajouter un menu...). Voici un exemple :Voici la commande du flag spécial :Voici la commande du flag spécial :Ici, ce flag donne les chaussures de sport au joueur.Ici, ce flag donne les chaussures de sport au joueur.Voici les listes des flags spéciaux :Voici les listes des flags spéciaux :Débloquer le menu Pokémon : 0x828Débloquer le menu Pokémon : 0x828Débloquer le Pokédex : 0x829Débloquer le Pokédex : 0x829Chaussures de sport : 0x82FChaussures de sport : 0x82FBadge 1 : 0x820Badge 1 : 0x820Badge 2 : 0x821Badge 2 : 0x821Badge 3 : 0x822Badge 3 : 0x822Badge 4 : 0x823Badge 4 : 0x823Badge 5 : 0x824Badge 5 : 0x824Badge 6 : 0x825Badge 6 : 0x825Badge 7 : 0x826Badge 7 : 0x826Badge 8 : 0x827Badge 8 : 0x827Débloquer le menu Pokémon : 0x800Débloquer le menu Pokémon : 0x800Débloquer le Pokédex : 0x801Débloquer le Pokédex : 0x801Débloquer le Pokénav : 0x802Débloquer le Pokénav : 0x802Chaussures de sport : 0x860Chaussures de sport : 0x860Badge 1 : 0x807Badge 1 : 0x807Badge 2 : 0x808Badge 2 : 0x808Badge 3 : 0x809Badge 3 : 0x809Badge 4 : 0x80ABadge 4 : 0x80ABadge 5 : 0x80BBadge 5 : 0x80BBadge 6 : 0x80CBadge 6 : 0x80CBadge 7 : 0x80DBadge 7 : 0x80DBadge 8 : 0x80EBadge 8 : 0x80EDébloquer le menu Pokémon : 0x860Débloquer le menu Pokémon : 0x860Débloquer le Pokédex : 0x861Débloquer le Pokédex : 0x861Débloquer le Pokénav : 0x862Débloquer le Pokénav : 0x862Chaussures de sport : 0x8C0Chaussures de sport : 0x8C0Badge 1 : 0x867Badge 1 : 0x867Badge 2 : 0x868Badge 2 : 0x868Badge 3 : 0x869Badge 3 : 0x869Badge 4 : 0x86ABadge 4 : 0x86ABadge 5 : 0x86BBadge 5 : 0x86BBadge 6 : 0x86CBadge 6 : 0x86CBadge 7 : 0x86DBadge 7 : 0x86DBadge 8 : 0x86EBadge 8 : 0x86EOn a fini pour les flags ! On a fini pour les flags ! Mais qu'est-ce c'est ? Cela sert à compter le nombre de Pokémon dans votre équipe (non pas possible !). Cela peut-être utile pour des zones où l'on ne peut rentrer qu'avec un certain nombre de Pokémon... Mais qu'est-ce c'est ? Cela sert à compter le nombre de Pokémon dans votre équipe (non pas possible !). Cela peut-être utile pour des zones où l'on ne peut rentrer qu'avec un certain nombre de Pokémon... Plutôt long, mais simple. Plutôt long, mais simple. Voici la commande qui déclenche tout.Voici la commande qui déclenche tout.coutpokemon, comme son nom l'indique, regarde le nombre de Pokémon présent(s) dans votre équipe.coutpokemon, comme son nom l'indique, regarde le nombre de Pokémon présent(s) dans votre équipe.compare LASTRESULT 0x1 va regarder si countpokemon a compté 1 Pokémon dans l'équipe.compare LASTRESULT 0x1 va regarder si countpokemon a compté 1 Pokémon dans l'équipe.Si oui (= if 0x1), il va à un certain offset. On retrouve cet offset plus bas :Si oui (= if 0x1), il va à un certain offset. On retrouve cet offset plus bas :~~> Avec un message disant "Tu as 1 Pokémon."~~> Avec un message disant "Tu as 1 Pokémon."C'est logique C'est logique Si countpokemon voit que vous n'avez pas 1 seul Pokémon dans votre équipe, il continue de compter. Le nombre d'après ? 2. (Bravo, une première S vous attend Si countpokemon voit que vous n'avez pas 1 seul Pokémon dans votre équipe, il continue de compter. Le nombre d'après ? 2. (Bravo, une première S vous attend ).).compare LASTRESULT 0x2 fait exactement la même chose que compare LASTRESULT 0x1, mais pour 2 Pokémon. Si c'est le cas, il va à un nouvel offset :compare LASTRESULT 0x2 fait exactement la même chose que compare LASTRESULT 0x1, mais pour 2 Pokémon. Si c'est le cas, il va à un nouvel offset :Qui est celui-là, avec un message disant "Tu as 2 Pokémon."Qui est celui-là, avec un message disant "Tu as 2 Pokémon."Logique toujours.Logique toujours.Ce sera la même chose avec "compare LASTRESULT 0x3, 0x4, 0x5 et 0x6".Ce sera la même chose avec "compare LASTRESULT 0x3, 0x4, 0x5 et 0x6".A la fin du script, juste après les compare LASTRESULT, arrive un message simple :A la fin du script, juste après les compare LASTRESULT, arrive un message simple :"Tu as 0 Pokémon". C'est normal, si le script arrive jusqu'ici, c'est que le joueur n'a ni 1, 2, 3, 4, 5, ni 6 Pokémon dans son équipe. Calcul ~~> Il en a donc 0 (le max possible étant 6)."Tu as 0 Pokémon". C'est normal, si le script arrive jusqu'ici, c'est que le joueur n'a ni 1, 2, 3, 4, 5, ni 6 Pokémon dans son équipe. Calcul ~~> Il en a donc 0 (le max possible étant 6).Donc ce message s'affichera. Normalement ça devrait jamais arriver, car le joueur est censé avoir 1 Pokémon minimum tout le temps. (sauf si c'est le tout tout début du jeu).Donc ce message s'affichera. Normalement ça devrait jamais arriver, car le joueur est censé avoir 1 Pokémon minimum tout le temps. (sauf si c'est le tout tout début du jeu).Voilà, c'est fini pour le countpokemon. Alors, facile non ? Voilà, c'est fini pour le countpokemon. Alors, facile non ? Aujourd'hui, on va apprendre à faire un giveegg !Aujourd'hui, on va apprendre à faire un giveegg !C'est exactement la même chose que pour un givepokemon (Cf. tuto de Sainior, je vais pas tout réexpliquer), mais cela donne un oeuf !C'est exactement la même chose que pour un givepokemon (Cf. tuto de Sainior, je vais pas tout réexpliquer), mais cela donne un oeuf !Vous voyez, c'est comme le givepokemon, sauf que la commande est encore plus simple !Vous voyez, c'est comme le givepokemon, sauf que la commande est encore plus simple !Voici la seule nouvelle commande :Voici la seule nouvelle commande :giveegg est la commande qui donne l'oeuf. 0x19, c'est le numéro du Pokémon en hexa. Ici, c'est un Pikachu, (25 en décimal ~~> 19 en hexa).giveegg est la commande qui donne l'oeuf. 0x19, c'est le numéro du Pokémon en hexa. Ici, c'est un Pikachu, (25 en décimal ~~> 19 en hexa).Rien d'autre ! Le Pokémon sera niveau 5.Rien d'autre ! Le Pokémon sera niveau 5.Donc, rien de bien compliqué si vous connaissez déjà le givepokemon (je le redis, j'ai pas ré-expliquer, Sainior l'a très bien fait Donc, rien de bien compliqué si vous connaissez déjà le givepokemon (je le redis, j'ai pas ré-expliquer, Sainior l'a très bien fait )) Oulahh, c'est quoi ça ? C'est simple, en fait, le setmaptile change un bloc de la map sur laquelle vous vous trouvez au moment. C'est pas dur, et c'est plutôt bien pour certains scénarios (oui, rappelez vous, [je sais plus dans quelle version] un mec creuse une grotte au fur et à mesure que vous capturez des zarbis ! On peut utiliser le setmaptile pour ce genre de choses).Oulahh, c'est quoi ça ? C'est simple, en fait, le setmaptile change un bloc de la map sur laquelle vous vous trouvez au moment. C'est pas dur, et c'est plutôt bien pour certains scénarios (oui, rappelez vous, [je sais plus dans quelle version] un mec creuse une grotte au fur et à mesure que vous capturez des zarbis ! On peut utiliser le setmaptile pour ce genre de choses).Deux nouvelles commandes :Deux nouvelles commandes :setmaptile lance la commande. 0xB et 0xE sont respectivement les positions X et Y du bloc à changer sur la carte où vous vous trouvez.setmaptile lance la commande. 0xB et 0xE sont respectivement les positions X et Y du bloc à changer sur la carte où vous vous trouvez.0x4, c'est le numéro du bloc en hexa que vous voulez faire apparaître à la position donnée. Comment connaître sur numéro ? Simple, allez dans Advance Map, cliquez sur le bloc choisi et regardez en bas à gauche : "Bloc : XXX Offset : YYYYYY" est affiché. Mémorisez le numéro du bloc, c'est cette valeur que vous devez entrer dans la commande. (le nombre est déjà en hexa, vous ne changez donc rien).0x4, c'est le numéro du bloc en hexa que vous voulez faire apparaître à la position donnée. Comment connaître sur numéro ? Simple, allez dans Advance Map, cliquez sur le bloc choisi et regardez en bas à gauche : "Bloc : XXX Offset : YYYYYY" est affiché. Mémorisez le numéro du bloc, c'est cette valeur que vous devez entrer dans la commande. (le nombre est déjà en hexa, vous ne changez donc rien).0x0, c'est le numéro de comportement. (0x0, vous pouvez passer, 0x1, vous pouvez pas)0x0, c'est le numéro de comportement. (0x0, vous pouvez passer, 0x1, vous pouvez pas)Cette commande est à mettre après Cette commande est à mettre après setmaptile. En gros, elle "re-affiche l'écran", de telle sorte que le bloc changé apparaisse. Sans cette commande, seul le comportement du bloc changera, pas son image. setmaptile. En gros, elle "re-affiche l'écran", de telle sorte que le bloc changé apparaisse. Sans cette commande, seul le comportement du bloc changera, pas son image.Dans mon script, sur la position X : B et Y : E, un bloc avec une fleur s'affichera, et je pourrais passer dessus.Dans mon script, sur la position X : B et Y : E, un bloc avec une fleur s'affichera, et je pourrais passer dessus.Voilà, on en a fini avec le setmaptile ! Voilà, on en a fini avec le setmaptile ! Avant tout, je voudrai remercier Sainior qui m'a appris ça, donc merci à lui Avant tout, je voudrai remercier Sainior qui m'a appris ça, donc merci à lui On va apprendre à faire une commande de hasard, un tirage au sort en quelque sorte. Pour cela, nous allons utiliser la commande "ramdom". Voici un exemple de script qu'on peut faire :On va apprendre à faire une commande de hasard, un tirage au sort en quelque sorte. Pour cela, nous allons utiliser la commande "ramdom". Voici un exemple de script qu'on peut faire :C'est assez long, mais très très simple C'est assez long, mais très très simple random 0x4 est la commande principale. random lance la commande, et 0x4 est le nombre de possibilité au tirage au sort.random 0x4 est la commande principale. random lance la commande, et 0x4 est le nombre de possibilité au tirage au sort.compare LASTRESULT 0x0, 0x1, 0x2 et 0x3, vous connaissez. On compare la valeur choisie par le random. Une fois la valeur trouvée, if 0x1 goto 0x8[Offset] vous envoie sur l'offset choisi.compare LASTRESULT 0x0, 0x1, 0x2 et 0x3, vous connaissez. On compare la valeur choisie par le random. Une fois la valeur trouvée, if 0x1 goto 0x8[Offset] vous envoie sur l'offset choisi.Ainsi, dans ce script, j'ai 1 chace sur 4 de tomber sur "1", 1 chance sur 4 de tomber de "2", 1 chance sur 4 de tomber sur "3" et 1 chance sur 4 de tomber sur "4".Ainsi, dans ce script, j'ai 1 chace sur 4 de tomber sur "1", 1 chance sur 4 de tomber de "2", 1 chance sur 4 de tomber sur "3" et 1 chance sur 4 de tomber sur "4".Voilà, c'est tout pour le random ! Merci encore à Sainior Voilà, c'est tout pour le random ! Merci encore à Sainior Il existe bien plus de type de script, mais par manque de temps, je n'en dit pas plus pour l'instant. J'éditerai un peu plus tard pour en rajouter, ne vous inquiéter pas Il existe bien plus de type de script, mais par manque de temps, je n'en dit pas plus pour l'instant. J'éditerai un peu plus tard pour en rajouter, ne vous inquiéter pas



??)

