Oniromancie: Tutoriels - Options de texte


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Forstale
Par Ødd Clock

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Lije
Par Gaetz

LoveMaster
Par Cuddlefox

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

News: Concours des Alex d'Or 2017-18: (...) / News: MegaMaker : créez votre propre (...) / News: Test de Tinker Quarry / Sorties: Leave the Room / Jeux: Leave the Room /

Chat  (51 connectés)

Bienvenue
visiteur !






publicité RPG Maker!

Statistiques

Liste des
membres


Contact

74 connectés actuellement

9178703 visiteurs
depuis l'ouverture

1317 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP
GAMEMAKING


Les 5 plus
visités

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Pixelandgame

Tashiroworld

HeyMakeGames

Au hasard

Skaaz - Création de MMORP

Pixelandgame

EventGame

Les deux derniers

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs





Options de texte
Ecrit par sacrai


Derrière ce nom bizarre (oui désolé, j'ai pas trouvé mieux) je vais en premier lieu vous dévoiler tout les "codes" à insérer dans vos messages (avec la commande"Afficher un message" en premier page d'événement) afin d'avoir divers effet sur celui-ci.
Une fois ceci fait, je vous indiquerais comment ajouter de nouvelles couleurs, puis comment créer vos propres codes (cette dernière partie nécessitera quelques rudiments de script)

Ce qui est en rouge et ce qui ne doit pas changer.

