Police de messages et langages
-IntroductionCe script permet juste de changer la police des messages.
Uniquement des messages. Avec un peu d'imagination on peut aller plus loin...
-DescriptionD'un point de vue script, le principe est qu'une varaible globale contiendra le nom de la police à utiliser pour le message...
tant qu'elle n'a pas de valeur spéciale, le texte est en Arial, taille 22...
Pour faire un effet de langue ou d'accent:
Plutôt que d'écrire du charabia, pour simuler une langue, vous écrirez le texte normalement, mais c'est la police.
Qui elle fera n'importe quoi, mélanger les lettres, utiliser un autre alphabet... (les idées ne manque pas)
Pour traduire, il vous suffira de retourner à une police normale.
-Le script - Code:
-
#==============================================================================
#
# Vincentmhd 23/05/09
#
#
#Avant un message affectez dans un appel de script
#à $fontName le nom de la police entre guillemets
#et à $fontSize la taille de la police
#
#vous pouvez jouer alors avec les conditions
#
#Par défaut $fontName prend comme valeur "Arial"
# $fontSize prend comme valeur 22
#Ainsi vous sauve les meubles si la police est manquante.
#pour modifier les valeurs par défaut allez à la ligne 68.
#
#Pour installer une police sur l'ordinateur du joueur dès l'installation du jeu
#Faites un dossier "Fonts" dans celui de votre projet (aux côtés de Graphics,
#Audio...). Elle s'installera automatiquement
#
#
#===========================================================================
# Surcharge de Window_Message pour changer la police
#===========================================================================
class Window_Message < Window_Selectable
alias police_add update_message
def update_message
police_add
loop do
c = @text.slice!(/./m) # Get next text character
case c
when nil # There is no text that must be drawn
finish_message # Finish update
break
when "\x00" # New line
new_line
if @line_count >= MAX_LINE # If line count is maximum
unless @text.empty? # If there is more
self.pause = true # Insert number input
break
end
end
when "\x01" # \C[n] (text character color change)
@text.sub!(/\[([0-9]+)\]/, "")
contents.font.color = text_color($1.to_i)
next
when "\x02" # \G (gold display)
@gold_window.refresh
@gold_window.open
when "\x03" # \. (wait 1/4 second)
@wait_count = 15
break
when "\x04" # \| (wait 1 second)
@wait_count = 60
break
when "\x05" # \! (Wait for input)
self.pause = true
break
when "\x06" # \> (Fast display ON)
@line_show_fast = true
when "\x07" # \< (Fast display OFF)
@line_show_fast = false
when "\x08" # \^ (No wait for input)
@pause_skip = true
else # Normal text character
#Ajout de Vincentmhd
self.contents.font.name = [$fontName, "Arial"]
if $fontSize == nil
$fontSize = 22
end
self.contents.font.size = $fontSize
contents.draw_text(@contents_x, @contents_y, 40, WLH, c)
c_width = contents.text_size(c).width
@contents_x += c_width
end
break unless @show_fast or @line_show_fast
end
end
end
-InstallationCe script n'échappe pas à la régle du "copiez en dessous de material".
Il n'a pas de nécéssité particulière.
Compatibilité optimale, puis que ce n'est que l'ajout d'une méthode...
-UtilisationDans l'event, inserez:
$fontName= "Nom de la police voulue avec les guillemets
"et si vous voulez:
$fontSize= le nombre voulu.
Pour l'exemple, je vais utiliser la police "Symbol", donc les personnages étrangers parleront le grec ancien...
Un simple screen vous fera tout comprendre:
C'est ultra simple dans mon cas. La fille parle grec si vous n'avez pas le dico...
Il existe bien sûr des variantes plus intéressantes, mais elles demandent un peu plus de ressources, en termes de police.
Je ne les illustre pas dans la démo.
Pour une langue genre Al bhed:
-faites une police bien mélangée de notre alphabet ("o" = "i"...)
-garder toutes les polices intermédiaires...
et à la place de tester la présence du dico, nous allons tester dans les message, une variable "Langage".
-Incrémentez cette variable, au fur et à mesure que vous le désirez (trouver des bouquins, histoire du jeu...)
et en réalité plus cette variable sera élevée plus la police que vous utiliserez sera compréhensible...
-Démo>> Démo v1 Voilà, c'est tout! (c'est un peu court, mais bon quand le principe est simple...)
-Crédit: Vincentmhd