AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  




Partagez
 

 Créer de nouvelles balises pour message personalisé 2 - Intermédiaire

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 42
Inscrit le : 26/05/2008
Messages : 2360

Créer de nouvelles balises pour message personalisé 2 - Intermédiaire Empty
MessageSujet: Créer de nouvelles balises pour message personalisé 2 - Intermédiaire   Créer de nouvelles balises pour message personalisé 2 - Intermédiaire Icon_minitimeMar 28 Juil 2009 - 12:31

Nom du tutoriel : Comment créer des balises de niveau intermédiaire dans Windows_Message

Auteur : Miraino Hikari

Notre objectif : Apprendre à faire de nouvelles fonctionnalité avec Windows_Message pour les balises utilisez dans les messages.

Description du tutoriel : Vous n'aurez besoin que de l'éditeur de script. L'idée étant de faire une balise un peu plus avancée. Ce tutoriel suppose que vous savez déjà faire vos propres balise de base et que vous maîtrisez la surcharge ou la modification des scripts. Si ce n'est pas le cas, référé vous au tutoriel précédent.

Tutoriel :

Bon, maintenant que vous savez faire des balises de bases pour vos messages, voyons voir des balises plus complexes, soit qu'elles comportes plus d'un arguments, soit qu'elles exécutent un code.

Dans la classe Window_Message, localiser ou surcharger convert_special_characters. Normalement vous avez des substitutions qui ressemble à celles-ci
Code:

    @text.gsub!(/\\NS\[(\d+)\]/i) { $data_skills[$1.to_i].name } # Skill Name
    @text.gsub!(/\\IS\[(\d+)\]/i) { "\x98[#{$data_skills[$1.to_i].icon_index}]" } # Skill Icon
    @text.gsub! (/\\BLN\[(\d+,\d+)\]/i) { "\x96[#{$1.to_s}]" } # Balloon
Ces substitutions sont des substitutions normales comme nous l'avons appris au tutoriel précédent. La première est une substitution directe pour un texte d'une variable (dans l'exemple, c'est le nom d'une habileté du jeu) et les deux suivantes sont des substitution qui nécessite la participation de update_message.

Voyons maintenant comment exécuter un code directement depuis une de ces substitutions. Il est important de savoir qu'en ruby, on peu faire des sépareteurs de commandes avec le point-virgule. Le ; sera interprété comme un retour de ligne. Ainsi, il est possible de faire un bloc de code d'un seul trait. Il est toutefois possible de le faire aussi avec les saut de lignes standards. C'est un choix du concepteur.

Supposons donc que vous voulez changer la musique dans un message. Si vous voulez le faire à un moment précis du message, vous utiliserez la méthode du update_message, puisque cela arrivera que lorsque votre balise arrivera. Cependant, si dès que le message s'affiche, vous voulez que votre code prenne effet, et ce indépendemment de l'endroit où il se trouve dans votre texte, vous pouvez lancer la commande directement depuis convert_special_character comme ceci :
Code:
    @text.gsub!(/\\ME\[(.*?)\]/) {begin; (RPG::ME.new($1)).play; rescue; end}
Cela aura pour effet de changer l'effet musical dès que le message s'affichera. Comme indiquer précédemment, si vous voulez plus de précision, vous utiliserez la méthode du update_message avec, par exemple, un \x80.

Maintenant, supposons que vous désirez mettre plus d'un paramètre. Pour cela, vous devez faire votre structure selon les paramètres et la forme que vous voulez. Pour cet exemple, disons que nous voulons afficher 2 noms de personnages.
Code:
    @text.gsub!(/\\TE\[(\d+),(\d+)\]/i) { $game_party.members[$1.to_i].name + " et " + $game_party.members[$2.to_i].name }

J'ai appeler ma balise TE. Voyez la structure. Vous devez impérativement respecter cette structure lorsque vous écrirez dans le message. Donc ici, pour afficher les deux premier membre de l'équipe, nous écririons dans le message \TE[0,1], ce qui serait remplacer, par exemple, par "Ralph et Oscar" si ce sont les deux premiers personnages de l'équipe. Il ne devra pas y avoir d'espace. Si un espace peut être envisageable, changer votre structure par celle-ci :
Code:
@text.gsub!(/\\TE\[(\d+),(\s*\d+)\]/i) {...}
De cette façon, que vous écriviez \TE[0,1] ou \TE[0, 1], le résultat sera le même. Si vous désirez faire avec double crochets, c'est aussi possible, avec cette structure.
Code:
@text.gsub!(/\\TE\[(\d+)\]\[(\d+)\]/i) { ... }
Cette structure permettra d'utiliser \TE[0][1] pour obtenir le même résultat. Il est aussi possible d'accepter les 2 types de structure. Pour ce faire, redéfinissez la même balise. Si l'une des deux structures est détectée, elle sera modifiée. Votre code ressemblerait alors à ceci :
Code:
@text.gsub!(/\\TE\[(\d+),(\s*\d+)\]/i) { $game_party.members[$1.to_i].name + " et " + $game_party.members[$2.to_i].name }
@text.gsub!(/\\TE\[(\d+)\]\[(\d+)\]/i) { $game_party.members[$1.to_i].name + " et " + $game_party.members[$2.to_i].name }
En inscrivant ainsi, \TE[0,1], \TE[0, 1] et \TE[0][1] seront tous détecté et auront le même comportement, à savoir, dans cet exemple, d'afficher les deux premiers membres de l'équipe.

J'espère que ce tutoriel vous permettra de faire des balises intéressantes pour vos projet.
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
Gothor
Chevalier Lv.17
Chevalier Lv.17
Gothor


Masculin Age : 31
Inscrit le : 27/04/2008
Messages : 1835

Créer de nouvelles balises pour message personalisé 2 - Intermédiaire Empty
MessageSujet: Re: Créer de nouvelles balises pour message personalisé 2 - Intermédiaire   Créer de nouvelles balises pour message personalisé 2 - Intermédiaire Icon_minitimeMar 28 Juil 2009 - 12:33

Waaaaah, je l'attendais ^^ merci Hikari Smile
Revenir en haut Aller en bas
 

Créer de nouvelles balises pour message personalisé 2 - Intermédiaire

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Créer de nouvelles balises pour messages personnalisés 1 - Débutant
» [Résolu]Possibilité de créer un message qui apparaît pendant x frames
» Script pour 'Message'.
» demande un script pour message genre machine à écrire
» Cite pour créer des faces

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Apprentissage :: Programmation: Events & RGSS :: Cours-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Cookies | Forum gratuit