Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

Afficher un faceset dans un message

Voir le sujet précédent Voir le sujet suivant Aller en bas  Message [Page 1 sur 1]

1RPG Maker XP Afficher un faceset dans un message le Lun 25 Avr - 21:44

Zerow117


Membre
Membre
Ce script est tiré du forum RMO et a été trouvé par link@. Si vous désirez poser une question ou voir les commentaires de ce script, rendez vous sur la page Afficher un faceset dans un message.


Sur RMXP, vous remarquerez qu'il n'y a pas d'option pour afficher un faceset, bien voilà comment!



Créer un nouveau script au dessus de Main que vous nommerez "Window_Message2" et copier/coller y ce code:

Code:
#=================================================
    #=============================
    # Window_Message
    #------------------------------------------------------------------------------
    #
    #=================================================
    #=============================

    class Window_Message < Window_Selectable
    #--------------------------------------------------------------------------
    #
    #--------------------------------------------------------------------------
    def initialize
    super(80, 304, 480, 160)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font = Font.new("Arial")
    self.visible = false
    self.z = 9998
    @fade_in = false
    @fade_out = false
    @contents_showing = false
    @cursor_width = 0
    @pic_width = 96
    @pic_height = 96
    self.active = false
    self.index = -1
    end
    #--------------------------------------------------------------------------
    #
    #--------------------------------------------------------------------------
    def dispose
    terminate_message
    $game_temp.message_window_showing = false
    if @input_number_window != nil
    @input_number_window.dispose
    end
    super
    end
    #--------------------------------------------------------------------------
    #
    #--------------------------------------------------------------------------
    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
    #--------------------------------------------------------------------------
    #
    #--------------------------------------------------------------------------
    def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    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
    text.gsub!(/\\[Ww]\[([0-9]+)\]/) do
    @pic_width = $1.to_i
    ""
    end
    text.gsub!(/\\[Hh]\[([0-9]+)\]/) do
    @pic_height = $1.to_i
    ""
    end
    text.gsub!(/\\[Ff]\[([\w]+)\]/) do
    temp = RPG::Cache.picture($1)
    pic_x = self.contents.width - @pic_width - 10
    pic_y = self.contents.height / 2 - @pic_height / 2
    dest = Rect.new(pic_x,pic_y,@pic_width, @pic_height)
    src = Rect.new(0,0,temp.width, temp.height)
    self.contents.stretch_blt(dest, temp, src)
    ""
    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(4 + x, 32 * y, 40, 32, c)

    x += self.contents.text_size(c).width
    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
    end
    #--------------------------------------------------------------------------
    #
    #--------------------------------------------------------------------------
    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 # ?
    self.y = 304
    end
    end
    if $game_system.message_frame == 0
    self.opacity = 255
    else
    self.opacity = 0
    end
    self.back_opacity = 160
    end
    #--------------------------------------------------------------------------
    #
    #--------------------------------------------------------------------------
    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
    reset_window
    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
    if self.opacity == 0
    self.visible = false
    @fade_out = false
    $game_temp.message_window_showing = false
    end
    return
    end
    end
    #--------------------------------------------------------------------------
    #
    #--------------------------------------------------------------------------
    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

Et à chaques fois que vous faites parler un personnage, dans Message copier/coller:

\f[nom_de_l'image_sans_l'extention]

L'image doit être 96x96 et dans le dossier Pictures de votre jeu, ne mettez pas l'extension!

À faire: \f[Perso1]
À ne pas faire: \f[Perso1.png]

Faites ceci à chaques fois dans votre message, suivit sur la ligne suivante de ce que dit le perso.

Voir le profil de l'utilisateur

Venox


Fondateur
Fondateur
Merci du partage Zerow ! Pareil pour cet fois ---screen--- :)

Voir le profil de l'utilisateur

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

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum