[Tuto][GBA] Apprendre à Scripter en static. dans Club | Pokémon Trash
[Tuto][GBA] Apprendre à Scripter en static.
Sainior - 4 août 2010 à 15:00
Apprendre à Scripter sur rom GBA
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 (merci Pokemon Legendary)
-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 !
[spoiler]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 0x6C54B2msgbox 0x86D59B3 MSG_FACE '"Voici un mess..."end'---------'Strings'---------#org 0x6D59B3= Voici un message. Cool!
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.
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.
'---------'Strings'---------
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.
#org 0x[autreoffset]
On revient à ce que je disait tout à l'heure. c'est le même offset qui est après msgbox 0x8.
= [votre message]
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.[/spoiler]
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.
[spoiler]Maintenant, on va apprendre à faire un message de pancarte. Ce script sera à rentrer dans un évent "Pancarte". Commençons sans tarder.
'---------------#org 0x8B412Amsgbox 0x86BC415 MSG_SIGN '"Message de pa..."end'---------'Strings'---------#org 0x6BC415= Message de pancarte. Cool!
Le début, c'est du classique. Pas besoin de réxpliquer.
msgbox 0x8[autreoffset] MSG_SIGN '""
C'est pareil que tout à l'heure, sauf le type de message : MSG_SIGN. A utiliser pour les pancartes.
Vous pouvez donc constater que c'est très similaire, les script de message normal et message de pancarte se ressemblent beaucoup. Rien à ajouter [/spoiler]
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 !
[spoiler]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
'---------------#org 0x[offset]
Toujours du classique.
lock
"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 0x1 0x8[autreoffset]
"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.
waitmovement 0x0
Cette commande suit chaque, je dit bien chaque, applymovement. 0x0 ne change pas.
release
Cette fonction, très importante, permet au script de débloquer la map, quand il se finit.
end
Classique, il finit le script.
'---------'Movements'---------#org 0x[autreoffset]#raw 0x56 '(!)#raw 0xFE 'End of movements
#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 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 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à ![/spoiler]
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 ). 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).
[spoiler]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
"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.
end
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à ![/spoiler]
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.
[spoiler]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 Sherlock, passez moi la loupe, qu'on voit ça en détail
(Je vous laisse deviner à quoi sert le #org 0x[offset] ^^)
lockfaceplayer
"lock", vous connaissez. "faceplayer", un peu moins. Ca fonctionne comme MSG_FACE, ça dit au personnage de vous regardez.
setwildbattle 0x8F 0x5A 0x0
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.
checksoundcry 0x8F 0x2
"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 0x28waitcry
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 .
releaseend
Classique. Une fois le combat fini, le Pokémon disparaît, et vous êtes libéré.[/spoiler]
Maintenant que vous savez faire un Wildbattle, vous allez apprendre à faire un Trainerbattle. Même chose, mais avec un dresseur.
[spoiler]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 :
"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.
msgbox 0x8[offset3] MSG_NORMAL '""
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 string de la biatch Strings [/spoiler]
Me revoilà! Et avec un nouveau script à vous apprendre! Très facile, vous verrez
[spoiler]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 :
C'est tout! Facile, hein ? Bon, je n'ai qu'une commande à décortiquer, le reste, vous connaissez.
special 0x[numéroduspécial]
"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 [/spoiler]
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
[spoiler]Bon, on va y aller doucement, hein. Voilà :
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 :
checkflag 0x201
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.
if 0x1 goto 0x86C457C
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 :
if 0x1 goto 0xoffset2bla bla blabla bla bla'---------------#org 0xoffset2bla bla bla
M'voyez ? Une fois ce deuxième script terminé, le déroulement est "retransporté" où on l'avait déplacé. Capiche ?
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.
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 A bientôt pour un nouveau script![/spoiler]
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 vous explique juste la commande du warp, vous connaissez le reste, hein.
warp 0x3 0x1 0x0 0xC 0x13
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.
Compilez, et testez
[/spoiler]
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. Attention : Il y a deux sortes de Pokémart. Un pour RF/VF, et l'autre pour R/S/E. Je vous enseignerai les deux.
[spoiler]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) :
'---------------#org 0xoffsetspecial 0x187compare LASTRESULT 0x2if 0x1 goto 0x8offsetlockfaceplayerpreparemsg 0x8offset '"Bonjour!\nJe peux vous aider?"waitmsgpokemart 0x8offsetmsgbox 0x8offset MSG_KEEPOPEN '"A la prochaine!"releaseend'---------------#org 0xoffsetreleaseend'---------' Strings'---------#org 0xoffset= Bonjour!\nJe peux vous aider?#org 0xoffset= A la prochaine!'-----------' MartItems'-----------#org 0xoffset#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x
Il y a plusieurs nouvelles choses. Décortiquons, encore une fois.
special 0x187compare LASTRESULT 0x2
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.
Enfin, "pokemart 0x8offset" va débuter le Pokémart. Il se rapporte à ceci :
'-----------' MartItems'-----------#org 0xoffset#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x
"#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.
[hr]
'---------------#org 0x156861lockfaceplayerpreparemsg 0x81A5F96 '"Bienvenue!\pEn quoi puis-je vous a..."waitmsgpokemart 0x8156878msgbox 0x81A5FBD MSG_KEEPOPEN '"A la prochaine!"releaseend'---------' Strings'---------#org 0x1A5F96= Bienvenue!\pEn quoi puis-je vous aider?#org 0x1A5FBD= A la prochaine!'-----------' MartItems'-----------#org 0x156878#raw word 0x4#raw word 0x3#raw word 0xD#raw word 0x16#raw word 0xE#raw word 0x12#raw word 0x55#raw word 0x56#raw word 0x7A#raw word 0x0
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...[/spoiler]
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.
[spoiler]Bon, c'est simple, cool, et utile. Voici :
"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.[/spoiler]
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.
[spoiler]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 :
'---------------#org 0xoffsetmsgbox 0x8offset MSG_NORMAL '""showpokepic 0x1 0xA 0x3msgbox 0x8offset MSG_NORMAL '""hidepokepic 0x1end'---------' Strings'---------#org 0xoffset= C'est un Bulbizarre.#org 0xoffset= Cool, non ?
Bon, c'est ultra basique. Il y a juste deux commandes que vous ne connaissez pas :
showpokepic 0x1 0xA 0x3
"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.
hidepokepic 0x1
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à
hidesprite LASTTALKED
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 :
hidesprite 0xnuméro du personnage
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.
showsprite LASTTALKED
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 ![/spoiler]
Exercices :
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)
Niveau débutant :
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.
3eme exercice : faites un applymovement (au choix), suivi d'un message simple.
Niveau moyen :
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".
3eme exercice : compilez un message simple, suivi d'un giveitem et d'un givepokémon.
Niveau difficile :
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.
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.
Niveau expert :
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.
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.
End of Movements (à toujours placer à la fin des mouvements)
#raw 0xFE 'End of Movements
[/spoiler]
[spoiler=Liste des mouvements R/S]0x54 ' Hide
0x55 ' Show
0x56 ' !
0x57 ' ?
0x58 ' Coeur au dessus de la tête
0x5A ' Pokeball au dessus de la tête
0x10 ' Delay0
0x11 ' Delay1
0x12 ' Delay2
0x13 ' Delay3
0x14 ' Delay4
Tourne la tête vers le bas: 0x00
Tourne la tête vers le Haut: 0x01
Tourne la tête vers la gauche: 0x02
Tourne la tête vers la droite: 0x03
Fait un pas en bas (Très lentement): 0x08
Fait un pas en haut (Très lentement): 0x09
Fait un pas à gauche (Très lentement): 0x0A
Fait un pas à droite (Très lentement): 0x0B
Fait un pas en bas (lentement): 0x0C
Fait un pas en haut (lentement): 0x0D
Fait un pas à gauche(lentement): 0x0E
Fait un pas à droite (lentement): 0x0F
Fait un pas en bas (Normalement): 0x10
Fait un pas en haut (Normalement): 0x11
Fait un pas à gauche (Normalement): 0x12
Fait un pas à droite (Normalement): 0x13
Jump Down 2 Squares 0x14
Jump Up 2 Squares 0x15
Jump Left 2 Squares 0x16
Jump Right 2 Squares 0x17
Step Down (Fast) 0x1D
Step Up (Fast) 0x1E
Step Left (Fast) 0x1F
Step Right (Fast) 0x20
Step on the Spot Down 0x21
Step on the Spot Up 0x22
Step on the Spot Left 0x23
Step on the Spot Right 0x24
Step on the Spot Down (Fast) 0x25
Step on the Spot Up (Fast) 0x26
Step on the Spot Left (Fast) 0x27
Step on the Spot Right (Fast) 0x28
Step on the Spot Down (Very Fast) 0x29
Step on the Spot Up (Very Fast) 0x2A
Step on the Spot Left (Very Fast) 0x2B
Step on the Spot Right (Very Fast) 0x2C
Face Down (Non-Instant) 0x2D
Face Up (Non-Instant) 0x2E
Face Left (Non-Instant) 0x2F
Face Right (Non-Instant) 0x30
Slide Down 0x31
Slide Up 0x32
Slide Left 0x33
Slide Right 0x34
Slide Down On Right Foot 0x3D
Slide Up On Right Foot 0x3E
Slide Left On Right Foot 0x3F
Slide Right On Right Foot 0x40
Slide Down On Left Foot 0x41
Slide Up On Left Foot 0x42
Slide Left On Left Foot 0x43
Slide Right On Left Foot 0x44
Face Player 0x4A
Face Away from Player 0x4B
Jump Down 1 Square 0x4E
Jump Up 1 Square 0x4F
Jump Left 1 Square 0x50
Jump Right 1 Square 0x51
Jump in Place (Facing Down) 0x52
Jump in Place (Facing Up) 0x53
Jump in Place (Facing Left) 0x54
Jump in Place (Facing Right) 0x55
Jump in Place (Facing Down->Up) 0x56
Jump in Place (Facing Up->own) 0x57
Jump in Place (Facing Left->Right) 0x58
Jump in Place (Facing Right->Left) 0x59
Disappear 0x60
Reappear 0x61
"!" box popup 0x62
"?" box popup 0x63
"X" box popup 0x64
"!!" box popup 0x65
"^_^" box popup 0x66
[/spoiler]
[spoiler=Liste des "spécials" (R/S/RF/VF)]special 0x0 - Guérit les POKéMONS
special 0x3C - Acces au PC de LEO (RF/VF)
special 0x98 - Aller à la Montagne (R/S)
special 0x9C - Wally Catch (R/S)
special 0x9F - choisir un Pokemon (R/S)
special 0xE0 - Pokeblock (R/S)
special 0x10F - Recommencer le jeu
special 0x110 - Le Hall de la Gloire (Ligue Pokémon) et les Crédits
special 0x111 - Animation de l'Ascenseur
special 0x119 - Effet de l'Orbe de Groudon(R/S)
special 0x131 - Tremblement de Terre (R/S)
special 0x132 - Salles d'Exposition
special 0x136 - Tremblement de Terre (RF/VF)
special 0x137 - Battaile de Lave
special 0x156 - Combat avec un Fantôme (RF/VF)
special 0x157 - Monter sur le Vélo (RF/VF)
special 0x161 - Commencer à Surfer (RF/VF)
special 0x166 - Surnom
special 0x16F - Activer le National Dex (RF/VF)
special 0x17B - Animation du Sea Gallop (?????)
special 0x191 - SS. Anne
special 0x1F3 - Activer le National Dex (Emeraude)[/spoiler]
[spoiler=Liste des "spécials" (Emeraude)]0 - Soigner Pokemon
3 - Fait passer le héros dans le warp utiliser en dernier
8 - Créer une base secrète
E - Ouvrir le pc de la base secrète
22 - Message d'attente avant échange Link
24 - Ouvre le menu de sauvegarde (Ne pas oublier de mettre la commande waitstate juste après)
2A - Ouvre le menu de choix Pokémon (Pour zone de combat)
2F - Ouvre le sac à baie
3A - Le héros se retourne avec une "!" au dessus de la tête
3B - Joue la musique d'une rencontre avec un dresseur
3E - Provoque un combat contre un dresseur (Par défaut et sans pokémon)
3F - Ouvre le PC
61 - Affiche l'animation d'arrosage
62 - Créer ou modifier son profil
63 - Affiche votre profil
6A - Ouverture d'un message bizarre accompagné d'un son extraterrestre
6F - Un message qui raconte une histoire ...
70 - Ouvre un menu de choix (En rapport avec l'histoire du 6F)
71 - Choisir bureau (???)
9B - Affiche l'animation du téléphérique
9D - Changer l'heure
9E - Affiche l'heure
9F - Choisir starter + Combat contre Zigzaton
A0 - Animation avec Timmy (Explication "Comment capturer un pokemon"
A1 - Propose de donner un surnom au premier Pokémon de l'équipe
A2 - Choisir un pokemon dans l'équipe
A4 - Mixeur de baie
B2 - "En quête de dresseur" Journaliste Ines
BF - Choisir un Pokémon à déposer en pension
C0 - Récupérer Pokémon mis en pension
C5 - Eclosion d'un oeuf (Il fait éclore le premier Pokémon de l'équipe ... Bizarre)
C7 - Affiche les résultats de la zone combat
D3 - Ouvre la boite Pokeblock
D8 - Analyse du Pokedex
DE - Choisir Pokémon (???)
DF - Affiche les capacités Combat et concours du premier Pokémon
E3 - Enseigner une capacité au premier pokémon
EF - Déclenche un combat contre un dresseur de la zone combat (Gamin Hugo)
F4 - Arrête la musique
F8 - Choisir Pokémon pour un défi (?)
FD - Afficher PC du héros
FE - Affiche la carte
101 - Animation Evolution
106 - Affiche record de vitesse pour le mixeur de baie
109 - Affiche écran d'accueil du PC
10A - Consulter les données du panthéon
10B - Affiche le diplôme certifiant que le héros à remplit tout le pokédex
111 - Affiche le bateau
112 - Redémarre le jeu
113 - Victoire de la Ligue Pokémon + Crédit
114 - Effet ascenseur
11C - Effet Orbe rouge + Seisme
12E - Passe dans le warp menant au dernier point d'atterissage (Flightspot) utilisé
133 - Effet Seisme
134 - Affiche étage (Ascenseur)
139 - Combat contre Kyogre
13A - Combat contre Groudon
13B - Combat contre Légendaire (Rayquaza?)
13D - Fait trembler l'écran pendant 1 seconde
13F - Effet Flash
140 - Faire passer le héros dans le warp utiliser en dernier (Sans son)
141 - Effet de chute en passant au dernier warp utilisé
142 - Affiche un pokemon inconnu (?)
145 - Combat contre un pokemon (?)
15D - Redémarrer le jeu
[/spoiler]
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
Haha, maintenant se pose le problème, pour les applymovement, des hauteurs de personnages, des cessions d'ID, des sprites cachées etc...
Mais bon, bien joué.
Sainior - 4 août 2010 à 18:32
Ouais, je sais Weby, mais j'éditerai, y a encore pas mal de truc que je dois mettre
Sinon, merci :D
Sïlver Sö - 4 août 2010 à 20:00
Y'a certaine phrase qui me font bêtement penser a Skull, du genre : Sherlock passe moi la loupe, il avait dit chez plus quoi, qui ressemblaient dans le même genre, mais osef hein. :you:
Sinon GG.
Même si pour moi PokéScript roxx XSE jusqu'à la moelle.
P.S: Sinon, pourquoi ne pas l'avoir mis dans Difficile, pour moi c'est, enfin d'après vous, aussi dur que mon TUTO sur PokéScript, c'est le même type de script, etc...
Sainior - 4 août 2010 à 20:02
Y'a certaine phrase qui me font bêtement penser a Skull, du genre : Sherlock passe moi la loupe
Quoi ? Nan. Sans rancune, hein.
Merci, sinon Et c'est XSE le plus fort, namého.
Sïlver Sö - 4 août 2010 à 20:07
Y'a certaine phrase qui me font bêtement penser a Skull, du genre : Sherlock passe moi la loupe
Quoi ? Nan. Sans rancune, hein.
Si, je suis sure, un moment, il fait genre comme si des gens lui disait : Putain explique Skull, on comprend rien !!!!!!!!!!!
Sainior - 4 août 2010 à 20:08
Ah, j'ai cru que tu pensais que j'avais copié une de ses réplique, sry :baffan:
Sïlver Sö - 4 août 2010 à 20:09
Sry aussi, j'ai du mal m'expliquer. :baffan:
Ah, et ca serait bien de préciser dans le titre : avec XSE.
Yotu - 5 août 2010 à 10:23
Merci du tuto Sainior, mais il y a parfois un problème.
Quand je modifie les textes des pnjs situés sur la map de Bourg-en-vol, y a n'a un qui dit ce les textes que je lui ai mis, mais l'autre fait un melange de son texte et de celui de l'autre pnj, ce qui casse le sens de la phrase, et j'ai pourtant tout fait correct. :(
C'est pas normal que quand tu fais comme il fallait t'a pas le même resultat que celui du tuto... :(
Sainior - 5 août 2010 à 11:43
Ca fait parti des bugs dont je parlais ; change l'offset (ou les offsets), et ça devrait aller mieux.
Yotu - 5 août 2010 à 12:26
Si je cherche un nouvel offset, je ne pourrait pas utliser FSF, qui ne sert qu'aux maps pour les events...
Y a une manip spéciale pour trouver un nouvel offset, ou je renomme au pif comme ça?
Sainior - 5 août 2010 à 12:28
Pourquoi ne pas utiliser FSF ? J'avoue ne pas te comprendre :baffan:
Yotu - 5 août 2010 à 12:32
Ben en fait je sais pas si avec FSF on peut trouver l'offset du pnj.
Sainior - 5 août 2010 à 12:40
Tu t'en fous, tu le changes.
Yotu - 5 août 2010 à 12:51
Okéj, alors si il est comme ça par exemple: "$1E8817" et que je le change en "$1E8818" là ça devrais être bon.
Mais sinon, j'ai racourcit le texte d'un des pnjs et là les messages se mélangent pas.
Ah j'allait oublier, un des deux pnj a un ID personnage de "0000", y doit y'avoir un problème non?
Sainior - 5 août 2010 à 12:52
Non, c'est normal, pour le 0000. Pour l'offset, cherche le avec FSF, pour être sur, desfois que...
Yotu - 5 août 2010 à 12:55
Ok, je teste ça.
EDIT: J'ai fait une recherche à partir d'un offset de pnj, ça me donne un offset ressemblant à celui d'un event: "E3DBF0"
Weby - 5 août 2010 à 13:02
Mec, faut trouver un offset libre. Changer de xxxx17 à xxxx18, t'auras même pas forcément un autre script, mais le même script qui part juste 8 byte plus loin...
Yotu - 5 août 2010 à 13:04
Ok, merci, je vais faire comme ça alors.
Sainior - 7 août 2010 à 10:46
EDIT : Ajout du "Spécial", pour R/S/E/RF/VF
Yotu - 7 août 2010 à 11:53
Ca va beaucoup nous aider pour scripter, ces dernières infos sont précieuses, merci mec!
whittipexSH - 7 août 2010 à 12:13
putain merci sainior :orly:
supersam2 - 7 août 2010 à 18:09
j'ai une correction à faire: à un moment tu dis que '"" n'est pas une commande mais est nécessaire. C'est faut puisque ' signifie que tout jusqu'à la fin de la ligne est un commentaire et donc c'est totalement inutile. sauf si tu considère qu'un commentaire reprenant un texte vide est utile...
Sainior - 10 août 2010 à 13:05
Oui, mais il est présent dans tous les scripts, donc c'est toujours mieux de le mettre.
Sainior - 16 août 2010 à 15:30
Désolé du DP, mais MàJ il y a : GivePokémon ajouté!
zugoent - 16 août 2010 à 17:31
Salut je voulais savoir pour le wildbattle ou le givepokemon c'est possible de dire que le pokémon doit ou non être shiney ? oulalala le gourmand ! Et de choisire (tant qu'a faire) si le pokémon est male ou femelle ? Merci d'avance.
Sasu - 16 août 2010 à 17:51
C'est possible de faire un echangepokemon ? Comme dans RBJ, un Electrode contre un Raichu par ex
Sainior - 16 août 2010 à 18:01
Sasu : je me suis jamais posé la question, je regarderai
Zugoent : on ne peut pas choisir le genre du Pokémon. Il est possible qu'ils soient shiney, pour cela, il faut utiliser Shinyzer (logiciel), et insérer un script spécial dans le Wildbattle ou le GivePokémon (je l'ai pas en tête, je te tiendrai au courant )
supersam2 - 17 août 2010 à 13:01
C'est possible de faire un echangepokemon ? Comme dans RBJ, un Electrode contre un Raichu par ex
'---------------
#org 0x16F68E
bufferpokemon 0x0 0x8009
msgbox 0x81A44AC MSG_KEEPOPEN '"Mais c'est pas un [buffer1]!"
release
end
'---------------
#org 0x1A7702
copyvar 0x8004 0x8008
copyvar 0x8005 0x800A
special 0xFD
special 0xFE
waitstate
lock
faceplayer
return
'---------
' Strings
'---------
#org 0x1A446A
= Je cherche un [buffer1].\pTu veux l'échanger\ncontre un [buffer2]?
#org 0x1A44C2
= Merciiii!
#org 0x1A44CC
= Il est cool mon [buffer2], hein?
#org 0x1A449D
= Bon[.]\nTant pis[.]
#org 0x1A44AC
= Mais c'est pas un [buffer1]![/code]
EDIT T@gekiss: Met les script dans une balise code, la prochaine fois, de façon a ce que ça ne rentre pas en coalition avec le texte. :boogyfr:
Sasu - 17 août 2010 à 13:01
Merci, mais tu devrais mettre ça dans les balises code, ça rendrait mieux
Sainior - 17 août 2010 à 18:38
Ah ben merci, ça m'évitera du travail :baffan:
supersam2 - 17 août 2010 à 18:49
par contre les buffer je sais pas d'ou ca vient... ce sont des variables?
Sainior - 17 août 2010 à 19:02
Dans les messages ? C'est le nom du héros ([buffer1]), d'un Pokémon,..
supersam2 - 17 août 2010 à 19:03
je sais mais comment on change le contenu des buffers, ca je sais pas
Sainior - 17 août 2010 à 19:04
Personellement, je me casse pas la tête, j'en met pas :/
supersam2 - 17 août 2010 à 19:07
pour créer des échange ce serait cool...
Max 68 - 20 août 2010 à 21:05
excellent, tout y est
Bravo a toi
roucou20 - 24 août 2010 à 00:32
très bon tuto ,trés complet en plus je trouve.
supersam2 - 27 août 2010 à 10:57
ok. pour mettre un pokémon en cache, c'est bufferpokemon iNumeroDuBuffer-1 iNumeroDuPoke
si vous avez besoin d'aide pour un script, je suis là
giratino - 30 août 2010 à 09:04
C'est bien d'apprendre à créer un message mais le personnage une fois obtenu n'a pas d'offset
et donc je lui en assigne 1 de libre et j'ouvre le script je fais le message et pour le 2è offset je vais dans FSE je fais:rechercher après.
Ensuite je copie celui qui apparaît je le met avant: MSG-.... et après:0x(2è offset collé ici sans espace avec le x) je compile le tout je vais dans advance map; je réouvre le script et ça me donne ça:
Normal. Dans FSF, tu as pris de petits offset, qui sont quasi-identiques en plus. Donc, dans bytes, au lieu de 64, tu met au moins 500. Puis, dans intervalle de recherche, tu met 16. Tu cherche deux offset, tu les mets, et ça marche.
giratino - 30 août 2010 à 12:00
Non ça me refait pareil :baffan:
supersam2 - 30 août 2010 à 13:17
mais putain utilise des offsets dynamiques!
Sainior - 30 août 2010 à 13:33
Non ça me refait pareil :baffan:
Alors, reprend d'autres offsets, ou aggrandi encore (1000, 2000, 2500,...), jusqu'à ce que ça marche...
giratino - 30 août 2010 à 15:10
J'ai mis 2000 (bytes ont eu besoin)
Et une fois le perso placé qui regarde aux alentours
Je lui colle l'offset 1er de FSF.
J'ouvre le script ça me marque ça est-ce normal?
Non c'est bon j'ai trouvé la source de mon problème et c'est réglé
FSF me sortait des offset mais en dessous du 1er et moi j'ai cru qu'ils étaient aux dessus
donc je copiait le même à chaque fois :fail: :fail: :fail:
Excusez moi :education:
Maintenant j'attaque l'autre script; celui des warps.
Edit boogyfr : Double-post corrigé.
Sainior - 31 août 2010 à 15:43
Edit du 31/08/2010 : Nouveau script + ajout des mouvements Emeraude.
giratino - 31 août 2010 à 15:51
Merci :winner:.
Super simple et super utile
PS: j'ai remarqué que dans le advance map que j'ai le warp s'affichent et je dois juste mettre le bank et le numéro de la carte ou je veux aller c'est trop cool
Sainior - 31 août 2010 à 21:50
Nan, mais c'est normal --' Ce que j'ai mis dans ce tuto, c'est pour la suite d'un script, quand tu ne contrôles pas ton personnage. Un warp (pas le script), c'est utilisable seulement quand tu contrôles le personnage.
giratino - 31 août 2010 à 22:10
Ah ok :fail: parce c'est ça que j'ai compris dans l'approche et ton message non plus je ne comprend pas
Sainior - 31 août 2010 à 22:36
Warp dans un script : On l'utilise et on le place dans un script (les petits verts). Il permet de "téléporter" le personnage où on le souhaite. On n'utilise pas de warp "normal", parce que le personnage, durant l'exécution d'un script ne peut être contrôlé, donc, il ne peut pas marcher sur le warp "normal".
Warp "normal" (les petits violets): Lorsqu'on marche dessus on est téléporté à une autre map (sans blague). Il ne s'active que lorsqu'on marche dessus, donc quand on contrôle le personnage.
Capiche ?
giratino - 1 septembre 2010 à 09:59
Yes sir :castor: Je vois donc comme dans le passage du prof chen qui te ramène dans son labo au début? là on ne contrôle pas le perso.
C'est ça?
Sainior - 1 septembre 2010 à 10:02
Bingo!
zugoent - 1 septembre 2010 à 10:07
Zugoent : on ne peut pas choisir le genre du Pokémon. Il est possible qu'ils soient shiney, pour cela, il faut utiliser Shinyzer (logiciel), et insérer un script spécial dans le Wildbattle ou le GivePokémon (je l'ai pas en tête, je te tiendrai au courant )
dsl de ma réponse tardive. J'ai deja utiliser shinyzer mais niveau scriptouille je suis une vrai brèle donc si tu trouve sa m'arrange :you:
'---------------#org 0xspecial 0x187compare LASTRESULT 0x2if 0x1 goto 0x8lockfaceplayerpreparemsg 0x8 '"Bonjour!\nJe peux vous aider?"waitmsgpokemart 0x8msgbox 0x8 MSG_KEEPOPEN '"A la prochaine!"releaseend'---------------#org 0xreleaseend'---------' Strings'---------#org 0x= Bonjour!\nJe peux vous aider?#org 0x= A la prochaine!'-----------' MartItems'-----------#org 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x#raw word 0x
[/spoiler]
Enfin si c'est ça (après les offsets je ne sait pas)
[spoiler=Avec offsets]
'---------------#org 0x16A708special 0x187compare LASTRESULT 0x2if 0x1 goto 0x81A6509lockfaceplayerpreparemsg 0x81A4D3B '"Bonjour!\nJe peux vous aider?"waitmsgpokemart 0x816A730msgbox 0x81A3D02 MSG_KEEPOPEN '"A la prochaine!"releaseend'---------------#org 0x1A6509releaseend'---------' Strings'---------#org 0x1A4D3B= Bonjour!\nJe peux vous aider?#org 0x1A3D02= A la prochaine!'-----------' MartItems'-----------#org 0x16A730#raw word 0x4#raw word 0xD#raw word 0xE#raw word 0x12#raw word 0x11#raw word 0xF#raw word 0x55#raw word 0x56#raw word 0x0
[/spoiler]
En esperant que ce soit utile :golden:
Sainior - 4 septembre 2010 à 20:10
Ah ben tiens, merci, ça m'évitera de tout monter de toute pièce :haulas:
J'y avait deja été et marlheuresement je sais pas si c'est moi mais je n'ai pas réussi :/ je dois être un boulet :you: :you: :you:
Sainior - 4 septembre 2010 à 20:23
T'avais pas réussi quoi exactement ?
zugoent - 4 septembre 2010 à 21:39
T'avais pas réussi quoi exactement ?
Ben a faire que le prochain wildbattle soit le pokémon de mon choix plus qu'il soit shiney :you:
**P.S:**j'adore le :you:
Sainior - 4 septembre 2010 à 21:42
C'est pourtant expliqué clairement, je pense, il faut inscrire les coordonnées suivantes :
wildbattle 0x1 (numéro du Pokémon en hexadécimal) 0x1 (niveau du Pokémon, toujours en hexa' 0x1 (numéro de l'objet tenu, en hexa'
EDIT : j'ai pas les commandes de Pokémon Shiny en tête, je te les passe demain.
zugoent - 4 septembre 2010 à 22:24
merci bien :winner:
Sainior - 5 septembre 2010 à 10:23
Ajout du Pokémart et du Checkgender !
giratino - 6 septembre 2010 à 18:52
J'adore le checkgender j'ai testé et approuvé
PS: j'ai la machine à sous aussi
edit:
Le centre pokémon est compliqué donc j'ai préféré laisser les offsets mais vu que c'est primordial j'avais souhaité le laisser ici
[spoiler=Le centre pokémon]
'---------------#org 0x16C623lockfaceplayercall 0x81A50C6releaseend'---------------#org 0x1A50C6special 0x187compare LASTRESULT 0x2if 0x1 goto 0x81A6509preparemsg 0x81A3FC5 '"Bienvenue dans notre CENTRE\nPOKéM..."waitmsgmultichoice 0x13 0x8 0x0 0x2copyvar 0x8000 LASTRESULTcompare 0x8000 0x0if 0x1 goto 0x81A5106compare 0x8000 0x1if 0x1 goto 0x81A51B1compare 0x8000 0x7Fif 0x1 goto 0x81A51B1end'---------------#org 0x1A6509releaseend'---------------#org 0x1A5106cmdc3 0xFpreparemsg 0x81A4016 '"OK, je prends vos POKéMON un\ninst..."waitmsgcall 0x81A511Cspecial 0x169goto 0x81A513A'---------------#org 0x1A51B1msgbox 0x81A403C MSG_KEEPOPEN '"A bientôt!"return'---------------#org 0x1A511Capplymovement LASTTALKED 0x81A6010waitmovement 0x0doanimation 0x19checkanimation 0x19applymovement LASTTALKED 0x81A6016waitmovement 0x0special 0x0return'---------------#org 0x1A513Aspecial2 LASTRESULT 0x1B1compare LASTRESULT 0x0if 0x1 goto 0x81A516Bspecial2 LASTRESULT 0x183copyvar 0x8008 LASTRESULTcompare 0x8008 0x0if 0x1 goto 0x81A516Bcompare 0x8008 0x1if 0x1 goto 0x81A5184end'---------------#org 0x1A516Bpreparemsg 0x81A4047 '"Merci d'avoir attendu.\pVos POKéMO..."waitmsgapplymovement LASTTALKED 0x81A51BAwaitmovement 0x0msgbox 0x81A403C MSG_KEEPOPEN '"A bientôt!"return'---------------#org 0x1A5184checkflag 0x842if 0x1 goto 0x81A516Bmsgbox 0x81A4047 MSG_KEEPOPEN '"Merci d'avoir attendu.\pVos POKéMO..."setflag 0x842preparemsg 0x81BB569 '"On dirait que [buffer1] est en\ntr..."waitmsgapplymovement LASTTALKED 0x81A51BAwaitmovement 0x0msgbox 0x81A403C MSG_KEEPOPEN '"A bientôt!"return'---------' Strings'---------#org 0x1A3FC5= Bienvenue dans notre CENTRE\nPOKéMON!\pVoulez-vous que je m'occupe\nde vos POKéMON?#org 0x1A4016= OK, je prends vos POKéMON un\ninstant.#org 0x1A403C= A bientôt!#org 0x1A4047= Merci d'avoir attendu.\pVos POKéMON sont en super forme.#org 0x1BB569= On dirait que [buffer1] est en\ntrain de jouer.\lAllez-y!'-----------' Movements'-----------#org 0x1A6010#raw 0x2F 'Face Left (Delayed)#raw 0xFE 'End of Movements#org 0x1A6016#raw 0x2D 'Face Down (Delayed)#raw 0xFE 'End of Movements#org 0x1A51BA#raw 0x5B 'mov5B#raw 0x1A 'elay3#raw 0xFE 'End of Movements
[/spoiler]
A mettre dans le script d'un personnage
RF/VF toujours (je regarde si celui emerazude est différent)
Sainior - 6 septembre 2010 à 19:00
C'est pas une mauvaise idée de le mettre, pour ceux qui veulent, mais c'est pas un apprentissage. Quand j'aurai fini, avec les exos et tout, vous pourrez le faire en triple les yeux fermés.
giratino - 6 septembre 2010 à 19:02
Ok j'en connais certains sur le bout des doigts mais c'est dur
Sainior - 11 septembre 2010 à 10:16
Ajout du Showpoképic/Hidepoképic & Hidesprite/Showsprite !
whittipexSH - 11 septembre 2010 à 10:31
sa gère merci :you:
giratino - 11 septembre 2010 à 12:43
sa gère merci :you:
²^^ :win:
Sainior - 3 octobre 2010 à 11:36
Exercices rajoutés.
giratino - 3 octobre 2010 à 18:16
J'ai fait un giveitem... mais pour donner des chaussures de sport mais je ne croit pas que ça doit être un give item et je ne sait pas le Spécial ou le numéro de ce spécial/objet
supersam2 - 3 octobre 2010 à 18:19
c'est un setflag qui dépends de ta version
giratino - 3 octobre 2010 à 18:20
RougeFeu Mais c'est à dire un setflag? Il faut utiliser quel script alors?
supersam2 - 3 octobre 2010 à 18:24
met juste ceci quelque part dans ton script:
setflag 0x82F
giratino - 3 octobre 2010 à 18:26
Ok thanks^^
Mais donc j'ai supprimer le giveitem inutile et je l'ai mis en dessous d'une une msg_box(anciennement placée avant le giveitem car c'etait un homme qui les donnait)
mais je compile je vais voir le mec il récite bien, mais après aucune chaussures de sports... :cheval
supersam2 - 3 octobre 2010 à 18:40
montre le script
giratino - 3 octobre 2010 à 18:45
[spoiler]
'---------------#org 0x2D7E5Cmsgbox 0x82D7E6C MSG_FACE '"Tiens un gamin... Dit moi petit......"setflag 0x82Fend'---------' Strings'---------#org 0x2D7E6C= Tiens un gamin... Dit moi petit...\nEST-CE QUE TU AIME LES HARIBOS????\lNon t'inquiète je déconne.--'\lBon allez tiens, voila de belles\lchaussures de sport neuves pour me\lfaire pardonner. Appuis sur B en\lte déplaçant pour courir.
[/spoiler]
Tiens n'hésite pas à me rectifier si je me suis trompé
supersam2 - 3 octobre 2010 à 18:48
et il est ou le setflag?
giratino - 3 octobre 2010 à 18:49
Ah merde je t'ai mis l'ancien
Edité
supersam2 - 3 octobre 2010 à 18:53
dans ce cas ca fonctionne
giratino - 3 octobre 2010 à 18:56
Non le message s'affiche et c'est tout
supersam2 - 3 octobre 2010 à 19:06
et puis tu appui sur B et tu cours mais c'est de la magie
giratino - 3 octobre 2010 à 19:06
Non ça marche pas non plus -_- tu me prends vraiment pour un con toi
supersam2 - 3 octobre 2010 à 19:15
ben non mais si je compile le script chez moi et que ca marche...
giratino - 3 octobre 2010 à 19:17
Bah si tuas un log pour faire une vidéo je te montre
supersam2 - 3 octobre 2010 à 19:24
je te crois mais bon... le problème viens forcément de chez toi!
ferme le script et double clique sur le perso et vérifie
giratino - 3 octobre 2010 à 19:36
Déjà fait :black: mais si c'est à propos de l'emulateur j'utilise No$gba
supersam2 - 3 octobre 2010 à 20:33
non rien à voir avec ca... envoie un peu un patch
giratino - 3 octobre 2010 à 20:40
Désolé j'ai pas compris "envoie un peu un patch"
supersam2 - 3 octobre 2010 à 20:42
file moi un patch de ta rom
giratino - 4 octobre 2010 à 17:37
Ok att je ne suis pas sur mon pc
Sainior - 4 octobre 2010 à 19:29
C'est peut-être que tout simplement, le setflag n'est pas bon.
supersam2 - 4 octobre 2010 à 19:40
non ca marche sur rf chez moi
Sainior - 4 octobre 2010 à 19:41
Hmm
supersam2 - 4 octobre 2010 à 20:03
Hmm
LE message trop utile x)
Sainior - 4 octobre 2010 à 20:17
Nan mais juste pour dire que c'est bizarre xD
giratino - 8 octobre 2010 à 19:31
[spoiler=patch]Patch RF FR[/spoiler]
Après Eole un gars Scientifique (j'ai pas fini le script normalement mais je devais tester)
PS:Dsl double post j'ai refait mes posts
boogyfr - 8 octobre 2010 à 20:44
Tu arrive a del tes posts?
T@gekiss - 8 octobre 2010 à 20:51
Ce n'est pas le sujet, Paul.
kelkun - 9 octobre 2010 à 20:42
Salut je n'arrive pas du tout avec le pokemart Rouge Feu.
Tu pourrais m'expliqué stp ? c'est au niveau des offset que j'ai un problème je pense mais je ne sais pas trop ou exactement :s
Sainior - 9 octobre 2010 à 20:50
Tu pourrais me passer ton script, et m'expliquer le bug ?
kelkun - 10 octobre 2010 à 11:52
Je t'ai envoyé un mp
ArT!c - 16 octobre 2010 à 17:41
It's Perfect :haulas:
Itch_nak - 8 décembre 2010 à 23:10
Je suis nouveau ici,et quand j'ai vu ce sublissime tuto de script :o
J'en ai pas décroché ^^
Merci pour tout tes tutos (et particulièrement celui-ci ^^)
J'en ai rarement vu des aussi complets ^^ Même sur PL
Après, tes exercices ... la force est avec moi ! :cockgowhere:
Sainior - 9 décembre 2010 à 15:38
Pas de quoi
Itch_nak - 11 décembre 2010 à 12:53
Tu dois n'être un scripteur de n'ouf :you:
supersam2 - 11 décembre 2010 à 14:45
No comment
Chake - 6 mars 2011 à 14:57
Salut! Alors en fait j'ai un petit probleme avec le givepkm, j'ai fais le script et tout, mais dès que je veux le compiler avec XSE, il y a un message d'erreur "Caractère inconnu e a la ligne 42". Voila mon script:
[spoiler]'---------------
#org 0xEDDB60
checkflag 0x201
lock
faceplayer
if 0x1 goto 0x8EDDB70
msgbox 0x8EDDB80 MSG_YESNO
compare LASTRESULT 0x1
if 0x1 goto 0x8EDDB90
msgbox 0x8EDDBA0 MSG_NORMAL
release
end
#org 0xEDDBC0
= Hey! Mon pokemon\nest vraiment trop nul, je veux\lm'en debarraser. Tu le veux?
#org 0xEDDBD0
= Haha! Je suis enfin libre de ce\nstupide Qwilfish!
#org 0xEDDBE0
= Ah non! Je t'ai prevenu que je ne\nl
e
reprendrai pas.
#org 0xEDDB00
= Tiens le voila.[/spoiler]
Et au passage excellent tuto!!
PS: J'espère que mon message ne va pas etre consideré comme un remontage de topic.. :S
EDIT: Ah non ça y est j'ai réussi a corriger le problème, c'est parceque j'avais sauté une ligne par erreur a "je ne le reprendrais pas!" ^^
darklives - 16 mai 2011 à 18:18
Salut Sainior, d'abord merci pour tes tutos notamment sur le script, ça m'aide beaucoup dans la réalisation de ma petite RH Ensuite j'ai un problème avec le pourtant simple script de wildbattle.
J'ai vérifié et il me semble avoir correctement suivi ton tuto, mais à la fin du wildbattle, le jeu bug (je ne contrôle plus mon personnage, l'image se déplace mais lui reste immoblile et je suis bloqué sur 2x2 cases).
J'ai changé l'offset deux fois en agrandissant jusqu'à 1000 octets, donc le problème semble venir d'ailleurs.
Si tu pouvais me dire ce qui ne va pas, je t'en serais reconnaissant, merci beaucoup.
Au fait, la rom utilisée est Rouge Feu FR
Mickey` - 16 mai 2011 à 21:37
Hum juste, tu n'as pas mis le même numéro pour le pokémon en combat et pour le cri... c'est fait exprès ? ^^
Fin à part ça, ton script est correct il me semble. Ce problème m'est déjà arrivé. Supprime l'event et refais-en un nouveau, avec le même script.
Rechange encore l'offset, on sait jamais.
Ps / Hs : Ce tuto est pas épinglé ? :/
dracroc - 16 mai 2011 à 21:40
ah mon avis ça pourrait etre les setflag qui changent selon la version ( rouge feu ou emeraude ou .... )
mais moi je dis ça, je dis rien :O
Mickey` - 16 mai 2011 à 21:44
Non, ce sont les mêmes, testés et approuvés
darklives - 20 mai 2011 à 00:09
ton script est correct il me semble. Ce problème m'est déjà arrivé. Supprime l'event et refais-en un nouveau, avec le même script.
Rechange encore l'offset, on sait jamais.
J'ai déjà fait ce que tu me conseilles, deux ou trois fois. je vais essayer de trouver d'autres infos, merci quand même
Mickey` - 27 mai 2011 à 20:18
Désolé du temps de réponse darklives (j'avais pas vu le message T.T)
Tu as toujours ton problème ? Si oui, est-ce que ton script change après l'avoir compilé ? (ferme, puis reviens dessus, où alors clique juste après sur le bouton "écompiler"
-------- - 3 juin 2011 à 10:15
Le lien de download de XSE 11 est mort (Médiafire dit : Invalid or Deleted File)
Arnikum Plus - 4 juin 2011 à 21:47
J'ai une question: LASTRELUST sert à quoi dans un script?
Mickey` - 4 juin 2011 à 21:54
Hum, en fait, ça ca veut dire "Last Result", dernier résultat.
"compare" va comparer les YESNO. Si oui, 0x1, tu vas à l'Offset2, si non à l'Offset3. "LASTRESULT" veut en gros dire "le dernier résultat obtenu dans le script".
Il sert dans des scripts simple de oui ou non, mais tu peux aussi avoir un script du genre countpokemon :
Ici, à chaque fois on compare également "le dernier résultat obtenu" grâce au LASTRESULT.
J'espère t'avoir aidé
Arnikum Plus - 4 juin 2011 à 22:07
En résumé, c'est très utile comme quand on veut faire le script d'un prof.
Ouaip, merci beaucoup!
Flower// - 4 juin 2011 à 22:16
Tu peu faire une Hack-ROM "Question pour un Pokémon". :roumi:
Arnikum Plus - 5 juin 2011 à 15:06
Ah ah! Très drôle!
Je travaille déjà sur une hack.
XDpokemon - 19 juin 2011 à 16:09
LA wind battle j'y arrive pas ='( exemple dans le script d'electhor dans rouge feu j'ai beau enlever le nombre apres 0x il revient sans arret svp comment faire
(voici le script delecthor :
'---------------
#org 0x1637DA
special 0x187
compare LASTRESULT 0x2
if 0x1 goto 0x81A6509
special 0x188
lock
faceplayer
setwildbattle 0x91 0x32 0x0
checksound
cry 0x91 0x2
preparemsg 0x81A4F93 '"Yahou!"
waitmsg
waitcry
pause 0xA
playsong 0x156 0x0
waitkeypress
setflag 0x807
special 0x138
waitstate
clearflag 0x807
special2 LASTRESULT 0xB4
compare LASTRESULT 0x1
if 0x1 goto 0x816383D
compare LASTRESULT 0x4
if 0x1 goto 0x8163846
compare LASTRESULT 0x5
if 0x1 goto 0x8163846
setflag 0x2BF
release
end
Ou sinon y a aussi une liste qu'a mis Sainior à la fin du tuto...
pokemonbonjour - 29 juin 2011 à 11:58
j'ai oublié de présiser...j'utilise emeraude...
Effectivement je n'avais pas vu la liste...
mais le wildbattle est pas le meme...
pokemonbonjour - 18 juillet 2011 à 14:36
La liste des mouvements est incomplète :[spoiler=Ruby/Sapphire/Emerald]
#raw 0x00 = Face Down#raw 0x01 = Face Up#raw 0x02 = Face Left#raw 0x03 = Face Right#raw 0x04 = Step Down (Slow)#raw 0x05 = Step Up (Slow)#raw 0x06 = Step Left (Slow)#raw 0x07 = Step Right (Slow)#raw 0x08 = Step Down (Normal)#raw 0x09 = Step Up (Normal)#raw 0x0A = Step Left (Normal)#raw 0x0B = Step Right (Normal)#raw 0x0C = Jump2 Down#raw 0x0D = Jump2 Up#raw 0x0E = Jump2 Left#raw 0x0F = Jump2 Right#raw 0x10 = Delay1#raw 0x11 = Delay2#raw 0x12 = Delay3#raw 0x13 = Delay4#raw 0x14 = Delay5#raw 0x15 = Step Down (Fast)#raw 0x16 = Step Up (Fast)#raw 0x17 = Step Left (Fast)#raw 0x18 = Step Right (Fast)#raw 0x19 = Step on the Spot Down (Slow)#raw 0x1A = Step on the Spot Up (Slow)#raw 0x1B = Step on the Spot Left (Slow)#raw 0x1C = Step on the Spot Right (Slow)#raw 0x1D = Step on the Spot Down (Normal)#raw 0x1E = Step on the Spot Up (Normal)#raw 0x1F = Step on the Spot Left (Normal)#raw 0x20 = Step on the Spot Right (Normal)#raw 0x21 = Step on the Spot Down (Faster)#raw 0x22 = Step on the Spot Up (Faster)#raw 0x23 = Step on the Spot Left (Faster)#raw 0x24 = Step on the Spot Right (Faster)#raw 0x25 = Step on the Spot Down (Fastest)#raw 0x26 = Step on the Spot Up (Fastest)#raw 0x27 = Step on the Spot Left (Fastest)#raw 0x28 = Step on the Spot Right (Fastest)#raw 0x29 = Slide Down#raw 0x2A = Slide Up#raw 0x2B = Slide Left#raw 0x2C = Slide Right#raw 0x2D = Slide Down#raw 0x2E = Slide Up#raw 0x2F = Slide Left#raw 0x30 = Slide Right#raw 0x31 = Slide Down#raw 0x32 = Slide Up#raw 0x33 = Slide Left#raw 0x34 = Slide Right#raw 0x35 = Slide Running Down#raw 0x36 = Slide Running Up#raw 0x37 = Slide Running Left#raw 0x38 = Slide Running Right#raw 0x3A = Jump Facing Left (Down)#raw 0x3B = Jump Facing Down (Up)#raw 0x3C = Jump Facing Up (Left)#raw 0x3D = Jump Facing Left (Right)#raw 0x3E = Face Player#raw 0x3F = Face Against Player#raw 0x40 = Lock Sprite Facing#raw 0x41 = Release Sprite Facing#raw 0x42 = Jump Down#raw 0x43 = Jump Up#raw 0x44 = Jump Left#raw 0x45 = Jump Right#raw 0x46 = Jump in Place (Facing Down)#raw 0x47 = Jump in Place (Facing Up)#raw 0x48 = Jump in Place (Facing Left)#raw 0x49 = Jump in Place (Facing Right)#raw 0x4A = Jump in Place (Facing Down/Up)#raw 0x4B = Jump in Place (Facing Up/Down)#raw 0x4C = Jump in Place (Facing Left/Right)#raw 0x4D = Jump in Place (Facing Right/Left)#raw 0x4E = Face Left#raw 0x54 = Hide Sprite#raw 0x55 = Show Sprite#raw 0x56 = Exclamation Mark (!)#raw 0x57 = Question Mark (?)#raw 0x58 = Love (<3)#raw 0x62 = Walk Down#raw 0x63 = Walk Down#raw 0x64 = Face Down (Delayed)#raw 0x65 = Face Up (Delayed)#raw 0x66 = Face Left (Delayed)#raw 0x67 = Face Right (Delayed)#raw 0x70 = Jump in Place (Facing Down)#raw 0x71 = Jump in Place (Facing Up)#raw 0x72 = Jump in Place (Facing Left)#raw 0x73 = Jump in Place (Facing Right)#raw 0x74 = Jump Down Running#raw 0x75 = Jump Up Running#raw 0x76 = Jump Left Running#raw 0x77 = Jump Right Running#raw 0x78 = Jump2 Down Running#raw 0x79 = Jump2 Up Running#raw 0x7A = Jump2 Left Running#raw 0x7B = Jump2 Right Running#raw 0x7C = Walk on the Spot (Down)#raw 0x7D = Walk on the Spot (Up)#raw 0x7E = Walk on the Spot (Left)#raw 0x7F = Walk on the Spot (Right)#raw 0x80 = Slide Down Running#raw 0x81 = Slide Up Running#raw 0x82 = Slide Left Running#raw 0x83 = Slide Right Running#raw 0x84 = Slide Down#raw 0x85 = Slide Up#raw 0x86 = Slide Left#raw 0x87 = Slide Right#raw 0x88 = Slide Down on Left Foot#raw 0x89 = Slide Up on Left Foot#raw 0x8A = Slide Left on Left Foot #raw 0x8B = Slide Right on Left Foot#raw 0x8C = Slide Left diagonally (Facing Up)#raw 0x8D = Slide Right diagonally (Facing Up)#raw 0x8E = Slide Left diagonally (Facing Down)#raw 0x8F = Slide Right diagonally (Facing Down)#raw 0x90 = Slide2 Left diagonally (Facing Up)#raw 0x91 = Slide2 Right diagonally (Facing Up)#raw 0x92 = Slide2 Left diagonally (Facing Down)#raw 0x93 = Slide2 Right diagonally (Facing Down)#raw 0x96 = Walk Left#raw 0x97 = Walk Right#raw 0x98 = Levitate#raw 0x99 = Stop Levitating#raw 0x9C = Fly Up Vertically#raw 0x9D = Land#raw 0xFE = End of Movements
Ce topic n'est pas inutile et peut être up car il est beaucoup consulté via la bibliothèque de liens. Et un remerciement est toujours sympathique pour le rédacteur d'un quelconque tuto.
Liya - 8 septembre 2011 à 22:34
Bon, je m'emmerde, internet marche mal, j'ai rien à foutre, alors je regarde un peu comment c'est fait et je bloque dès le départ quand je fais un scrip normal pour un perso'
'---------------#org 0x3AF0ECmsgbox 0x81E933D MSG_FACE '"Salut toi !"end'---------' Strings'---------#org 0x1E933D= Salut toi !
C'est bien ça ? Car il ne veux pas me mettre ça et le remplace toujours par
'---------------#org 0x3AF0ECmsgbox 0x81E933D 0xFF '"Salut toi !"playsong2 0x34C4gotostd 0x8'---------' Strings'---------#org 0x1E933D= Salut toi !
, du coup ça marche pas.
Et quand ça me le remplace pas, on me dit que "Erreur 13 "type incompatible" à la ligne 3
Problème pour #define" Ors la ligne 3 c'est msgbox, donc euh .. :you: J'suis peut-être pas douée, mais j'ai envie de savoir pourquoi :ichiz:
:fais sa geek aujourd'hui:
Flower// - 9 septembre 2011 à 16:53
Change les offsets.
Liya - 9 septembre 2011 à 18:13
Toujours le même message.. :you:
Flower// - 9 septembre 2011 à 18:16
Bah merde c'est bizarre, il a pas d'erreurs ton script pourtant...
yago58 - 9 septembre 2011 à 18:30
T'aurais pas fais un truc avant, qui provoquerait l'erreur ?
Liya - 9 septembre 2011 à 18:32
Euh bah non :baffan:
Flower// - 9 septembre 2011 à 18:40
ré-installe XSE et change de ROM pour voir. :j
Sainior - 9 septembre 2011 à 18:57
Non, c'est les offsets, point barre.
Il faut trouver un offset assez grand pour accueillir non seulement ton script, mais aussi certaines choses qui pourraient être modifiées ultérieurement (on ne sait jamais). Du coup, moi, je te conseille d'aller chercher un offset carrément sur Hex-Editor, pour être sûre et pour contrôler la mémoire de ta ROM.
TheCaptainSnow - 14 septembre 2011 à 10:59
Je voudrai ajouter un pokemart dans ma rom mais ou puis-je trouver le numéro des objets pour émeraude ?
Edit:J'ai trouvé :you: mais j'ai une autre question. Est il possible de changer la forme de deoxys ?
Flower// - 14 septembre 2011 à 17:33
Pose toi déjà la question si c'était possible à la base dans émeraude.
TheCaptainSnow - 14 septembre 2011 à 17:42
A la base Non et sa je le savait mais j'avais penser a faire un sa avec un givepokemon (dans se cas la il aurait aussi fallu retirer le deoxys actuelle de l’équipe) ou encore un échange mais je ne savait pas si il était possible de garder les mêmes stats même si je pense que non mais on sait jamais, quand on est pas sur on demande quand même.
Flower// - 14 septembre 2011 à 17:45
Dans ce cas il faut introduire de nouveaux Pokémons, pourquoi pas, mais je ne vois pas d'utilité. Après rien de bien compliqué, give pokémon, mais après problem pour le lvl.
TheCaptainSnow - 14 septembre 2011 à 17:58
Justement c'est la dessus que je bloqué, je vais devoir me résoudre a ce que le deoxys retourne au niveau initiale a chaque changement de forme, mais est il possible de supprimer un pokemon de l’équipe parce-que si je fais juste le givepokemon je vais me retrouver avec plusieurs deoxys.
Dark Raviel - 19 octobre 2011 à 11:12
Hum j'ai reperé une erreur de script dans ce tuto.
Pour la panneau pancarte il y a ecrit :
msgbox 0x86BC415 MSG_SIGN '"Message de pa..."
end
'---------
'Strings
'---------
#org 0x6BC415
= Message de pancarte. Cool!
Ca ne devrait pas plutot etre :
msgbox 0x6BC415 MSG_SIGN '"Message de pa..."
end
'---------
'Strings
'---------
#org 0x6BC415
= Message de pancarte. Cool!
?
Kyever - 19 octobre 2011 à 11:20
Non, non c'est pas une erreur.
Dark Raviel - 19 octobre 2011 à 11:25
Un offset à 7 chiffres je trouve ca etrange moi.
vivien28 - 19 octobre 2011 à 11:46
Euuh la lien vers XSE est mort chez moi oO'
Dark Raviel - 19 octobre 2011 à 11:48
Il a sans doute été effacée, mais bon XSE c'est trouvable sur beaucoup de sites.
Arnikum Plus - 19 octobre 2011 à 14:15
Moi, c'est FSF.
Dark Raviel - 19 octobre 2011 à 14:20
Mediafire a du faire une purge ^^
gearX0001 - 30 octobre 2012 à 16:37
J'ai un petit pb avec le script de wildbattle. Sa me fais bien apparaître un Dodio niveau 5 mais quand on fuit, on le met O.K ou il nous met O.K il réapparaît.
Bonjour, j'ai un problème de script que je ne comprends pas.
J'essaie de faire un script tout simple de personnage qui parle (la base de la base quoi --'.
Voilà le script :
'-----------------------#org 0x8008AEmsgbox 0x88008BE MSG_FACE '"Test !"end'---------' Strings'---------#org 0x8008BE= Test !
Pourtant, quand je compile et que je revérifie le script, il devient :
'-----------------------#org 0x8008AEmsgbox 0x88008BE '"Test !"end'---------' Strings'---------#org 0x8008BE= Test !
Et du coup quand je parle au personnage que j'ai créé en jeu, il me regarde mais le jeu freeze avec la musique en fond. J'ai changé une tonne de fois les offsets, rien de fonctionne. Un peu d'aide ? :(
Royfire - 14 novembre 2012 à 12:27
utilise plutôt:
#dynamic 0x800000#org @startmsgbox @text 0x2releaseend#org @text= Test !
Sinon tu peux rajouter les commandes lock et faceplayer, qui sont inutiles si tu utilise la msgbox 0x2.
édit
Oui tu as raison, faute de frappe ^^
Jackfiouse - 16 novembre 2012 à 07:38
Non ça marche toujours pas.. :p
C'est le pied, je peux même pas faire parler un simple personnage. --'
Sinon c'était pas plutôt "msgbox @text 0x2" ? Enfin bref j'ai essayé les deux sans succès.
darklives - 14 décembre 2012 à 11:58
Salut Sainior, d'abord merci pour tes tutos notamment sur le script, ça m'aide beaucoup dans la réalisation de ma petite RH Ensuite j'ai un problème avec le pourtant simple script de wildbattle.
J'ai vérifié et il me semble avoir correctement suivi ton tuto, mais à la fin du wildbattle, le jeu bug (je ne contrôle plus mon personnage, l'image se déplace mais lui reste immoblile et je suis bloqué sur 2x2 cases).
J'ai changé l'offset deux fois en agrandissant jusqu'à 1000 octets, donc le problème semble venir d'ailleurs.
Si tu pouvais me dire ce qui ne va pas, je t'en serais reconnaissant, merci beaucoup.
Au fait, la rom utilisée est Rouge Feu FR
Solution trouvée par hasard après tout ce temps ! Le problème rencontré est dû à un bug communément appelé le bug du personnage qui regarde en bas. Il suffit de mettre une autre position à son personnage, et PAS "regarde vers le bas". Tous les problèmes ou vôtre joueur est bloqué dans 4 cases et parfois change d'apparence après un event sont dus à ce bug. Voilà
darklives - 14 décembre 2012 à 12:01
J'ai un petit pb avec le script de wildbattle. Sa me fais bien apparaître un Dodio niveau 5 mais quand on fuit, on le met O.K ou il nous met O.K il réapparaît.
Essaie en rajoutant la commande "hidesprite LASTTALKED" là ou je l'ai mise
Bonjour !
je suis en train de faire les exercices de Sainior a la fin du tuto et je suis bloqué au wildbattle.
le but est de faire un wildbattle précédé d'un tremblement de terre. je met donc :
[spoiler]'---------------
#org 0xE3E654
lock
faceplayer
special 0x133
setwildbattle 0xAF 0x5 0x0
checksound
cry 0xAF 0x2
pause 0x28
waitcry
setflag 0x305
setflag 0x861
special 0x138
waitstate
clearflag 0x861
release
end[/spoiler]
resultat, quand je parle au pokemon, le sol tremble et ne s'arrete jamais.
Je reéssaye donc, sans le special pour voir ou est l'erreur je met donc
[spoiler]'---------------
#org 0xE3E654
lock
faceplayer
setwildbattle 0xAF 0x5 0x0
checksound
cry 0xAF 0x2
pause 0x28
waitcry
setflag 0x305
setflag 0x861
special 0x138
waitstate
clearflag 0x861
release
end[/spoiler]
Et la, je reparle au pokemon, le sol tremble, s'arrete, et ... c'est tout. je peut reparler au pokemon, pour refaire trembler l'écran mais pas de combat.
est-ce que j'ai fait une erreur dans mon script, ou alors une histoire d'offset ?
EDIT : Je suis sur pokemon emeraude
D.I.Z - 19 janvier 2013 à 18:34
Tu devrait séparer tes scripts, car je pense qu'un wild peut pas gérer tout ça, je te conseille de mettre ton tremblements en script normal (carré vert dans a map) puis de mettre ton script de wildbattle ( carré violet dans a map).
Donc ça devrait te donner
Tu marche sur le script: Tremblement de terre (oublie pas de modifié certains chiffre pour le script.
(0003 en dessous de position X/Y et 4050 dans l'identifiant)
Ensuite wildbattle.
Galian06 - 19 janvier 2013 à 19:03
Je peut mettre un script normal avec un script de wildbattle par dessus ?
aussi je pensait faire un wildbattle qui s'active quand je parle a un sprite de pokemon
j'essayerais ça plus tard je suis pas chez moi et je verrais !
merci
EDIT : En fait je viens de remarquer que je capte pas les script "carrés violet" on fais comment pour en mettre ?
je met le script normal avec le tremblement, mais je fait comment pour mettre un script de wildbattle ?
Muspel - 27 février 2014 à 00:46
Comment sait-on combien de bytes il faut donner à l'offset selon le script?
A 10 000 et avec 1 000 en espace de recherche les scripts applymovement, wildbattle et giveitem ne marchent pas, combien faut-il mettre? (tous les autres du tuto marchent)