[PSP] Les secrets du bonheur !

  • 1 Réponses
  • 88 Vues
*

En ligne Symbioss

[PSP] Les secrets du bonheur !
« le: 12 juin 2018, 20:40:00 »
Voici un petit tuto pour vous donner quelques clés du bonheur dans PSP ! Nous allons pouvoir créer un PNJ évaluateur de bonheur ainsi qu'une masseuse, et autres petites astuces.
Tout d'abord, je tiens à remercier FL0RENT_ et Metaiko pour m'avoir donné certaines commandes de script car je ne comprenais pas très bien comment les utiliser dans le manuel...

Généralités sur le bonheur

Le bonheur est une variable comprise entre 0 et 255.
Elle correspond au paramètre EVA dans RPG Maker :
illustration
Les Pokémon évoluant par bonheur évoluent lorsque leur bonheur est ≥ 220
Les Pokémon capturés dans PSP ont un bonheur de base à 170, quelle que soit la ball utilisée (la luxe ball n'est pas programmée).
Toutes les infos sur le bonheur dans les jeux officiels se trouvent ici : https://www.pokepedia.fr/Bonheur

Évaluateur.se de bonheur

L'évaluateur.se de bonheur est un PNJ qui nous donne le niveau de bonheur d'un Pokémon de notre équipe.

Pour que le joueur choisisse le Pokémon de l'équipe dont il veut évaluer le bonheur, c'est comme pour le spécialiste des noms.
Il faut d'abord utiliser la commande de script suivante :
appel_menu_equipe
Puis créer la condition suivante :

La branche "else" (ou "sinon" dans PSPmod) correspond à la branche du Pokémon choisi dans laquelle on mettra la suite de l'évènement. La branche du haut correspond au fait que le joueur n'a pas choisi de Pokémon, et donc l'évènement n'a pas lieu.

Pour récupérer la valeur du bonheur de ce Pokémon, il faut le récupérer dans une variable (dans cet exemple la variable 23). Comme ceci :

Puis vous pouvez récupérer la valeur dans un texte en tapant : \V[23] (remplacez 23 par le numéro de la variable utilisée).
Mais comme le PNJ ne donne pas un chiffre mais dit plutôt une phrase selon la valeur du bonheur, vous pouvez utiliser une condition selon le résultat de la variable (Si variable 23 > 250 puis si > 200 puis si > 150 etc...), et mettre une phrase différente dans chaque branche et la condition de la valeur inférieure dans la branche "else" (Cf. illustration de l'évent en exemple plus bas).

Voici un exemple d'évènement :
illustration

Masseur.se ou autre vendeur.se de bonheur...

La masseuse est un PNJ qui augmente le bonheur d'un Pokémon contre rémunération... Vous avez un ordre de grandeur du nombre de points gagnés par massage et des prix selon les générations dans la page Poképédia que je vous ai donnée plus haut (mais je suis sympa alors je vous la redonne : https://www.pokepedia.fr/Bonheur).

Pour proposer un massage, le PNJ doit donner un prix et le joueur répondre par oui ou par non. Soit vous utilisez une commande de choix par oui/non ce que j'ai fait car j'utilise le script de Youspin pour les choix (https://pokemonworkshop.com/forum/index.php?topic=1672.msg26853#msg26853), soit vous utilisez la condition par script "draw_choice" (que vous pouvez copier-coller depuis l'évènement commun du centre pokémon).
Dans la branche "oui", il faudra créer une nouvelle condition selon l'argent possédé par le joueur (Si argent possédé > XXX... Sinon...), et dans la branche où le joueur possède effectivement cette somme, utiliser une commande d'évènement pour retirer de l'argent au joueur puis enfin y placer les commandes d'évènement du massage à proprement parler.


Ensuite, pour sélectionner le Pokémon à masser, même technique que pour l'évaluateur de bonheur (Cf. plus haut).
NB : Je vous conseille de mettre le retrait d'argent dans la branche où un Pokémon a été sélectionné pour ne pas que le joueur perde d'argent si finalement il ne sélectionne pas de Pokémon !

Et enfin, pour augmenter le bonheur du pokémon sélectionné, utilisez ce script :
pokemon_choisi.raise_loyalty(n)
n est à remplacer par la quantité de bonheur que vous voulez ajouter.

ATTENTION : Le bonheur étant normalement limité à 255, vous pouvez aussi insérer ce script à la suite si vous ne voulez pas que votre pokémon se retrouve en phase maniaque d'un trouble bipolaire :
pokemon_choisi.loyalty = 255 if pokemon_choisi.loyalty > 255

Dans les jeux officiels, la quantité de bonheur gagnée avec un massage est supérieure si le Pokémon a été capturé avec une luxe ball, et c'est possible de le reproduire sur PSP même si la luxe ball n'est pas programmée. Ils vous suffit d'utiliser une condition par script et d'utiliser ce script comme condition :
pokemon_choisi.ball_data[0] == "LUXE BALL"

Bien sûr, vous pourrez ensuite customiser l'évènement à votre guise (bruitage au cours du massage, animation, etc...)

Voici un exemple d'évènement :
illustration

AUTRE :
Vous pouvez aussi créer un évènement qui augmente le bonheur du premier Pokémon de l'équipe en utilisant ces scripts (Sous PSPmod plutôt car bug si pas en une ligne) :
$pokemon_party.actors[0].raise_loyalty(n)
$pokemon_party.actors[0].loyalty = 255 if $pokemon_party.actors[0].loyalty > 255
Et comme Fl0 est trop génial il vient à l'instant de me donner la commande de script pour augmenter le bonheur de toute l'équipe :
for pkmn in $pokemon_party.actors
    pkmn.raise_loyalty(n)
    pkmn.loyalty = 255 if pkmn.loyalty > 255
end
Je ne connais pas les commandes/scripts équivalents dans PSDK... mais n'hésitez pas à les poster ici !

Voilà voilà, en espérant que ce tuto sur le bonheur des Pokémon fasse le bonheur des makers !
« Modifié: 12 juin 2018, 20:44:14 par Symbioss »
 
Utilisateurs ayant remercié ce post : SirMalo, Splifingald, Katsuki-san

*

Hors ligne Splifingald

[PSP] Les secrets du bonheur !
« Réponse #1 le: 12 juin 2018, 22:24:56 »
Très bon tuto je suis sûr que ça servira à certains ! Merci !
 
Utilisateurs ayant remercié ce post : Symbioss