Tunnel et corde sortie

1 Réponses • 756 Vues

Préambule

Vu qu’on m’a posé la question, je me suis dit qui ça pourrait être utile de faire un tuto sur l’utilisation de Tunnel et de la Corde sortie dans PSP, un peu comme j’ai fait pour la bicyclette. En effet, l’évènement commun « TUNNEL » existe déjà mais téléporte le joueur au point de retour, de n’importe où, au lieu de le téléporter à l’entrée d’un donjon. Par ailleurs, l’objet « CORDE SORTIE » n’est pas programmé, or il fonctionne de la même manière que Tunnel, à quelques détails près.

Nous allons commencer par voir comment s’y prendre pour la CT Tunnel, puis nous programmerons la corde sortie qui en reprendra les grands principes (il faudra faire quelques copier-coller).
Comme d’hab, pas la peine de toucher aux scripts.

1) Créer un interrupteur qui autorise ou non l'utilisation de tunnel dans une map

Pour ceux qui ont déjà lu mon tuto sur la bicyclette, je me répète, c’est normal. :p

Vous l'avez sans doute remarqué dans le starter kit, dans chaque map, il existe un évènement qui active ou non interrupteur "VOL AUTORISEé".

Image

C’est le même principe pour Tunnel. Selon que vous vous trouvez dans un donjon qui l’autorise ou pas (par exemple Tunnel sera autorisé dans une grotte et pas dans une route quelconque), dans ce même évènement, dans chaque map, vous ajouterez une commande qui active ou non un interrupteur "TUNNEL OK" (je l'ai appelé comme ça, mais ce n'est qu'un exemple).



Cet évènement doit se trouver dans chaque map, sans exception (Un évènement TUNNEL OK = OFF doit se trouver dans chaque map où tunnel n’est pas autorisé).

En pratique, je vous conseille de créer des évènements communs spécifiques à chaque type de lieu (Extérieur, maison, grotte, etc...) dans lesquels vous switchez tous vos interrupteurs (vol, vélo, tunnel…). Ainsi vous n’aurez pas à modifier l’évènement de chaque map à chaque fois que vous ajouterez un nouvel interrupteur de ce type.

Remarque : Je pars du principe que Tunnel et la corde sortie sont autorisés dans les mêmes maps, c’est pourquoi j’utiliserai le même interrupteur pour la corde sortie. Libre à vous de créer un deuxième interrupteur spécifique à la corde sortie.

2) Créer des variables de point de retour spécifiques à tunnel

Créez 3 variables (différentes de celles du point de retour !) : Une variable « TUNNEL ID », une variable « TUNNEL X » et une variable « TUNNEL Y ». Elles correspondront aux coordonnées de l’endroit où le joueur sera téléporté lorsqu’il utilisera tunnel dans un donjon.
Vous pouvez aussi ajouter une variable « TUNNEL direction » qui correspondra à la direction dans laquelle le joueur apparaitra (par exemple, si l’entrée de la grotte se trouve au Nord, le joueur apparaitra tourné vers le bas, comme s’il venait de sortir de la grotte).

A chaque entrée de donjon où tunnel est autorisé, dans l’évènement de téléportation, vous devez ajouter la modification de ces variables pour qu’elles correspondent à l’endroit où le joueur doit réapparaitre lorsqu’il utilise tunnel ou une corde sortie dans le donjon (vous allez comprendre).

Pour cela, cliquez sur la case qui se trouve devant l’entrée. Vous verrez apparaitre en bas de l’écran ses coordonnées : à gauche l’ID de la map, à droite X et Y.

Image

Dans l’évènement qui téléporte le joueur dans le donjon, utilisez des commandes pour modifier les variable TUNNEL ID, X et Y (et direction) en appliquant les coordonnées de la case devant l’entrée que vous venez de lire. L’évènement doit ressembler à ça :



N’oubliez pas de modifier ces variables à CHAQUE entrée de CHAQUE donjon où tunnel est autorisé. Sinon vous risquez d’être téléporté n’importe où quand vous utiliserez tunnel…

3) Modifier l'évènement commun TUNNEL

Dans la base de données, vous trouverez un évènement commun TUNNEL qui existe déjà. Il téléporte le joueur au point de retour, mais ce n’est pas ce que nous voulons, nous allons donc le modifier pour qu’il téléporte le joueur à l’entrée de notre donjon.

Voici l’évènement commun de PSP :

Image

Modifiez la commande « Transfert player » et remplacez les variables du point de retour par nos nouvelles variables.

Image

Comme vous pouvez le voir, on ne peut configurer qu’une seule direction. Si vous voulez choisir dans quelle direction apparaitra le joueur une fois sorti du donjon, vous devez créer des branches conditionnelles qui prennent en compte la variable « TUNNEL direction », comme ceci :

Image

Pour n’autoriser cette action que dans les maps où tunnel est autorisé, vous devez ajouter une condition.
Juste en dessous de la commande « Script: $on_map_call = false », insérez la condition « TUNNEL OK = ON », et déplacez votre commande de téléportation dans la branche nouvellement créée.

Image

Enfin, pour ne pas que le joueur se contente d’être téléporté d’un seul coup, vous pouvez costumiser l’évènement à votre guise. Par exemple, ajouter du texte pour dire que tel Pokémon utilise tunnel, faire tourner le joueur avant de le téléporter…

ATTENTION : Comme vous pouvez le voir dans les autres CS, vous pouvez écrire \P[0] pour faire apparaitre le nom de votre Pokémon dans la boite à message (par exemple « \P[0] utilise Tunnel »). Pour que \P[0] corresponde effectivement au Pokémon qui utilise tunnel, vous devez modifier le script de la condition par script suivante (qui se trouve tout en haut de l’évènement commun) :



Par :

$pokemon_party.got_skill("TUNNEL") and $on_map_call

Voici un exemple d'évènement commun TUNNEL :

Exemple

Remarque : Vous pouvez aussi rajouter une condition par script « Draw_choice » (comme dans l’exemple ci-dessus) pour que le joueur confirme qu’il veut bien utiliser tunnel. Un accident est vite arrivé, et se faire éjecter d’un donjon en plein milieu de cette manière, c’est très frustrant.

4) Créer un évènement commun CORDE SORTIE

Dans la base de données, créez un nouvel évènement commun pour la corde sortie.
Dans l’évènement commun TUNNEL, cliquez sur cette commande :

Image

Toutes les commandes se trouvant dans les branches de cette condition sont alors sélectionnées. Copiez et collez le tout dans l’évènement commun CORDE SORTIE.

Image

N’oubliez pas de remplacer les messages spécifiques à tunnel par des messages spécifiques à la corde sortie (« Taupiqueur utilise Tunnel. » lorsque le joueur utilise la corde sortie, ça le fait moyen).

ATTENTION : Quand le joueur utilise une corde sortie, cela consomme une corde sortie. Même quand c’est juste pour afficher « Impossible ici » dans les maps où l’interrupteur « TUNNEL OK » est en OFF !

Pour remédier à ce problème, dans la branche « else » (ou « sinon ») de la condition « TUNNEL OK = ON », il faut mettre une commande qui ajoute une corde sortie au sac.



IMPORTANT : Ne pas oublier d'attribuer l'évènement commun à l'objet concerné (sinon, ça marche pas).



5) Quelques couacs à éviter

Imaginez, vous êtes tranquillement entrain de surfer dans une grotte, et là vous avez un besoin urgent d’utiliser une corde sortie :

Spoiler

Pour éviter ce problème, changez l’apparence du héros dans les évènements communs TUNNEL et CORDE SORTIE (de préférence, ajoutez cette commande juste avant la téléportation).

Si vous utilisez ma méthode pour la bicyclette...
Le héros va reprendre son apparence de piéton. Deux solutions :
- Vous souhaitez que le joueur reste sur la bicyclette : Créez une condition « Sur le VELO = OFF » et mettez le changement d’apparence dedans (ainsi le joueur redeviendra piéton s’il surfait, mais il restera sur la bicyclette s’il était dessus).
- Vous souhaitez que le joueur redevienne un piéton : Toujours dans les évènements communs TUNNEL et CORDE SORTIE, modifiez la vitesse de déplacement du joueur en plus de son apparence, et désactivez l’interrupteur « Sur le VELO ».

N’hésitez pas si vous avez des questions ! :)

PSP Tuto Making

Je viens de tout lire, et bien merci ^^
En plus je voulais (enfin) intégrer ces deux scripts dans mon projet mais j'avais assez la flemme ...
 :)

There was an error while thanking
Thanking...