Aller au contenu
Funky-Emulation Recrute
Playzer

 tutoriel / partage Couleurs dans les quêtes

Messages recommandés

Bonsoir tout le monde :)

 

Je reviens pour mon deuxième tutoriel / partage.

Je vais vous partager un système vous permettant de mettre de la couleurs dans les titres et dans les textes.

(Je suis au courant qu'il existe déjà un tutoriel, mais pas assez approfondie et trop peu d'explications.)

 

Quels sont les fichiers concernés ?

  • - questlib.lua
  • - quest_functions
  • - Eh, evidemment une quête

 

Infos : Toutes les modifications se feront dans le répertoire suivant :

cd /usr/metin2/share/locale/france/quest (Pour files 2011 ou +)cd //usr/rain/channel/share_data/locale/hongkong/quest (Pour files 2010 ou -)
 

Première étape :

  • - Ouvrer le fichier nommé ' questlib.lua '

 

Et insérer-y ceci tout en bas (une fois collé, ne pas oublié de laisser une ligne vide) :

function say_color(color,text)if color=="blue" then	say(color256(0, 0, 255)..text..color256(196, 196, 196))elseif color == "green" then	say(color256(0, 255, 0)..text..color256(196, 196, 196))elseif color == "red" then	say(color256(255, 0, 0)..text..color256(196, 196, 196))elseif color == "yellow" then	say(color256(255, 255, 0)..text..color256(196, 196, 196))elseif color == "white" then	say(color256(255, 255, 255)..text..color256(196, 196, 196))elseif color == "black" then	say(color256(0, 0, 0)..text..color256(196, 196, 196))elseif color == "cyan" then	say(color256(0, 255, 255)..text..color256(196, 196, 196))elseif color == "pink" then	say(color256(255, 0, 255)..text..color256(196, 196, 196))elseif color == "orange" then	say(color256(255, 145, 0)..text..color256(196, 196, 196))elseif color == "purple" then	say(color256(100, 0, 255)..text..color256(196, 196, 196))else	say(color256(196, 196, 196)..text..color256(196, 196, 196))endendfunction say_title_color(color,text)   if color=="blue" then       say_title_color(color256(0, 0, 255)..name..color256(196, 196, 196))   elseif color == "green" then       say_title_color(color256(0, 255, 0)..name..color256(196, 196, 196))   elseif color == "red" then       say_title_color(color256(255, 0, 0)..name..color256(196, 196, 196))   elseif color == "yellow" then       say_title_color(color256(255, 255, 0)..name..color256(196, 196, 196))   elseif color == "white" then       say_title_color(color256(255, 255, 255)..name..color256(196, 196, 196))   elseif color == "black" then       say_title_color(color256(0, 0, 0)..name..color256(196, 196, 196))   elseif color == "cyan" then       say_title_color(color256(0, 255, 255)..name..color256(196, 196, 196))   elseif color == "pink" then       say_title_color(color256(255, 0, 255)..name..color256(196, 196, 196))   elseif color == "orange" then       say_title_color(color256(255, 145, 0)..name..color256(196, 196, 196))   elseif color == "purple" then       say_title_color(color256(100, 0, 255)..name..color256(196, 196, 196))   else       say_title_color(color256(196, 196, 196)..name..color256(196, 196, 196))   endendfunction say_color(color, text)   local rgb = rawget(colors_data, color)   say(color256(rgb[1],rgb[2],rgb[3])..text..color256(colors_data.default[1], colors_data.default[2], colors_data.default[3]))endfunction say_color_title(color, text)   local rgb = rawget(colors_data, color)   say_title(color256(rgb[1],rgb[2],rgb[3])..name..color256(colors_data.default[1], colors_data.default[2], colors_data.default[3]))endfunction set_text_color(color)   local rgb = rawget(colors_data, color)   raw_script(color256(rgb[1],rgb[2],rgb[3]))endcolors_data =     {               ['green'] = {0,190,0},               ['light green'] = {0,255,0},               ['dark green'] = {0,110,0},               ['semi light green'] = {144,238,144},               ['teal'] = {102,205,170},               ['red'] = {240,0,0},               ['semi light red'] = {255,69,51},               ['rose'] = {255,64,160},               ['dark rose'] = {255,0,128},               ['light rose'] = {255,182,193},               ['light orange'] = {255,127,80},               ['orange'] = {255,130,0},                   ['dark orange'] = {255,90,0},                               ['semi dark violet'] = {255,0,255},                   ['violet'] = {224,129,255},               ['dark violet'] = {148,0,148},               ['light violet'] = {200,162,200},               ['brown'] = {161,63,0},               ['dark brown'] = {120,66,0},               ['light brown'] = {200,164,115},               ['yellow'] = {255,255,53},               ['light yellow'] = {255,255,128},                ['gold'] = {255,191,24},               ['blue'] = {0,0,250},               ['dark blue'] = {0,0,150},               ['cyan'] = {128,255,255},               ['light cyan'] = {180,255,255},               ['turquoise'] = {0,255,255},               ['white'] = {255,255,225},               ['gray'] = {128,128,128},               ['black'] = {0,0,0},               ['default'] = {196,196,196}              } 
 

Deuxieme étape :

  • - Ouvrer le fichier nommé ' quest_functions '

 

Et insérer-y ceci tout en bas (une fois collé, ne pas oublié de laisser une ligne vide) :

say_colorsay_color_titleset_text_color
 
Après avoir copié collé, ce que je vous ai dit de faire, vous allez bien lire mes explications, comme ça vous ne reviendrais pas en me disant 'j'ai des bugs'. En copiant bêtement, on n'apprend rien ^^

Explications des différents fichiers

 

A quoi sert le fichier ' questlib.lua ' ?

Ce fichier, répertorie toutes les fonctions qui ont été créer et servant a coder une quête.

 

A quoi sert le fichier ' quest_functions ' ?

Dans ce fichier, c'est dans celui-ci que l'on va renseigner notre function récemment créer, afin qu'elle soit indexée.

 

A quoi correspond cette fonction ' function say_color(color, text) ' ?

	function say_color(color, text)	    local rgb = rawget(colors_data, color)	    say(color256(rgb[1],rgb[2],rgb[3])..text..color256(colors_data.default[1], colors_data.default[2], colors_data.default[3]))	end
 

Avant pour écrire un say on faisait tout simplement,

       say("Bla Bla ...") 
 

Maintenant c'est encore plus simple, il suffit d'écrire :

       [i]say_color("nom_couleur", "Bla Bla ...")
 

Mais, d'où sors-tu le "nom_couleur" ?

Tout simplement que dans ma fonction, on attribut directement une couleur au texte, pour ce faire, on la sépare du texte, afin que cela soit beaucoup plus propre.

Dont le say_color, affecte que une ligne, exemple pour vous aider à comprendre :

	say("Pas de couleurs")	say_color("blue", "Une couleur bleu")	say("Pas de couleurs")
 

Ce n'est pas plus bête que ça ^^

A quoi correspond cette fonction ' function say_color_title(color, text) ' ?

	function say_color_title(color, text)	    local rgb = rawget(colors_data, color)	    say_title(color256(rgb[1],rgb[2],rgb[3])..name..color256(colors_data.default[1], colors_data.default[2], colors_data.default[3]))	end
 
Ceci est le même système que le say_color sauf que a cet effet, cela affecte juste le say_title, qu'on transformerai en say_color_title("color", "texte")

 

A quoi correspond cette fonction ' function set_text_color(color) ' ?

Cette fonction possède une différence comparé aux 2 autres fonctions, elle permet d'affecter une couleur a plusieurs say, comme ci-dessous, par exemple :

	set_text_color("red")		say("Texte en rouge")		say("Texte en rouge")	set_text_color("orange")		say("texte en orange")		say("texte en orange")	set_text_color("blue")		say("texte en bleu")		say("texte en bleu")
 

Ne pas oublier de faire un p'tit reboot du serveur !

 

Voilà, ce petit tutoriel est fini.

Je vous souhaite une très bonne implantation.

Bonne soirée :P

Modifié par GuiguiOfMetin

Partager ce message


Lien à poster
Partager sur d’autres sites

Très beaux tutoriel, merci à toi l'ami :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci à toi ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Ton tutoriel étant plus complet que le partage déjà existant je le valide merci à toi, mais pense à préciser la source s'il y en a une ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.