Nous allons apprendre à faire insérer un Pokémon shiney dans un wildbattle, dans un givepokemon (ou giveegg), et dans un trainerbattle.
Ressources :
_ Shinyzer
_ XSE
Bien, commençons par le plus simple.
I. Insérer le caractère "shiney" dans la ROM
Ouvrez Shinyzer. Chargez votre ROM. Dans "Offset ASM", entrez un offset libre. Cliquez ensuite sur "Shinyzer", puis sur "OK". Vous pouvez fermer Shinyzer, nous n'en aurons plus besoin.
Spoiler
Voilà, le caractère "shiney" a été inséré, il ne reste plus qu'à l'intégrer dans les scripts
II. Intégrer le caractère "shiney" dans les scripts
1. Dans les wildbattles
Spoiler
On y va !
C'est un script de wildbattle simple, avec un Rayquaza niveau 50. Seulement une nouvelle commande :
setvar 0x8003 "active" le caractère shiney. "0x1", on le met toujours.
En gros, cette commande ne change jamais
Code: [Sélectionner]
'---------------
#org 0x6D13D2
lock
faceplayer
setvar 0x8003 0x1
setwildbattle 0x196 0x32 0x0
checksound
cry 0x196 0x2
pause 0x28
waitcry
setflag 0x305
setflag 0x861
special 0x138
waitstate
clearflag 0x861
release
end
C'est un script de wildbattle simple, avec un Rayquaza niveau 50. Seulement une nouvelle commande :
Code: [Sélectionner]
setvar 0x8003 0x1
setvar 0x8003 "active" le caractère shiney. "0x1", on le met toujours.
En gros, cette commande ne change jamais
2. Dans un givepokemon ou giveegg
Spoiler
Code: [Sélectionner]
'---------------
#org 0x6D1492
lock
setvar 0x8003 0x1
givepokemon 0x1 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox 0x86D1512 MSG_FACE '"Tiens !"
waitfanfare
closeonkeypress
release
end
'---------
' Strings
'---------
#org 0x6D1512
= Tiens !
Comme tout à l'heure, une seule nouvelle commande :
Code: [Sélectionner]
setvar 0x8003 0x1
Oh, c'est la même ! En effet, c'est exactement la même chose. Pas besoin de réexpliquer
C'est aussi la même chose avec un giveegg.
(faites pas attention au positionnement du sprite x)
3. Dans un trainerbattle
Spoiler
Alors là, ça se complique un peu. Mais ça reste simple
La nouvelle commande pour faire apparaître les shineys :
Ca change un peu, ouais, mais pas trop.
setvar 0x8003 ne bouge pas. Maintenant, voyons de plus près "0x303".
On par du fait que cette commande est au départ "setvar 0x8003 0xXXYY" ("setvar 0x8003 0x303")
On regarde notre dresseur et on voit combien il a de Pokémon. Dans mon exemple, il en a 3.
Je les représente par des zéros, un zéro pour chaque Pokémon : 000. Maintenant, choisissez le(s)quel(s) est (seront) shiney(s). Dans mon cas, seront shineys le deuxième et le troisième Pokémon.
On dit que "Caractère non shiney = 0", "Caractère shiney = 1".
Vous allez remplacer vos zéros de tout à l'heure donc par un "1", pour ceux qui seront shineys. J'obtiens "011". "011", est un chiffre binaire.
Maintenant, cherchez une calculette (sur internet, ça se trouve facilement) qui passe du binaire à l'hexadécimal. Convertissez. 011 = 3. Ce "3", on le retrouve à la place des XX dans la commande.
Maintenant, on remplace les YY.
Dans notre exemple, le dresseur a 3 Pokémon. A la place des YY, on va mettre le nombre de Pokémon que le dresseur avait, avec un "0" devant (obligatoire). J'obtient "03"
Voilà d'où vient "0x303".
(Pareil, faites pas attention au positionnement des sprites x)
Code: [Sélectionner]
'---------------
#org 0x6D11D2
setvar 0x8003 0x303
trainerbattle 0x0 0x2C7 0x0 0x86D1252 0x86D12D2
msgbox 0x86D1352 MSG_FACE '"J'aime mes Pokémon !"
end
'---------
' Strings
'---------
#org 0x6D1252
= J'ai de beaux Pokémon !
#org 0x6D12D2
= Mes Pokémon !
#org 0x6D1352
= J'aime mes Pokémon !
La nouvelle commande pour faire apparaître les shineys :
Code: [Sélectionner]
setvar 0x8003 0x303
Ca change un peu, ouais, mais pas trop.
setvar 0x8003 ne bouge pas. Maintenant, voyons de plus près "0x303".
On par du fait que cette commande est au départ "setvar 0x8003 0xXXYY" ("setvar 0x8003 0x303")
On regarde notre dresseur et on voit combien il a de Pokémon. Dans mon exemple, il en a 3.
Je les représente par des zéros, un zéro pour chaque Pokémon : 000. Maintenant, choisissez le(s)quel(s) est (seront) shiney(s). Dans mon cas, seront shineys le deuxième et le troisième Pokémon.
On dit que "Caractère non shiney = 0", "Caractère shiney = 1".
Vous allez remplacer vos zéros de tout à l'heure donc par un "1", pour ceux qui seront shineys. J'obtiens "011". "011", est un chiffre binaire.
Maintenant, cherchez une calculette (sur internet, ça se trouve facilement) qui passe du binaire à l'hexadécimal. Convertissez. 011 = 3. Ce "3", on le retrouve à la place des XX dans la commande.
Maintenant, on remplace les YY.
Dans notre exemple, le dresseur a 3 Pokémon. A la place des YY, on va mettre le nombre de Pokémon que le dresseur avait, avec un "0" devant (obligatoire). J'obtient "03"
Voilà d'où vient "0x303".
(Pareil, faites pas attention au positionnement des sprites x)
Voilà, fin du tuto ! Ne pas prendre sans mon autorisation, merci
Si vous avez des questions, je suis là