1) L'affichage la valeur d'une variable :
\v[ID de la variable

L'ID de la variable est le numéro devant le nom de votre variable.

2) L'affichage du nom d'un héros :
\n[ID du héros
Comme l'ID de la variable, l'ID du héros est la position dans la base de donnée où est placé votre héros (Ce nombre apparait devant le nom de votre héros dans le cadre à gauche dans l'onglet Héros de la Base de Données)

3) Changer la couleur du texte :
\c[Chiffre entre 0 et 7

0 => Blanc (couleur de base)
1 => Bleu
2 => Rouge
3 => Vert
4 => Cyan
5 => Violet
6 => Jaune
7 => Gris (pas de couleur grise :s)

Le changement de couleur ne dure que durant un message (il revient à la couleur normal au prochain message) et il n'est pas impossible de mettre plusieurs couleur dans le même message. De même que si vous écrivez un long message de plusieurs boite de dialogue avec ctrl+n, le couleur redeviendra normal à la fin de la boite de dialogue ou le \c[x] aura été écrit.

Note : Si vous entrez un nombre non compris entre 0 et 7, la couleur normal s'affichera.

4) Afficher l'or
Il est même possible d'afficher l'or avec la fonction
\G
Cette fonction a certainement était prévu pour faire ses propre système de magasin ou d'auberge.

Note : Si pour n'importe quelle raison, vous souhaitez écrire l'un de ces codes dans une boite de dialogue, afficher un "\" en plus avant celui-ci (ce qui fera donc deux antislash).


Mais bon, de toute façon, tout ceci est dans l'aide intégré de RMXP donc j'espère ne rien vous apprendre <IMG SRC="


Passons maintenant à quelque chose de plus intéressant!!

Pour commencer un truc simple : Créer de nouvelles couleur!!!
Pour ça, on va tatouillé un peu les scripts, mais ne vous inquiétez pas, c'est super simple!! Et je vous guiderais ^^.

Alors pour commencer, on ouvre son éditeur de script (raccourci : F11)

On va commencer par créer notre nouvelle couleur! Pour ça allons dans le script "Window_Base" et cherchons la fonction appelée "text_color(n)"
(Appuyez simultanément sur ctrl + f et entrez le nom de la fonction dans la recherche).


Voilà la tronche de la fonction :


Portion de code:




case n
when 0
return Color.new(255, 255, 255, 255)
when 1
return Color.new(128, 128, 255, 255)
when 2
return Color.new(255, 128, 128, 255)
when 3
return Color.new(128, 255, 128, 255)
when 4
return Color.new(128, 255, 255, 255)
when 5
return Color.new(255, 128, 255, 255)
when 6
return Color.new(255, 255, 128, 255)
when 7
return Color.new(192, 192, 192, 255)
else
normal_color
end



On va considérer que " n " est la valeur que vous entrerez dans vos crochets avec la fonction \c[n] . On voit que pour chacune des valeurs de n de 0 à 7, on a un return Color.new(w, x, y, z).
Vous aurez peut-être compris que Color.new permet de créer une nouvelle couleur et que ce qu'il y a entre parenthèse représente la couleur en question.
Cette couleur est codé en RVB (Rouge, Vert, Bleu, Transparence). Avec tout logiciel graphique, il vous est possible de connaitre la valeur d'une couleur en RVB (avec paint par exemple, il faut faire Couleurs < Modifier les couleurs... puis cliquer sur "Définir les couleurs personnalisées >>".

Pour l'ajout d'une nouvelle couleur (la couleur n°8 qui sera le noir), le code sera :


Portion de code:




case n
when 0
return Color.new(255, 255, 255, 255)
when 1
return Color.new(128, 128, 255, 255)
when 2
return Color.new(255, 128, 128, 255)
when 3
return Color.new(128, 255, 128, 255)
when 4
return Color.new(128, 255, 255, 255)
when 5
return Color.new(255, 128, 255, 255)
when 6
return Color.new(255, 255, 128, 255)
when 7
return Color.new(192, 192, 192, 255)
when 8
return Color.new(0, 0, 0, 255)
else
normal_color
end



OK c'est bon?
Mais c'est hélas pas fini encore ^^.
On va maintenant faire un petit tour dans le script "Window_Message" un peu plus bas et se rendre à la ligne 106. On doit normalement avoir cette ligne :


Portion de code:



          if color >= 0 and color <= 7



(PS : Si vous ne l'avez pas, faites une recherche avec ctrl + f)
Et comme dorénavant nous avons 9 couleurs, on va remplacer le 7 par un 8 et le tour est joué!!
Vous pouvez tester dans une boite de dialogue d'écrire "\c[8] et le texte qui suivra sera noir. GENIAL NON???


[Pour les plus initié au Ruby]
Mais bon voilà... Pour vous, tout ces outils ne sont pas encore suffisant, il y en a que vous aimeriez bien créer de vos propres mains (comme afficher le nom d'une arme avec son ID par exemple ; c'est pas forcement utile mais ça servira d'exemple ^^).

Alors, tout se passe dans le script "Window_Message". Vers les lignes 82-86 où on a cette chose :


Portion de code:




begin
last_text = text.clone
text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
end until text == last_text
text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end


On clone la boite de texte et on test des expressions que l'on remplacera par d'autre (ça c'est en très gros ^^)

Voilà en gros comment ça marche :
text.gsub!(expr1) { expr2 }
ou
text.gsub!(expr1) do
[bloc qui déterminera expr2]

on remplacera expr1 par expr2.

Ensuite vous avez surement remarqué qu'en pratique l'expr1 est assez bizarre... En fait, ce sont des expressions rationnelles (complement d'information : http://fr.wikipedia.org/wiki/Expressions_rationnelles) qui sera capable de retrouver un texte variable dans une expression. On sait qu'on utilise cette méthode lorsque l'expression est entre slash (ils servent comme des guillemets)

Voilà en quelques mot ce qu'il faut savoir (Puise dans ses souvenirs...):

des caractères entre crochet => "ou" entre chaque caractère
des caractères entre parenthèse => priorité forcé
tiret entre 2 caractères => tout les caractères du premier ou dernier compris (en code ASCII)
* (généralement après un caractère ou un groupe de caractère (entre parenthèse) => Tant que ce ou ces caractères apparaissent de 0 à un infinité de fois
+ => Comme l'étoile mais c'est de 1 à une infinité de fois
\ : Annule le caractère spécial d'un caractère.
\\ => "\"

Bon là normalement, vous n'avez rien pigé (sinon je vous félicite ^^) donc on va essayé de mieux expliqué ça en décomposant une des expressions:


Portion de code:




!(/\\[Vv]\[([0-9]+)\]/)


=> Code pour déterminer la variable (\v[41886])


le slash de début et de fin annonce qu'on utilise une expression rationnelle.
Le premier antislash signale que le caractère suivant est à considéré comme un caractère dans le texte, donc l'antislash.

Donc pour le moment on cherche dans le texte ce qui ressemble à :
"\"
Il nous reste : [Vv]\[([0-9]+)\]

[Vv] => On cherche soit le caractère V, soit le caractère v.

Donc pour le moment on cherche dans le texte ce qui ressemble à :
"\v" ou "\V".
Il nous reste \[([0-9]+)\]

L'antislash indique que le caractère suivant (qui est un caractère spécial, on vient de le voir) n'est pas à considéré comme spécial

On cherche dans le texte ce qui ressemble à : "\v[" ou "\V[".
Il nous reste ([0-9]+)\]

Entre parenthèse, on à cette séquence :
[0-9]+

[0-9] => Tout les caractères de 0 à 9 compris
[0-9]+ => On cherche des caractères de 0 à 9 qui se suivent (avec au moins 1 de ces caractères ce qui signifie que \v[] ne sera pas reconnu au même titre que \v[ojoh] car ojoh contient au moins un caractère qui n'est pas compris entre 0 et 9.

On cherche dans le texte ce qui ressemble à : "\v[suite de caractère de 0 à 9" ou "\V[suite de caractère de 0 à 9".
Il nous reste \]

lui vous devez commencez à comprendre ^^ On ne considère pas le ] comme un caractère spécial

Au final on recherche : "\v[suite de caractère de 0 à 9]" ou "\V[suite de caractère de 0 à 9]".

Et c'est exactement ce à quoi correspond le \v[ID de variable]!! C'est fou non !!!!

Maintenant que vous connaissez la base des expressions rationnelles, vous pouvez déterminez vos codes de message GENIALISSIME!!!

Ensuite, il vous faudra codé votre expr2 afin d'avoir une chaine de caractère correspondant à ce que vous chercher.

IMPORTANT : Chaque groupe de caractère variable reconnu par le langage est enregistré dans des variables $1 jusqu'à $x en fonction de leur position dans l'expression rationnelle.
par exemple :
code : ([a-z]*)([1-9]+)
message : aaa885
$1 = aaa
$2 = 885 )
Savoir ça est très utile pour l'affichage du héros en fonction de son ID par exemple (on récupère la valeur entre les crochets et on cherche le nom du héros avec l'ID correspondant).


Maintenant, si vous avez à peu près compris le principe, à vous de faire des merveilles <IMG SRC=" !!
Et si vous avez des questions (je pense que oui, car c'est vraiment pas facile ), n'hésitez pas!!!


Ephy - posté le 27/12/2009 à 23:27:46. (27090 messages postés) - honor

Mort vivant. Pas de drama SVP.

C'est sympa mais deans les codes au début t'as oublié de refermer tous les crochets.
Et dans la partie des couleurs, mettre le code que tu donne n'affiche pas la couleur que tu indique mais la couleur contenue dans l'échantillon de couleur du windowskin correspondant au nombre entré dans le code. Donc pour le premier c'est blanc dans le système de base mais tu peux l'avoir rose bonbon si tu modifie les échantillons de couleur de ton windowskin ;)
Et puis les couleurs ne sont pas limitées de 1 à 7... y'en a beaucoup plus.

Edit: Ah... Mais c'est peut-être un tuto pour XP. Alors dans ce cas, t'as peut-être raison en ce qui concerne les couleurs)
Mais t'aurai du mentionner le log concerné par le tuto.

Power Level: 1 148 355,38|Mystic Slayer|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


Sacraï - posté le 28/12/2009 à 19:41:15. (28 messages postés)

Misanthrope humanoïde

En effet j'ai oublié les ] à la fin de chaque message... Etrange...

Et sinon, oui c'est pour XP, mais je n'ai pas jugé utile de le préciser car ce tuto se trouve justement dans la partie tutoriaux de RPG Maker XP. (Ceci dit, c'est vrai que sur la page, c'est indiqué nulle part que l'on est dans cette rubrique..)

http://www.alexdor.info/

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Fighting Robots Quest | Forstale | Geex | Inexistence | La Légende d'Ibabou | Lije | LoveMaster | Sarcia | Super Mario RPG - Lost Souls
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis