[TUTO] [GBA] Faire apparaître des Pokémon shineys

Pages: [1]

Mickey`

  • Membre
  • 2746 posts
06 mai 2011, 11:01
Me revoilà pour un nouveau tuto, que j'ai trouvé plutôt cool ;) (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.

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 ! ;)

'---------------
#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 :

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
'---------------
#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 :

setvar 0x8003 0x1
Oh, c'est la même ! :o 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 :P

'---------------
#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 :

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à ;)

Cocktail monotone

  • Membre
  • 13877 posts
11 mai 2011, 18:26
Je vais tester

Ksilee

  • Membre
  • 1275 posts
11 mai 2011, 18:43
On est content de le savoir.

Cocktail monotone

  • Membre
  • 13877 posts
11 mai 2011, 21:20
Question de noob:
j'essaye de mettre un offset libre que Ksilee m'a passé mais Shinyzer ne veut pasprendre ce signe "$".
Ni les autres d'ailleurs

Flower//

  • Invité
11 mai 2011, 21:56
Le signe $ c'est juste pour certains logiciels, les offsets peuvent apparaître de différentes manières; par exemple, sur un éditeur hexadécimal, au début de l'offset tu n'aura pas de $, mais un 0x. (Enfin, je crois...)

Cocktail monotone

  • Membre
  • 13877 posts
11 mai 2011, 21:59
Bon bah il y a pas grand choses comme signe qui marchent  >:(

Flower//

  • Invité
11 mai 2011, 22:10
Mais c'est parce qu'il faut rien mettre devant ! ;D

Enfin, je crois.....

Mickey`

  • Membre
  • 2746 posts
12 mai 2011, 19:12
Il ne faut rien mettre dans Shinyzer. Seulement l'offset de 6 chiffres ;)

Cocktail monotone

  • Membre
  • 13877 posts
12 mai 2011, 19:14
J'ai reussi merci!

Pages: [1]    En haut ↑