Logiciels & ROM Pokemon

Faire apparaître des Pokémon Shineys grace à un script

Me revoilà pour un nouveau tuto, que j'ai trouvé plutôt cool Wink (J'vais arrêter les tutos, j'vais faire une overdose xD)

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.


Voilà, le caractère "shiney" a été inséré, il ne reste plus qu'à l'intégrer dans les scripts Wink

II. Intégrer le caractère "shiney" dans les scripts

1. Dans les wildbattles

On y va ! Wink

Code:
'---------------
#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:
setvar 0x8003 0x1

setvar 0x8003 "active" le caractère shiney. "0x1", on le met toujours.
En gros, cette commande ne change jamais Wink

2. Dans un givepokemon ou giveegg

Code:
'---------------
#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:
setvar 0x8003 0x1

Oh, c'est la même ! Shocked En effet, c'est exactement la même chose. Pas besoin de réexpliquer Wink
C'est aussi la même chose avec un giveegg.



(faites pas attention au positionnement du sprite x)

3. Dans un trainerbattle

Alors là, ça se complique un peu. Mais ça reste simple Tongue

Code:
'---------------
#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:
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". Wink



(Pareil, faites pas attention au positionnement des sprites x)