Ergebnis 1 bis 3 von 3

Thema: Portrai

  1. #1

    Portrai

    Ich hab jetzt schon oft gehört das man beim xp keine portrais machen kann aber ich glaube das es geht kann das jeman bestätigen?
    Und noch eine Frage wer weis wie man den chara maker oder den script deitor benutzt?

    Geändert von Hallo222 (15.06.2007 um 16:42 Uhr)

  2. #2
    Meinst du mit Potraits sowas wie Face Sets wie beim RM2K?
    Sowas gibt es auf jedenfall,meine ich mal gelesen zu haben.
    Wie man den Charamaker benutzt weiß ich nicht,aber wenn du die Scriptsprache meinst,die der RPG Maker XP verwendet,dann les dir mal das durch:

    http://hinterkattentuffel.de/ruby/tutorial_01.htm

    Ansonsten such mal ein wenig bei Google,dort gibt es zig Ruby Tutorials.

  3. #3
    Dafür gibt es verschiedene Skripte, z.B das AMS:
    Code:
    #===================================================
    # ■ AMS - Advanced Message Script - R4 [Update #2]
    #===================================================
    # For more infos and update, visit:
    # www.dubealex.com (Creation Asylum)
    #
    # Edited, Fixed and Enhanced by: Dubealex
    # Original Script Core by: XRXS Scripter (Jap Dudes)
    # HTML Hexadecimal color feature from: Phylomorphis 
    #
    # Special Thanks:
    # Rabu: For enabling the Show Face feature in an encrypted project
    #
    # To found all my new features, search the following:  #NEW
    # To configure the button to skip the dialog, search:  #SKIP_TEXT_CODE
    #
    # May 18, 2005
    #===================================================
    
    LETTER_BY_LETTER_MODE = true   #Set the letter by letter mode ON/OFF          
    
    #===================================================
    # ▼ CLASS AMS Begins
    #===================================================
    class AMS
     
     attr_accessor :name_box_x_offset
     attr_accessor :name_box_y_offset 
     attr_accessor :font_type
     attr_accessor :name_font_type
     attr_accessor :font_size
     attr_accessor :name_font_size
     attr_accessor :message_box_opacity 
     attr_accessor :name_box_skin
     attr_accessor :name_box_text_color
     attr_accessor :message_box_text_color
     attr_accessor :message_box_skin
     attr_accessor :name_box_width
     attr_accessor :name_box_height
     attr_accessor :message_width
     attr_accessor :message_height
     attr_accessor :message_x
     attr_accessor :message_y_bottom
     attr_accessor :message_y_middle
     attr_accessor :message_y_top
     attr_accessor :hehe:vent_message_x_ofset
     attr_accessor :hehe:vent_message_y_ofset
      
    def initialize
      
     @name_box_x_offset = 0       #Choose the X axis offset of the name bos. default= 0
     @name_box_y_offset = -10    #Choose the Y axis offset of the name bos. default= -10
     @name_box_width = 8           #Choose the width of the Name Box. default= 8  
     @name_box_height = 26        #Choose the height of the Name Box. default= 26
     
     @font_type = "Tahoma"           #Choose the Font Name (Case Sensitive) for message box
     @name_font_type = "Tahoma" #Choose the Font Name (Case Sensitive) for Name Box
     @font_size = 22                      #Choose the default Font Size for message box text
     @name_font_size = 22            #Choose the deafault Font Size for Name Box text
     @name_box_text_color=0        #Choose the Text Color of the Name Box
     @message_box_text_color=0   #Choose the Text Color of the Message Box
     
     @message_box_opacity = 160            #Choose the opacity of the message window. Default=160
     @message_box_skin = "001-Blue01"   #Choose the WindowSkin for the Message Box
     @name_box_skin = "001-Blue01"       #Choose the WindowSkin for the Name Box
     
     @message_width = 480          #Choose the width size of the message box. Default=480
     @message_height = 160         #Choose the height size of the message box. Default=160
     @message_x = 80                  #Choose the X position of the message box. Default=80
     @message_y_bottom = 304    #Choose the Y bottom position of the message box. Default=304
     @message_y_middle = 160    #Choose the Y middle position of the message box. Default=160
     @message_y_top = 16           #Choose the Y top position of the message box. Default=16
     
     @event_message_x_ofset = 0   #Choose the X position offset of the event message. Default=0
     @event_message_y_ofset = 48   #Choose the Y position offset of the event message. Default=48
     
    end
    end
    #===================================================
    # ▲ CLASS AMS Ends
    #===================================================
    
    
    #===================================================
    # ▼ Class Window_Message Begins
    #===================================================
    class Window_Message < Window_Selectable   
    
    alias xrxs9_initialize initialize
    
    def initialize
    
    @alex_skip = false
    
    xrxs9_initialize
    
    if $soundname_on_speak == nil then
      $soundname_on_speak = ""
    end
    
    $gaiji_file = "./Graphics/Gaiji/sample.png"
    
    if FileTest.exist?($gaiji_file)
      @gaiji_cache = Bitmap.new($gaiji_file)
    else
      @gaigi_cache = nil
    end
    @opacity_text_buf = Bitmap.new(32, 32)
    end
    
    
    #--------------------------------------------------------------------------
    
    alias xrxs9_terminate_message terminate_message
    
    def terminate_message
     
    if @name_window_frame != nil
      @name_window_frame.dispose
      @name_window_frame = nil
    end
    
    if @name_window_text  != nil
      @name_window_text.dispose
      @name_window_text  = nil
    end
    xrxs9_terminate_message
    end
    
    #--------------------------------------------------------------------------
    
    def refresh
     
    self.contents.clear
    self.contents.font.color = text_color($ams.message_box_text_color)
    self.contents.font.name = $ams.font_type
    self.contents.font.size = $ams.font_size
    self.windowskin = RPG::Cache.windowskin($ams.message_box_skin)
    @x = @y = @max_x = @max_y = @indent = @lines = 0
    @face_indent = 0
    @opacity = 255
    @cursor_width = 0
    @write_speed = 0
    @write_wait = 0
    @mid_stop = false
    @face_file = nil
    @popchar = -2
    
    if $game_temp.choice_start == 0
      @x = 8
    end
    
    if $game_temp.message_text != nil
      @now_text = $game_temp.message_text
      if (/\A\\[Ff]\[(.+?)\]/.match(@now_text))!=nil then
         @face_file = $1 + ".png"
         @x = @face_indent = 128
        if FileTest.exist?("Graphics/Pictures/" + $1 + ".png")
          self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))
        end
        @now_text.gsub!(/\\[Ff]\[(.*?)\]/) { "" }
      end
    
      begin
      last_text = @now_text.clone
      @now_text.gsub!(/\\[Vv]\[([IiWwAaSs]?)([0-9]+)\]/) { convart_value($1, $2.to_i) }
      end until @now_text == last_text
      @now_text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
        $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
       end
      
      #NEW
      #Dubealex's Stop Skip Text ON-OFF
      @now_text.gsub!(/\\[%]/) { "\100" }
      #End new command
       
      #NEW
      #Dubealex's Show Monster Name Feature
       @now_text.gsub!(/\\[Mm]\[([0-9]+)\]/) do
       $data_enemies[$1.to_i] != nil ? $data_enemies[$1.to_i].name : ""
       end
       #End new command
       
      #NEW
      #Dubealex's Show Item Price Feature
       @now_text.gsub!(/\\[Pp]rice\[([0-9]+)\]/) do
       $data_items[$1.to_i] != nil ? $data_items[$1.to_i].price : ""
       end
       #End new command
       
      #NEW
      #Dubealex's Show Hero Class Name Feature
       @now_text.gsub!(/\\[Cc]lass\[([0-9]+)\]/) do
       $data_classes[$data_actors[$1.to_i].class_id] != nil ? $data_classes[$data_actors[$1.to_i].class_id].name : ""
       end
       #End new command
       
      #NEW
      #Dubealex's Show Current Map Name Feature
       @now_text.gsub!(/\\[Mm]ap/) do
       $game_map.name    != nil ? $game_map.name    : ""
       end
       #End new command
       
      #NEW
      #Dubealex's Choose Name Box Text Color
       @now_text.gsub!(/\\[Zz]\[([0-9]+)\]/) do
       $ams.name_box_text_color=$1.to_i
       @now_text.sub!(/\\[Zz]\[([0-9]+)\]/) { "" }
       end
       #End new command
       
      name_window_set = false
      if (/\\[Nn]ame\[(.+?)\]/.match(@now_text)) != nil
        name_window_set = true
        name_text = $1
        @now_text.sub!(/\\[Nn]ame\[(.*?)\]/) { "" }
      end
    
      if (/\\[Pp]\[([-1,0-9]+)\]/.match(@now_text))!=nil then
        @popchar = $1.to_i
        if @popchar == -1
          @x = @indent = 48
          @y = 4
        end
        @now_text.gsub!(/\\[Pp]\[([-1,0-9]+)\]/) { "" }
      end
    
      @max_choice_x = 0
      if @popchar >= 0
        @text_save = @now_text.clone
        @max_x = 0
        @max_y = 4
        for i in 0..3
          line = @now_text.split(/\n/)[3-i]
          @max_y -= 1 if line == nil and @max_y <= 4-i
          next if line == nil
          line.gsub!(/\\\w\[(\w+)\]/) { "" }
          cx = contents.text_size(line).width
          @max_x = cx if cx > @max_x
          if i >= $game_temp.choice_start
            @max_choice_x = cx if cx > @max_choice_x
          end
        end
        self.width = @max_x + 32 + @face_indent
        self.height = (@max_y - 1) * 32 + 64
        @max_choice_x -= 68
        @max_choice_x -= @face_indent*216/128
      else
        @max_x = self.width - 32 - @face_indent
        for i in 0..3
          line = @now_text.split(/\n/)[i]
          next if line == nil
          line.gsub!(/\\\w\[(\w+)\]/) { "" }
          cx = contents.text_size(line).width
          if i >= $game_temp.choice_start
            @max_choice_x = cx if cx > @max_choice_x
          end
        end
        @max_choice_x += 8
      end
      @cursor_width = 0
      @now_text.gsub!(/\\\\/) { "\000" }
      @now_text.gsub!(/\\[Cc]\[([0123456789ABCDEF#]+)\]/) { "\001[#{$1}]" }
      @now_text.gsub!(/\\[Gg]/) { "\002" }
      @now_text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\003[#{$1}]" }
      @now_text.gsub!(/\\[Aa]\[(.*?)\]/) { "\004[#{$1}]" }
      
       #NEW 
       #Dubealex's Permanent Color Change
       @now_text.gsub!(/\\[Cc]olor\[([0-9]+)\]/) do
         $ams.message_box_text_color= $1.to_i
        @now_text.sub!(/\\[Cc]\[([0-9]+)\]/) { "" }
         end
       #End of new command
       
       #NEW 
       #Dubealex's Font Change Feature
        @now_text.gsub(/\\[tt]\[(.*?)\]/) do
         buftxt = $1.to_s
         $ams.font_type = buftxt
         @now_text.sub!(/\\[tt]\[(.*?)\]/) { "" }
         end
       #End of new command
       
      @now_text.gsub!(/\\[.]/) { "\005" }
      @now_text.gsub!(/\\[|]/) { "\006" }
      @now_text.gsub!(/\\[>]/) { "\016" }
      @now_text.gsub!(/\\[<]/) { "\017" }
      @now_text.gsub!(/\\[!]/) { "\020" }
      @now_text.gsub!(/\\[~]/) { "\021" }
      @now_text.gsub!(/\\[Ee]\[([0-9]+)\]/) { "\022[#{$1}]" }
      @now_text.gsub!(/\\[Ii]/) { "\023" }
      @now_text.gsub!(/\\[Oo]\[([0-9]+)\]/) { "\024[#{$1}]" }
      @now_text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "\025[#{$1}]" }
      @now_text.gsub!(/\\[Bb]\[([0-9]+)\]/) { "\026[#{$1}]" }
      @now_text.gsub!(/\\[Rr]\[(.*?)\]/) { "\027[#{$1}]" }
      
      reset_window
      
      if name_window_set
        color=$ams.name_box_text_color
        off_x =  $ams.name_box_x_offset
        off_y =  $ams.name_box_y_offset
        space = 2
        x = self.x + off_x - space / 2
        y = self.y + off_y - space / 2
        w = self.contents.text_size(name_text).width + $ams.name_box_width + space
        h = $ams.name_box_height + space
        @name_window_frame = Window_Frame.new(x, y, w, h)
        @name_window_frame.z = self.z + 1
        x = self.x + off_x + 4
        y = self.y + off_y
        @name_window_text  = Air_Text.new(x, y, name_text, color)
        @name_window_text.z = self.z + 2
      end
    end
    
    reset_window
    
    if $game_temp.choice_max > 0
      @item_max = $game_temp.choice_max
      self.active = true
      self.index = 0
    end
    
    if $game_temp.num_input_variable_id > 0
      digits_max = $game_temp.num_input_digits_max
      number = $game_variables[$game_temp.num_input_variable_id]
      @input_number_window = Window_InputNumber.new(digits_max)
      @input_number_window.number = number
      @input_number_window.x = self.x + 8
      @input_number_window.y = self.y + $game_temp.num_input_start * 32
    end
    end
    
    #--------------------------------------------------------------------------
    
    def update
     
    super
    
    if @fade_in
      self.contents_opacity += 24
      if @input_number_window != nil
        @input_number_window.contents_opacity += 24
      end
      if self.contents_opacity == 255
        @fade_in = false
      end
      return
    end
    @now_text = nil if @now_text == "" 
    
    if @now_text != nil and @mid_stop == false
      if @write_wait > 0
        @write_wait -= 1
        return
      end
      text_not_skip = LETTER_BY_LETTER_MODE
      while true
        @max_x = @x if @max_x < @x
        @max_y = @y if @max_y < @y
        if (c = @now_text.slice!(/./m)) != nil
          if c == "\000"
            c = "\\"
          end
          
          if c == "\001"
            @now_text.sub!(/\[([0123456789ABCDEF#]+)\]/, "")
            temp_color = $1
            color = temp_color.to_i
            leading_x = temp_color.to_s.slice!(/./m)
            if leading_x == "#"
              self.contents.font.color = hex_color(temp_color)
              next
            end
            if color >= 0 and color <= 7
              self.contents.font.color = text_color(color)
            end
            next
          end
    
          if c == "\002"
            if @gold_window == nil and @popchar <= 0
              @gold_window = Window_Gold.new
              @gold_window.x = 560 - @gold_window.width
              if $game_temp.in_battle
                @gold_window.y = 192
              else
                @gold_window.y = self.y >= 128 ? 32 : 384
              end
              @gold_window.opacity = self.opacity
              @gold_window.back_opacity = self.back_opacity
            end
            c = ""
          end
    
          if c == "\003"
            @now_text.sub!(/\[([0-9]+)\]/, "")
            speed = $1.to_i
            if speed >= 0 and speed <= 19
              @write_speed = speed
            end
            c = ""
          end
    
          if c == "\004"
            @now_text.sub!(/\[(.*?)\]/, "")
            buftxt = $1.dup.to_s
            if buftxt.match(/\//) == nil and buftxt != "" then
              $soundname_on_speak = "Audio/SE/" + buftxt
            else
              $soundname_on_speak = buftxt.dup
            end
            c = ""
          elsif c == "\004" 
            c = ""
          end
          
          if c == "\005"
            @write_wait += 5
            c = ""
          end
          
          if c == "\006"
            @write_wait += 20
            c = ""
          end
          
          if c == "\016"
            text_not_skip = false
            c = ""
          end
          
          if c == "\017"
            text_not_skip = true
            c = ""
          end
          
          if c == "\020"
            @mid_stop = true
            c = ""
          end
          
          if c == "\021"
            terminate_message
            return
          end
          
          if c == "\023"
            @indent = @x
            c = ""
          end
    
          if c == "\024"
            @now_text.sub!(/\[([0-9]+)\]/, "")
            @opacity = $1.to_i
            color = self.contents.font.color
            self.contents.font.name = $ams.font_type
            self.contents.font.size = $ams.font_size
            self.contents.font.color = Color.new(color.red, color.green, color.blue, color.alpha * @opacity / 255)
            c = ""
          end
    
          if c == "\025"
            @now_text.sub!(/\[([0-9]+)\]/, "")
            self.contents.font.size = [[$1.to_i, 6].max, 32].min
            c = ""
          end
    
          if c == "\026"
            @now_text.sub!(/\[([0-9]+)\]/, "")
            @x += $1.to_i
            c = ""
          end
          
          if c == "\027"
            @now_text.sub!(/\[(.*?)\]/, "")
            @x += ruby_draw_text(self.contents, @x, @y * line_height + (line_height - self.contents.font.size), $1, @opacity)
            if $soundname_on_speak != ""
              Audio.se_play($soundname_on_speak)
            end
          c = ""
          end
    
          if c == "\030"
            @now_text.sub!(/\[(.*?)\]/, "")
            self.contents.blt(@x , @y * line_height + 8, RPG::Cache.icon($1), Rect.new(0, 0, 24, 24))
            if $soundname_on_speak != ""
              Audio.se_play($soundname_on_speak)
            end
            @x += 24
            c = ""
          end
    
          if c == "\n"
            @lines += 1
            @y += 1
            @x = 0 + @indent + @face_indent
            if @lines >= $game_temp.choice_start
              @x = 8 + @indent + @face_indent
              @cursor_width = @max_choice_x
            end
            c = ""
          end
          
          if c == "\022"
            @now_text.sub!(/\[([0-9]+)\]/, "")
            @x += gaiji_draw(4 + @x, @y * line_height + (line_height - self.contents.font.size), $1.to_i)
            c = ""
          end
          
          #NEW
          #Dubealex's Text Skip On/OFF Command
           if c == "\100"
              if @alex_skip==false
                 @alex_skip=true
              else
                @alex_skip=false
              end
             c = ""
           end  
           #end of new command
                                       
          if c != ""
            self.contents.draw_text(0+@x, 32 * @y, 40, 32, c)
            @x += self.contents.text_size(c).width
            if $soundname_on_speak != "" then
              Audio.se_play($soundname_on_speak)
            end
          end
          
    #SKIP_TEXT_CODE
    
    # B = Escape, 0 (On The NumPad), X 
    # C = Enter, Space Bar and C
    # A = Shift, Z 
    
      if Input.press?(Input::C) # <-- Change the value on that line
        if @alex_skip==false      
        text_not_skip = false
        end
          end
        else
          text_not_skip = true
          break
        end
        
        if text_not_skip
          break
        end
      end
      @write_wait += @write_speed
      return
    end
    
    if @input_number_window != nil
      @input_number_window.update
      if Input.trigger?(Input::C)
        $game_system.se_play($data_system.decision_se)
        $game_variables[$game_temp.num_input_variable_id] =
          @input_number_window.number
        $game_map.need_refresh = true
        @input_number_window.dispose
        @input_number_window = nil
        terminate_message
      end
      return
    end
    
    if @contents_showing
      if $game_temp.choice_max == 0
        self.pause = true
      end
      
      if Input.trigger?(Input::B)
        if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
          $game_system.se_play($data_system.cancel_se)
          $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
          terminate_message
        end
      end
      
      if Input.trigger?(Input::C)
        if $game_temp.choice_max > 0
          $game_system.se_play($data_system.decision_se)
          $game_temp.choice_proc.call(self.index)
        end
        if @mid_stop
          @mid_stop = false
          return
        else
          terminate_message
        end
      end
      return
    end
    
    if @fade_out == false and $game_temp.message_text != nil
      @contents_showing = true
      $game_temp.message_window_showing = true
      refresh
      Graphics.frame_reset
      self.visible = true
      self.contents_opacity = 0
      if @input_number_window != nil
        @input_number_window.contents_opacity = 0
      end
      @fade_in = true
      return
    end
    
    if self.visible
      @fade_out = true
      self.opacity -= 48
      if self.opacity == 0
        self.visible = false
        @fade_out = false
        $game_temp.message_window_showing = false
      end
      return
    end
    end
    
    #--------------------------------------------------------------------------
    
    def get_character(parameter)
    
    case parameter
    when 0  
      return $game_player
    else 
      events = $game_map.events
      return events == nil ? nil : events[parameter]
    end
    end
    
    #--------------------------------------------------------------------------
    
    def reset_window
    
    #MESSAGE_SIZE
    #MESSAGE_POSITION
    
    if @popchar >= 0
      events = $game_map.events
      if events != nil
        character = get_character(@popchar)
        x = [[character.screen_x -  $ams.event_message_x_ofset - self.width / 2, 4].max, 636 - self.width].min
        y = [[character.screen_y - $ams.event_message_y_ofset - self.height, 4].max, 476 - self.height].min
        self.x = x
        self.y = y
      end
    elsif @popchar == -1
      self.x = -4
      self.y = -4
      self.width = 648
      self.height = 488
    else
      if $game_temp.in_battle
        self.y = 16
      else
        case $game_system.message_position
        when 0  
          self.y = $ams.message_y_top
        when 1  
          self.y = $ams.message_y_middle
        when 2  
          self.y = $ams.message_y_bottom
        end
        self.x = $ams.message_x
        if @face_file == nil
          self.width = $ams.message_width
          self.x = $ams.message_x
        else
          if self.width <= 600
            self.width = 600
            self.x -=60
           end 
        end
        self.height = $ams.message_height
      end
    end
    self.contents = Bitmap.new(self.width - 32, self.height - 32)
    self.contents.font.color = text_color($ams.message_box_text_color)
    self.contents.font.name = $ams.font_type
     self.contents.font.size = $ams.font_size
    if @face_file != nil
      self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))
    end
    if @popchar == -1
      self.opacity = 255
      self.back_opacity = 0
    elsif $game_system.message_frame == 0
      self.opacity = 255
      self.back_opacity = $ams.message_box_opacity
    else
      self.opacity = 0
      self.back_opacity = $ams.message_box_opacity
    end
    end
    
    #--------------------------------------------------------------------------
    
    def gaiji_draw(x, y, num)
    
    if @gaiji_cache == nil
      return 0
    else
      if @gaiji_cache.width < num * 24
        return 0
      end
    
      if self.contents.font.size >= 20 and self.contents.font.size <= 24
        size = 24
      else
        size = self.contents.font.size * 100 * 24 / 2200
      end
    
      self.contents.stretch_blt(Rect.new(x, y, size, size), @gaiji_cache, Rect.new(num * 24, 0, 24, 24))
    
      if $soundname_on_speak != "" then
        Audio.se_play($soundname_on_speak)
      end
      return size
    end
    end
    
    #--------------------------------------------------------------------------
    
    def line_height
    return 32
    
    if self.contents.font.size >= 20 and self.contents.font.size <= 24
      return 32
    else
      return self.contents.font.size * 15 / 10
    end
    end
    
    #--------------------------------------------------------------------------
    
    def ruby_draw_text(target, x, y, str,opacity)
    
    sizeback = target.font.size
    target.font.size * 3 / 2 > 32 ? rubysize = 32 - target.font.size : rubysize = target.font.size / 2
    rubysize = [rubysize, 6].max
    opacity = [[opacity, 0].max, 255].min
    split_s = str.split(/,/)
    split_s[0] == nil ? split_s[0] = "" : nil
    split_s[1] == nil ? split_s[1] = "" : nil
    
    height = sizeback + rubysize
    width  = target.text_size(split_s[0]).width
    
    target.font.size = rubysize
    ruby_width = target.text_size(split_s[1]).width
    target.font.size = sizeback
    
    buf_width = [target.text_size(split_s[0]).width, ruby_width].max
    
    width - ruby_width != 0 ? sub_x = (width - ruby_width) / 2 : sub_x = 0
    
    if opacity == 255
      target.font.size = rubysize
      target.draw_text(x + sub_x, y - target.font.size, target.text_size(split_s[1]).width, target.font.size, split_s[1])
      target.font.size = sizeback
      target.draw_text(x, y, width, target.font.size, split_s[0])
      return width
    else
      if @opacity_text_buf.width < buf_width or @opacity_text_buf.height < height
        @opacity_text_buf.dispose
        @opacity_text_buf = Bitmap.new(buf_width, height)
      else
        @opacity_text_buf.clear
      end
      @opacity_text_buf.font.size = rubysize
      @opacity_text_buf.draw_text(0 , 0, buf_width, rubysize, split_s[1], 1)
      @opacity_text_buf.font.size = sizeback
      @opacity_text_buf.draw_text(0 , rubysize, buf_width, sizeback, split_s[0], 1)
      if sub_x >= 0
        target.blt(x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)
      else
        target.blt(x + sub_x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)
      end
      return width
    end
    end
    
    #--------------------------------------------------------------------------
    
    def convart_value(option, index)
    option == nil ? option = "" : nil
    option.downcase!
    
    case option
    when "i"
      unless $data_items[index].name == nil
        r = sprintf("\030[%s]%s", $data_items[index].icon_name, $data_items[index].name)
      end
    when "w"
      unless $data_weapons[index].name == nil
        r = sprintf("\030[%s]%s", $data_weapons[index].icon_name, $data_weapons[index].name)
      end
    when "a"
      unless $data_armors[index].name == nil
        r = sprintf("\030[%s]%s", $data_armors[index].icon_name, $data_armors[index].name)
      end
    when "s"
      unless $data_skills[index].name == nil
        r = sprintf("\030[%s]%s", $data_skills[index].icon_name, $data_skills[index].name)
      end
    else
      r = $game_variables[index]
    end
    
    r == nil ? r = "" : nil
    return r
    end
    
    #--------------------------------------------------------------------------
    
    def dispose
    terminate_message
    
    if @gaiji_cache != nil
      unless @gaiji_cache.disposed?
        @gaiji_cache.dispose
      end
    end
    
    unless @opacity_text_buf.disposed?
      @opacity_text_buf.dispose
    end
    
    $game_temp.message_window_showing = false
    if @input_number_window != nil
      @input_number_window.dispose
    end
    super
    end
    
    #--------------------------------------------------------------------------
    
    def update_cursor_rect
    if @index >= 0
      n = $game_temp.choice_start + @index
      self.cursor_rect.set(8 + @indent + @face_indent, n * 32, @cursor_width, 32)
    else
      self.cursor_rect.empty
    end
    end
    end
    #=========================================
    # ▲ CLASS Window_Message Ends
    #=========================================
    
    
    #=========================================
    # ▼ Class Window_Frame Begins
    #=========================================
    class Window_Frame < Window_Base
    
    def initialize(x, y, width, height)
    super(x, y, width, height)
    self.windowskin = RPG::Cache.windowskin($ams.name_box_skin)
    self.contents = nil
    end
    
    #--------------------------------------------------------------------------
    
    def dispose
    super
    end
    end
    #=========================================
    # ▲ CLASS Window_Frame Ends
    #=========================================
    
    
    #=========================================
    # ▼ CLASS Game_Map Additional Code Begins
    #=========================================
    class Game_Map
    
    #Dubealex's Addition (from XRXS) to show Map Name on screen
    def name
     $map_infos[@map_id]
    end
    end
    #=========================================
    # ▲ CLASS Game_Map Additional Code Ends
    #=========================================
    
    
    #=========================================
    # ▼ CLASS Scene_Title Additional Code Begins
    #=========================================
    class Scene_Title
    
    #Dubealex's Addition (from XRXS) to show Map Name on screen
     $map_infos = load_data("Data/MapInfos.rxdata")
     for key in $map_infos.keys
       $map_infos[key] = $map_infos[key].name
     end
     
     #Dubealex's addition to save data from the AMS in the save files
     $ams = AMS.new
     
    end
    #=========================================
    # ▲ CLASS Scene_Title Additional Code Ends
    #=========================================
    
    
    #=========================================
    # ▼ CLASS Window_Base Additional Code Begins
    #=========================================
    class Window_Base < Window
    
    #Dubealex Addition (from Phylomorphis) to use HTML Hex Code Colors
    def hex_color(string)
      red = 0
      green = 0
      blue = 0
      if string.size != 6
        print("Hex strings must be six characters long.")
        print("White text will be used.")
        return Color.new(255, 255, 255, 255)
      end
      for i in 1..6
        s = string.slice!(/./m)
        if s == "#"
          print("Hex color string may not contain the \"#\" character.")
          print("White text will be used.")
          return Color.new(255, 255, 255, 255)
        end
        value = hex_convert(s)
        if value == -1
          print("Error converting hex value.")
          print("White text will be used.")
          return Color.new(255, 255, 255, 255)
        end
        case i
        when 1
          red += value * 16
        when 2
          red += value
        when 3
          green += value * 16
        when 4
          green += value
        when 5
          blue += value * 16
        when 6
          blue += value
        end
      end
      return Color.new(red, green, blue, 255)
    end
    
    #--------------------------------------------------------------------------
    
    def hex_convert(character)
      case character
       when "0"
         return 0
      when "1"
         return 1
      when "2"
         return 2
      when "3"
         return 3
      when "4"
         return 4
      when "5"
         return 5
      when "6"
         return 6
      when "7"
         return 7
      when "8"
         return 8
      when "9"
         return 9
      when "A"
         return 10
      when "B"
         return 11
      when "C"
         return 12
      when "D"
         return 13
      when "E"
         return 14
      when "F"
         return 15
       end
      return -1
    end
    end
    #=========================================
    # ▲ CLASS Window_Base Additional Code Ends
    #=========================================
    
    
    #=========================================
    # ▼ Class Air_Text Begins 
    #=========================================
    class Air_Text < Window_Base
    
    def initialize(x, y, designate_text, color=0)
     
    super(x-16, y-16, 32 + designate_text.size * 12, 56)
    self.opacity      = 0
    self.back_opacity = 0
    self.contents = Bitmap.new(self.width - 32, self.height - 32)
    w = self.contents.width
    h = self.contents.height
    self.contents.font.name = $ams.name_font_type
    self.contents.font.size = $ams.name_font_size
    self.contents.font.color = text_color(color)
    self.contents.draw_text(0, 0, w, h, designate_text)
    end
    
    #--------------------------------------------------------------------------
    
    def dispose
    self.contents.clear
    super
    end
    end 
    #==========================================
    # ▲ CLASS Air_Text  Ends
    #==========================================
    
    
    #===================================================
    # ▼ CLASS Scene_Save Additional Code Begins
    #===================================================
    class Scene_Save < Scene_File
     
     alias ams_original_write_save_data write_save_data
     
     def write_save_data(file)
       ams_original_write_save_data(file)
       Marshal.dump($ams, file)
     end
     
    end
    #===================================================
    # ▲ CLASS Scene_Save Additional Code Ends
    #=================================================== 
    
    
    #===================================================
    # ▼ CLASS Scene_Load Additional Code Begins
    #===================================================
    class Scene_Load < Scene_File
     
     alias ams_original_read_save_data read_save_data
     
     def read_save_data(file)
       ams_original_read_save_data(file)
       $ams      = Marshal.load(file)
     end
     
    end
    #===================================================
    # ▲ CLASS Scene_Load Additional Code Ends
    #===================================================
    Die Verwendung wird im Skript in den Comments erklärt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •