[EXT] UMS  bugadooooo Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[EXT] UMS bugadooooo

4 participantes

Ir para baixo

[EXT] UMS  bugadooooo Empty [EXT] UMS bugadooooo

Mensagem por Florecio Sex Set 30, 2011 9:19 am

Eu Pegeim Esse Sytema Que Ativa eventos team vc team e invasão de mostro na cidade to usdo no unpm 1.6 So Que Bugo o texto De Mesagem Dos npc nao aprece letras

Código:
# *****************************************************************************
# *    Universal Message System
# *      v1.5.0
# *      by Ccoa
# *****************************************************************************
# Usage:
=begin

IN MESSAGE CODES
  \b          - toggle bold on and off
  \bopc[i]    - change the back opacity for this message to i (should be 0-255)
  \c[i]      - change the text color
  \c[#IIIIII] - change the text color to the hex code (temporary)
  \e[i]      - place the text box over event i (0 = player, -1 no event)
  \face[name] - changes the face graphic to name.png (leave empty [] for no face)
  \fl        - change face justification to left
  \font[name] - change the font to name, leave empty [] to return to the default font
  \fr        - change face justification to right
  \g          - display the gold window
  \height    - height of the message window, works only in normal mode
  \i          - toggle italics on and off
  \ignr      - Do not write anything on this line, only process codes, must be the first thing on a line
  \jc        - justify the window to the center, ignored if using \e
  \jl        - justify the window to the left, ignored if using \e
  \jr        - justify the window to the right, ignored if using \e
  \m          - toggle mode between normal and fit window to text
  \n[i]      - display the name of actor i
  \nm[name]  - display the name in the name window, leave empty [] to remove the name window
  \oa[i]      - display the icon and name of armor i
  \oi[i]      - display the icon and name of item i
  \opc[i]    - change the opacity for this message to i (should be 0-255)
  \os[i]      - display the icon and name of skill i
  \ow[i]      - display the icon and name of weapon i
  \p[i]      - pause for i frames before writing the next character
  \pt        - toggle pause display on and off
  \s          - toggle shadowed text
  \shk[i]    - set window shake to i, higher i is bigger shake, 0 is no shake
  \skip      - toggle text skip on and off
  \t1        - switch to the talk1 comic thingy
  \t2        - switch to the talk2 comic thingy
  \tc        - center the text, must be the first thing on a line
  \th        - switch to the thought comic thingy
  \tl        - left justify the text, must be the first thing on a line
  \tr        - right justify the text, must be the first thing on a line
  \v[i]      - display variable i
  \width      - width of the message window, works only in normal mode
  \w[i]      - wait for i frames after receiving this code, then close the window
  \ws[i]      - change the write speed to i
  \slv[name]  - set this window to be slave window name, or show slave window name
  \inc        - include this window in the last
 
OUT OF MESSAGE CODES (use in a Script event command)
$game_system.ums_mode = NORMAL_MODE - switch to normal mode
$game_system.ums_mode = FIT_WINDOW_TO_TEXT - switch to fit window mode
$game_system.text_skip = true - turn text skip on
$game_system.text_skip = false
true                          - turn text skip off (true is necessary)
$game_system.text_mode = WRITE_FASTER - change skip mode to write faster
$game_system.text_mode = WRITE_ALL - change skip mode to write all
$game_system.write_speed = i - change the delay between letters to i frames
$game_system.window_height = i - change the window height to i
$game_system.window_width = i - change the window width to i
$game_system.window_justification = RIGHT - make the window right justified
$game_system.window_justification = LEFT - make the window left justified
$game_system.window_justification = CENTER - make the window center justified
$game_system.face_graphic = "filename" - change the face graphic to filename.png
$game_system.face_graphic = "" - change the face graphic to none
$game_system.face_graphic_justification = LEFT - the face graphic is on the left side
$game_system.face_graphic_justification = RIGHT - the face graphic is on the right side
$game_system.face_graphic_position = TOP - face graphic appears on top of window
$game_system.face_graphic_position = CENTER - face graphic appears centered in window
$game_system.face_graphic_position = BOTTOM - face graphic appears on the bottom of window
$game_system.shadow_text = true - turn text shadowing on
$game_system.shadow_text = false
true                            - turn text shadowing off (true is necessary)
$game_system.shadow_color = Color.new(red, blue, green, alpha) - change shadow color
$game_system.message_event = what event to put the message over (0 = player, -1 = no event)
$game_system.comic_enabled = false
true                              - turn off comic thingy
$game_system.comic_enabled = true  - turn on comic thingy (only works with message_event not -1)
$game_system.comic_style = TALK1  - use the talk1.png comic thingy
$game_system.comic_style = TALK2  - use the talk2.png comic thingy
$game_system.comic_style = THOUGHT - use the thought.png comic thingy
$game_system.name = "name" - change the text of the name window to name
$game_system.name = "" - remove the name window
$game_system.font = "name" - change the font to name
$game_system.font = "" - return the font to the default
$game_system.text_justification = CENTER - center justify the text
$game_system.text_justification = LEFT - left justify the text
$game_system.text_justification = RIGHT - right justify the text
$game_system.show_pause = true - show pause icon when waiting for user input
$game_system.show_pause = false - don't show pause icon when waiting for user input
$game_system.shake = 0 - turn window shake off
$game_system.shake = i - set shake to i, higher i is bigger shake
$game_system.sound_effect = "" - turn off the letter-by-letter SE
$game_system.sound_effect = "sename" - play the SE sename with each letter written
$game_system.animated_faces = false - do not use animated faces
$game_system.animated_faces = true - use animated faces
$game_system.animation_pause = i - Wait i frames between each animation
$game_system.face_frame_width = i - Each frame on the faceset is i pixels
$game_system.resting_face = "" - Do not use a resting face
$game_system.resting_face = "name" - Use a different animated face named facenamename when done talking
$game_system.resting_animation_pause = i - Wait i frames between resting animations
$game_system.text_mode = ONE_LETTER_AT_A_TIME - write text one letter at a time
$game_system.text_mode = ALL_AT_ONCE - write text all at once
$game_system.font_color = Color.new(R, G, B, A) - permanently change the font color to the RGBA color given here
$game_system.font_color = nil - return the font color permanently to normal_color (white, by default)
$game_system.windowskin = "windowskinname" - change the message box windowskin to windowskin
$game_system.windowskin = "" - change the message box windowskin back to the one in the database
$game_system.name_window = true - show the name window
$game_system.name_window = false - hide the name window (just show the text)
$game_system.opacity = i - change the message window back opacity to i (0-255)
$game_system.window_image = "imagename" - the name of the image to show behind the window
$game_system.window_image = nil - stop showing an image behind the window

=end
# *****************************************************************************
#  CONSTANTS
# *****************************************************************************

# modes
NORMAL_MODE        = 0
FIT_WINDOW_TO_TEXT = 1

#text modes
ONE_LETTER_AT_A_TIME = 0
ALL_AT_ONCE          = 1

# skip modes
WRITE_FASTER = 0
WRITE_ALL    = 1

# justifications
RIGHT  = 0
CENTER = 1
LEFT  = 2

# positions for extra objects (face graphics, choice box, etc)
ABOVE  = 0  # place the object above the top of the message box
CENTER = 1  # center the object vertically inside the message box
BOTTOM = 2  # place the bottom of the object on the bottom of the message box
SIDE  = 3  # to the side of the message box (which side depends on justification)

# comic type
TALK1  = 0
TALK2  = 1
THOUGHT = 2

# *****************************************************************************
#  Changes to Game_System.  This allows any changes made to be saved when the
#    game is saved.
# *****************************************************************************

class Game_System
  attr_accessor :ums_mode # what mode the UMS is in
  attr_accessor :text_skip # whether or not text skip is activated
  attr_accessor :skip_mode # write the text faster while C is pressed, or just skip to the end
  attr_accessor :write_speed # frame delay between characters
 
  attr_accessor :text_mode # write one letter at a time, or all at once?
 
  attr_accessor :window_height # default height of message window
  attr_accessor :window_width # default width of message window
  attr_accessor :window_justification # default justification of window
 
  attr_accessor :face_graphic # current face graphic
  attr_accessor :face_graphic_justification # justification of face graphic
  attr_accessor :face_graphic_position # position of face graphic
 
  attr_accessor :shadowed_text # whether or not to draw a shadow behind the text
  attr_accessor :shadow_color # the shadow color
 
  attr_accessor :choice_justification # where the choice window is located
  attr_accessor :choice_position # prefered position of choice window
 
  attr_accessor :message_event # what event to center the text over (0 player, -1 to not)
 
  attr_accessor :comic_enabled # using "talk" icons?
  attr_accessor :comic_style  # what type of comic image to use
 
  attr_accessor :name # the text for the name window
  attr_accessor :name_window # should the name window be visible?
 
  attr_accessor :font # the name of the font
  attr_accessor :font_color # the name of the (permanent) font color
 
  attr_accessor :text_justification # the justification of the window text
 
  attr_accessor :show_pause # whether or not to show the pause icon
 
  attr_accessor :shake # the amount of shake for the window
 
  attr_accessor :sound_effect # SE to play with each letter
 
  attr_accessor :slave_windows # hash of slave windows
  attr_accessor :indy_windows  # hash of independent windows
 
  attr_accessor :animated_faces # are the faces animated?
  attr_accessor :animation_pause # how long do I wait between animation loops?
  attr_accessor :face_frame_width # how many pixels wide is each face frame
  attr_accessor :resting_face  # postext for waiting face graphic
  attr_accessor :resting_animation_pause # how long to wait for resting graphic
 
  attr_accessor :windowskin # what windowskin to use for messages
  attr_accessor :back_opacity # back opacity of windowskin
  attr_accessor :opacity # opacity of windowskin
 
  attr_accessor :window_image # image used behind window
 
  attr_reader :shortcuts  # user-defined shortcuts
 
  alias ums_initialize initialize
  def initialize
    ums_initialize
    @ums_mode = NORMAL_MODE
   
    @skip_mode = WRITE_ALL
    @text_skip = true
    @write_speed = 2
   
    @text_mode = ONE_LETTER_AT_A_TIME
   
    @window_height = 128
    @window_width = 480
    @window_justification = CENTER
   
    @face_graphic = ""
    @face_graphic_justification = LEFT
    @face_graphic_position = CENTER
   
    @shadowed_text = false
    @shadow_color = Color.new(0, 0, 0, 100)
   
    @choice_justification = RIGHT
    @choice_position = SIDE
   
    @message_event = -1
   
    @comic_enabled = false
    @comic_style = TALK1
   
    @name = ""
    @name_window = false
   
    @font = "Verdana"
    @font_color = nil
   
    @text_justification = LEFT
   
    @show_pause = true
   
    @shake = 0
   
    @sound_effect = ""
   
    @slave_windows = {}
    @indy_windows  = {}
   
    @animated_faces = false
    @animation_pause = 80
    @face_frame_width = 100
    @resting_face = ""
    @resting_animation_pause = 80
   
    @windowskin = ""
    @opacity = 255
    @back_opacity = 160
   
    @window_image = nil
   
    @used_codes = ['\v', '\n', '\c', '\g', '\skip', '\m', '\height', '\width',
                  '\jr', '\jc', '\jl', '\face', '\fl', '\fr', '\b', '\i', '\s',
                  '\e', '\t1', '\t2', '\th', '\nm', '\font', '\p', '\w', '\ws',
                  '\oa', '\oi', '\os', '\ow', '\tl', '\tr', '\tc', '\ignr',
                  '\shk', '\slv', '\ind', '\inc']
                 
    @shortcuts = {}
  end
 
  def add_shortcut(shortcut, code)
    text = shortcut.downcase
    if !@used_codes.include?(text)
      @shortcuts[shortcut] = code
    end
  end
 
  def open_window(name)
    if $game_system.indy_windows.has_key?(name)
      $game_system.indy_windows[name].show = true
    end
  end
 
  def close_window(name)
    if $game_system.indy_windows.has_key?(name)
      $game_system.indy_windows[name].dispose
      $game_system.indy_windows.delete(name)
    end
  end
end

#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
#  This class handles temporary data that is not included with save data.
#  Refer to "$game_temp" for the instance of this class.
#==============================================================================
class Game_Temp
  attr_accessor :choices
  attr_accessor :num_choices
  attr_accessor :skip_next_choices
 
  alias old_init initialize
  def initialize
    old_init
    @skip_next_choices = 0
    @num_choices = 1
  end
end

class Scene_Map
  alias ums_update update
  def update
    $game_system.slave_windows.each_value { |window| window.update }
    $game_system.indy_windows.each_value { |window| window.update }
    ums_update
  end
end

class Interpreter
  #--------------------------------------------------------------------------
  # * Event Command Execution
  #--------------------------------------------------------------------------
  def execute_command
    # If last to arrive for list of event commands
    if @index >= @list.size - 1
      # End event
      command_end
      # Continue
      return true
    end
    # Make event command parameters available for reference via @parameters
    if !(@list[@index].code == 102 and $game_temp.skip_next_choices > 0)
      @parameters = @list[@index].parameters.clone
      if @list[@index].code == 402
        @parameters[0] += @offset
      end
    end
    # Branch by command code
    case @list[@index].code
    when 101  # Show Text
      return command_101
    when 102  # Show Choices
      return command_102
    when 402  # When [**]
      return command_402
    when 403  # When Cancel
      return command_403
    when 103  # Input Number
      return command_103
    when 104  # Change Text Options
      return command_104
    when 105  # Button Input Processing
      return command_105
    when 106  # Wait
      return command_106
    when 111  # Conditional Branch
      return command_111
    when 411  # Else
      return command_411
    when 112  # Loop
      return command_112
    when 413  # Repeat Above
      return command_413
    when 113  # Break Loop
      return command_113
    when 115  # Exit Event Processing
      return command_115
    when 116  # Erase Event
      return command_116
    when 117  # Call Common Event
      return command_117
    when 118  # Label
      return command_118
    when 119  # Jump to Label
      return command_119
    when 121  # Control Switches
      return command_121
    when 122  # Control Variables
      return command_122
    when 123  # Control Self Switch
      return command_123
    when 124  # Control Timer
      return command_124
    when 125  # Change Gold
      return command_125
    when 126  # Change Items
      return command_126
    when 127  # Change Weapons
      return command_127
    when 128  # Change Armor
      return command_128
    when 129  # Change Party Member
      return command_129
    when 131  # Change Windowskin
      return command_131
    when 132  # Change Battle BGM
      return command_132
    when 133  # Change Battle End ME
      return command_133
    when 134  # Change Save Access
      return command_134
    when 135  # Change Menu Access
      return command_135
    when 136  # Change Encounter
      return command_136
    when 201  # Transfer Player
      return command_201
    when 202  # Set Event Location
      return command_202
    when 203  # Scroll Map
      return command_203
    when 204  # Change Map Settings
      return command_204
    when 205  # Change Fog Color Tone
      return command_205
    when 206  # Change Fog Opacity
      return command_206
    when 207  # Show Animation
      return command_207
    when 208  # Change Transparent Flag
      return command_208
    when 209  # Set Move Route
      return command_209
    when 210  # Wait for Move's Completion
      return command_210
    when 221  # Prepare for Transition
      return command_221
    when 222  # Execute Transition
      return command_222
    when 223  # Change Screen Color Tone
      return command_223
    when 224  # Screen Flash
      return command_224
    when 225  # Screen Shake
      return command_225
    when 231  # Show Picture
      return command_231
    when 232  # Move Picture
      return command_232
    when 233  # Rotate Picture
      return command_233
    when 234  # Change Picture Color Tone
      return command_234
    when 235  # Erase Picture
      return command_235
    when 236  # Set Weather Effects
      return command_236
    when 241  # Play BGM
      return command_241
    when 242  # Fade Out BGM
      return command_242
    when 245  # Play BGS
      return command_245
    when 246  # Fade Out BGS
      return command_246
    when 247  # Memorize BGM/BGS
      return command_247
    when 248  # Restore BGM/BGS
      return command_248
    when 249  # Play ME
      return command_249
    when 250  # Play SE
      return command_250
    when 251  # Stop SE
      return command_251
    when 301  # Battle Processing
      return command_301
    when 601  # If Win
      return command_601
    when 602  # If Escape
      return command_602
    when 603  # If Lose
      return command_603
    when 302  # Shop Processing
      return command_302
    when 303  # Name Input Processing
      return command_303
    when 311  # Change HP
      return command_311
    when 312  # Change SP
      return command_312
    when 313  # Change State
      return command_313
    when 314  # Recover All
      return command_314
    when 315  # Change EXP
      return command_315
    when 316  # Change Level
      return command_316
    when 317  # Change Parameters
      return command_317
    when 318  # Change Skills
      return command_318
    when 319  # Change Equipment
      return command_319
    when 320  # Change Actor Name
      return command_320
    when 321  # Change Actor Class
      return command_321
    when 322  # Change Actor Graphic
      return command_322
    when 331  # Change Enemy HP
      return command_331
    when 332  # Change Enemy SP
      return command_332
    when 333  # Change Enemy State
      return command_333
    when 334  # Enemy Recover All
      return command_334
    when 335  # Enemy Appearance
      return command_335
    when 336  # Enemy Transform
      return command_336
    when 337  # Show Battle Animation
      return command_337
    when 338  # Deal Damage
      return command_338
    when 339  # Force Action
      return command_339
    when 340  # Abort Battle
      return command_340
    when 351  # Call Menu Screen
      return command_351
    when 352  # Call Save Screen
      return command_352
    when 353  # Game Over
      return command_353
    when 354  # Return to Title Screen
      return command_354
    when 355  # Script
      return command_355
    else      # Other
      return true
    end
  end
 
  #--------------------------------------------------------------------------
  # * Show Text
  #--------------------------------------------------------------------------
  def command_101
    # If other text has been set to message_text
    if $game_temp.message_text != nil
      # End
      return false
    end
    # Set message end waiting flag and callback
    @message_waiting = true
    $game_temp.message_proc = Proc.new { @message_waiting = false }
    # Set message text on first line
    $game_temp.message_text = @list[@index].parameters[0] + "\n"
    line_count = 1
    # Loop
    loop do
      # If next event command text is on the second line or after
      if @list[@index + 1].code == 401
        # Add the second line or after to message_text
        $game_temp.message_text += @list[@index + 1].parameters[0] + "\n"
        line_count += 1
      # If the next event command is show text
      elsif @list[@index + 1].code == 101
        # If the text contains the \inc code
        if @list[@index + 1].parameters[0].index(/\\[Ii][Nn][Cc]/) != nil
          $game_temp.message_text += @list[@index + 1].parameters[0] + "\n"
          $game_temp.message_text.sub!(/\\[Ii][Nn][Cc]/) { "" }
        else
          return true
        end
      # If event command is not on the second line or after
      else
        # If next event command is show choices
        if @list[@index + 1].code == 102
          # Advance index
          @index += 1
         
          # skip this one, it was already shown?
          if $game_temp.skip_next_choices > 0
            $game_temp.skip_next_choices -= 1
          else
            # Choices setup
            $game_temp.choice_start = line_count
            setup_choices(@list[@index].parameters)
          end
        # If next event command is input number
        elsif @list[@index + 1].code == 103
          # If number input window fits on screen
          if line_count < 4
            # Advance index
            @index += 1
            # Number input setup
            $game_temp.num_input_start = line_count
            $game_temp.num_input_variable_id = @list[@index].parameters[0]
            $game_temp.num_input_digits_max = @list[@index].parameters[1]
          end
        end
        # Continue
        return true
      end
      # Advance index
      @index += 1
    end
  end
  #--------------------------------------------------------------------------
  # * Show Choices
  #--------------------------------------------------------------------------
  def command_102
    # If text has been set to message_text
    if $game_temp.message_text != nil
      # End
      return false
    end
   
    if $game_temp.skip_next_choices > 0
      # skip this one, it is part of another
      $game_temp.skip_next_choices -= 1
      @offset += 4
      @index += 1
      return false
    else
      @offset = 0
    end
    # Set message end waiting flag and callback
    @message_waiting = true
    $game_temp.message_proc = Proc.new { @message_waiting = false }
    # Choices setup
    $game_temp.message_text = ""
    $game_temp.choice_start = 0
    setup_choices(@parameters)
    # Continue
    return true
  end
  #--------------------------------------------------------------------------
  # * Setup Choices
  #--------------------------------------------------------------------------
  def setup_choices(parameters)
    params = parameters.clone
    @offset = 0
    i = @index
    curr = 1
    while curr < $game_temp.num_choices
      i += 1
      if @list[i].code == 102
        params[0] += @list[i].parameters[0]
        if @list[i].parameters[1] == 5
          @cancel_flag = true
        else
          @cancel_flag = false
        end
        params[1] = @list[i].parameters[1] + (curr * 4)
        curr += 1
      end
    end
   
    # Set choice item count to choice_max
    $game_temp.choice_max = params[0].size
    # Set choice to message_text
    $game_temp.choices = params[0]
    # Set cancel processing
    $game_temp.choice_cancel_type = params[1]
   
    if $game_temp.num_choices != 1
      $game_temp.skip_next_choices = $game_temp.num_choices - 1
      $game_temp.num_choices = 1
    end
   
    # Set callback
    current_indent = @list[@index].indent
    $game_temp.choice_proc = Proc.new { |n| @branch[current_indent] = n }
  end
 
  #--------------------------------------------------------------------------
  # * When [**]
  #--------------------------------------------------------------------------
  def command_402
    # If fitting choices are selected
    if @branch[@list[@index].indent] == @parameters[0]
      # Delete branch data
      @branch.delete(@list[@index].indent)
      # Continue
      return true
    end
    # If it doesn't meet the condition: command skip
    return command_skip
  end
 
  #--------------------------------------------------------------------------
  # * When Cancel
  #--------------------------------------------------------------------------
  def command_403
    # If choices are cancelled
    if @cancel_flag
      # Delete branch data
      @branch.delete(@list[@index].indent)
      # Continue
      return true
    end
    # If it doen't meet the condition: command skip
    return command_skip
  end
 
  #--------------------------------------------------------------------------
  # * Input Number
  #--------------------------------------------------------------------------
  def command_103
    # If text has been set to message_text
    if $game_temp.message_text != nil
      # End
      return false
    end
    # Set message end waiting flag and callback
    @message_waiting = true
    $game_temp.message_proc = Proc.new { @message_waiting = false }
    # Number input setup
    $game_temp.message_text = ""
    $game_temp.num_input_start = 0
    $game_temp.num_input_variable_id = @parameters[0]
    $game_temp.num_input_digits_max = @parameters[1]
    # Continue
    return true
  end
 
  #--------------------------------------------------------------------------
  # * Script
  #--------------------------------------------------------------------------
  def command_355
    # Set first line to script
    script = @list[@index].parameters[0] + "\n"
    # Loop
    loop do
      # If next event command is second line of script or after
      if @list[@index + 1].code == 655
        # Add second line or after to script
        script += @list[@index + 1].parameters[0] + "\n"
      # If event command is not second line or after
      else
        # Abort loop
        break
      end
      # Advance index
      @index += 1
    end
    # Evaluation
    result = eval(script)

    # Continue
    return true
  end
end

Código:
# *****************************************************************************
#  Changes to Window_Message.  This is the bulk of the script
# *****************************************************************************
#==============================================================================
# ** Window_Message
#------------------------------------------------------------------------------
#  This message window is used to display text.
#==============================================================================

class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    # x-coordinate depends on justification
    if $game_system.window_justification == RIGHT
      x = 640 - self.width
    elsif $game_system.window_justification == LEFT
      x = 0
    else # center
      x = (640 - $game_system.window_width) / 2
    end
    # y-coordinate depends on height
    y = 480 - $game_system.window_height - 16
    super(x, y, $game_system.window_width, $game_system.window_height)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.visible = false
    self.z = 9998
    @fade_in = false
    @fade_out = false
    @contents_showing = false
   
    # face graphic sprite
    @face = Sprite.new
    @face.opacity = 0
    @face.z = self.z + 1
    @face_offset = 0
   
    # choice window
    @choice_window = Window_Choice.new([])
    @choice_window.back_opacity = $game_system.back_opacity
   
    # comic sprite
    @comic = Sprite.new
    @comic.opacity = 0
    @comic.z = self.z + 1
    if $game_system.comic_style == TALK1
      @comic.bitmap = RPG::Cache.windowskin("talk1")
    elsif $game_system.comic_style == TALK2
      @comic.bitmap = RPG::Cache.windowskin("talk2")
    else # thought
      @comic.bitmap = RPG::Cache.windowskin("thought")
    end
   
    # window image sprite
    @window_back = Sprite.new
    @window_back.opacity = 0
    @window_back.z = self.z - 1
    if $game_system.window_image != nil
      @window_back.bitmap = RPG::Cache.windowskin($game_system.window_image)
    end
   
    # name window
    @name_window = Window_Name.new
    @name_window.z = self.z + 1
   
    @pause_time = 0
    @wait = 0
   
    @show = false
   
    @face_frame = 0
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    terminate_message
    $game_temp.message_window_showing = false
    if @input_number_window != nil
      @input_number_window.dispose
    end
    @face.dispose
    @choice_window.dispose
    @comic.dispose
    @name_window.dispose
    super
  end
  #--------------------------------------------------------------------------
  # * Terminate Message
  #--------------------------------------------------------------------------
  def terminate_message
    @show = false
    self.active = false
    self.pause = false
    self.contents.clear
    # Clear showing flag
    @contents_showing = false
    # Call message callback
    if $game_temp.message_proc != nil
      $game_temp.message_proc.call
    end
    # Clear variables related to text, choices, and number input
    $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
    # Open gold window
    if @gold_window != nil
      @gold_window.dispose
      @gold_window = nil
    end
    @choice_window.visible = false
    @choice_window.active = false
    @comic.opacity = 0
    $game_system.slave_windows.each_pair {|name, window|
      if window.show == true
        window.dispose
        $game_system.slave_windows.delete(name)
      end
    }
    @done = false
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if $game_system.font_color.nil?
      self.contents.font.color = normal_color
    else
      self.contents.font.color = $game_system.font_color
    end
    if $game_system.windowskin != "" 
      self.windowskin = RPG::Cache.windowskin($game_system.windowskin)
    else
      self.windowskin = RPG::Cache.windowskin($data_system.windowskin_name)
    end
    if $game_system.comic_style == TALK1
      @comic.bitmap = RPG::Cache.windowskin("talk1")
    elsif $game_system.comic_style == TALK2
      @comic.bitmap = RPG::Cache.windowskin("talk2")
    else # thought
      @comic.bitmap = RPG::Cache.windowskin("thought")
    end
    @show = true
    @x = @y = 0

    # If waiting for a message to be displayed
    if $game_temp.message_text != nil
      @text = $game_temp.message_text
     
      # replace shortcuts with original code
      $game_system.shortcuts.each { |shortcut, code|
        @text.gsub!(shortcut, code)
      }
     
      # VERY first thing.  Check to see if this is being set up as a slave
      #  or independent window.
      if @text.index(/\\[Ss][Ll][Vv]\[(.*?)\]/) != nil
        # is this a new slave window, or a request to display it?
        if !$game_system.slave_windows.has_key?($1.to_s)
          # there is no such slave window yet.  Set it up.
          @text.gsub!(/\\[Ss][Ll][Vv]\[(.*?)\]/, "")
          $game_system.slave_windows[$1.to_s] = Window_Slave.new(@text)
          @text = ""
          @show = false
          terminate_message
          return
        end
      end
      if @text.index(/\\[Ii][Nn][Dd]\[(.*?)\]/) != nil
        # is this a new independent window, or a request to display it?
        if !$game_system.indy_windows.has_key?($1.to_s)
          # there is no such slave window yet.  Set it up.
          @text.gsub!(/\\[Ii][Nn][Dd]\[(.*?)\]/, "")
          $game_system.indy_windows[$1.to_s] = Window_Slave.new(@text)
          @text = ""
          @show = false
          terminate_message
          return
        end
      end
     
      # Control text processing
      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
     
      # window mode
      if @text.index(/\\[Mm]/) != nil
        if $game_system.ums_mode == NORMAL_MODE
          $game_system.ums_mode = FIT_WINDOW_TO_TEXT
        else
          $game_system.ums_mode = NORMAL_MODE
        end
        @text.gsub!(/\\[Mm]/) { "" }
      end
     
      # window height
      @text.gsub!(/\\[Hh][Ee][Ii][Gg][Hh][Tt]\[([0-9]+)\]/) do
        $game_system.window_height = $1.to_i
        ""
      end
     
      # window width
      @text.gsub!(/\\[Ww][Ii][Dd][Tt][Hh]\[([0-9]+)\]/) do
        $game_system.window_width = $1.to_i
        ""
      end
     
      # justification
      @text.gsub!(/\\[Jj][Rr]/) do
        $game_system.window_justification = RIGHT
        reset_window
        ""
      end
      @text.gsub!(/\\[Jj][Cc]/) do
        $game_system.window_justification = CENTER
        reset_window
        ""
      end     
      @text.gsub!(/\\[Jj][Ll]/) do
        $game_system.window_justification = LEFT
        reset_window
        ""
      end
     
      # face graphics
      @text.gsub!(/\\[Ff][Aa][Cc][Ee]\[(.*?)\]/) do
        $game_system.face_graphic = $1.to_s
        if $1.to_s == ""
          @face.opacity = 0
        end
        ""
      end
      @text.gsub!(/\\[Ff][Ll]/) do
        $game_system.face_graphic_justification = LEFT
        ""
      end
      @text.gsub!(/\\[Ff][Rr]/) do
        $game_system.face_graphic_justification = RIGHT
        ""
      end
     
      # event centering
      @text.gsub!(/\\[Ee]\[([0-9]+)\]/) do
        $game_system.message_event = $1.to_i
        ""
      end
     
      # comic thingy
      @text.gsub!(/\\[Tt]1/) do
        $game_system.comic_style = TALK1
        @comic.bitmap = RPG::Cache.windowskin("talk1.png")
        ""
      end
      @text.gsub!(/\\[Tt]2/) do
        $game_system.comic_style = TALK2
        @comic.bitmap = RPG::Cache.windowskin("talk2.png")
        ""
      end
      @text.gsub!(/\\[Tt][Hh]/) do
        $game_system.comic_style = THOUGHT
        @comic.bitmap = RPG::Cache.windowskin("thought.png")
        ""
      end
     
      # name window
      @text.gsub!(/\\[Nn][Mm]\[(.*?)\]/) do
        $game_system.name = $1.to_s
        if $1.to_s == ""
          @name_window.visible = false
          @name_window.dummy_window.visible = false
        end
        ""
      end
     
      # toggle pause
      @text.gsub!(/\\[Pp][Tt]/) do
        $game_system.show_pause = !$game_system.show_pause
        ""
      end
     
      # shaking
      @text.gsub!(/\\[Ss][Hh][Kk]\[([0-9]+)\]/) do
        $game_system.shake = $1.to_i
        ""
      end
     
      # back opacity
      @text.gsub!(/\\[Bb][Oo][Pp][Cc]\[([0-9]+)\]/) do
        $game_system.back_opacity = $1.to_i
        self.back_opacity = $game_system.back_opacity
        ""
      end
     
      # opacity
      @text.gsub!(/\\[Oo][Pp][Cc]\[([0-9]+)\]/) do
        $game_system.opacity = $1.to_i
        self.opacity = $game_system.opacity
        ""
      end
     
      # Change "\\\\" to "\000" for convenience
      @text.gsub!(/\\\\/) { "\000" }
      # Change "\\C" to "\001" and "\\G" to "\002"
      @text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
      @text.gsub!(/\\[Gg]/) { "\002" }
      @text.gsub!(/\\[Cc]\[0x([0123456789abcdef]+)\]/) { "\026[#{$1}]" }
     
      # text skip code
      @text.gsub!(/\\[Ss][Kk][Ii][Pp]/) { "\003" }
     
      # ignore code
      @text.gsub!(/\\[Ii][Gg][Nn][Rr]/) { "\023" }
     
      # slave and indy windows
      @text.gsub!(/\\[Ss][Ll][Vv]\[(.*?)\]/) { "\024[#{$1}]" }
      @text.gsub!(/\\[Ii][Nn][Dd]\[(.*?)\]/) { "\025[#{$1}]" }
     
      # bold and italics
      @text.gsub!(/\\[Bb]/) { "\004" }
      @text.gsub!(/\\[Ii]/) { "\005" }
     
      # shadow
      @text.gsub!(/\\[Ss]/) { "\006" }
     
      # font
      @text.gsub!(/\\[Ff][Oo][Nn][Tt]\[(.*?)\]/) { "\007[#{$1}]" }
     
      # pause and wait
      @text.gsub!(/\\[Pp]\[([0-9]+)\]/) { "\010[#{$1}]" }
      @text.gsub!(/\\[Ww]\[([0-9]+)\]/) { "\011[#{$1}]" }
     
      # write speed
      @text.gsub!(/\\[Ww][Ss]\[([0-9]+)\]/) { "\013[#{$1}]" }
           
      # armor, items, skills, and weapons
      @text.gsub!(/\\[Oo][Aa]\[([0-9]+)\]/) {
        item = $data_armors[$1.to_i]
        "\014[#{$1}]" + "  " + item.name
      }
      @text.gsub!(/\\[Oo][Ii]\[([0-9]+)\]/) {
        item = $data_items[$1.to_i]
        "\015[#{$1}]" + "  " + item.name
      }
      @text.gsub!(/\\[Oo][Ss]\[([0-9]+)\]/) {
        item = $data_skills[$1.to_i]
        "\016[#{$1}]" + "  " + item.name
      }
      @text.gsub!(/\\[Oo][Ww]\[([0-9]+)\]/) {
        item = $data_weapons[$1.to_i]
        "\017[#{$1}]" + "  " + item.name
      }
     
      # text justification
      @text.gsub!(/\\[Tt][Cc]/) { "\020" }
      @text.gsub!(/\\[Tt][Ll]/) { "\021" }
      @text.gsub!(/\\[Tt][Rr]/) { "\022" }
     
      # Resize the window to fit the contents?
      if $game_system.ums_mode == FIT_WINDOW_TO_TEXT
        width = 1
        text = @text.split("\n")
        height = 0
        i = 0
        for line in text
          # don't count this line's width if it has the ignr code
          if !line.include?("\023")
            width = [width, self.contents.text_size(line).width].max
            delta = self.contents.text_size(line).height
            height += delta + (delta * 0.2).to_i
          end
        end
       
        if $game_system.face_graphic != "" and ($game_system.face_graphic_position == CENTER or $game_system.face_graphic_position == BOTTOM)
          width += @face.bitmap.width
          if height < @face.bitmap.height
            height = @face.bitmap.height - 32
          end
        end
       
        if height == 0
          height = 1
        end
       
        self.width = width + 48
        self.height = height + 48
        self.contents = Bitmap.new(width + 16, height)
       
        if $game_system.font_color.nil?
          self.contents.font.color = normal_color
        else
          self.contents.font.color = $game_system.font_color
        end
      else
        if self.width != $game_system.window_height or self.height != $game_system.window_width
          self.width = $game_system.window_width
          self.height = $game_system.window_height
          self.contents = Bitmap.new(self.width - 32, self.height - 32)
          if $game_system.font_color.nil?
            self.contents.font.color = normal_color
          else
            self.contents.font.color = $game_system.font_color
          end
        end
      end
     
      if $game_system.window_image != nil
        # figure out how we're going to resize this         
        @window_back.zoom_x = self.width.to_f / @window_back.bitmap.width
        @window_back.zoom_y = self.height.to_f / @window_back.bitmap.height
      end
     
      reset_window
     
      get_x_value
     
      @count = Graphics.frame_count
      @pause_time = 0
      @ignore = false
      @ascending = true
      @target_x = self.x + $game_system.shake
      @done = false
      @face_frame = 0
      @done = false
     
      self.oy = 0
    end
   
   
  end
 
  #--------------------------------------------------------------------------
  # * Set Window Position and Opacity Level
  #--------------------------------------------------------------------------
  def reset_window (change_opacity = true)
    # x-coordinate depends on justification
    if $game_system.message_event == -1
      if $game_system.window_justification == RIGHT
        self.x = 640 - $game_system.window_width
      elsif $game_system.window_justification == LEFT
        self.x = 0
      else # center
        self.x = (640 - self.width) / 2
      end
    else
      if $game_system.message_event == 0 or $game_map.events[$game_system.message_event] == nil
        # center on player
        event_x = $game_player.screen_x
      else
        # center on the event specified
        event_x = $game_map.events[$game_system.message_event].screen_x
      end
      self.x = event_x - self.width / 2
      @comic.x = self.x + (self.width / 2) + 4
    end
   
    if $game_temp.in_battle
      self.y = 16
    else
      if $game_system.message_event == -1
        case $game_system.message_position
          when 0  # up
            self.y = 16
          when 1  # middle
            self.y = (480 - $game_system.window_height) / 2
          when 2  # down
            self.y = 480 - $game_system.window_height - 24
        end
      else
        if $game_system.message_event == 0 or $game_map.events[$game_system.message_event] == nil
          # above player
          self.y = $game_player.screen_y - self.height - 48
        else
          # above event specified
          self.y = $game_map.events[$game_system.message_event].screen_y - self.height - 48
        end
        @comic.y = self.y + self.height - 2
        @comic.angle = 0
      end
    end
    if self.y < 0 + ($game_system.name == "" ? 0 : 16)
      if $game_system.comic_enabled
        if $game_system.message_event == 0 or $game_map.events[$game_system.message_event] == nil
          self.y = $game_player.screen_y - 16
        else
          self.y = $game_map.events[$game_system.message_event].screen_y - 16
        end
        @comic.angle = 180
        @comic.y = self.y + 2
        @comic.x = self.x + (self.width / 2) - 4
      else
        self.y = 0 + ($game_system.name == "" ? 0 : 16)
      end
    elsif self.y > 480 - self.height
      self.y = 480 - self.height
    end
    if self.x < 0
      self.x = 0
    elsif self.x > 680 - self.width - 48
      self.x = 640 - self.width
    end
   
    if change_opacity
      if $game_system.message_frame == 0 and $game_temp.message_text != ""
        self.opacity = $game_system.opacity
      else
        self.opacity = 0
      end
      self.back_opacity = $game_system.back_opacity
    end
   
    # window back stuff
    if $game_system.window_image != nil
      @window_back.bitmap = RPG::Cache.windowskin($game_system.window_image)
      @window_back.x = self.x
      @window_back.y = self.y
    end
   
      # face stuff
      if $game_system.face_graphic != "" 
        # the player has chosen to show a face graphic
        if @done and $game_system.resting_face != ""
          @face.bitmap = RPG::Cache.picture($game_system.face_graphic + $game_system.resting_face)
          if @face_frame * $game_system.face_frame_width >= @face.bitmap.width
            @face_frame = 0
          end
        else
          @face.bitmap = RPG::Cache.picture($game_system.face_graphic)
        end
       
        # picture y-coordinate
        if $game_system.face_graphic_position == ABOVE
          @face.y = self.y - @face.bitmap.height
          @face_offset = 0
        elsif $game_system.face_graphic_position == CENTER
          delta = (@face.bitmap.height - self.height) / 2
          @face.y = self.y - delta
          if $game_system.animated_faces
            @face_offset = $game_system.face_frame_width + 16
          else
            @face_offset = @face.bitmap.width + 16
          end
        elsif $game_system.face_graphic_position == BOTTOM
          @face.y = self.y + self.height - @face.bitmap.height
          if $game_system.animated_faces
            @face_offset = $game_system.face_frame_width + 16
          else
            @face_offset = @face.bitmap.width + 16
          end
        else # side
          delta = (@face.bitmap.height - self.height) / 2
          @face.y = self.y - delta
          @face_offset = 0
        end
       
        # picture x-coordinate
        if $game_system.face_graphic_justification == LEFT
          if $game_system.face_graphic_position == SIDE
            @face.x = self.x - @face.bitmap.width
          else
            @face.x = self.x + 10
          end
        else # right side
          if $game_system.animated_faces
            offset = @face.bitmap.width - $game_system.face_frame_width
          else
            offset = 0
          end
          if $game_system.face_graphic_position == SIDE
            @face.x = self.x + self.width + offset
          else
            @face.x = self.x + self.width - @face.bitmap.width - 10 + offset
            @face_offset = 0
          end
        end
       
        if $game_system.animated_faces
          @face.src_rect = Rect.new(@face_frame * $game_system.face_frame_width, 0, $game_system.face_frame_width, @face.bitmap.height)
          if @done and $game_system.resting_face != ""
            pause = $game_system.resting_animation_pause
          else
            pause = $game_system.animation_pause
          end
          if Graphics.frame_count % pause == 0
            @animate_face = true
          end
          if @animate_face
            if Graphics.frame_count % 3 == 0
              @face_frame += 1
              if @face_frame * $game_system.face_frame_width >= @face.bitmap.width
                @face_frame = 0
                @animate_face = false
              end
            end
          end
        end
      end
     
      # name window
      if $game_system.name != ""
        @name_window.x = self.x
        @name_window.y = self.y - 36
        @name_window.set_name($game_system.name)
      end
     
      # If choice
    if $game_temp.choice_max > 0
      @choice_window.set_choices($game_temp.choices)
      # determine x and y coords for choice window
      if $game_system.choice_justification == LEFT
        @choice_window.x = self.x
      else
        @choice_window.x = self.x + self.width - @choice_window.width
      end
      if $game_system.choice_position == ABOVE
        # check to make sure there is enough room above the textbox
        if self.y < @choice_window.height
          # not enough room above, place below
          @choice_window.y = self.y + self.height
        else
          # draw above
          @choice_window.y = self.y - @choice_window.height
        end
      elsif $game_system.choice_position == BOTTOM
        # check to make sure there is enough room below the textbox
        if (480 - self.y - self.height) < @choice_window.height
          # not enough room below, place above
          @choice_window.y = self.y - @choice_window.height
        else
          # draw below
          @choice_window.y = self.y + self.height
        end
      else # side
        if $game_system.choice_justification == LEFT
          # check to make sure there's room on the left side
          if self.y < @choice_window.width
            # not enough room on the side, check to make sure there's room below
            if (480 - self.y - self.height) < @choice_window.height
              # not enough room below, place above
              @choice_window.y = self.y - @choice_window.height
            else
              # draw below
              @choice_window.y = self.y + self.height
            end
          else
            # place on the left side
            @choice_window.y = self.y
            @choice_window.x = self.x - @choice_window.width
          end
        else # right
          # check to make sure there's room on the right side
          if (680 - (self.y + self.width)) < @choice_window.width
            # not enough room on the side, check to make sure there's room below
            if (480 - self.y - self.height) < @choice_window.height
              # not enough room below, place above
              @choice_window.y = self.y - @choice_window.height
            else
              # draw below
              @choice_window.y = self.y + self.height
            end
          else
            # place on the left side
            @choice_window.y = self.y
            @choice_window.x = self.x + self.width
          end
        end
      end
    end
   
    # If number input
    if $game_temp.num_input_variable_id > 0
      if @input_number_window == nil
        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
      end
      # determine x and y coords for number input window
      if $game_system.choice_justification == LEFT
        @input_number_window.x = self.x
      else
        @input_number_window.x = self.x + self.width - @input_number_window.width
      end
      if $game_system.choice_position == ABOVE
        # check to make sure there is enough room above the textbox
        if self.y < @input_number_window.height
          # not enough room above, place below
          @input_number_window.y = self.y + self.height
        else
          # draw above
          @input_number_window.y = self.y - @choice_window.height
        end
      elsif $game_system.choice_position == BOTTOM
        # check to make sure there is enough room below the textbox
        if (480 - self.y - self.height) < @input_number_window.height
          # not enough room below, place above
          @input_number_window.y = self.y - @input_number_window.height
        else
          # draw below
          @input_number_window.y = self.y + self.height
        end
      else # side
        if $game_system.choice_justification == LEFT
          # check to make sure there's room on the left side
          if self.y < @input_number_window.width
            # not enough room on the side, check to make sure there's room below
            if (480 - self.y - self.height) < @input_number_window.height
              # not enough room below, place above
              @input_number_window.y = self.y - @input_number_window.height
            else
              # draw below
              @input_number_window.y = self.y + self.height
            end
          else
            # place on the left side
            @input_number_window.y = self.y
            @input_number_window.x = self.x - @choice_window.width
          end
        else # right
          # check to make sure there's room on the right side
          if (680 - (self.y + self.width)) < @input_number_window.width
            # not enough room on the side, check to make sure there's room below
            if (480 - self.y - self.height) < @input_number_window.height
              # not enough room below, place above
              @input_number_window.y = self.y - @input_number_window.height
            else
              # draw below
              @input_number_window.y = self.y + self.height
            end
          else
            # place on the left side
            @input_number_window.y = self.y
            @input_number_window.x = self.x + self.width
          end
        end
      end
    end
  end

Florecio
Iniciante
Iniciante

Mensagens : 41
Créditos : 3

Ir para o topo Ir para baixo

[EXT] UMS  bugadooooo Empty Re: [EXT] UMS bugadooooo

Mensagem por Florecio Sex Set 30, 2011 9:20 am

Continuação do Script Anterior:
Código:
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
   
    if (@contents_showing and $game_system.message_event != -1 and $game_system.shake == 0) or $game_system.animated_faces
      reset_window(false)
    end
   
    if $game_system.shake != 0  # shake the window
      if @ascending
        if @target_x != self.x
          self.x += 1
        else
          @ascending = false
          @target_x = self.x - ($game_system.shake * 2)
        end
      else
        if @target_x != self.x
          self.x -= 1
        else
          @ascending = true
          @target_x = self.x + ($game_system.shake * 2)
        end
      end
    end
   
    @name_window.update
   
    if @wait > 0
      @wait -= 1
      if @wait == 0
        terminate_message
        return
      end
    end
   
    # If fade in
    if @fade_in
      if $game_temp.message_text == ""
        @fade_in = false
        return
      end
      self.contents_opacity += 24
      if $game_system.face_graphic != ""
        @face.opacity += 24
      end
      if $game_system.window_image != nil
        @window_back.opacity += 24
      end
      if $game_system.comic_enabled and $game_system.message_event != -1
        @comic.opacity = self.opacity
        @comic.visible = self.visible
      end
     
      if $game_system.name != ""
        @name_window.visible = true
        if $game_system.name_window
          @name_window.dummy_window.visible = true
        end
      end
      if @input_number_window != nil
        @input_number_window.contents_opacity += 24
      end
      if self.contents_opacity == 255
        @fade_in = false
      end
      return
    end
   
    # write the text
    if @text != nil and @text != ""
      speed = $game_system.write_speed
      if $game_system.text_mode == ALL_AT_ONCE or $game_temp.in_battle
        while (c = @text.slice!(/./m)) != nil
          write_char(c)
        end
        $game_system.slave_windows.each_value { |window| window.write_all }
        return
      end
      if $game_system.text_skip
        if $game_system.skip_mode == WRITE_FASTER and Input.press?(Input::C)
          # the player is holding the action button, write faster
          speed /= 3
        elsif $game_system.skip_mode == WRITE_ALL and Input.trigger?(Input::C)
          # the player pressed the action button, write all the text
          while (c = @text.slice!(/./m)) != nil
            write_char(c)
          end
          $game_system.slave_windows.each_value { |window| window.write_all }
          return
        end
      end
      while @ignore
        c = @text.slice!(/./m)
        if c != nil
          write_char(c)
        end
      end
      if @pause_time > 0
        @pause_time -= 1
        return
      end
      if Graphics.frame_count - @count >= speed
        if $game_system.sound_effect != ""
          Audio.se_play("Audio/SE/" + $game_system.sound_effect, 80, 100)
        end
        @count = Graphics.frame_count
        c = @text.slice!(/./m)
        if c != nil
          write_char(c)
        end
      end
      return
    end
   
    if $game_system.animated_faces and $game_system.resting_face != ""
      @done = true
    end
   
    # If inputting number
    if @input_number_window != nil
      @input_number_window.update
      # Confirm
      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
        # Dispose of number input window
        @input_number_window.dispose
        @input_number_window = nil
        terminate_message
      end
      return
    end
   
    if @wait != 0
      return
    end
   
    # If message is being displayed and contents are all written
    if @contents_showing
      # if choice
      if $game_temp.choice_max > 0
        if !@choice_window.active
          @choice_window.visible = true
          @choice_window.active = true
          @choice_window.index = 0
        end
        @choice_window.update
      else
        # If choice isn't being displayed, show pause sign
        self.pause = $game_system.show_pause
      end
        # Cancel
        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
        # Confirm
        if Input.trigger?(Input::C) and !(@wait > 0)
          @done = true
          $game_system.slave_windows.each_value { |window|
            window.write_all
            if !window.done
              @done = false
            end
          }
          if @done
            if $game_temp.choice_max > 0
              $game_system.se_play($data_system.decision_se)
              $game_temp.choice_proc.call(@choice_window.index)
            end
            terminate_message
          else
            @finishing_up = true
          end
        end
        return
      end
     
    if @finishing_up
      $game_system.slave_windows.each_value { |window|
        if !window.done
          @done = true
          break
        end
      }
     
      if @done = false
        terminate_message
      end
    end
    # If display wait message or choice exists when not fading out
    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
      if @show
        self.visible = true
      end
      self.contents_opacity = 0
      if @input_number_window != nil
        @input_number_window.contents_opacity = 0
      end
      @fade_in = true
      return
    end
    # If message which should be displayed is not shown, but window is visible
    if self.visible
      @fade_out = true
      self.opacity -= 48
      @name_window.opacity -= 48
      @comic.opacity -= 48
      @face.opacity -= 48
      @window_back.opacity -= 48
      if self.opacity == 0
        self.visible = false
        @face.opacity = 0
        @window_back.opacity = 0
        @choice_window.visible = false
        @choice_window.active = false
        @comic.opacity = 0
        @name_window.visible = false
        @name_window.dummy_window.visible = false
        @name_window.update
        @fade_out = false
        $game_temp.message_window_showing = false
      end
      return
    end
   
    if $game_temp.battle_calling or $game_temp.shop_calling or $game_temp.name_calling or $game_temp.menu_calling or $game_temp.save_calling or $game_temp.debug_calling
     
        $game_system.indy_windows.each_pair {|name, window|
          if window.show == true
            window.dispose
            $game_system.indy_windows.delete(name)
          end
        }
    end
  end
  #--------------------------------------------------------------------------
  # * Process and write the given character
  #--------------------------------------------------------------------------
  def write_char(c)
    if c == "\000"
      # Return to original text
      c = "\\"
    end
    # If \C[n]
    if c == "\001"
    # Change text color
      @text.sub!(/\[([0-9]+)\]/, "")
      color = $1.to_i
      if color >= 0 and color <= 7
        self.contents.font.color = text_color(color)
      end
      # go to next text
      return
    end
    # If \G
    if c == "\002"
      # Make gold window
      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
      # go to next text
      return
    end
    # If \skip
    if c == "\003"
      # toggle text skipping
      $game_system.text_skip = !$game_system.text_skip
      # go to next text
      return
    end
    # If \b
    if c == "\004"
      # toggle bold
      self.contents.font.bold = !self.contents.font.bold
      # go to next text
      return
    end
    # If \i
    if c == "\005"
      # toggle italics
      self.contents.font.italic = !self.contents.font.italic
      # go to next text
      return
    end
    # If \s
    if c == "\006"
      # toggle shadow
      $game_system.shadowed_text = !$game_system.shadowed_text
      # go to next text
      return
    end
    # If \font
    if c == "\007"
      # change font
      @text.sub!(/\[(.*?)\]/, "")
      font = $1.to_s
      $game_system.font = font
      if font == ""
        self.contents.font.name = Font.default_name
      else
        self.contents.font.name = font
      end
      # go to next text
      return
    end
    # If \p[n]
    if c == "\010"
      @text.sub!(/\[([0-9]+)\]/, "")
      @pause_time = $1.to_i

      # go to next text
      return
    end
   
    # If \w[n]
    if c == "\011"
      @text.sub!(/\[([0-9]+)\]/, "")
      @wait = $1.to_i

      # go to next text
      return
    end
   
    # If \ws[n]
    if c == "\013"
      @text.sub!(/\[([0-9]+)\]/, "")
      $game_system.write_speed = $1.to_i

      # go to next text
      return
    end
    # If \oa[n]
    if c == "\014"
      @text.sub!(/\[([0-9]+)\]/, "")
      index = $1.to_i
      @text.sub!("  ", "")
      item = $data_armors[index]
      # draw the icon
      icon = RPG::Cache.icon(item.icon_name)
      line = self.contents.text_size("dj").height
      self.contents.blt(@x + 4, (@y * line) + 4, icon, Rect.new(0, 0, 24, 24))
      @x += 24

      # go to next text
      return
    end
   
    # If \oi[n]
    if c == "\015"
      @text.sub!(/\[([0-9]+)\]/, "")
      index = $1.to_i
      @text.sub!("  ", "")
      item = $data_items[index]
      # draw the icon
      icon = RPG::Cache.icon(item.icon_name)
      line = self.contents.text_size("dj").height
      self.contents.blt(@x + 4, (@y * line) + 4, icon, Rect.new(0, 0, 24, 24))
      @x += 24

      # go to next text
      return
    end
   
    # If \os[n]
    if c == "\016"
      @text.sub!(/\[([0-9]+)\]/, "")
      index = $1.to_i
      @text.sub!("  ", "")
      item = $data_skills[index]
      # draw the icon
      icon = RPG::Cache.icon(item.icon_name)
      line = self.contents.text_size("dj").height
      self.contents.blt(@x + 2, (@y * line) + 4, icon, Rect.new(0, 0, 24, 24))
      @x += 24

      # go to next text
      return
    end
   
    # If \ow[n]
    if c == "\017"
      @text.sub!(/\[([0-9]+)\]/, "")
      index = $1.to_i
      @text.sub!("  ", "")
      item = $data_weapons[index]
      # draw the icon
      icon = RPG::Cache.icon(item.icon_name)
      line = self.contents.text_size("dj").height
      self.contents.blt(@x + 2, (@y * line) + 4, icon, Rect.new(0, 0, 24, 24))
      @x += 24
     
      # go to next text
      return
    end
   
    # If \tc
    if c == "\020"
      # center justify
      $game_system.text_justification = CENTER
      get_x_value
      # go to next text
      return
    end
   
    # If \tl
    if c == "\021"
      # left justify
      $game_system.text_justification = LEFT
      get_x_value
      # go to next text
      return
    end
   
    # If \tr
    if c == "\022"
      # right justify
      $game_system.text_justification = RIGHT
      get_x_value
      # go to next text
      return
    end
   
    # If \ignr
    if c == "\023"
      # set ignore flage
      @ignore = true
      # go to next text
      return
    end
   
    # if \slv
    if c == "\024"
      # we need to show a slave window
      @text.sub!(/\[(.*?)\]/, "")
      name = $1.to_s
      $game_system.slave_windows[name].show = true
      return
    end
   
    # if \ind
    if c == "\025"
      # we need to show a independent window
      @text.sub!(/\[(.*?)\]/, "")
      name = $1.to_s
      if $game_system.indy_windows[name].show
        $game_system.indy_windows[name].dispose
        $game_system.indy_windows.delete(name)
      else
        $game_system.indy_windows[name].show = true
      end
      return
    end
   
    # if \c (hex color)
    if c == "\026"
      # convert hex color to RGB
      @text.sub!(/\[([0123456789abcdef]+)\]/, "")
      hex_code = $1.to_s
   
      red  = ("0x" + hex_code.slice(0..1)).hex
      blue  = ("0x" + hex_code.slice(2..3)).hex
      green = ("0x" + hex_code.slice(4..5)).hex
     
      self.contents.font.color = Color.new(red, blue, green)
      return
    end
   
    # If new line text
    if c == "\n"
      # Add 1 to y
      if !@ignore
        @y += 1
      end
      if @text != ""
        get_x_value
      end
      @ignore = false

      # go to next text
      return
    end
    if @ignore
      return
    end
    # Draw text
    line = self.contents.text_size("dj").height
    if $game_system.shadowed_text
      old_color = self.contents.font.color.clone
      self.contents.font.color = $game_system.shadow_color   
      self.contents.draw_text(6 + @x, line * @y + 2, 40, 32, c)
      self.contents.font.color = old_color
    end
    self.contents.draw_text(4 + @x, line * @y, 40, 32, c)
    # Add x to drawn text width
    @x += self.contents.text_size(c).width
  end
 
  def get_x_value
    # text justification - offset for first line
    if $game_system.text_justification == CENTER
      # get the length of the current line
      w = self.contents.text_size(@text.split("\n")[0]).width
      @x = (self.width - w - 48) / 2
    elsif $game_system.text_justification == RIGHT
      # get the length of the current line
      w = self.contents.text_size(@text.split("\n")[0]).width
      @x = self.width - w - 48
    else # left
      if $game_system.face_graphic == ""
        @x = 0
      else
        @x = @face_offset
      end
    end
  end
   
end

Depois disso, adicione isso

Código:
#==============================================================================
# ** Window_Choice
#------------------------------------------------------------------------------
#  This message window is used to display choices.
#==============================================================================
class Window_Choice < Window_Selectable
  def initialize (choices)
    super(0, 0, 32, choices.size * 32)
    self.visible = false
    self.active = false
    self.z = 9999
    @index = 0
    @item_max = choices.size
    @choices = choices
    self.contents = Bitmap.new(32, 32)
    self.opacity = $game_system.opacity
    self.back_opacity = $game_system.back_opacity
  end
 
  def refresh
    # determine necessary width
    width = 64
    for line in @choices
      width = [width, (self.contents.text_size(line).width + 48)].max
    end
    self.width = width
    self.height = @choices.size * 32 + 32
    self.contents = Bitmap.new(width - 32, height - 32)
    if $game_system.font_color.nil?
      self.contents.font.color = normal_color
    else
      self.contents.font.color = $game_system.font_color
    end
    if $game_system.windowskin != "" 
      self.windowskin = RPG::Cache.windowskin($game_system.windowskin)
    else
      self.windowskin = RPG::Cache.windowskin($data_system.windowskin_name)
    end
   
    # draw choices
    y = 0
    for line in @choices
      # Draw text
      if $game_system.shadowed_text
        old_color = self.contents.font.color.clone
        self.contents.font.color = $game_system.shadow_color
        self.contents.draw_text(6, 32 * y + 2, width, 32, line)
        self.contents.font.color = old_color
      end
      self.contents.draw_text(4, y * 32, width, 32, line)
      y += 1
    end
  end
     
  def set_choices(choices)
    @choices = choices
    @item_max = @choices.size
    for choice in @choices
      choice.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
      choice.gsub!(/\\[Nn]\[([0-9]+)\]/) {
        $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
      }
    end
    refresh
  end
end
#==============================================================================
# ** Window_Name
#------------------------------------------------------------------------------
#  This window is used to display names above the message window.  Uncomment
#  and modify the various sections to customize.
#==============================================================================
class Window_Name < Window_Base
  attr_accessor :dummy_window
 
  def initialize
    super(0, 0, 32, 64)
    self.contents = Bitmap.new(32, 32)
    self.opacity = 0
   
    @dummy_window = Window_Dummy.new
   
    self.visible = false
  end
 
  def set_name(name)
    @name = name
    refresh
  end
 
  def refresh
    if @name == nil
      return
    end
    self.width = self.contents.text_size(@name).width + 48
    self.contents = Bitmap.new(width - 32, height - 32)
   
    if $game_system.name_window
      @dummy_window.x = self.x
      @dummy_window.y = self.y + 12
      @dummy_window.set(height - 24, width - 12)
    end
   
    # uncomment this and change the font to give the name window a fancy font
    #self.contents.font.name = "Ariel"
    self.contents.font.color = Color.new(0, 0, 0, 255)
    self.contents.draw_text(0, 0, self.width, 32, @name)
    self.contents.draw_text(0, 2, self.width, 32, @name)
    self.contents.draw_text(2, 0, self.width, 32, @name)
    self.contents.draw_text(2, 2, self.width, 32, @name)
    # change the color to give the name window a seperate color
    self.contents.font.color = normal_color
    self.contents.draw_text(1, 1, self.width, 32, @name)
  end
 
  def update
    super
    if $game_system.name_window
      @dummy_window.x = self.x
      @dummy_window.y = self.y + 12
      @dummy_window.update
    end
  end
 
  def dispose
    @dummy_window.dispose
    super
  end
end

class Window_Dummy < Window_Base
  def initialize
    super(0, 0, 32, 64)
    self.z = 9999
    self.visible = false
  end
 
  def set(height, width)
    self.height = height
    self.width = width
  end
 
  def update
    super
    if $game_system.windowskin != "" 
      self.windowskin = RPG::Cache.windowskin($game_system.windowskin)
    else
      self.windowskin = RPG::Cache.windowskin($data_system.windowskin_name)
    end
  end
end
#==============================================================================
# ** Window_Slave
#------------------------------------------------------------------------------
#  These are slave windows to the main message window.  They will close when
#  the user terminates them.  Initial settings are identical to the main
#  message window, with one exception.  When in normal mode, it will apear
#  above if the main message is below, below if it is above or centered.  Use
#  message codes to change the settings for this window.
#==============================================================================
class Window_Slave < Window_Base
  attr_accessor :show
  attr_reader :done
 
  def write_all
    @write_all = true
  end
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize (text)
    super(0, 0, 33, 33)
    @text = text
   
    # x-coordinate depends on justification
    if @justification == RIGHT
      self.x = 640 - self.width
    elsif @justification == LEFT
      self.x = 0
    else # center
      self.x = (640 - self.width) / 2
    end
    # y-coordinate depends on height
    self.y = 480 - $game_system.window_height - 16
    self.contents = Bitmap.new(width - 32, height - 32)
    self.visible = false
    self.z = 9998
    @fade_in = false
    @fade_out = false
    @contents_showing = false
   
    # face graphic sprite
    @face = Sprite.new
    @face.opacity = 0
    @face.z = self.z + 1
    @face_offset = 0
   
    # choice window
    @choice_window = Window_Choice.new([])
    @choice_window.back_opacity = $game_system.back_opacity
   
    @comic_style = $game_system.comic_style
    @name = $game_system.name
   
    # comic sprite
    @comic = Sprite.new
    @comic.opacity = 0
    @comic.z = self.z + 1
    if @comic_style == TALK1
      @comic.bitmap = RPG::Cache.windowskin("talk1")
    elsif @comic_style == TALK2
      @comic.bitmap = RPG::Cache.windowskin("talk2")
    else # thought
      @comic.bitmap = RPG::Cache.windowskin("thought")
    end
   
   
   
    @pause_time = 0
    @wait = 0
   
    @mode = $game_system.ums_mode
    self.height = $game_system.window_height
    self.width = $game_system.window_width
    @justification = $game_system.window_justification
    @face_graphic = $game_system.face_graphic
    @face_graphic_justification = $game_system.face_graphic_justification
    @message_event = $game_system.message_event
    if $game_system.message_position == 2 # down
      @message_position = 0
    else
      @message_postion = 2
    end
    @face_graphic_position = $game_system.face_graphic_position
    if $game_system.font == ""
      @font = Font.default_name
    else
      @font = $game_system.font
    end
    @text_justification = $game_system.text_justification
   
    @shake = $game_system.shake
   
    @face_frame = 0
   
    refresh
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    terminate_message
    $game_temp.message_window_showing = false
    if @input_number_window != nil
      @input_number_window.dispose
    end
    @face.dispose
    @choice_window.dispose
    @comic.dispose
    if @name_window != nil
      @name_window.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # * Terminate Message
  #--------------------------------------------------------------------------
  def terminate_message
    self.active = false
    self.pause = false
    self.contents.clear
    # Clear showing flag
    @contents_showing = false
    # Call message callback
    if $game_temp.message_proc != nil
      $game_temp.message_proc.call
    end
    # Clear variables related to text, choices, and number input
    $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
    # Open gold window
    if @gold_window != nil
      @gold_window.dispose
      @gold_window = nil
    end
    @choice_window.visible = false
    @choice_window.active = false
    @comic.opacity = 0
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
   
    self.contents.clear
    if $game_system.font_color.nil?
      self.contents.font.color = normal_color
    else
      self.contents.font.color = $game_system.font_color
    end
    if $game_system.windowskin != "" 
      self.windowskin = RPG::Cache.windowskin($game_system.windowskin)
    else
      self.windowskin = RPG::Cache.windowskin($data_system.windowskin_name)
    end
    @x = @y = 0

    # If waiting for a message to be displayed
    if @text != nil
      # replace shortcuts with original code
      $game_system.shortcuts.each { |shortcut, code|
        @text.gsub!(shortcut, code)
      }
     
      # Control text processing
      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
     
      # window mode
      if @text.index(/\\[Mm]/) != nil
        if $game_system.ums_mode == NORMAL_MODE
          @mode = FIT_WINDOW_TO_TEXT
        else
          @mode = NORMAL_MODE
        end
        @text.gsub!(/\\[Mm]/) { "" }
      end
     
      # window height
      @text.gsub!(/\\[Hh][Ee][Ii][Gg][Hh][Tt]\[([0-9]+)\]/) do
        self.height = $1.to_i
        ""
      end
     
      # window width
      @text.gsub!(/\\[Ww][Ii][Dd][Tt][Hh]\[([0-9]+)\]/) do
        self.width = $1.to_i
        ""
      end
     
      # justification
      @text.gsub!(/\\[Jj][Rr]/) do
        @justification = RIGHT
        reset_window
        ""
      end
      @text.gsub!(/\\[Jj][Cc]/) do
        @justification = CENTER
        reset_window
        ""
      end     
      @text.gsub!(/\\[Jj][Ll]/) do
        @justification = LEFT
        reset_window
        ""
      end
     
      # face graphics
      @text.gsub!(/\\[Ff][Aa][Cc][Ee]\[(.*?)\]/) do
        @face_graphic = $1.to_s
        if $1.to_s == ""
          @face.opacity = 0
        end
        ""
      end
      @text.gsub!(/\\[Ff][Ll]/) do
        @face_graphic_justification = LEFT
        ""
      end
      @text.gsub!(/\\[Ff][Rr]/) do
        @face_graphic_justification = RIGHT
        ""
      end
     
      # event centering
      @text.gsub!(/\\[Ee]\[([0-9]+)\]/) do
        @message_event = $1.to_i
        ""
      end
     
      # comic thingy
      @text.gsub!(/\\[Tt]1/) do
        @comic_style = TALK1
        @comic.bitmap = RPG::Cache.windowskin("talk1.png")
        ""
      end
      @text.gsub!(/\\[Tt]2/) do
        @comic_style = TALK2
        @comic.bitmap = RPG::Cache.windowskin("talk2.png")
        ""
      end
      @text.gsub!(/\\[Tt][Hh]/) do
        @comic_style = THOUGHT
        @comic.bitmap = RPG::Cache.windowskin("thought.png")
        ""
      end
     
      # name window
      @text.gsub!(/\\[Nn][Mm]\[(.*?)\]/) do
        @name = $1.to_s
        if $1.to_s == "" and @name_window != nil
          @name_window.visible = false
        end
        ""
      end
      if @name != ""
        # name window
        @name_window = Window_Name.new
        @name_window.z = self.z + 1
        @name_window.set_name(@name)
      end
     
      # shaking
      @text.gsub!(/\\[Ss][Hh][Kk]\[([0-9]+)\]/) do
        @shake = $1.to_i
        ""
      end
     
      # back opacity
      @text.gsub!(/\\[Bb][Oo][Pp][Cc]\[([0-9]+)\]/) do
        self.back_opacity = $1.to_i
        ""
      end
     
      # opacity
      @text.gsub!(/\\[Oo][Pp][Cc]\[([0-9]+)\]/) do
        self.opacity = $1.to_i
        ""
      end
     
      # Change "\\\\" to "\000" for convenience
      @text.gsub!(/\\\\/) { "\000" }
      # Change "\\C" to "\001" and "\\G" to "\002"
      @text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
      @text.gsub!(/\\[Gg]/) { "\002" }
    @text.gsub!(/\\[Cc]\[0x([0123456789abcdef]+)\]/) { "\026[#{$1}]" }
     
      # text skip code
      @text.gsub!(/\\[Ss][Kk][Ii][Pp]/) { "\003" }
     
      # ignore code
      @text.gsub!(/\\[Ii][Gg][Nn][Rr]/) { "\023" }
     
      # bold and italics
      @text.gsub!(/\\[Bb]/) { "\004" }
      @text.gsub!(/\\[Ii]/) { "\005" }
     
      # shadow
      @text.gsub!(/\\[Ss]/) { "\006" }
     
      # font
      @text.gsub!(/\\[Ff][Oo][Nn][Tt]\[(.*?)\]/) { "\007[#{$1}]" }
     
      # pause and wait
      @text.gsub!(/\\[Pp]\[([0-9]+)\]/) { "\010[#{$1}]" }
      @text.gsub!(/\\[Ww]\[([0-9]+)\]/) { "\011[#{$1}]" }
     
      # write speed
      @text.gsub!(/\\[Ww][Ss]\[([0-9]+)\]/) { "\013[#{$1}]" }
           
      # armor, items, skills, and weapons
      @text.gsub!(/\\[Oo][Aa]\[([0-9]+)\]/) {
        item = $data_armors[$1.to_i]
        "\014[#{$1}]" + "  " + item.name
      }
      @text.gsub!(/\\[Oo][Ii]\[([0-9]+)\]/) {
        item = $data_items[$1.to_i]
        "\015[#{$1}]" + "  " + item.name
      }
      @text.gsub!(/\\[Oo][Ss]\[([0-9]+)\]/) {
        item = $data_skills[$1.to_i]
        "\016[#{$1}]" + "  " + item.name
      }
      @text.gsub!(/\\[Oo][Ww]\[([0-9]+)\]/) {
        item = $data_weapons[$1.to_i]
        "\017[#{$1}]" + "  " + item.name
      }
     
      # text justification
      @text.gsub!(/\\[Tt][Cc]/) { "\020" }
      @text.gsub!(/\\[Tt][Ll]/) { "\021" }
      @text.gsub!(/\\[Tt][Rr]/) { "\022" }
     
      # Resize the window to fit the contents?
      if @mode == FIT_WINDOW_TO_TEXT
        width = 1
        text = @text.split("\n")
        height = 0
        i = 0
        for line in text
          # don't count this line's width if it has the ignr code
          if !line.include?("\023")
            width = [width, self.contents.text_size(line).width].max
            delta = self.contents.text_size(line).height
            height += delta + (6 * i) + 3
            if i < 3
              i += 1
            end
          end
        end
       
        if @face_graphic != "" and ($game_system.face_graphic_position == CENTER or $game_system.face_graphic_position == BOTTOM)
          width += @face.bitmap.width
          if height < @face.bitmap.height
            height = @face.bitmap.height - 32
          end
        end
       
        if height == 0
          height = 1
        end
       
        self.width = width + 48
        self.height = height + 48
        self.contents = Bitmap.new(width + 16, height)
        if $game_system.font_color.nil?
          self.contents.font.color = normal_color
        else
          self.contents.font.color = $game_system.font_color
        end

      else
        if self.width != $game_system.window_height or self.height != $game_system.window_width
          self.width = $game_system.window_width
          self.height = $game_system.window_height
          self.contents = Bitmap.new(self.width - 32, self.height - 32)
          if $game_system.font_color.nil?
            self.contents.font.color = normal_color
          else
            self.contents.font.color = $game_system.font_color
          end
        end
      end
     
      reset_window
     
      get_x_value
     
      @count = Graphics.frame_count
      @pause_time = 0
      @ignore = false
      @done = false
      @face_frame = 0
    end
   
   
   
    # If number input
    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
  #--------------------------------------------------------------------------
  # * Set Window Position and Opacity Level
  #--------------------------------------------------------------------------
  def reset_window (change_opacity = true)
    # x-coordinate depends on justification
    if @message_event == -1
      if @justification == RIGHT
        self.x = 640 - self.width
      elsif @justification == LEFT
        self.x = 0
      else # center
        self.x = (640 - self.width) / 2
      end
    else
      if @message_event == 0 or $game_map.events[@message_event] == nil
        # center on player
        event_x = $game_player.screen_x
      else
        # center on the event specified
        event_x = $game_map.events[@message_event].screen_x
      end
      self.x = event_x - self.width / 2
      @comic.x = self.x + (self.width / 2) + 4
    end
   
    if $game_temp.in_battle
      self.y = 16
    else
      if @message_event == -1
        case @message_position
          when 0  # up
            self.y = 16
          when 1  # middle
            self.y = (480 - self.height) / 2
          when 2  # down
            self.y = 480 - self.height - 24
        end
      else
        if @message_event == 0 or $game_map.events[@message_event] == nil
          # above player
          self.y = $game_player.screen_y - self.height - 48
        else
          # above event specified
          self.y = $game_map.events[@message_event].screen_y - self.height - 48
        end
        @comic.y = self.y + self.height - 2
      end
    end
    if self.y < 0 + (@name == "" ? 0 : 16)
      self.y = 0 + (@name == "" ? 0 : 16)
    elsif self.y > 480 - self.height
      self.y = 480 - self.height
    end
    if self.x < 0
      self.x = 0
    elsif self.x > 680 - self.width - 48
      self.x = 640 - self.width
    end
   
    if change_opacity
      if $game_system.message_frame == 0
        self.opacity = 255
      else
        self.opacity = 0
      end
      self.back_opacity = $game_system.back_opacity
    end
   
    # face stuff
      if @face_graphic != "" 
        # the player has chosen to show a face graphic
        if @done and $game_system.resting_face != ""
          @face.bitmap = RPG::Cache.picture(@face_graphic + $game_system.resting_face)
          if @face_frame * $game_system.face_frame_width >= @face.bitmap.width
            @face_frame = 0
          end
        else
          @face.bitmap = RPG::Cache.picture(@face_graphic)
        end
       
        # picture y-coordinate
        if @face_graphic_position == ABOVE
          @face.y = self.y - @face.bitmap.height
          @face_offset = 0
        elsif @face_graphic_position == CENTER
          delta = (@face.bitmap.height - self.height) / 2
          @face.y = self.y - delta
          if $game_system.animated_faces
            @face_offset = $game_system.face_frame_width + 16
          else
            @face_offset = @face.bitmap.width + 16
          end
        elsif @face_graphic_position == BOTTOM
          @face.y = self.y + self.height - @face.bitmap.height
          if $game_system.animated_faces
            @face_offset = $game_system.face_frame_width + 16
          else
            @face_offset = @face.bitmap.width + 16
          end
        else # side
          delta = (@face.bitmap.height - self.height) / 2
          @face.y = self.y - delta
          @face_offset = 0
        end
       
        # picture x-coordinate
        if @face_graphic_justification == LEFT
          if @face_graphic_position == SIDE
            @face.x = self.x - @face.bitmap.width
          else
            @face.x = self.x + 10
          end
        else
          if $game_system.animated_faces
            offset = @face.bitmap.width - $game_system.face_frame_width
          else
            offset = 0
          end
          if @face_graphic_position == SIDE
            @face.x = self.x + self.width + offset
          else
            @face.x = self.x + self.width - @face.bitmap.width - 10 + offset
            @face_offset = 0
          end
        end
       
        if $game_system.animated_faces
          @face.src_rect = Rect.new(@face_frame * $game_system.face_frame_width, 0, $game_system.face_frame_width, @face.bitmap.height)
          if @done and $game_system.resting_face != ""
            pause = $game_system.resting_animation_pause
          else
            pause = $game_system.animation_pause
          end
          if Graphics.frame_count % pause == 0
            @animate_face = true
          end
          if @animate_face
            if Graphics.frame_count % 3 == 0
              @face_frame += 1
              if @face_frame * $game_system.face_frame_width >= @face.bitmap.width
                @face_frame = 0
                @animate_face = false
              end
            end
          end
        end
      end
     
      # name window
      if @name != "" and @name != nil
        @name_window.set_name(@name)
        @name_window.x = self.x
        @name_window.y = self.y - 36
      end
     
      # If choice
    if $game_temp.choice_max > 0
      @choice_window.set_choices($game_temp.choices)
      # determine x and y coords for choice window
      if $game_system.choice_justification == LEFT
        @choice_window.x = self.x
      else
        @choice_window.x = self.x + self.width - @choice_window.width
      end
      if $game_system.choice_position == ABOVE
        # check to make sure there is enough room above the textbox
        if self.y < @choice_window.height
          # not enough room above, place below
          @choice_window.y = self.y + self.height
        else
          # draw above
          @choice_window.y = self.y - @choice_window.height
        end
      elsif $game_system.choice_position == BOTTOM
        # check to make sure there is enough room below the textbox
        if (480 - self.y - self.height) < @choice_window.height
          # not enough room below, place above
          @choice_window.y = self.y - @choice_window.height
        else
          # draw below
          @choice_window.y = self.y + self.height
        end
      else # side
        if $game_system.choice_justification == LEFT
          # check to make sure there's room on the left side
          if self.y < @choice_window.width
            # not enough room on the side, check to make sure there's room below
            if (480 - self.y - self.height) < @choice_window.height
              # not enough room below, place above
              @choice_window.y = self.y - @choice_window.height
            else
              # draw below
              @choice_window.y = self.y + self.height
            end
          else
            # place on the left side
            @choice_window.y = self.y
            @choice_window.x = self.x - @choice_window.width
          end
        else # right
          # check to make sure there's room on the right side
          if (680 - (self.y + self.width)) < @choice_window.width
            # not enough room on the side, check to make sure there's room below
            if (480 - self.y - self.height) < @choice_window.height
              # not enough room below, place above
              @choice_window.y = self.y - @choice_window.height
            else
              # draw below
              @choice_window.y = self.y + self.height
            end
          else
            # place on the left side
            @choice_window.y = self.y
            @choice_window.x = self.x + self.width
          end
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
   
    if !@show
      return
    else
      self.visible = true
      if @face_graphic != ""
        @face.opacity = 255
      end
      if $game_system.comic_enabled and @message_event != -1
        @comic.opacity = 255
      end
      if @name != ""
        @name_window.visible = true
      end
      if @input_number_window != nil
        @input_number_window.contents_opacity = 255
      end
      reset_window
    end
   
   
    if (@contents_showing and $game_system.message_event != -1 and @shake == 0) or $game_system.animated_faces
      reset_window(false)
    end
   
    if $game_system.shake != 0  # shake the window
      if @ascending
        if @target_x != self.x
          self.x += 1
        else
          @ascending = false
          @target_x = self.x - ($game_system.shake * 2)
        end
      else
        if @target_x != self.x
          self.x -= 1
        else
          @ascending = true
          @target_x = self.x + ($game_system.shake * 2)
        end
      end
    end
   
    if @wait > 0
      @wait -= 1
      if @wait == 0
        terminate_message
        return
      end
    end
   
    # If fade in
    if @fade_in
      self.contents_opacity += 24
      if @face_graphic != ""
        @face.opacity += 24
      end
      if $game_system.comic_enabled and @message_event != -1
        @comic.opacity += 24
      end
      if @name != ""
        @name_window.visible = true
      end
      if @input_number_window != nil
        @input_number_window.contents_opacity += 24
      end
      if self.contents_opacity == 255
        @fade_in = false
      end
      return
    end
   
    # write the text
    if @text != nil and @text != ""
      speed = $game_system.write_speed
      if $game_system.text_skip
        if $game_system.skip_mode == WRITE_FASTER and Input.press?(Input::C)
          # the player is holding the action button, write faster
          speed /= 3
        elsif $game_system.skip_mode == WRITE_ALL and @write_all
          # the player pressed the action button, write all the text
          while (c = @text.slice!(/./m)) != nil
            write_char(c)
          end
          return
        end
      end
      while @ignore
        c = @text.slice!(/./m)
        if c != nil
          write_char(c)
        end
      end
      if @pause_time > 0
        @pause_time -= 1
        return
      end
      if Graphics.frame_count - @count >= speed
        if $game_system.sound_effect != ""
          Audio.se_play("Audio/SE/" + $game_system.sound_effect, 80, 100)
        end
        @count = Graphics.frame_count
        c = @text.slice!(/./m)
        if c != nil
          write_char(c)
        end
      end
      return
    end
   
    @done = true
   
    # If inputting number
    if @input_number_window != nil
      @input_number_window.update
      # Confirm
      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
        # Dispose of number input window
        @input_number_window.dispose
        @input_number_window = nil
        terminate_message
      end
      return
    end
   
    if @wait != 0
      return
    end
   
    # If message is being displayed and contents are all written
    if @contents_showing
      # if choice
      if $game_temp.choice_max > 0
        if !@choice_window.active
          @choice_window.visible = true
          @choice_window.active = true
          @choice_window.index = 0
        end
        @choice_window.update
      else
        # If choice isn't being displayed, show pause sign
        self.pause = true
      end
      return
    end
  end
 
  #--------------------------------------------------------------------------
  # * Process and write the given character
  #--------------------------------------------------------------------------
  def write_char(c)
    if c == "\000"
      # Return to original text
      c = "\\"
    end
    # If \C[n]
    if c == "\001"
    # Change text color
      @text.sub!(/\[([0-9]+)\]/, "")
      color = $1.to_i
      if color >= 0 and color <= 7
        self.contents.font.color = text_color(color)
      end
      # go to next text
      return
    end
    # If \G
    if c == "\002"
      # Make gold window
      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
      # go to next text
      return
    end
    # If \skip
    if c == "\003"
      # toggle text skipping
      #$game_system.text_skip = !$game_system.text_skip
      # go to next text
      return
    end
    # If \b
    if c == "\004"
      # toggle bold
      self.contents.font.bold = !self.contents.font.bold
      # go to next text
      return
    end
    # If \i
    if c == "\005"
      # toggle italics
      self.contents.font.italic = !self.contents.font.italic
      # go to next text
      return
    end
    # If \s
    if c == "\006"
      # toggle shadow
      #$game_system.shadowed_text = !$game_system.shadowed_text
      # go to next text
      return
    end
    # If \font
    if c == "\007"
      # change font
      @text.sub!(/\[(.*?)\]/, "")
      font = $1.to_s
      @font = font
      if font == ""
        self.contents.font.name = Font.default_name
      else
        self.contents.font.name = font
      end
      # go to next text
      return
    end
    # If \p[n]
    if c == "\010"
      @text.sub!(/\[([0-9]+)\]/, "")
      @pause_time = $1.to_i

      # go to next text
      return
    end
   
    # If \w[n]
    if c == "\011"
      @text.sub!(/\[([0-9]+)\]/, "")
      @wait = $1.to_i

      # go to next text
      return
    end
   
    # If \ws[n]
    if c == "\013"
      @text.sub!(/\[([0-9]+)\]/, "")
      $game_system.write_speed = $1.to_i

      # go to next text
      return
    end
    # If \oa[n]
    if c == "\014"
      @text.sub!(/\[([0-9]+)\]/, "")
      index = $1.to_i
      @text.sub!("  ", "")
      item = $data_armors[index]
      # draw the icon
      icon = RPG::Cache.icon(item.icon_name)
      self.contents.blt(@x + 2, (@y * 32) + 4, icon, Rect.new(0, 0, 24, 24))
      @x += 24

      # go to next text
      return
    end
   
    # If \oi[n]
    if c == "\015"
      @text.sub!(/\[([0-9]+)\]/, "")
      index = $1.to_i
      @text.sub!("  ", "")
      item = $data_items[index]
      # draw the icon
      icon = RPG::Cache.icon(item.icon_name)
      self.contents.blt(@x + 2, (@y * 32) + 4, icon, Rect.new(0, 0, 24, 24))
      @x += 24

      # go to next text
      return
    end
   
    # If \os[n]
    if c == "\016"
      @text.sub!(/\[([0-9]+)\]/, "")
      index = $1.to_i
      @text.sub!("  ", "")
      item = $data_skills[index]
      # draw the icon
      icon = RPG::Cache.icon(item.icon_name)
      self.contents.blt(@x + 2, (@y * 32) + 4, icon, Rect.new(0, 0, 24, 24))
      @x += 24

      # go to next text
      return
    end
   
    # If \ow[n]
    if c == "\017"
      @text.sub!(/\[([0-9]+)\]/, "")
      index = $1.to_i
      @text.sub!("  ", "")
      item = $data_weapons[index]
      # draw the icon
      icon = RPG::Cache.icon(item.icon_name)
      self.contents.blt(@x + 2, (@y * 32) + 4, icon, Rect.new(0, 0, 24, 24))
      @x += 24
     
      # go to next text
      return
    end
   
    # If \tc
    if c == "\020"
      # center justify
      @text_justification = CENTER
      get_x_value
      # go to next text
      return
    end
   
    # If \tl
    if c == "\021"
      # left justify
      @text_justification = LEFT
      get_x_value
      # go to next text
      return
    end
   
    # If \tr
    if c == "\022"
      # right justify
      @text_justification = RIGHT
      get_x_value
      # go to next text
      return
    end
   
    # If \ignr
    if c == "\023"
      # set ignore flage
      @ignore = true
      # go to next text
      return
    end
   
    # if \c (hex color)
    if c == "\026"
      # convert hex color to RGB
      @text.sub!(/\[([0123456789abcdef]+)\]/, "")
      hex_code = $1.to_s
   
      red  = ("0x" + hex_code.slice(0..1)).hex
      blue  = ("0x" + hex_code.slice(2..3)).hex
      green = ("0x" + hex_code.slice(4..5)).hex
     
      self.contents.font.color = Color.new(red, blue, green)
      return
    end
   
    # If new line text
    if c == "\n"
      # Add 1 to y
      if !@ignore
        @y += 1
      end
      if @text != ""
        get_x_value
      end
      @ignore = false

      # go to next text
      return
    end
    if @ignore
      return
    end
    # Draw text
    line = self.contents.text_size("dj").height
    if $game_system.shadowed_text
      old_color = self.contents.font.color.clone
      self.contents.font.color = $game_system.shadow_color
      self.contents.draw_text(6 + @x, line * @y + 2, 40, 32, c)
      self.contents.font.color = old_color
    end
    self.contents.draw_text(4 + @x, line * @y, 40, 32, c)
    # Add x to drawn text width
    @x += self.contents.text_size(c).width
  end
 
  def get_x_value
    # text justification - offset for first line
    if @text_justification == CENTER
      # get the length of the current line
      w = self.contents.text_size(@text.split("\n")[0]).width
      @x = (self.width - w - 48) / 2
    elsif @text_justification == RIGHT
      # get the length of the current line
      w = self.contents.text_size(@text.split("\n")[0]).width
      @x = self.width - w - 48
    else # left
      if @face_graphic == ""
        @x = 0
      else
        @x = @face_offset
      end
    end
  end
end

#==============================================================================
# ** Window_InputNumber
#------------------------------------------------------------------------------
#  This window is for inputting numbers, and is used within the
#  message window.
#==============================================================================

class Window_InputNumber < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    digits_max : digit count
  #--------------------------------------------------------------------------
  def initialize(digits_max)
    @digits_max = digits_max
    @number = 0
    # Calculate cursor width from number width (0-9 equal width and postulate)
    dummy_bitmap = Bitmap.new(32, 32)
    @cursor_width = dummy_bitmap.text_size("0").width + 8
    dummy_bitmap.dispose
    super(0, 0, @cursor_width * @digits_max + 32, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.z += 9999
    self.opacity = $game_system.opacity
    self.back_opacity = $game_system.back_opacity
    @index = 0
    refresh
    update_cursor_rect
  end
 
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if $game_system.font_color.nil?
      self.contents.font.color = normal_color
    else
      self.contents.font.color = $game_system.font_color
    end
    if $game_system.windowskin != "" 
      self.windowskin = RPG::Cache.windowskin($game_system.windowskin)
    else
      self.windowskin = RPG::Cache.windowskin($data_system.windowskin_name)
    end
    s = sprintf("%0*d", @digits_max, @number)
    for i in 0...@digits_max
      # Draw text
      if $game_system.shadowed_text
        old_color = self.contents.font.color.clone
        self.contents.font.color = $game_system.shadow_color
        self.contents.draw_text(i * @cursor_width + 6, 2, 32, 32, s[i,1])
        self.contents.font.color = old_color
      end
      self.contents.draw_text(i * @cursor_width + 4, 0, 32, 32, s[i,1])
    end
  end
 end

Florecio
Iniciante
Iniciante

Mensagens : 41
Créditos : 3

Ir para o topo Ir para baixo

[EXT] UMS  bugadooooo Empty Re: [EXT] UMS bugadooooo

Mensagem por Mario.Hacker Sex Set 30, 2011 10:10 am

coloca dentro de spoiler ou code os script cara Fury
bom isso deve ser pq o script usa alguma fonte
que não tenha no seu PC

_________________
[EXT] UMS  bugadooooo 33fao3m

Mario.Hacker
Mario.Hacker
Aldeia Friend
Aldeia Friend

Medalhas : [EXT] UMS  bugadooooo Trophy11
Mensagens : 1225
Créditos : 131

http://almaker.forumeiros.com/

Ir para o topo Ir para baixo

[EXT] UMS  bugadooooo Empty Re: [EXT] UMS bugadooooo

Mensagem por Florecio Sex Set 30, 2011 11:30 am

Tem Como Ajuda sabe Cual esa fonte



lebrado que o scrips que eu pegeim do otrou net play cuado eu ligo ele fuciona normalmete eu acho que o o Scrips Ta Afetado O Scrips de texto Ou Augom A Sim

Florecio
Iniciante
Iniciante

Mensagens : 41
Créditos : 3

Ir para o topo Ir para baixo

[EXT] UMS  bugadooooo Empty Re: [EXT] UMS bugadooooo

Mensagem por Valentine Sex Set 30, 2011 11:46 am

Pronto cara, ajeitei tudo, mas cuidado com um script grande assim que com certeza vai bugar muita coisa, porque meche em muitos scripts, acho que você não deveria usar, ele meche em muitos scripts que podem ser importantes para o netplay.
Valentine
Valentine
Administrador
Administrador

Medalhas : [EXT] UMS  bugadooooo ZgLkiRU
Mensagens : 5345
Créditos : 1164

https://www.aldeiarpg.com/

Ir para o topo Ir para baixo

[EXT] UMS  bugadooooo Empty Re: [EXT] UMS bugadooooo

Mensagem por serveid Sex Set 30, 2011 3:17 pm

Pocha MAs Eu Presisava Muito Mas Desse Scrips

Vlw PEla Por Aruma Ele Marlos Gama

serveid
Novato
Novato

Mensagens : 1
Créditos : 0

Ir para o topo Ir para baixo

[EXT] UMS  bugadooooo Empty Re: [EXT] UMS bugadooooo

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos