Partagez
Aller en bas
grifdail
grifdail
Membre

Nombre de messages : 51
Distinction : aucune
Date d'inscription : 18/04/2008

[résolu]scripte diaoque en bulle Empty [résolu]scripte diaoque en bulle

le Lun 30 Juin 2008 - 12:21
salut qelle q'un peut il traduire pour vx se scripte permetant de fair des diallogue sous forme de bulle
pour cela il faut des image disponible ici avec le script
http://www.rpg-maker.fr/index.php?page=scripts&id=157

Spoiler:
###############################################################################
#==============================================================================
# ■ Advanced_Bulle
#------------------------------------------------------------------------------
# By Sin
# 22-26/06/08
# Spéciale dédicasse à Sire pour "Kingdom Hearts The Keyblades War"
#==============================================================================
#
# FONCTIONNALITES :
# Script de méssages qui s'affichent sous forme de bulle rectangulaire.
# Il peut afficher jusqu'a trois lignes de texte.
# C'est pour cela que la largeur de la bulle ne peut varier avec le texte.
# La largeur de la bulle est par défaut à 200 pixels, mais peut être réglée.
# En revanche la hauteur de la bulle se règle automatiquement en fonction
# du nombre de lignes et du texte.
# La bulle se centre selon la largeur et la hauteur.
# Il faut impérativement définir avant chaque méssage, qui parle (le héros ou un
# evennement (voir commande ci-dessous).
#
# COMMANDES INTERTEXTUELLES :
#
# NE PAS METTRE DEUX COMMANDES PAR LIGNE
# ==> Nouvelles :
# \Plr : Indique que c'est le héros qui parle (à préciser à chaque texte)
#
# \Npc[$] : Indique que c'est l'évennement dont l'ID est $ qui parle (à préciser à chaque texte)
#
# \O : Affiche dans le texte l'argent possédé (sans le nom de la monnaie)
#
# \M : Affiche dans le texte l'argent possédé (avec le nom de la monnaie)
#
# \T : Affiche dans le texte le nombre de pas effectués
#
# \E : Affiche dans le texte le nom de la map
#
# \Z[$] Change la taille de la police pour cette bulle uniquement
#
# \H[$,$2,$3,$4] : Change la couleur du texte par la méthode RGB.
# $ code pour la quantité de rouge, le $2 pour le vert, le $3 pour
# le bleu et le $4 pour la lumière. Ces nombres varient tous de 0 à 255.
# Pour vous faire une idée du code correspondant à la couleur voulue, utiliser
# le créateur de flash dans l'editeur d'animation dans la base de donnée.
# Privilégiez cette méthode par rapport à \C[$].
#
# \Ll[$] : Règle la largeur de la bulle à $ pixels
#
# ==> Déjà existantes :
# \C[$] : Change la couleur du texte
# \N[$] : Affiche le nom du héros dont l'ID est $
# \V[$] : Affiche le contenu de la variable dont l'ID est $
# \G : Affiche l'argent possédé dans une fenêtre à part
#
# Remarque : \ = Antislash (Alt gr + Cool
#
def reglage_bulle
# REGLAGES :
# - Largeur PAR DEFAUT de la bulle, c'est à dire la largeur quand vous ne la
# définissez pas par la commande \Ll[$] :
$largeur_bulle = 200
#
# - Police d'écriture : Ecrivez la police d'écriture de vos texte PAR DEFAUT,
# c'est à dire la police quand vous ne l'avez pas définie par la command R[$].
# Remplacez $fontface par le nom de la police, sans oublier les guillemets ("") :
$font_bulle = $fontface
#
# - Taille de la police PAR DEFAUT (attention à ne pas mettre trop gros ^^) :
$fontsize_bulle = 16
#
# - Couleur PAR DEFAUT du texte :
# Il faut régler les 4 nombres qui sont dans la parenthèse :
# Le premier correspond à la quantité de rouge (varie de 0 à 255)
# Le second correspond à la quantité de vert (varie de 0 à 255)
# Le troisième correspond à la quantié de bleu (varie de 0 à 255)
# Le quatrième correspond à la quantité de lumière (varie de 0 à 255)
# ici par défaut c'est noir
$fontcolor_bulle = Color.new(0,0,0,255)
end
#==============================================================================
################################################################################

class Window_Message < Window_Selectable

#--------------------------------------------------------------------------
# ● Initialisation
#--------------------------------------------------------------------------

def initialize
$speaker_bulle = $game_player
super($speaker_bulle.screen_x - 125, $speaker_bulle.screen_y - 145, 200, 90)
self.contents = Bitmap.new(width + 125, height - 32)
self.visible = false
self.z = 9998
self.windowskin = RPG::Cache.windowskin("comic_skin")
reglage_bulle
self.contents.font.name = $font_bulle
self.contents.font.size = $fontsize_bulle
self.contents.font.color = $fontcolor_bulle
@largeur_window = $largeur_bulle
$yyy = 100
@ind = Sprite.new
@ind.bitmap = RPG::Cache.picture("ind_se")
@ind.x = $speaker_bulle.screen_x - 15
@ind.y = $speaker_bulle.screen_y - 59
@ind.z = 9999
@ind.opacity = 255
@ind.visible = false
@ind2 = Sprite.new
@ind2.bitmap = RPG::Cache.picture("ind_no")
@ind2.x = $speaker_bulle.screen_x + 10
@ind2.y = $speaker_bulle.screen_y + 10
@ind2.z = 9999
@ind2.opacity = 255
@ind2.visible = false
@ind3 = Sprite.new
@ind3.bitmap = RPG::Cache.picture("ind_so")
@ind3.x = $speaker_bulle.screen_x + 6
@ind3.y = $speaker_bulle.screen_y - 59
@ind3.z = 9999
@ind3.opacity = 255
@ind3.visible = false
@ind4 = Sprite.new
@ind4.bitmap = RPG::Cache.picture("ind_ne")
@ind4.x = $speaker_bulle.screen_x - 17
@ind4.y = $speaker_bulle.screen_y + 10
@ind4.z = 9999
@ind4.opacity = 255
@ind4.visible = false
@fade_in = false
@fade_out = false
@contents_showing = false
@cursor_width = 0
self.active = false
self.index = -1
end

#--------------------------------------------------------------------------
# ● Fermeture
#--------------------------------------------------------------------------

def dispose
terminate_message
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
super
end

#--------------------------------------------------------------------------
# ● Procèdure de fermeture
#--------------------------------------------------------------------------

def terminate_message
self.active = false
self.pause = false
self.index = -1
self.contents.clear
@contents_showing = false
if $game_temp.message_proc != nil
$game_temp.message_proc.call
end
$game_temp.message_text = nil
$game_temp.message_proc = nil
$game_temp.choice_start = 99
$game_temp.choice_max = 0
$game_temp.choice_cancel_type = 0
$game_temp.choice_proc = nil
$game_temp.num_input_start = 99
$game_temp.num_input_variable_id = 0
$game_temp.num_input_digits_max = 0
if @gold_window != nil
@gold_window.dispose
@gold_window = nil
end
end

#--------------------------------------------------------------------------
# ● Gestion de la bulle (1)
#--------------------------------------------------------------------------

def gestion
reglage_bulle
self.x = $speaker_bulle.screen_x - 125
self.y = $speaker_bulle.screen_y - 145
@ind.x = $speaker_bulle.screen_x - 15
@ind.y = $speaker_bulle.screen_y - 59
@ind2.x = $speaker_bulle.screen_x + 10
@ind2.y = $speaker_bulle.screen_y + 10
@ind3.x = $speaker_bulle.screen_x + 6
@ind3.y = $speaker_bulle.screen_y - 59
@ind4.x = $speaker_bulle.screen_x - 17
@ind4.y = $speaker_bulle.screen_y + 10
end

#--------------------------------------------------------------------------
# ● Gestion de la bulle (2)
#--------------------------------------------------------------------------

def gestion2

reglage_bulle
if self.x >= 2 and (self.x + @largeur_window) <= 628
self.x = @ind.x - (@largeur_window / 2)
else
if self.x < 2
self.x = 2
end
if (self.x + @largeur_window) > 628
self.x = (638 - @largeur_window)
end
end
end

#--------------------------------------------------------------------------
# ● Gestion de la bulle (3)
#--------------------------------------------------------------------------
def gestion3

if self.y >= 30
if self.x >= 2 and (self.x + @largeur_window) <= 628
@ind.visible = true
@ind2.visible = false
@ind3.visible = false
@ind4.visible = false
else
if self.x < 2
@ind.visible = false
@ind2.visible = false
@ind3.visible = true
@ind4.visible = false
end
if (self.x + @largeur_window) > 628
@ind.visible = true
@ind2.visible = false
@ind3.visible = false
@ind4.visible = false
end
end
else
if self.x >= 2 and (self.x + @largeur_window) <= 628
@ind.visible = false
@ind2.visible = true
@ind3.visible = false
@ind4.visible = false
else
if self.x < 2
@ind.visible = false
@ind2.visible = true
@ind3.visible = false
@ind4.visible = false
end
if (self.x + @largeur_window) > 628
@ind.visible = false
@ind2.visible = false
@ind3.visible = false
@ind4.visible = true
end
end
end
end

grifdail
grifdail
Membre

Nombre de messages : 51
Distinction : aucune
Date d'inscription : 18/04/2008

[résolu]scripte diaoque en bulle Empty Re: [résolu]scripte diaoque en bulle

le Lun 30 Juin 2008 - 12:23
suite
Spoiler:
#--------------------------------------------------------------------------
# ● Rafraichissement (mise à jour de l'apparence)
#--------------------------------------------------------------------------

def refresh
self.contents.clear
self.windowskin = RPG::Cache.windowskin("comic_skin")
reglage_bulle
self.contents.font.name = $font_bulle
self.contents.font.size = $fontsize_bulle
self.contents.font.color = $fontcolor_bulle
self.width = 200
self.back_opacity = 255
gestion
@ind.opacity = 255
@ind2.opacity = 255
@ind3.opacity = 255
@ind4.opacity = 255
x = y = 0
@cursor_width = 0
if $game_temp.choice_start == 0
x = 8
end
if $game_temp.message_text != nil
text = $game_temp.message_text
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
# Code intertextuel pour désigner le héros comme proteur de la bulle
if (/\\[Pp]lr/.match(last_text)) != nil
$speaker_bulle = $game_player
gestion
gestion2
gestion3
text.sub!(/\\[Pp]lr/) { "" }
end
# Code intertextuel pour désigner un évenement comme porteur de la bulle
if (/\\[Nn]pc\[(.+?)\]/.match(last_text)) != nil
event_id = $1
$speaker_bulle = $game_map.events[$1.to_i]
gestion
gestion2
gestion3
text.sub!(/\\[Nn]pc\[(.*?)\]/) { "" }
end
# Code intertextuel pour régler la largeur de la bulle
if (/\\[Ll]l\[(.+?)\]/.match(last_text)) != nil
@largeur_window = $1.to_i
text.sub!(/\\[Ll]l\[(.*?)\]/) { "" }
self.width = @largeur_window
gestion
gestion2
gestion3
end
# Code intertextuel pour régler la taille du texte
if (/\\[Zz]\[(.+?)\]/.match(last_text)) != nil
self.contents.font.size = $1.to_i
text.sub!(/\\[Zz]\[(.*?)\]/) { "" }
end
# Code intertextuel pour régler la taille du texte
if (/\\[Hh]\[(.+?),(.+?),(.+?),(.+?)\]/.match(last_text)) != nil
@rgb_r = $1.to_i
@rgb_g = $2.to_i
@rgb_b = $3.to_i
if $4.to_i != nil
@rgb_l = $4.to_i
else
@rgb_l = 255
end
text.sub!(/\\[Hh]\[(.*?)\]/) { "" }
self.contents.font.color = Color.new(@rgb_r,@rgb_g,@rgb_b,@rgb_l)
end
# Code intertextuel pour afficher dans le méssage l'or possédé
if (/\\[Oo]/.match(last_text)) != nil
text.sub!(/\\[Oo]/) { $game_party.gold.to_s }
end
# Code intertextuel pour afficher dans le méssage l'or possédé et la monnaie
if (/\\[Mm]/.match(last_text)) != nil
text.sub!(/\\[Mm]/) { $game_party.gold.to_s + " " + $data_system.words.gold }
end
# Code intertextuel pour afficher dans le méssage les pas effectués
if (/\\[Tt]/.match(last_text)) != nil
text.sub!(/\\[Tt]/) { $game_party.steps.to_s }
end
# Code intertextuel pour afficher dans le méssage le lieu
if (/\\[Ee]/.match(last_text)) != nil
text.sub!(/\\[Ee]/) { load_data("Data/MapInfos.rxdata")[$game_map.map_id].name }
end
text.gsub!(/\\\\/) { "\000" }
text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
text.gsub!(/\\[Gg]/) { "\002" }
while ((c = text.slice!(/./m)) != nil)
if c == "\000"
c = "\\"
end
if c == "\001"
text.sub!(/\[([0-9]+)\]/, "")
color = $1.to_i
if color >= 0 and color <= 7
self.contents.font.color = text_color(color)
end
next
end
if c == "\002"
if @gold_window == nil
@gold_window = Window_Gold.new
@gold_window.x = 560 - @gold_window.width
if $game_temp.in_battle
@gold_window.y = 192
else
@gold_window.y = self.y >= 128 ? 32 : 384
end
@gold_window.opacity = self.opacity
@gold_window.back_opacity = self.back_opacity
end
next
end
if c == "\n"
if y >= $game_temp.choice_start
@cursor_width = [@cursor_width, x].max
end
y += 1
x = 0
if y >= $game_temp.choice_start
x = 8
end
next
end
self.contents.draw_text(2 + x, (20 * y) - 8, 40, 32, c)
x += self.contents.text_size(c).width
# Adaptation de la position de la bulle en fonction du nombre de ligne
if y == 0
self.height = self.contents.height - 5
$yyy = (@ind.y - self.height) + 3
end
if y == 1
self.height = (10 * y) + self.contents.height
$yyy = (@ind.y - self.height) + 3
end
if y == 2
self.height = (15 * y) + self.contents.height + 2
$yyy = (@ind.y - self.height) + 3
end
end
end
if $game_temp.choice_max > 0
@item_max = $game_temp.choice_max
self.active = true
self.index = 0
end
if $game_temp.num_input_variable_id > 0
digits_max = $game_temp.num_input_digits_max
number = $game_variables[$game_temp.num_input_variable_id]
@input_number_window = Window_InputNumber.new(digits_max)
@input_number_window.number = number
@input_number_window.x = self.x + 8
@input_number_window.y = self.y + $game_temp.num_input_start * 32
end
reset_window
end

#--------------------------------------------------------------------------
# ● Réinitialisation de la fenêtre
#--------------------------------------------------------------------------

def reset_window
if $game_temp.in_battle
self.y = 16
else
case $game_system.message_position
when 0
self.y = 16
when 1
self.y = 160
when 2
# Determination de la position de la bulle en fonction de la position en ordonnée du personnage
if self.y >= 30
self.y = $yyy
else
self.y = $speaker_bulle.screen_y + 17
end
end
end
if $game_system.message_frame == 0
self.opacity = 255
else
self.opacity = 0
end
end

#--------------------------------------------------------------------------
# ● Rafraichissement (mise à jour des commandes et des calculs)
#--------------------------------------------------------------------------

def update
super
if @fade_in
self.contents_opacity += 24
if @input_number_window != nil
@input_number_window.contents_opacity += 24
end
if self.contents_opacity == 255
@fade_in = false
end
return
end
if @input_number_window != nil
@input_number_window.update
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
$game_variables[$game_temp.num_input_variable_id] =
@input_number_window.number
$game_map.need_refresh = true
@input_number_window.dispose
@input_number_window = nil
terminate_message
end
return
end
if @contents_showing
if $game_temp.choice_max == 0
self.pause = true
end
if Input.trigger?(Input::B)
if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
$game_system.se_play($data_system.cancel_se)
$game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
terminate_message
end
end
if Input.trigger?(Input::C)
if $game_temp.choice_max > 0
$game_system.se_play($data_system.decision_se)
$game_temp.choice_proc.call(self.index)
end
terminate_message
end
return
end
if @fade_out == false and $game_temp.message_text != nil
@contents_showing = true
$game_temp.message_window_showing = true
refresh
Graphics.frame_reset
self.visible = true
self.contents_opacity = 0
if @input_number_window != nil
@input_number_window.contents_opacity = 0
end
@fade_in = true
return
end
if self.visible
@fade_out = true
self.opacity -= 48
self.back_opacity -= 48
self.contents_opacity -= 48
@ind.opacity -= 48
@ind2.opacity -= 48
@ind3.opacity -= 48
@ind4.opacity -= 48
if self.opacity == 0
self.visible = false
@fade_out = false
$game_temp.message_window_showing = false
end
return
end
end

#--------------------------------------------------------------------------
# ● Rafraichissement du curseur (clignotement)
#--------------------------------------------------------------------------

def update_cursor_rect
if @index >= 0
n = $game_temp.choice_start + @index
self.cursor_rect.set(8, n * 32, @cursor_width, 32)
else
self.cursor_rect.empty
end
end
end
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum