Accueil du SiteAccueil du Site  AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  ConnexionConnexion  S'enregistrerS'enregistrer  



Le deal à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

Partagez
 

 Window message XP de Dubealex

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Delta
Membre V.I.P.
Membre V.I.P.
Delta

Masculin
Messages postés : 3126
Date d'inscription : 18/10/2011
Jauge LPC :
Window message XP de Dubealex 8915271400100 / 100100 / 100Window message XP de Dubealex 8915271400


Window message XP de Dubealex Projet15
Window message XP de Dubealex Membre10
Window message XP de Dubealex Membre15
Window message XP de Dubealex Projet10
Window message XP de Dubealex Doyen10
Window message XP de Dubealex Testeu10
Window message XP de Dubealex Event-10
Window message XP de Dubealex Dessin10
Window message XP de Dubealex Altrui10
Window message XP de Dubealex Partag10
Window message XP de Dubealex Haberg10
Window message XP de Dubealex Mappeu11
Window message XP de Dubealex Membre13
Window message XP de Dubealex Riche_10
Window message XP de Dubealex Collec10
Window message XP de Dubealex Collec11


Window message XP de Dubealex Empty
MessageSujet: Window message XP de Dubealex   Window message XP de Dubealex EmptyMer 16 Mai 2012 - 20:11

Copier ceci au dessus de Main dans l'éditeur de script et appelez le "Window_Message"

Code:
# ??? XRXS 9. ???????????????? ver..12d ???
# Original Script by  ?? ??, ??, RaTTiE
# Script from: http://f26.aaacafe.ne.jp/~xxms/RPGXP_XRXS9.htm
#
#Advanced Version by: dubealex
#
#To found all my NEW features, press CONTROL+F and search for the word "#NEW"
#To found the code where the "Skip Letter By Letter mode", search for "# SKIP"
#
# You can found all the command list on my website
# rmxp.dubealex.com
# Go in the "Script" section.


#==============================================================================
# ¦ Window_Message
#==============================================================================
class Window_Message < Window_Selectable
# ???????
DEFAULT_TYPING_ENABLE = true                # false????????
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
alias xrxs9_initialize initialize
def initialize
 
  $defaultfonttype = "Arial"
  $defaultfontsize = 24
 
  # IF for any reasons the FONT doesn't appears in your game, this is
  # because you are using a different version of RMXP. Look in the class MAIN
  # (under this one)
  # Go at line #10 and #12, and just copy the word that begins with a $ sign
  # and replace what is after the equal sign on lign #27 and 28 of this class.

  xrxs9_initialize
  # ?????????????""???
  if $soundname_on_speak == nil then
    $soundname_on_speak = ""
  end
  # ??????????
  $gaiji_file = "./Graphics/Gaiji/sample.png"
  # ?????????
  if FileTest.exist?($gaiji_file)
    @gaiji_cache = Bitmap.new($gaiji_file)
  else
    @gaigi_cache = nil
  end
  # ???????????
  @opacity_text_buf = Bitmap.new(32, 32)
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
alias xrxs9_terminate_message terminate_message
def terminate_message
  if @name_window_frame != nil
    @name_window_frame.dispose
    @name_window_frame = nil
  end
  if @name_window_text  != nil
    @name_window_text.dispose
    @name_window_text  = nil
  end
  xrxs9_terminate_message
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def refresh
  # ???
  self.contents.clear
  self.contents.font.color = normal_color
  self.contents.font.name = $fontface
  @x = @y = @max_x = @max_y = @indent = @lines = 0
  @face_indent = 0
  @opacity = 255
  @cursor_width = 0
  @write_speed = 0
  @write_wait = 0
  @mid_stop = false
  @face_file = nil
  # @popchar ? -2 ?????????-1???????????
  # 0????? ???????0?????1????????
  @popchar = -2
  # ???????????
  if $game_temp.choice_start == 0
    @x = 8
  end
  # ???????????·???
  if $game_temp.message_text != nil
    @now_text = $game_temp.message_text
    # ?????\F?·???
    if (/\A\\[Ff]\[(.+?)\]/.match(@now_text))!=nil then
      # ????????
      if FileTest.exist?("Graphics/Pictures/" + $1 + ".png")
        # ??????
        @face_file = $1 + ".png"
        self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))
        # ?? 128???????????????
        @x = @face_indent = 128
      end
      @now_text.gsub!(/\\[Ff]\[(.*?)\]/) { "" }
    end
    # ??????
    begin
    last_text = @now_text.clone
    # \V??????????(????)
    @now_text.gsub!(/\\[Vv]\[([IiWwAaSs]?)([0-9]+)\]/) { convart_value($1, $2.to_i) }
    end until @now_text == last_text
    @now_text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
      $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
    end
   
    #NEW
    #Dubealex Show Monster Name Feature
    @now_text.gsub!(/\\[Mm]\[([0-9]+)\]/) do
      $data_enemies[$1.to_i] != nil ? $data_enemies[$1.to_i].name : ""
    end
    #End new command
   
    #NEW
    #Dubealex Show Item Price Feature
    @now_text.gsub!(/\\[Pp]rice\[([0-9]+)\]/) do
      $data_items[$1.to_i] != nil ? $data_items[$1.to_i].price : ""
    end
    #End new command
   
    #NEW
    #Dubealex Show Hero Class Name Feature
    @now_text.gsub!(/\\[Cc]lass\[([0-9]+)\]/) do
      $data_classes[$data_actors[$1.to_i].class_id] != nil ? $data_classes[$data_actors[$1.to_i].class_id].name : ""
    end
    #End new command
   
    #NEW
    #Dubealex Show Current Map Name Feature
    @now_text.gsub!(/\\[Mm]ap/) do
      $game_map.name    != nil ? $game_map.name    : ""
    end
    #End new command
   
    # \name?·???
    name_window_set = false
    if (/\\[Nn]ame\[(.+?)\]/.match(@now_text)) != nil
      # ????
      name_window_set = true
      name_text = $1
      # \name[]?????
      @now_text.sub!(/\\[Nn]ame\[(.*?)\]/) { "" }
    end
    # ?????????
    if (/\\[Pp]\[([-1,0-9]+)\]/.match(@now_text))!=nil then
      @popchar = $1.to_i
      if @popchar == -1
        @x = @indent = 48
        @y = 4
      end
      @now_text.gsub!(/\\[Pp]\[([-1,0-9]+)\]/) { "" }
    end
    # ?????????
    @max_choice_x = 0
    if @popchar >= 0
      @text_save = @now_text.clone
      @max_x = 0
      @max_y = 4
      for i in 0..3
        line = @now_text.split(/\n/)[3-i]
        @max_y -= 1 if line == nil and @max_y <= 4-i
        next if line == nil
        line.gsub!(/\\\w\[(\w+)\]/) { "" }
        cx = contents.text_size(line).width
        @max_x = cx if cx > @max_x
        if i >= $game_temp.choice_start
          @max_choice_x = cx if cx > @max_choice_x
        end
      end
      self.width = @max_x + 32 + @face_indent
      self.height = (@max_y - 1) * 32 + 64
      @max_choice_x -= 68
      @max_choice_x -= @face_indent*216/128
    else
      @max_x = self.width - 32 - @face_indent
      for i in 0..3
        line = @now_text.split(/\n/)[i]
        next if line == nil
        line.gsub!(/\\\w\[(\w+)\]/) { "" }
        cx = contents.text_size(line).width
        if i >= $game_temp.choice_start
          @max_choice_x = cx if cx > @max_choice_x
        end
      end
      @max_choice_x += 8
    end
    # ??????????????
    @cursor_width = 0
    #if @lines >= $game_temp.choice_start
    #  @cursor_width = [@cursor_width, @max_choice_x - @face_indent].max
    #end
    # ????"\\\\" ? "\000" ???
    @now_text.gsub!(/\\\\/) { "\000" }
    # "\\C" ? "\001" ??"\\G" ? "\002" ??
    # "\\S" ? "\003" ??"\\A" ? "\004" ???
    @now_text.gsub!(/\\[Cc]\[([0123456789ABCDEF#]+)\]/) { "\001[#{$1}]" }
    @now_text.gsub!(/\\[Gg]/) { "\002" }
    @now_text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\003[#{$1}]" }
    @now_text.gsub!(/\\[Aa]\[(.*?)\]/) { "\004[#{$1}]" }
   
    #NEW
    #Dubealex Font Change Features
    @now_text.gsub!(/\\[Tt]\[(.*?)\]/) { "\050[#{$1}]" }
    #End of dubealex feature
   
    @now_text.gsub!(/\\[.]/) { "\005" }
    @now_text.gsub!(/\\[|]/) { "\006" }
    # ???????????????\016???????
    @now_text.gsub!(/\\[>]/) { "\016" }
    @now_text.gsub!(/\\[<]/) { "\017" }
    @now_text.gsub!(/\\[!]/) { "\020" }
    @now_text.gsub!(/\\[~]/) { "\021" }
    @now_text.gsub!(/\\[Ee]\[([0-9]+)\]/) { "\022[#{$1}]" }
    # ???????(????)
    @now_text.gsub!(/\\[Ii]/) { "\023" }
    # ?????????(????)
    @now_text.gsub!(/\\[Oo]\[([0-9]+)\]/) { "\024[#{$1}]" }
    # ?????????(????)
    @now_text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "\025[#{$1}]" }
    # ????(????)
    @now_text.gsub!(/\\[Bb]\[([0-9]+)\]/) { "\026[#{$1}]" }
    # ????(????)
    @now_text.gsub!(/\\[Rr]\[(.*?)\]/) { "\027[#{$1}]" }
    # ??????????????
    reset_window
    # \name?·???
    if name_window_set
      # ???????
      off_x =  0
      off_y =  -10
      # ???????????(??? 2 ???)
      space = 2
      x = self.x + off_x - space / 2
      y = self.y + off_y - space / 2
      w = self.contents.text_size(name_text).width + 8 + space
      h = 26 + space
      @name_window_frame = Window_Frame.new(x, y, w, h)
      @name_window_frame.z = self.z + 1
      # ??????????????????
      x = self.x + off_x + 4
      y = self.y + off_y
      @name_window_text  = Air_Text.new(x, y, name_text)
      @name_window_text.z = self.z + 2
    end
  end
  # ????????
  reset_window
  # ??????
  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 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
  @now_text = nil if @now_text == "" # ??
  # ???????????·???
  if @now_text != nil and @mid_stop == false
    if @write_wait > 0
      @write_wait -= 1
      return
    end
    text_not_skip = DEFAULT_TYPING_ENABLE
    while true
      # ?? x y ????
      @max_x = @x if @max_x < @x
      @max_y = @y if @max_y < @y
      # c ? 1 ????? (????????????????)
      if (c = @now_text.slice!(/./m)) != nil
        # \\ ???
        if c == "\000"
          # ????????
          c = "\\"
        end
        # \C[n] ???
       
        if c == "\001"
          @now_text.sub!(/\[([0123456789ABCDEF#]+)\]/, "")
          temp_color = $1
          color = temp_color.to_i
          leading_x = temp_color.to_s.slice!(/./m)
          if leading_x == "#"
            self.contents.font.color = hex_color(temp_color)
            next
          end
          if color >= 0 and color <= 7
            self.contents.font.color = text_color(color)
          end
          next
        end

        # \G ???
        if c == "\002"
          # ????????????
          if @gold_window == nil and @popchar <= 0
            @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
          # ?????
          c = ""
        end
        # \S[n] ???
        if c == "\003"
          # ??????
          @now_text.sub!(/\[([0-9]+)\]/, "")
          speed = $1.to_i
          if speed >= 0 and speed <= 19
            @write_speed = speed
          end
          # ?????
          c = ""
        end
        # \A[soundname] ???
        if c == "\004"
          # ????????????????
          @now_text.sub!(/\[(.*?)\]/, "")
          buftxt = $1.dup.to_s
          # ????????"/"?·???
          if buftxt.match(/\//) == nil and buftxt != "" then
            # ????"Audio/SE/"?????
            $soundname_on_speak = "Audio/SE/" + buftxt
          else
            # ·?????????
            $soundname_on_speak = buftxt.dup
          end
          # ?????
          c = ""
        elsif c == "\004"
          # ?????
          c = ""
        end
        # \. ???
        if c == "\005"
          @write_wait += 5
          c = ""
        end
        # \| ???
        if c == "\006"
          @write_wait += 20
          c = ""
        end
        # \> ???
        if c == "\016"
          text_not_skip = false
          c = ""
        end
        # \<???
        if c == "\017"
          text_not_skip = true
          c = ""
        end
        # \!???
        if c == "\020"
          @mid_stop = true
          c = ""
        end
        # \~???
        if c == "\021"
          terminate_message
          return
        end
        # \I???(????)
        if c == "\023"
          # ??@x???????????
          @indent = @x
          c = ""
        end
        # \O???(????)
        if c == "\024"
          @now_text.sub!(/\[([0-9]+)\]/, "")
          @opacity = $1.to_i
          color = self.contents.font.color
          self.contents.font.name = $fontface
          self.contents.font.color = Color.new(color.red, color.green, color.blue, color.alpha * @opacity / 255)
          c = ""
        end
        # \H???(????)
        if c == "\025"
          @now_text.sub!(/\[([0-9]+)\]/, "")
          self.contents.font.size = [[$1.to_i, 6].max, 32].min
          c = ""
        end
        # \B???(????)
        if c == "\026"
          @now_text.sub!(/\[([0-9]+)\]/, "")
          @x += $1.to_i
          c = ""
        end
       
        #NEW
        #Dubealex Font Change Command
        if c == "\050"
          @now_text.sub!(/\[(.*?)\]/, "")
          buftxt = $1.dup.to_s
          if buftxt.match(/\//) == nil and buftxt != "" then
            self.contents.font.name = buftxt
          end
          c = ""
          end
        #end of font change command
       
        # \R???(????)
        if c == "\027"
          @now_text.sub!(/\[(.*?)\]/, "")
          # ?????
          @x += ruby_draw_text(self.contents, @x, @y * line_height + (line_height - self.contents.font.size), $1, @opacity)
          # ?????SE???
          if $soundname_on_speak != ""
            Audio.se_play($soundname_on_speak)
          end
          c = ""
        end
        # ???????????????(????)
        if c == "\030"
          # ????????????
          @now_text.sub!(/\[(.*?)\]/, "")
          # ???????
          self.contents.blt(@x , @y * line_height + 8, RPG::Cache.icon($1), Rect.new(0, 0, 24, 24))
          # ?????SE???
          if $soundname_on_speak != ""
            Audio.se_play($soundname_on_speak)
          end
          @x += 24
          # ?????
          c = ""
        end
        # ???????
        if c == "\n"
          # y ? 1 ???
          @lines += 1
          @y += 1
          @x = 0 + @indent + @face_indent
          # ???????????
          if @lines >= $game_temp.choice_start
            @x = 8 + @indent + @face_indent
            # ???????
            @cursor_width = @max_choice_x
          end
          # ?????
          c = ""
        end
        # ???????
        if c == "\022"
          # []?????
          @now_text.sub!(/\[([0-9]+)\]/, "")
          # ?????
          @x += gaiji_draw(4 + @x, @y * line_height + (line_height - self.contents.font.size), $1.to_i)
          # ?????
          c = ""
        end
        if c != ""
          # ?????
          self.contents.draw_text(0+@x, 32 * @y, 40, 32, c)
          @x += self.contents.text_size(c).width
          # ?????SE???
          if $soundname_on_speak != "" then
            Audio.se_play($soundname_on_speak)
          end
        end
        # B??????????
       
    # SKIP
    # This allow you to SKIP the letter by letter using a button
    # At your own choice
    # Here's how to customize it:
    # Replace the letter in the end of the line "if Input.trigger?(Input::C)"
    # That is on line #512
    # By the letter of your choice:
    #
    # B = Escape, 0 (On The NumPad), X
    # C = Enter, Space Bar and C
    # A = Shift, Z
        if Input.press?(Input::C)
          text_not_skip = false
        end
      else
        text_not_skip = true
        break
      end
      # ????
      if text_not_skip
        break
      end
    end
    @write_wait += @write_speed
    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
      if @mid_stop
        @mid_stop = false
        return
      else
        terminate_message
      end
    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
    if self.opacity == 0
      self.visible = false
      @fade_out = false
      $game_temp.message_window_showing = false
    end
    return
  end
end
#--------------------------------------------------------------------------
# ? ?????????
#    parameter : ?????
#--------------------------------------------------------------------------
def get_character(parameter)
  # ????????
  case parameter
  when 0  # ?????
    return $game_player
  else  # ???????
    events = $game_map.events
    return events == nil ? nil : events[parameter]
  end
end
#--------------------------------------------------------------------------
# ? ????????????????
#--------------------------------------------------------------------------
def reset_window
  # ??
  if @popchar >= 0
    events = $game_map.events
    if events != nil
      character = get_character(@popchar)
      x = [[character.screen_x -  0 - self.width / 2, 4].max, 636 - self.width].min
      y = [[character.screen_y - 48 - self.height, 4].max, 476 - self.height].min
      self.x = x
      self.y = y
    end
  elsif @popchar == -1
    self.x = -4
    self.y = -4
    self.width = 648
    self.height = 488
  else
    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
      self.x = 80
      if @face_file == nil
        self.width = 480
      else
        self.width = 600
        self.x -= 60
      end
      self.height = 160
    end
  end
  self.contents = Bitmap.new(self.width - 32, self.height - 32)
  self.contents.font.color = normal_color
  self.contents.font.name = $fontface
  if @face_file != nil
    self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))
  end
  if @popchar == -1
    self.opacity = 255
    self.back_opacity = 0
  elsif $game_system.message_frame == 0
    self.opacity = 255
    self.back_opacity = 160
  else
    self.opacity = 0
    self.back_opacity = 160
  end
end
#--------------------------------------------------------------------------
# ? ????
#--------------------------------------------------------------------------
# x  :x??
# y  :y??
# num  :????
# ???:???(@x???)
#--------------------------------------------------------------------------
def gaiji_draw(x, y, num)
  # ???????????????????
  if @gaiji_cache == nil
    return 0
  else
    # ????????????????????????????
    if @gaiji_cache.width < num * 24
      return 0
    end

    # ????????
    if self.contents.font.size >= 20 and self.contents.font.size <= 24
      size = 24
    else
      size = self.contents.font.size * 100 * 24 / 2200
    end

    # ??????stretch_blt???
    self.contents.stretch_blt(Rect.new(x, y, size, size), @gaiji_cache, Rect.new(num * 24, 0, 24, 24))

    # ?????SE???
    if $soundname_on_speak != "" then
      Audio.se_play($soundname_on_speak)
    end

    # ????????
    return size
  end
end
#--------------------------------------------------------------------------
# ? line_height
#--------------------------------------------------------------------------
# ???:????(@y???)??????
#--------------------------------------------------------------------------
def line_height
  # ?????????????????????32??????
  return 32

  # ????????
  if self.contents.font.size >= 20 and self.contents.font.size <= 24
    return 32
  else
    return self.contents.font.size * 15 / 10
  end
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
# target :?????Bitmap???????
# x      :x??
# y      :y??
# str  :????????,?????????
#      ,????2???·???????????????
# opacity:???(0~255)
# ??? :???(@x???)?
#--------------------------------------------------------------------------
def ruby_draw_text(target, x, y, str,opacity)
  # ??????????????????
  sizeback = target.font.size
  # ????????
  target.font.size * 3 / 2 > 32 ? rubysize = 32 - target.font.size : rubysize = target.font.size / 2
  rubysize = [rubysize, 6].max
 
  # opacity????????????????????
  opacity = [[opacity, 0].max, 255].min
  # str?split?????split_s???
  split_s = str.split(/,/)

  # split_s?nil????""?????(?????)
  split_s[0] == nil ? split_s[0] = "" : nil
  split_s[1] == nil ? split_s[1] = "" : nil

  # height?width???
  height = sizeback + rubysize
  width  = target.text_size(split_s[0]).width

  # ?????????(?????????????????·??)
  target.font.size = rubysize
  ruby_width = target.text_size(split_s[1]).width
  target.font.size = sizeback

  buf_width = [target.text_size(split_s[0]).width, ruby_width].max

  # ????????????????1/2????????(????)
  width - ruby_width != 0 ? sub_x = (width - ruby_width) / 2 : sub_x = 0

  # opacity?255(????)????????
  if opacity == 255
  # ?????
    target.font.size = rubysize
    target.draw_text(x + sub_x, y - target.font.size, target.text_size(split_s[1]).width, target.font.size, split_s[1])
    target.font.size = sizeback
  # ?????
    target.draw_text(x, y, width, target.font.size, split_s[0])
    return width
  else
    # ???????height?width???????????????
    # ???????????
    if @opacity_text_buf.width < buf_width or @opacity_text_buf.height < height
      @opacity_text_buf.dispose
      @opacity_text_buf = Bitmap.new(buf_width, height)
    # ????????????????
    else
      @opacity_text_buf.clear
    end
    # ???????????
    # ?????
    @opacity_text_buf.font.size = rubysize
    @opacity_text_buf.draw_text(0 , 0, buf_width, rubysize, split_s[1], 1)
    @opacity_text_buf.font.size = sizeback
    # ?????
    @opacity_text_buf.draw_text(0 , rubysize, buf_width, sizeback, split_s[0], 1)
    # ???????????????
    if sub_x >= 0
      target.blt(x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)
    # ???????????????
    else
      target.blt(x + sub_x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)
    end
    # ????????
    return width
  end
end
#--------------------------------------------------------------------------
# ? \V??
#--------------------------------------------------------------------------
# option :??????????????????index???????????
# index  :??????
# ??? :????(??????????????)
#--------------------------------------------------------------------------
def convart_value(option, index)
  # option?nil????""???(?????)
  option == nil ? option = "" : nil

  # option?downcase?????
  option.downcase!

  # \030???????????????\030[?????????]????
  case option
  when "i"
    unless $data_items[index].name == nil
      r = sprintf("\030[%s]%s", $data_items[index].icon_name, $data_items[index].name)
    end
  when "w"
    unless $data_weapons[index].name == nil
      r = sprintf("\030[%s]%s", $data_weapons[index].icon_name, $data_weapons[index].name)
    end
  when "a"
    unless $data_armors[index].name == nil
      r = sprintf("\030[%s]%s", $data_armors[index].icon_name, $data_armors[index].name)
    end
  when "s"
    unless $data_skills[index].name == nil
      r = sprintf("\030[%s]%s", $data_skills[index].icon_name, $data_skills[index].name)
    end
  else
    r = $game_variables[index]
  end

  r == nil ? r = "" : nil
  return r
end
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
def dispose
  terminate_message

  # ?????????
  if @gaiji_cache != nil
    unless @gaiji_cache.disposed?
      @gaiji_cache.dispose
    end
  end

  # ?????????????
  unless @opacity_text_buf.disposed?
    @opacity_text_buf.dispose
  end

  $game_temp.message_window_showing = false
  if @input_number_window != nil
    @input_number_window.dispose
  end
  super
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def update_cursor_rect
  if @index >= 0
    n = $game_temp.choice_start + @index
    self.cursor_rect.set(8 + @indent + @face_indent, n * 32, @cursor_width, 32)
  else
    self.cursor_rect.empty
  end
end
end
#==============================================================================
# ¦ Window_Frame (??????????????)
#==============================================================================
class Window_Frame < Window_Base
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def initialize(x, y, width, height)
  super(x, y, width, height)
  self.contents = nil
  #self.back_opacity = 240
end
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
def dispose
  super
end
end
#==============================================================================
# ¦ Air_Text (???????????? = ??????????????????)
#==============================================================================
class Air_Text < Window_Base
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def initialize(x, y, designate_text)
  super(x-16, y-16, 32 + designate_text.size * 12, 56)
  self.opacity      = 0
  self.back_opacity = 0
  self.contents = Bitmap.new(self.width - 32, self.height - 32)
  w = self.contents.width
  h = self.contents.height
  self.contents.font.name = $fontface
  self.contents.font.color = normal_color
  self.contents.draw_text(0, 0, w, h, designate_text)
end
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
def dispose
  self.contents.clear
  super
end
end

Voici comment l'utiliser.

\n[Heros ID] Nom du héros possédant l'ID
\m[Monster ID] ID du monstre
\o[numeros] opacité entre 0 et 255
\f[nom de l'image] Affiche un faceset 100*100 dans le message à gauche. A stocker l'image dans pictures
\P[event ID]fenêtre s'ouvre au dessus de l'événement
\Price[Item ID]Prix de l'objet
\Class[Heros ID] La classe
\t[FontName] La Police d'écriture
\Name[Text] Le Nom du héros à Noter \Name[ Essai ] pour une meilleure lisibilité laisser des espaces avant et après
\h[numeros] Hauteur de police entre 6 et 32
\~ ferme la fenêtre
\e[numeros] jamais essayé
\v[XID] X pour S technique I Item A armure W arme
\i retrait

Window message XP de Dubealex Image2


Dernière édition par Delta le Mer 16 Mai 2012 - 21:25, édité 1 fois
Revenir en haut Aller en bas
http://deltaproduction.free-h.net
Elekami
Fondateur
Fondateur
Elekami

Masculin
Messages postés : 19071
Date d'inscription : 19/07/2008
Jauge LPC :
Window message XP de Dubealex 8915271400100 / 100100 / 100Window message XP de Dubealex 8915271400

Window message XP de Dubealex Pater_10
Window message XP de Dubealex Staffe10
Window message XP de Dubealex Mythe_10
Window message XP de Dubealex Membre11
Window message XP de Dubealex Doyen10
Window message XP de Dubealex Scanar10
Window message XP de Dubealex Compos10
Window message XP de Dubealex Testeu10
Window message XP de Dubealex Membre15
Window message XP de Dubealex Partag10
Window message XP de Dubealex Projet10
Window message XP de Dubealex Projet16
Window message XP de Dubealex Riche_10
Window message XP de Dubealex Travai10
Window message XP de Dubealex Collec10
Window message XP de Dubealex Collec11
Window message XP de Dubealex Collec12
Window message XP de Dubealex Collec13
Window message XP de Dubealex Connar10


Window message XP de Dubealex Empty
MessageSujet: Re: Window message XP de Dubealex   Window message XP de Dubealex EmptyMer 16 Mai 2012 - 20:24

Sympa, je te mets des points. Wink
Revenir en haut Aller en bas
https://www.ledijonshow.fr https://twitter.com/EleKoptes
Jin
Ancien staffeux
Ancien staffeux
Jin

Masculin
Messages postés : 8557
Date d'inscription : 08/12/2010
Jauge LPC :
Window message XP de Dubealex 891527140069 / 10069 / 100Window message XP de Dubealex 8915271400

G 1 petit zizi Very Happy
Nn C pa vré Sad
Window message XP de Dubealex Membre15
Window message XP de Dubealex Partag10
Window message XP de Dubealex Travai10
Window message XP de Dubealex Event-10
Window message XP de Dubealex Altrui10
Window message XP de Dubealex Riche_10
Window message XP de Dubealex Couhil10
Window message XP de Dubealex Nain_p11
Window message XP de Dubealex Connar10


Window message XP de Dubealex Empty
MessageSujet: Re: Window message XP de Dubealex   Window message XP de Dubealex EmptyMer 16 Mai 2012 - 20:54

Beark !!

Les faceset ça me donne la gerbe maintenant x)

Merci du partage tout de même =)
Revenir en haut Aller en bas
Elekami
Fondateur
Fondateur
Elekami

Masculin
Messages postés : 19071
Date d'inscription : 19/07/2008
Jauge LPC :
Window message XP de Dubealex 8915271400100 / 100100 / 100Window message XP de Dubealex 8915271400

Window message XP de Dubealex Pater_10
Window message XP de Dubealex Staffe10
Window message XP de Dubealex Mythe_10
Window message XP de Dubealex Membre11
Window message XP de Dubealex Doyen10
Window message XP de Dubealex Scanar10
Window message XP de Dubealex Compos10
Window message XP de Dubealex Testeu10
Window message XP de Dubealex Membre15
Window message XP de Dubealex Partag10
Window message XP de Dubealex Projet10
Window message XP de Dubealex Projet16
Window message XP de Dubealex Riche_10
Window message XP de Dubealex Travai10
Window message XP de Dubealex Collec10
Window message XP de Dubealex Collec11
Window message XP de Dubealex Collec12
Window message XP de Dubealex Collec13
Window message XP de Dubealex Connar10


Window message XP de Dubealex Empty
MessageSujet: Re: Window message XP de Dubealex   Window message XP de Dubealex EmptyMer 16 Mai 2012 - 21:04

Non mais les facesets, c'est purement facultatif.
Revenir en haut Aller en bas
https://www.ledijonshow.fr https://twitter.com/EleKoptes
Jin
Ancien staffeux
Ancien staffeux
Jin

Masculin
Messages postés : 8557
Date d'inscription : 08/12/2010
Jauge LPC :
Window message XP de Dubealex 891527140069 / 10069 / 100Window message XP de Dubealex 8915271400

G 1 petit zizi Very Happy
Nn C pa vré Sad
Window message XP de Dubealex Membre15
Window message XP de Dubealex Partag10
Window message XP de Dubealex Travai10
Window message XP de Dubealex Event-10
Window message XP de Dubealex Altrui10
Window message XP de Dubealex Riche_10
Window message XP de Dubealex Couhil10
Window message XP de Dubealex Nain_p11
Window message XP de Dubealex Connar10


Window message XP de Dubealex Empty
MessageSujet: Re: Window message XP de Dubealex   Window message XP de Dubealex EmptyMer 16 Mai 2012 - 21:28

Tout comme le nom alors =)

Un simple

"Roger : Salut ca va ?"

Suffit :p
Revenir en haut Aller en bas
Elekami
Fondateur
Fondateur
Elekami

Masculin
Messages postés : 19071
Date d'inscription : 19/07/2008
Jauge LPC :
Window message XP de Dubealex 8915271400100 / 100100 / 100Window message XP de Dubealex 8915271400

Window message XP de Dubealex Pater_10
Window message XP de Dubealex Staffe10
Window message XP de Dubealex Mythe_10
Window message XP de Dubealex Membre11
Window message XP de Dubealex Doyen10
Window message XP de Dubealex Scanar10
Window message XP de Dubealex Compos10
Window message XP de Dubealex Testeu10
Window message XP de Dubealex Membre15
Window message XP de Dubealex Partag10
Window message XP de Dubealex Projet10
Window message XP de Dubealex Projet16
Window message XP de Dubealex Riche_10
Window message XP de Dubealex Travai10
Window message XP de Dubealex Collec10
Window message XP de Dubealex Collec11
Window message XP de Dubealex Collec12
Window message XP de Dubealex Collec13
Window message XP de Dubealex Connar10


Window message XP de Dubealex Empty
MessageSujet: Re: Window message XP de Dubealex   Window message XP de Dubealex EmptyMer 16 Mai 2012 - 21:31

Là, le nom comme ça, je trouve ça pas mal.
Après peu importe, tant que l'information est affichée de manière correcte et distinctive ...
Revenir en haut Aller en bas
https://www.ledijonshow.fr https://twitter.com/EleKoptes
Jin
Ancien staffeux
Ancien staffeux
Jin

Masculin
Messages postés : 8557
Date d'inscription : 08/12/2010
Jauge LPC :
Window message XP de Dubealex 891527140069 / 10069 / 100Window message XP de Dubealex 8915271400

G 1 petit zizi Very Happy
Nn C pa vré Sad
Window message XP de Dubealex Membre15
Window message XP de Dubealex Partag10
Window message XP de Dubealex Travai10
Window message XP de Dubealex Event-10
Window message XP de Dubealex Altrui10
Window message XP de Dubealex Riche_10
Window message XP de Dubealex Couhil10
Window message XP de Dubealex Nain_p11
Window message XP de Dubealex Connar10


Window message XP de Dubealex Empty
MessageSujet: Re: Window message XP de Dubealex   Window message XP de Dubealex EmptyMer 16 Mai 2012 - 23:58

Oui c'est sur.

Enfin je ne critique en rien le script ^^
Chacun ses goûts =)
Revenir en haut Aller en bas
lidenvice
Ancien staffeux
Ancien staffeux
lidenvice

Masculin
Messages postés : 1955
Date d'inscription : 18/10/2011
Jauge LPC :
Window message XP de Dubealex 891527140068 / 10068 / 100Window message XP de Dubealex 8915271400

Window message XP de Dubealex Membre10
Window message XP de Dubealex Doyen10
Window message XP de Dubealex Travai10
Window message XP de Dubealex Membre15
Window message XP de Dubealex Altrui10
Window message XP de Dubealex Padago10
Window message XP de Dubealex Scanar10
Window message XP de Dubealex Mappeu10
Window message XP de Dubealex Event-10
Window message XP de Dubealex Maker_10
Window message XP de Dubealex Projet16
Window message XP de Dubealex Mythe_10
Window message XP de Dubealex Riche_10
Window message XP de Dubealex Collec10
Window message XP de Dubealex Collec11
Window message XP de Dubealex Collec12
Window message XP de Dubealex Collec13
Window message XP de Dubealex Antino10
Window message XP de Dubealex Serial10


Window message XP de Dubealex Empty
MessageSujet: Re: Window message XP de Dubealex   Window message XP de Dubealex EmptyJeu 17 Mai 2012 - 0:03

Delta a écrit:

\Name[Text] Le Nom du héros à Noter \Name[ Essai ] pour une meilleure lisibilité laisser des espaces avant et après
Ca je sais éditer pour réduire \Name en Nm ou N si la fonction n'est pas utilisée. Ca prend moins de place dans les messages ainsi;
Revenir en haut Aller en bas
seby
Chevalier (niveau 3)
Chevalier (niveau 3)
seby

Messages postés : 95
Date d'inscription : 06/05/2012
Jauge LPC :
Window message XP de Dubealex 89152714003 / 1003 / 100Window message XP de Dubealex 8915271400

Window message XP de Dubealex Projetaaa


Window message XP de Dubealex Empty
MessageSujet: Re: Window message XP de Dubealex   Window message XP de Dubealex EmptyJeu 17 Mai 2012 - 9:06

Script fonctionnel, et surement très pratique dans l'avenir !
Merci Smile
Revenir en haut Aller en bas
Contenu sponsorisé




Window message XP de Dubealex Empty
MessageSujet: Re: Window message XP de Dubealex   Window message XP de Dubealex Empty

Revenir en haut Aller en bas
 
Window message XP de Dubealex
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [VX]Message Window Formatting
» Custom Window
» [VX] Window Maker
» [XP] Advanced Message Script
» [Vx-Ace]Linear Menu Status Window

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ PARTAGE ~ :: Scripts et plugins :: RPG Maker XP :: Système-
Sauter vers: