Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

How to chance color?

Code:
class Book_Event

  attr_accessor :Open_Book_SE
  attr_accessor :Close_Book_SE
  attr_accessor :Prev_Page_SE
  attr_accessor :Next_Page_SE
  attr_accessor :Book_Image_BG
  attr_accessor :Next_Page
  attr_accessor :Prev_Page
  attr_accessor :type
  attr_accessor :page_number1
  attr_accessor :page_number2
  attr_accessor :Book_Font_Opacity
  attr_accessor :Book_Overlay_BG
  attr_accessor :regexp
  attr_accessor :title_screen
  attr_accessor :book_name
  
  def initialize(book_name=empty,type=Book",opacity=255,title_screen=0)
    $defaultfontsize = 14
    $defaultfonttype = "Teletype"
    
    $book_name = book_name
    self.Open_Book_SE = "Audio/BGS/Books/Open_Book.wav"
    self.Close_Book_SE = "Audio/BGS/Books/Close_Book.wav"
    self.Prev_Page_SE = "Audio/BGS/Books/Prev_Page.wav"
    self.Next_Page_SE = "Audio/BGS/Books/Next_Page.wav"
    if type == "Book"
      self.Book_Image_BG = "Book_Cover"
    else
      self.Book_Image_BG = type
    end
    self.Next_Page = "Next_Page"
    self.Prev_Page = "Prev_Page"
    $type = type
    self.page_number1 = 1
    self.page_number2 = 2
    self.regexp = /bi_/
    self.title_screen = title_screen
    $opacity = opacity

    if title_screen == 1
      $Book_Font_Name = "FixedsysTTF"
      $Book_Font_Color = 8
      $Book_Font_Size = 16
    elsif $type == "Scroll"
      $Book_Font_Name = "Comic Sans MS"
      $Book_Font_Color = 8
      $Book_Font_Size = 16
    elsif $type == "Paper"
      $Book_Font_Name = "Comic Sans MS"
      $Book_Font_Color = 8
      $Book_Font_Size = 22
    else
      $Book_Font_Name = "Comic Sans MS"
      $Book_Font_Color = 8
      $Book_Font_Size = 18
    end
    
    $Book_Text_New = []
    
#   Open our Book Image
    @book_image = Sprite.new
    @book_image.bitmap = RPG::Cache.picture("Book_Type/"+self.Book_Image_BG)
    @book_image.x = 0
    @book_image.y = 0
    @book_image.z = 100

    fname = "Data/Books/" + book_name + ".book"
    if FileTest.exist?(fname)
      f = File.open(fname)
      $Book_Text = f.readlines
      
      for line in 1...4
        $Book_Text_New[line] = $Book_Text[line].chop
      end
      
      @True_Line = 5
      for line in 5...$Book_Text.size
        if line < $Book_Text.size-1
          $Image_Text = $Book_Text[line].chop
        elsif line == $Book_Text.size-1
          $Image_Text1 = $Book_Text[line]
          $Image_Text2 = $Image_Text1
          $Image_Text2 = $Image_Text2.chop
          match1 = self.regexp.match($Image_Text1)
          match2 = self.regexp.match($Image_Text2)
          if match1
            $Image_Text = $Image_Text1
          elsif match2
            $Image_Text = $Image_Text2
          else
            $Image_Text = $Book_Text[line]
          end
        end
        $Book_Text_New[@True_Line] = $Image_Text
        @True_Line+=1
      end
      $Book_Text = $Book_Text_New
      $pages = ($Book_Text.size/14)
      if ($Book_Text.size%14) > 0
        $pages+=1
      end
      
      if $type == "Scroll"
        $start_line = -9
      elsif $type == "Paper"
        $start_line = -9
      else
        $start_line = -9
      end
    else
      p "Error! #{fname} Doesn't exist."
    end
  end
 
  def main
    Audio.se_play(self.Open_Book_SE, 100, 100)
    @Page1 = Page1.new
    if $type == "Scroll"
      @Page1.x =80
      @Page1.y =90
      @Page1.height = 450
      @Page1.width = 450
    elsif $type == "Paper"
      @Page1.x =50
      @Page1.y =50
      @Page1.height = 450
      @Page1.width = 550
    else
      @Page1.x =40
      @Page1.y =20
      @Page1.height = 450
      @Page1.width = 280
    end
    @Page1.z = 200
    @Page1.opacity = 0
   
    @Page2 = Page2.new
    @Page2.x =320
    @Page2.y =20
    @Page2.height = 450
    @Page2.width = 290
    @Page2.z = 200
    @Page2.opacity = 0

    @window4 = Book_Window_Command.new
    @window4.x=70
    @window4.y=370
    @window4.height=64
    @window4.width=500
    @window4.index = 1
    @window4.z = 300
    @window4.opacity = 0
    @window4.cursor_rect.set(0, 0, 0, 0)
    @Page1.update(self.page_number1,self.page_number2,self.regexp)
    @Page2.update(self.page_number1,self.page_number2,self.regexp)

  #This is what makes the scene update itself constantly
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
  
  # Close the windows afte ESC has been pressed
    Graphics.freeze
    @Page1.close
    @Page1.dispose
    @Page2.close
    @Page2.dispose
    @window4.dispose
    @book_image.dispose
    if @Book_Overlay
      @Book_Overlay.dispose
    end
    if @book_image_0
      @book_image_0.dispose
      @book_image_0= nil
    end
  end

  def update
    @window4.update
    if (self.page_number1 <= 1) && (self.page_number2 >= $pages) && (($type =="Scroll") || ($type == "Paper"))
    elsif self.page_number2 >= $pages
      if (self.page_number1 >1) && ($type !="Scroll") && ($type != "Paper")
        @window4.index = 0
        @window4.update
      end
    elsif self.page_number1 <= 1
      if (self.page_number2 < $pages) && ($type !="Scroll") && ($type != "Paper")
        @window4.index = 1
        @window4.update
      end
    end
    @window4.cursor_rect.set(0, 0, 0, 0)

    if Input.repeat?(Input::LEFT)
      prev_page
    end
    if Input.repeat?(Input::RIGHT)
      next_page
    end
    
    if Input.trigger?(Input::B)
      Audio.se_play(self.Close_Book_SE, 100, 100)
      if self.title_screen == 0
        $scene = Scene_Map.new
        $game_map.autoplay
      else
        $scene = Scene_Title.new
        return
      end
    end
  
    if Input.trigger?(Input::C)
    case @window4.index
      when 0
        prev_page
      when 1
        next_page
      end
    end
  end
  
  def prev_page
    if (self.page_number1 == 1)
      if ($type=="Scroll")
        self.page_number1=1
        self.page_number2=1
        $start_line=-9
      elsif ($type=="Paper")
        self.page_number1=1
        self.page_number1=1
        $start_line=-9
      else
        self.page_number1=1
        self.page_number2=2
        $start_line=-9
      end
    elsif (self.page_number1 != 1) && ($type=="Scroll")
      Audio.se_play(self.Prev_Page_SE, 100, 100)
      self.page_number1-=1
      self.page_number2-=1
      $start_line-=14
    elsif (self.page_number1 != 1) && ($type=="Paper")
      Audio.se_play(self.Prev_Page_SE, 100, 100)
      self.page_number1-=1
      self.page_number2-=1
      $start_line-=14
    else
      Audio.se_play(self.Prev_Page_SE, 100, 100)
      
      if (page_number1 == 2)
        self.Book_Image_BG = "Book_Cover"
        @book_image.bitmap = RPG::Cache.picture("Book_Type/"+self.Book_Image_BG)
        self.page_number1-=1
        self.page_number2-=1
        $start_line-=14
      else
        self.page_number1-=2
        self.page_number2-=2
        $start_line-=28
      end
    end
    @Page1.update(self.page_number1,self.page_number2,self.regexp)
    @Page2.update(self.page_number1,self.page_number2,self.regexp)
  end  

  def next_page
    if (self.page_number2 <= $pages)
      if ($type=="Scroll")
        Audio.se_play(self.Next_Page_SE, 100, 100)
        self.page_number1+=1
        self.page_number2+=1
        $start_line+=14
      elsif ($type == "Paper")
        Audio.se_play(self.Next_Page_SE, 100, 100)
        self.page_number1+=1
        self.page_number2+=1
        $start_line+=14
      else
        Audio.se_play(self.Next_Page_SE, 100, 100)
        if (page_number1 == 1)
          self.Book_Image_BG = "Book"
          @book_image.bitmap = RPG::Cache.picture("Book_Type/"+self.Book_Image_BG)
          self.page_number1+=1
          self.page_number2+=1
          $start_line+=14
        else
          self.page_number1+=2
          self.page_number2+=2
          $start_line+=28
        end
      end
    end
    @Page1.update(self.page_number1,self.page_number2,self.regexp)
    @Page2.update(self.page_number1,self.page_number2,self.regexp)
  end
end
#===================================================
# - CLASS Your_Scene Ends
#===================================================  

#===================================================
# - CLASS Page1 Begins
#
# This window contains the text for the 2nd page of the book
#===================================================

class Page1 < Window_Base
  def initialize
    if ($type == "Scroll")
      super(0, 0, 450,450)
    elsif ($type == "Paper")
      super(0,0,550,450)
    else
      super(0, 0, 280,450)
    end
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $Book_Font_Name
    self.contents.font.size = $Book_Font_Size
    self.contents.font.color = text_color($Book_Font_Color)
    self.contents.clear
  end

  def update(page_number1,page_number2,regexp)
    if @book_image_0
      @book_image_0.dispose
      @book_image_0= nil
    end
    if @book_image_1
      @book_image_1.dispose
      @book_image_1= nil
    end
    if @book_image_2
      @book_image_2.dispose
      @book_image_2= nil
    end
    if @book_image_3
      @book_image_3.dispose
      @book_image_3= nil
    end
    if @book_image_4
      @book_image_4.dispose
      @book_image_4= nil
    end
    if @book_image_5
      @book_image_5.dispose
      @book_image_5= nil
    end
    if @book_image_6
      @book_image_6.dispose
      @book_image_6= nil
    end
    if @book_image_7
      @book_image_7.dispose
      @book_image_7= nil
    end
    if @book_image_8
      @book_image_8.dispose
      @book_image_8= nil
    end
    if @book_image_9
      @book_image_9.dispose
      @book_image_9= nil
    end
    if @book_image_10
      @book_image_10.dispose
      @book_image_10= nil
    end
    if @book_image_11
      @book_image_11.dispose
      @book_image_11= nil
    end
    if @book_image_12
      @book_image_12.dispose
      @book_image_12= nil
    end
    if @book_image_13
      @book_image_13.dispose
      @book_image_13= nil
    end
    if @book_image_14
      @book_image_14.dispose
      @book_image_14= nil
    end
    
    
    self.contents.clear
    if (page_number1 == 1)
      if ($type != "Book")
        if $type == "Scroll"
          $Book_Font_Name = "Comic Sans MS"
          $Book_Font_Color = 8
          $Book_Font_Size = 16
        elsif $type == "Paper"
          $Book_Font_Name = "Comic Sans MS"
          $Book_Font_Color = 8
          $Book_Font_Size = 22
        else
          $Book_Font_Color = 9
          $Book_Font_Name = "FixedsysTTF"
          $Book_Font_Size = 16
        end
        self.contents.font.size = $Book_Font_Size
        self.contents.font.name = $Book_Font_Name
        self.contents.font.color = text_color($Book_Font_Color)
        mby=0
        for line in 1...4
          if $Book_Text[line] != nil
            $Image_Text = $Book_Text[line]
            match = regexp.match($Image_Text)
            if match && ($Image_Text != "bi_blank")
              @book_image_0 = Sprite.new
              @book_image_0.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_0.x = 110
                @book_image_0.y = 180
              elsif $type == "Paper"
                @book_image_0.x = 65
                @book_image_0.y = 130
              else
                @book_image_0.x = 70
                @book_image_0.y = 120
              end
              @book_image_0.opacity = $opacity
              @book_image_0.z = 500
            elsif ($Image_Text != "bi_blank")
              if ($type == "Scroll")
                self.contents.draw_text(25, mby+15, 450, mby+30, $Book_Text[line])
              elsif ($type == "Paper")
                self.contents.draw_text(10, mby+15, 600, mby+30, $Book_Text[line])
              else
                self.contents.draw_text(5, mby+15, 250, mby+30, $Book_Text[line])
              end
            end
          end
          mby+=15
        end
      end
    else
      if $type == "Scroll"
        $Book_Font_Name = "Comic Sans MS"
        $Book_Font_Color = 8
        $Book_Font_Size = 16
      elsif $type == "Paper"
        $Book_Font_Name = "Comic Sans MS"
        $Book_Font_Color = 8
        $Book_Font_Size = 22
      else
        $Book_Font_Name = "Comic Sans MS"
        $Book_Font_Color = 8
        $Book_Font_Size = 18
      end
      self.contents.font.size = $Book_Font_Size
      self.contents.font.name = $Book_Font_Name
      self.contents.font.color = text_color($Book_Font_Color)
      mby=0
      for line in $start_line...$start_line+14
        if $Book_Text[line] != nil
          $Image_Text = $Book_Text[line]
          match = regexp.match($Image_Text)
          if match
            if not @book_image_1
              @book_image_1 = Sprite.new
              @book_image_1.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_1.x = 110
                @book_image_1.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_1.x = 65
                @book_image_1.y = ((mby/15)*23)+65
              else
                @book_image_1.x = 70
                @book_image_1.y = ((mby/15)*22.5)+55
              end
              @book_image_1.opacity = $opacity
              @book_image_1.z = 500
            elsif not @book_image_2
              @book_image_2 = Sprite.new
              @book_image_2.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_2.x = 110
                @book_image_2.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_2.x = 65
                @book_image_2.y = ((mby/15)*23)+65
              else
                @book_image_2.x = 70
                @book_image_2.y = ((mby/15)*22.5)+55
              end
              @book_image_2.opacity = $opacity
              @book_image_2.z = 500
            elsif not @book_image_3
              @book_image_3 = Sprite.new
              @book_image_3.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_3.x = 110
                @book_image_3.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_3.x = 65
                @book_image_3.y = ((mby/15)*23)+65
              else
                @book_image_3.x = 70
                @book_image_3.y = ((mby/15)*22.5)+55
              end
              @book_image_3.opacity = $opacity
              @book_image_3.z = 500
            elsif not @book_image_4
              @book_image_4 = Sprite.new
              @book_image_4.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_4.x = 110
                @book_image_4.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_4.x = 65
                @book_image_4.y = ((mby/15)*23)+65
              else
                @book_image_4.x = 70
                @book_image_4.y = ((mby/15)*22.5)+55
              end
              @book_image_4.opacity = $opacity
              @book_image_4.z = 500
            elsif not @book_image_5
              @book_image_5 = Sprite.new
              @book_image_5.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_5.x = 110
                @book_image_5.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_5.x = 65
                @book_image_5.y = ((mby/15)*23)+65
              else
                @book_image_5.x = 70
                @book_image_5.y = ((mby/15)*22.5)+55
              end
              @book_image_5.opacity = $opacity
              @book_image_5.z = 500
            elsif not @book_image_6
              @book_image_6 = Sprite.new
              @book_image_6.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_6.x = 110
                @book_image_6.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_6.x = 65
                @book_image_6.y = ((mby/15)*23)+65
              else
                @book_image_6.x = 70
                @book_image_6.y = ((mby/15)*22.5)+55
              end
              @book_image_6.opacity = $opacity
              @book_image_6.z = 500
            elsif not @book_image_7
              @book_image_7 = Sprite.new
              @book_image_7.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_7.x = 110
                @book_image_7.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_7.x = 65
                @book_image_7.y = ((mby/15)*23)+65
              else
                @book_image_7.x = 70
                @book_image_7.y = ((mby/15)*22.5)+55
              end
              @book_image_7.opacity = $opacity
              @book_image_7.z = 500
            elsif not @book_image_8
              @book_image_8 = Sprite.new
              @book_image_8.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_8.x = 110
                @book_image_8.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_8.x = 65
                @book_image_8.y = ((mby/15)*23)+65
              else
                @book_image_8.x = 70
                @book_image_8.y = ((mby/15)*22.5)+55
              end
              @book_image_8.opacity = $opacity
              @book_image_8.z = 500
            elsif not @book_image_9
              @book_image_9 = Sprite.new
              @book_image_9.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_9.x = 110
                @book_image_9.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_9.x = 65
                @book_image_9.y = ((mby/15)*23)+65
              else
                @book_image_9.x = 70
                @book_image_9.y = ((mby/15)*22.5)+55
              end
              @book_image_9.opacity = $opacity
              @book_image_9.z = 500
            elsif not @book_image_10
              @book_image_10 = Sprite.new
              @book_image_10.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_10.x = 110
                @book_image_10.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_10.x = 65
                @book_image_10.y = ((mby/15)*23)+65
              else
                @book_image_10.x = 70
                @book_image_10.y = ((mby/15)*22.5)+55
              end
              @book_image_10.opacity = $opacity
              @book_image_10.z = 500
            elsif not @book_image_11
              @book_image_11 = Sprite.new
              @book_image_11.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_11.x = 110
                @book_image_11.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_11.x = 65
                @book_image_11.y = ((mby/15)*23)+65
              else
                @book_image_11.x = 70
                @book_image_11.y = ((mby/15)*22.5)+55
              end
              @book_image_11.opacity = $opacity
              @book_image_11.z = 500
            elsif not @book_image_12
              @book_image_12 = Sprite.new
              @book_image_12.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_12.x = 110
                @book_image_12.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_12.x = 65
                @book_image_12.y = ((mby/15)*23)+65
              else
                @book_image_12.x = 70
                @book_image_12.y = ((mby/15)*22.5)+55
              end
              @book_image_12.opacity = $opacity
              @book_image_12.z = 500
            elsif not @book_image_13
              @book_image_13 = Sprite.new
              @book_image_13.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_13.x = 110
                @book_image_13.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_13.x = 65
                @book_image_13.y = ((mby/15)*23)+65
              else
                @book_image_13.x = 70
                @book_image_13.y = ((mby/15)*22.5)+55
              end
              @book_image_13.opacity = $opacity
              @book_image_13.z = 500
            elsif not @book_image_14
              @book_image_14 = Sprite.new
              @book_image_14.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              if $type == "Scroll"
                @book_image_14.x = 110
                @book_image_14.y = ((mby/15)*23)+100
              elsif $type == "Paper"
                @book_image_14.x = 65
                @book_image_14.y = ((mby/15)*23)+65
              else
                @book_image_14.x = 70
                @book_image_14.y = ((mby/15)*22.5)+55
              end
              @book_image_14.opacity = $opacity
              @book_image_14.z = 500
            end
          else
            $Book_Text_Check=$Book_Text[line]
            if not (line == $start_line) && ($Book_Text_Check == "")
              if ($type=="Scroll")
                self.contents.draw_text(25, mby, 450, mby+15, $Book_Text[line])
              elsif ($type == "Paper")
                self.contents.draw_text(10, mby, 600, mby+20, $Book_Text[line])
              else
                self.contents.draw_text(5, mby+15, 240, mby+30, $Book_Text[line])
              end
            end
          end
          mby+=15
        end
        if (line == ($start_line+13)) && ($type != "Scroll") && ($type != "Paper")
          temp_page = page_number1 - 1
          self.contents.draw_text(90, 240, 140, 255, temp_page.to_s)
        end
      end
    end
  end
  
  def close
    if @book_image_0
      @book_image_0.dispose
      @book_image_0= nil
    end
    if @book_image_1
      @book_image_1.dispose
      @book_image_1= nil
    end
    if @book_image_2
      @book_image_2.dispose
      @book_image_2= nil
    end
    if @book_image_3
      @book_image_3.dispose
      @book_image_3= nil
    end
    if @book_image_4
      @book_image_4.dispose
      @book_image_4= nil
    end
    if @book_image_5
      @book_image_5.dispose
      @book_image_5= nil
    end
    if @book_image_6
      @book_image_6.dispose
      @book_image_6= nil
    end
    if @book_image_7
      @book_image_7.dispose
      @book_image_7= nil
    end
    if @book_image_8
      @book_image_8.dispose
      @book_image_8= nil
    end
    if @book_image_9
      @book_image_9.dispose
      @book_image_9= nil
    end
    if @book_image_10
      @book_image_10.dispose
      @book_image_10= nil
    end
    if @book_image_11
      @book_image_11.dispose
      @book_image_11= nil
    end
    if @book_image_12
      @book_image_12.dispose
      @book_image_12= nil
    end
    if @book_image_13
      @book_image_13.dispose
      @book_image_13= nil
    end
    if @book_image_14
      @book_image_14.dispose
      @book_image_14= nil
    end
  end
  
end
#===================================================
# - CLASS Page1 Ends
#===================================================


#===================================================
# - CLASS Page2 Begins
#
# This window contains the text for the 2nd page of the book
#===================================================
class Page2 < Window_Base
  def initialize
    super(0, 0, 290,450)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $Book_Font_Name
    self.contents.font.size = $Book_Font_Size
    self.contents.font.color = text_color($Book_Font_Color)
    self.contents.clear
  end

  def update(page_number1,page_number2,regexp)
    if @book_image_0
      @book_image_0.dispose
      @book_image_0 = nil
    end
    if @book_image_15
      @book_image_15.dispose
      @book_image_15 = nil
    end
    if @book_image_16
      @book_image_16.dispose
      @book_image_16 = nil
    end
    if @book_image_17
      @book_image_17.dispose
      @book_image_17 = nil
    end
    if @book_image_18
      @book_image_18.dispose
      @book_image_18 = nil
    end
    if @book_image_19
      @book_image_19.dispose
      @book_image_19 = nil
    end
    if @book_image_20
      @book_image_20.dispose
      @book_image_20 = nil
    end
    if @book_image_21
      @book_image_21.dispose
      @book_image_21 = nil
    end
    if @book_image_22
      @book_image_22.dispose
      @book_image_22 = nil
    end
    if @book_image_23
      @book_image_23.dispose
      @book_image_23 = nil
    end
    if @book_image_24
      @book_image_24.dispose
      @book_image_24 = nil
    end
    if @book_image_25
      @book_image_25.dispose
      @book_image_25 = nil
    end
    if @book_image_26
      @book_image_26.dispose
      @book_image_26 = nil
    end
    if @book_image_27
      @book_image_27.dispose
      @book_image_27 = nil
    end
    if @book_image_28
      @book_image_28.dispose
      @book_image_28 = nil
    end

    self.contents.clear
    if (page_number1 == 1) && ($type=="Book")
      if $type == "Scroll"
        $Book_Font_Name = "Comic Sans MS"
        $Book_Font_Color = 8
        $Book_Font_Size = 16
      elsif $type == "Paper"
        $Book_Font_Name = "Comic Sans MS"
        $Book_Font_Color = 8
        $Book_Font_Size = 22
      else
        $Book_Font_Color = 9
        $Book_Font_Name = "FixedsysTTF"
        $Book_Font_Size = 16
      end
      self.contents.font.size = $Book_Font_Size
      self.contents.font.name = $Book_Font_Name
      self.contents.font.color = text_color($Book_Font_Color)
      mby=0
      for line in 1...4
        if $Book_Text[line] != nil
          $Image_Text = $Book_Text[line]
          match = regexp.match($Image_Text)
          if match && ($Image_Text != "bi_blank")
            @book_image_0 = Sprite.new
            @book_image_0.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
            if $type == "Scroll"
              @book_image_0.x = 110
              @book_image_0.y = 180
            elsif $type == "Paper"
              @book_image_0.x = 65
              @book_image_0.y = 130
            else
              @book_image_0.x = 320
              @book_image_0.y = 100
            end
            @book_image_0.opacity = $opacity
            @book_image_0.z = 500
          elsif ($Image_Text != "bi_blank")
            if ($type == "Scroll")
              self.contents.draw_text(25, mby+15, 450, mby+30, $Book_Text[line])
            elsif ($type == "Paper")
              self.contents.draw_text(10, mby+15, 600, mby+30, $Book_Text[line])
            else
              self.contents.draw_text(5, mby+15, 250, mby+30, $Book_Text[line])
            end
          end
        end
        mby+=15
      end
    else
      if $type == "Scroll"
        $Book_Font_Name = "Comic Sans MS"
        $Book_Font_Color = 8
        $Book_Font_Size = 16
      elsif $type == "Paper"
        $Book_Font_Name = "Comic Sans MS"
        $Book_Font_Color = 8
        $Book_Font_Size = 22
      else
        $Book_Font_Color = 8
        $Book_Font_Name = "Comic Sans MS"
        $Book_Font_Size = 22
      end
      self.contents.font.size = $Book_Font_Size
      self.contents.font.name = $Book_Font_Name
      self.contents.font.color = text_color($Book_Font_Color)
      mby=0
      for line in ($start_line+14)...($start_line+28)
        if $Book_Text[line] != nil
          $Image_Text = $Book_Text[line]
          match = regexp.match($Image_Text)
          if match && ($type != "Scroll") && ($type != "Paper")
            if not @book_image_15
              @book_image_15 = Sprite.new
              @book_image_15.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_15.x = 350
              @book_image_15.y = ((mby/15)*22.5)+55
              @book_image_15.opacity = $opacity
              @book_image_15.z = 500
            elsif not @book_image_16
              @book_image_16 = Sprite.new
              @book_image_16.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_16.x = 350
              @book_image_16.y = ((mby/15)*22.5)+55
              @book_image_16.opacity = $opacity
              @book_image_16.z = 500
            elsif not @book_image_17
              @book_image_17 = Sprite.new
              @book_image_17.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_17.x = 350
              @book_image_17.y = ((mby/15)*22.5)+55
              @book_image_17.opacity = $opacity
              @book_image_17.z = 500
            elsif not @book_image_18
              @book_image_18 = Sprite.new
              @book_image_18.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_18.x = 350
              @book_image_18.y = ((mby/15)*22.5)+55
              @book_image_18.opacity = $opacity
              @book_image_18.z = 500
            elsif not @book_image_19
              @book_image_19 = Sprite.new
              @book_image_19.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_19.x = 350
              @book_image_19.y = ((mby/15)*22.5)+55
              @book_image_19.opacity = $opacity
              @book_image_19.z = 500
            elsif not @book_image_20
              @book_image_20 = Sprite.new
              @book_image_20.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_20.x = 350
              @book_image_20.y = ((mby/15)*22.5)+55
              @book_image_20.opacity = $opacity
              @book_image_20.z = 500
            elsif not @book_image_21
              @book_image_21 = Sprite.new
              @book_image_21.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_21.x = 350
              @book_image_21.y = ((mby/15)*22.5)+55
              @book_image_21.opacity = $opacity
              @book_image_21.z = 500
            elsif not @book_image_22
              @book_image_22 = Sprite.new
              @book_image_22.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_22.x = 350
              @book_image_22.y = ((mby/15)*22.5)+55
              @book_image_22.opacity = $opacity
              @book_image_22.z = 500
            elsif not @book_image_23
              @book_image_23 = Sprite.new
              @book_image_23.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_23.x = 350
              @book_image_23.y = ((mby/15)*22.5)+55
              @book_image_23.opacity = $opacity
              @book_image_23.z = 500
            elsif not @book_image_24
              @book_image_24 = Sprite.new
              @book_image_24.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_24.x = 350
              @book_image_24.y = ((mby/15)*22.5)+55
              @book_image_24.opacity = $opacity
              @book_image_24.z = 500
            elsif not @book_image_25
              @book_image_25 = Sprite.new
              @book_image_25.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_25.x = 350
              @book_image_25.y = ((mby/15)*22.5)+55
              @book_image_25.opacity = $opacity
              @book_image_25.z = 500
            elsif not @book_image_26
              @book_image_26 = Sprite.new
              @book_image_26.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_26.x = 350
              @book_image_26.y = ((mby/15)*22.5)+55
              @book_image_26.opacity = $opacity
              @book_image_26.z = 500
            elsif not @book_image_27
              @book_image_27 = Sprite.new
              @book_image_27.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_27.x = 350
              @book_image_27.y = ((mby/15)*22.5)+55
              @book_image_27.opacity = $opacity
              @book_image_27.z = 500
            elsif not @book_image_28
              @book_image_28 = Sprite.new
              @book_image_28.bitmap = RPG::Cache.picture("Books/"+$book_name+"/"+$Image_Text)
              @book_image_28.x = 350
              @book_image_28.y = ((mby/15)*22.5)+55
              @book_image_28.opacity = $opacity
              @book_image_28.z = 500
            end
          else
            if ($type != "Scroll") && ($type != "Paper")
              self.contents.draw_text(5, mby+15, 250, mby+30, $Book_Text[line])
            end
          end
        mby+=15
      end
    end
    if (line == ($start_line+27)) && ($type != "Scroll") && ($type != "Paper")
      temp_page = page_number2 - 1
      self.contents.draw_text(120, 240, 180, 255, temp_page.to_s)
    end
  end
  end

    
  def close
    if @book_image_0
      @book_image_0.dispose
      @book_image_0= nil
    end
    if @book_image_15
      @book_image_15.dispose
      @book_image_15 = nil
    end
    if @book_image_16
      @book_image_16.dispose
      @book_image_16 = nil
    end
    if @book_image_17
      @book_image_17.dispose
      @book_image_17 = nil
    end
    if @book_image_18
      @book_image_18.dispose
      @book_image_18 = nil
    end
    if @book_image_19
      @book_image_19.dispose
      @book_image_19 = nil
    end
    if @book_image_20
      @book_image_20.dispose
      @book_image_20 = nil
    end
    if @book_image_21
      @book_image_21.dispose
      @book_image_21 = nil
    end
    if @book_image_22
      @book_image_22.dispose
      @book_image_22 = nil
    end
    if @book_image_23
      @book_image_23.dispose
      @book_image_23 = nil
    end
    if @book_image_24
      @book_image_24.dispose
      @book_image_24 = nil
    end
    if @book_image_25
      @book_image_25.dispose
      @book_image_25 = nil
    end
    if @book_image_26
      @book_image_26.dispose
      @book_image_26 = nil
    end
    if @book_image_27
      @book_image_27.dispose
      @book_image_27 = nil
    end
    if @book_image_28
      @book_image_28.dispose
      @book_image_28 = nil
    end
  end
end
#===================================================
# - CLASS Page2 Ends
#=================================================== 

#===================================================
# - CLASS Book_Window_Command Starts
#
# This is a modified section of the original Window_ShopCommand script. It has been
# stripped down and modified to use only the "Prev" and "Next" functions. Even though
# the @commands has items in it, they are not shown. This is not required since this
# script uses pictures to show the selection for page flipping.
#=================================================== 
class Book_Window_Command < Window_Selectable
  def initialize
    super(0, 64, 480, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $defaultfonttype
    self.contents.font.size = $defaultfontsize
    @item_max = 2
    @column_max = 2
    @commands = ["Prev", "Next]
    self.index = 0
  end
end
#===================================================
# - CLASS Book_Window_Command Ends
#===================================================

I found this book script, which let you to read books in game. There is still some proplem. How i can chance text color (it is now white) to black?
 
If you want to play around with the colors, you can use an alternate way of setting the color.

Code:
$Book_Font_Color = (red,green,blue,alpha)

those will determine the hue, just like the Change Screen Color Tone command in the events pages. alpha is like the strength of the color (i think, i could be wrong about alpha).
all those values must be a number from 0 to 255.
(0,0,0,255) would be pure black letters, and (255,255,255,255) would be pure white letters. You can experiment with the colors if you want to use a unique color of text, too.

but toriverly's way should work too.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top