Hello peuple des ROM-Hackers de Pokémonews !
Ce topic a pour but de regrouper et d'expliquer certains scripts dont on a pas forcément l'idée d'utiliser et qui pourtant pourrait bien être utiles.
Je tiens à préciser que vous devez avoir la base du scripting pour comprendre ce que je vais vous expliquer, donc direction le tuto de Sainior si vous n'avez jamais scripté: http://www.pokemontrash.com/club/rom-hacking/(tuto)(gba)-apprendre-a-scripter/
LE BRAILLE
Pour commencer, je vais vous apprendre à utiliser un script inatendu.
Qui n'a jamais rêvé de mettre du piment dans sa hack? Des énigmes incroyables à résoudre? Avec des messages codés?
C'est ce qui m'amène aujourd'hui à vous apprendre à effectuer le script du braille! Le braille avait été utilisé dans RF/VF en 2004 pour l'énigme du trou percé. Vous vous souvenez?
Bien, voici le code:
- Code:
-
'---------------
#org 0x[offset1]
lockall
braille 0x8[offset2]
waitkeypress
releaseall
end
'---------
' Braille
'---------
#org 0x[offset2]
#braille [**********]
Bien, décortiquons tout ça...
D'abord on déclare l'offset,
- Code:
-
#org 0x[offset1]
puis on lock les mouvements.
- Code:
-
lockall
Jusque là, rien de nouveau. Mais vient ensuite une fonction "braille" avec un offset qui repointe vers le contenu de cette fonction.
- Code:
-
braille 0x8[offset2]
C'est donc cela la fonction "braille".
Concernant le contenu de la fonction "braille",
- Code:
-
'---------
' Braille
'---------
on a, bien sûr, l'offset pointé,
- Code:
-
#org 0x[offset2]
puis le contenu.
- Code:
-
#braille [**********]
A la place du "[**********]" vous pouvez saisir votre texte braille. C'est tout? Bah oui! Il suffit juste d'écrire en majuscule. Et CE QUE VOUS VOULEZ !!!
Voilà un exemple de braille simple:
- Code:
-
'---------------
#org 0x1641AE
lockall
braille 0x81A7CB1
waitkeypress
releaseall
end
'---------
' Braille
'---------
#org 0x1A7CB1
#braille HELLO
Si vous souhaitez assembler un texte un peu plus long, la tâche se complique, il faut altérer les codes, mais je vais me renseigner à ce sujet car je ne comprends pas entièrement son fonctionnement.
Pour les plus avancés, vous pouvez coupler le braille avec vos connaissances pour faire de magnifiques casses-tête et autre énigmes. Voilà un script qui donnera des idées:
- Code:
-
'---------------
#org 0x[offset/A]
lockall
checkflag 0x2E3
if 0x1 goto 0x8[offset/B]
msgbox 0x8[offset1] MSG_YESNO
compare LASTRESULT 0x0
if 0x1 goto 0x8[offset/C]
msgbox 0x8[offset2] MSG_KEEPOPEN
braille 0x8[offset3]
waitkeypress
releaseall
end
'---------------
#org 0x[offset/B]
msgbox 0x8[offset4]
releaseall
end
'---------------
#org 0x[offset/C]
msgbox 0x8[offset5]
releaseall
end
'---------
' Strings
'---------
#org 0x[offset1]
= La porte ne s'ouvre pas.\nL'examiner de plus près?
#org 0x18B91C
= En s'approchant plus près, on peut\nvoir des écritaux sur la porte.
#org 0x[offset4]
= C'est ouvert!
#org 0x[offset5]
= [player] n'est qu'une pourriture\nqui pige rien au braille.
'---------
' Braille
'---------
#org 0x[offset3]
#braille COUPE
Ce script est tiré de l'énigme du trou percé. Il est parfait pour mettre à l'épreuve le joueur avant de rentrer dans une grotte, manoir ou autre.
Je vous résume ce qui se passe, tout d'abord le script interroge le player s'il veut s'approcher de la porte. Si non, le player se fait pourrir et le script se termine, si oui, le script apprend au player qu'il est écrit quelque chose et le braille est déclenché. Si le joueur a compris ce qu'il est écrit (coupe, naturellement), celui-ci n'a qu'à utiliser la technique attendue, et...magie! Le script se déclenche et un texte apparaît disant que la porte est ouverte. Et elle l'est effectivement, ingénieux n'est-ce pas?
Je viens de vous prouver que ce genre de script, utilisé intelligemment, n'est pas aussi inutile finalement.
Voilà, j'en ai fini avec le braille! Ouf! Naturellement s'il y a quelque chose à rectifier dîtes le moi tout de suite je suis là pour ça. Et si vous avez une quelconque idée par rapport à un autre script que vous voudriez que j'analyse, il n'y a pas de soucis!
Et on copie pas hein, gaffe au plagieurs. Made in Flower! Demandez moi et il n'y aura pas de problèmes.
LE MOVE CAMERA
Bien, maintenant on va s'attaquer à un applymovement.
Applymovement!? Mais on connais déjà ça!
Nan mais pas n'importe lequel, le fameux mais peu connu "Move Camera"!
Waaa, keskessékessa!
Un peu d'anglais enfin! Cela signifie, bouger la caméra. Et ça s'utilise comme un vulgaire applymovement!
Allez, voilà le code:
- Code:
-
'---------------
#org 0x[offset1]
applymovement MOVE_CAMERA 0x8[offset2]
waitmovement 0x0
release
end
'-----------
' Movement
'-----------
#org 0x[offset2]
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0xFE 'End of Movements
Comme vous l'avez remarqué, ça n'a rien de bien différent avec l'applymovement dont vous aviez l'habitude. Sauf qu'au lieu de déclarer le personnage qui se déplace, vous indiquez la camera par la fonction "MOVE_CAMERA". Encore une foi, ça peut vous sembler inutile, ben pas tant que ça finalement...
Un petit exemple:
- Code:
-
'---------------
#org 0x[offset/A]
msgbox 0x8[offset1] MSG_NORMAL
applymovement MOVE_CAMERA 0x8[offset2]
waitmovement 0x0
release
end
'---------
'Strings
'---------
#org 0x[offset1]
= Regarde !\nLà haut!\pUn Pokémon Légendaire !!!
'-----------
' Movement
'-----------
#org 0x[offset2]
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0x9 'Step Up (Normal)
#raw 0xFE 'End of Movements
Alors, pas mal pour votre scénario finalement hein? Ca pourrait servir!
Voili voilou j'en ai fini avec le MOVE_CAMERA, j'espère que ça sera utile. N'hésitez pas à me pointer du doigt les éventuelles erreurs que j'aurais laissé derrière moi. Et don't copy! Made in Flower !!!
Bon ben c'est fini, si vous avez des idées pour d'autres scripts n'ayant pas été cités et expliqués sur le forum, faîtes m'en part je les analyserais à coeur joie.
Sur ce, passez une bonne journée !