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.

Bonus Pics

Bonus Pictures
Version: 1.5
By: Ludicus Maximus aka Ludicus aka Qwerty234

Introduction

This script will allow you to show bonus pictures (you know,like some games show concept arts & such) straight from the main menu.
Features
  • It works. :cheers:
  • Plug & Play... of course you still have to costumize it to suit your needs.
  • Background music.
  • Kinda lagless.
  • Some window to show text.
  • It works.
  • Easily(probably not for some) configurable.(unlike my V:TM chara sheet)
  • Activated/disactivated by a variable.
  • Background music.
  • Kinda lagless...for now.
Screenshots

Nope,sorry.

Demo

I dunno if the link works(my lazyness stops me from trying),but here:
All-At-Once version
Progressive unlocking version
Version 1.5 <- The most recent.

Script


Code:
#============================================================================

# ** Bonus Pictures Script

#----------------------------------------------------------------------------

# by Ludicus Maximus aka Ludicus aka Qwerty234

# Version 1.0

# 29 June 2009

#----------------------------------------------------------------------------

#----------------------------------------------------------------------------

# This script will allow you to show bonus pictures (you know,like some games

# show concept arts & such) straight from the main menu.

#----------------------------------------------------------------------------

# Instructions:

# 

# 1.Copy all of your bonus pictures in the game's Graphics/Pictures folder

#  The pictures must be EXACTLY 640x480!

# 2.Set to the variable '@pictures_number' how many pictures there are.  

# 

# 3.Go to line 69.Configure the first four pictures' names in the parentheses

# of the lines that look like this:

# @picture.bitmap = RPG::Cache.picture("1")

# See that you write the names exactly in the quotation marks(I suggest using

# numbers).If you want less than 4,delete the unneeded 'elsifs' and the following

# 4 lines.

# 

# 4.If you need more,you can copy/paste the 'elsifs' and the following 4 lines

# and edit the numbers/picture names.

#

# 5.Go to line 80 and change it to:

#

# "Audio.bgm_play("Audio/BGM/" "THE SONG'S NAME", VOLUME, PITCH)"

#

#    Of course,change the constants to what you want(the song must be imported) 

#

# 6.This was just configuring the script,not when you see it :-)

#   Go to Scene_Title(if you use the default one),delete line 40 and add this:

#    

#    unless $bonus_enabled

#    $bonus_enabled = false

#    end

#  if $bonus_enabled

# s4 = "Bonus Pics"

#      @command_window = Window_Command.new(192, [s1, s2, s3,s4])

#    else 

#          @command_window = Window_Command.new(192, [s1, s2, s3])

#      end

#    

#    This will allow the player to see the bonus only if the switch $bonus_enabled

#    is set to true.You can set it in-game,just when you create an event

#    call a script and type ' $bonus_enabled = true ' (without the quotes)

#    If you want to show it from the beginning,copy and paste only these lines:

#     

#   s4 = "Bonus Pics"

#      @command_window = Window_Command.new(192, [s1, s2, s3,s4])

#

#   But still delete line 40.Now,go to line 112,move the 'end' down one line and

#   write these lines:

#

#    when 3

#        $game_system.se_play($data_system.decision_se)

#        $scene = Scene_Bonus_Pics.new

#

#   That's it!

#----------------------------------------------------------------------------

#

# Credits and Thanks:

# 

# -The game "Legacy of Kain : Defiance",for giving me this script's idea

# -Me,aka Ludicus Maximus/Ludicus/Qwerty234.

# -Ccoa,for her window tutorial,and the default scripts,which taught me basically

#    all I know about RGSS.

# -Also lambchop's(Amaranth's?) Scene Splash,which I also studied

#  and learnt a few things from it.

#----------------------------------------------------------------------------

#Please give credit to me when using this script,preferably as Ludicus Maximus

#----------------------------------------------------------------------------

 

class Scene_Bonus_Pics 

 

def main

  Audio.bgm_play("Audio/BGM/" "001-Battle01", 80, 100) #Plays the music   

 

 #How many pictures are there?

 @pictures_number = 4

 @current_picture = 1    

    @picture = Sprite.new

    @picture.bitmap = RPG::Cache.picture("1")

 Graphics.transition

       loop do

         Input.update

         Graphics.update

            current_picture_by_input

           if $scene != self

             break

           end

         end

           end

 

  

  def current_picture_by_input   

    if Input.trigger?(Input::RIGHT) and @current_picture != @pictures_number

        $game_system.se_play($data_system.cursor_se)

        @current_picture += 1

       elsif Input.trigger?(Input::RIGHT) and @current_picture == @pictures_number

            $game_system.se_play($data_system.buzzer_se)

          end

          

      if Input.trigger?(Input::LEFT) and @current_picture != 1    

        $game_system.se_play($data_system.cursor_se)

        @current_picture -= 1

         elsif Input.trigger?(Input::LEFT) and @current_picture == 1    

           $game_system.se_play($data_system.buzzer_se)          

           elsif Input.trigger?(Input::B)

             $game_system.se_play($data_system.buzzer_se)

             @picture.dispose

             $scene = Scene_Title.new

        end

        

        check_picture

          end

       def check_picture      

      # HERE   

    if @current_picture == 1

    @picture.dispose

    @picture = Sprite.new

    @picture.bitmap = RPG::Cache.picture("1")

  elsif @current_picture == 2

    @picture.dispose

    @picture = Sprite.new

    @picture.bitmap = RPG::Cache.picture("2")

  elsif @current_picture == 3

    @picture.dispose

    @picture = Sprite.new

    @picture.bitmap = RPG::Cache.picture("3")

  elsif @current_picture == 4

    @picture.dispose

    @picture = Sprite.new

    @picture.bitmap = RPG::Cache.picture("4")

    end

  end

end
Code:
=begin

#============================================================================

# ** Bonus Pictures Script

#----------------------------------------------------------------------------

# by Ludicus Maximus aka Ludicus aka Qwerty234

# 04 July 2009

#----------------------------------------------------------------------------

#----------------------------------------------------------------------------

# This script will allow you to show bonus pictures (you know,like some games

# show concept arts & such) straight from the main menu.

#----------------------------------------------------------------------------

#     VERSION HISTORY

#

# Version 1.0 -> 29 June 2009

#   The first release.All-at-once unlocking only.

# ---------------------------

# Version 1.1 -> 04 July 2009 

#   The second release.Progressive unlocking only.Rewrote some of the code.You 

#      don't have to do as much in Scene_Title,as I've made a 'slave' part of 

#      the script that does most of the work for you.

#----------------------------------------------------------------------------

# Instructions:

# 

# 1.Copy all of your bonus pictures in the game's Graphics/Pictures folder

#  The pictures must be EXACTLY 640x480!

#

# 2.Set to the variable '$pictures_number' how many pictures there are.  

# 

# 3.Go to line 160.Configure the first four pictures' names in the parentheses

# of the lines that look like this:

  @picture.bitmap = RPG::Cache.picture("1")

# See that you write the names exactly in the quotation marks(I suggest using

# numbers).If you want less than 4,delete the unneeded 'elsifs' and the following

# 4 lines.

# 

# 4.If you need more,you can copy/paste the 'elsifs' and the following 4 lines

# and edit the numbers/picture names.

#

# 5.Go to line 123 and change it to:

#

 "Audio.bgm_play("Audio/BGM/" "THE SONG'S NAME", VOLUME, PITCH)"

#

#    Of course,change the constants to what you want(the song must be imported) 

#

# 7.Go to line 106 and change the message to what you want to pop when the player

#   wants to enter when there is no unlocked picture.

#

# 8.This was just configuring the script,not when you see it :-)

#   Although the 'slave' part does most of the work for you,you still have to do a

#   few things.Go to Scene_Title.

#     Go to line 59 and add below it:

#

    if $unlocked_pics == nil

      $unlocked_pics = 0

    end

    if $unlocked_pics == 0

      @command_window.disable_item(3)

      end

#

#   Go to Scene_Title and to line 39 add:

#

                  s4 = "WHATEVER YOU WANT IT TO APPEAR IN THE MENU"

#  

#   And to the next line:

#

     @command_window = Window_Command.new(192, [s1, s2, s3])

#    

#    Add ' ,s4 ' (without the quotes) in the square bracket after s3,like so:

#     

      @command_window = Window_Command.new(192, [s1, s2, s3, s4])

#

#    In-game you have to call script and type ' $unlocked_pics += 1 ' without the

#     quotes to add a pic.

# That's all.Yes,I'm serious.

#----------------------------------------------------------------------------

#

# Credits and Thanks:

# 

# -The game "Legacy of Kain : Defiance",for giving me this script's idea

# -Me,aka Ludicus Maximus/Ludicus/Qwerty234.

#----------------------------------------------------------------------------

#Please give credit to me when using this script,preferably as Ludicus Maximus

#----------------------------------------------------------------------------

=end

#...........................................................................

# START SLAVE PART

#...........................................................................

class Scene_Title

 

def update

    # Update command window

    @command_window.update

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Branch by command window cursor position

      case @command_window.index

      when 0  # New game

        command_new_game

      when 1  # Continue

        command_continue

      when 2  # Shutdown

        command_shutdown

      when 3

           if $unlocked_pics == 0

           $game_system.se_play($data_system.buzzer_se)

           p 'You didn\'t unlock any bonus pics!' #message

            else

              $game_system.se_play($data_system.decision_se)

              $scene = Scene_Bonus_Pics.new

              end

      end

    end

  end 

end

#...........................................................................

# END SLAVE PART;START OF THE SCRIPT

#...........................................................................

 

 

class Scene_Bonus_Pics 

 

def main

  Audio.bgm_play("Audio/BGM/" "001-Battle01", 80, 100) #Plays the music   

 

 #How many pictures are there?

 @pictures_number = 4

 if @current_picture != nil

   @picture.dispose

   end

 @current_picture = 1

 @picture = Sprite.new

    @picture.bitmap = RPG::Cache.picture("1")

 Graphics.transition

       loop do

        Graphics.update

         Input.update

         current_picture_by_input 

           if $scene != self

             break

           end

         end

         Graphics.freeze

         @picture.dispose        

           end

 

  

  def current_picture_by_input   

    if Input.trigger?(Input::RIGHT)

      next_picture

      elsif Input.trigger?(Input::LEFT)    

        previous_picture

      elsif Input.trigger?(Input::B)

             $game_system.se_play($data_system.decision_se)

             $scene = Scene_Title.new

        end

        

        check_picture

          end

       def check_picture      

      # HERE   

    if @current_picture == 1

    @picture.dispose

    @picture = Sprite.new

    @picture.bitmap = RPG::Cache.picture("1")

  elsif @current_picture == 2

    @picture.dispose

    @picture = Sprite.new

    @picture.bitmap = RPG::Cache.picture("2")

  elsif @current_picture == 3

    @picture.dispose

    @picture = Sprite.new

    @picture.bitmap = RPG::Cache.picture("3")

  elsif @current_picture == 4

    @picture.dispose

    @picture = Sprite.new

    @picture.bitmap = RPG::Cache.picture("4")

    end

  end

 

 

def next_picture

   if @current_picture != @pictures_number and @current_picture < $unlocked_pics      

        $game_system.se_play($data_system.cursor_se)

        @current_picture += 1

      else

        $game_system.se_play($data_system.buzzer_se)

        end

 end

 

 

def previous_picture   

  if @current_picture != 1

        $game_system.se_play($data_system.cursor_se)

        @current_picture -= 1

        else

       $game_system.se_play($data_system.buzzer_se)

          end

        end      

end
Code:
#============================================================================

# ** Bonus Pictures Script

#----------------------------------------------------------------------------

# by Ludicus Maximus aka Ludicus

#----------------------------------------------------------------------------

# This script will allow you to show bonus pictures (you know,like some games

# show concept arts & such) straight from the main menu.

#----------------------------------------------------------------------------

#     VERSION HISTORY

#

# Version 1.0 -> 29 June 2009

#   The first release.All-at-once unlocking only.

# ---------------------------

# Version 1.1 -> 04 July 2009 

#   The second release.Progressive unlocking only.Rewrote some of the code.You 

#     don't have to do as much in Scene_Title,as I've made a 'slave' part of 

#     the script that does most of the work for you.

# ---------------------------

# Version 1.5 -> 16 August 2009

#   The third release. You don't have to do anything in Scene_Title if you

#     use the default system. Added an explanatory window, which shows

#     text depending on the current picture. Broken up the code blocks.

#     Now it's nearly completely plug & play. Scene_Title slave sold separately :3

#----------------------------------------------------------------------------

# Instructions:

#

#  1. Copy all of your bonus pictures in the game's Graphics/Pictures folder

#  The pictures must be EXACTLY 640x480!

#

# 2. Set the constant 'PICTURES_NUMBER' (line 83) how many pictures there are.  

# 

# 3. Now you don't have to set up nothing, just make sure that the pics' filenames

# is a number, starting from 1. (i.e. you import 5 pngs, name them 1.png, 2.png...)

# and number them in the order you want them to appear.

#

# 4. In-game you have to call script and type ' $unlocked_pics += 1'

#      without the quotes to add a pic. Of course, you can change how many the 

#      player will unlock;You can change 1 how many you want.

#---------------------------------------------------------------------------

# Costumization:

# - Go to line 70 and set BPWINDOW to true if you want an explaining window to show;

#   Customise the constants to suit you likings: if you want to show a text but 

#   not the window, you can set BPWINDOW_OPACITY to 0.

#

# - Set up the constants at line 85, 86, 87

#  (the song's name, volume & pitch respectively)

# 

#----------------------------------------------------------------------------

# Notes:

#

# - You can set BPWINDOW_W at more than 640, but the edges will look 

#   stretched.

# - The same for BPWINDOW_H, it will look stretched.

#

#----------------------------------------------------------------------------

#

# Credits and Thanks:

# 

# -The game "Legacy of Kain : Defiance",for giving me this script's idea

# -Me,aka Ludicus Maximus/Ludicus/Qwerty234.

#----------------------------------------------------------------------------

#Please give credit to me when using this script,preferably as Ludicus Maximus

#----------------------------------------------------------------------------

 

#===============================================================================

# ** EXPLAINING WINDOW

#===============================================================================

# This window simply shows a text. Its settings are below.

#===============================================================================

BPWINDOW = true        #set this to true to enable explaining window

BPWINDOW_W = 600       #the window's width. I suggest the maximum at 640.

BPWINDOW_H = 130       #the window's height.I suggest the maximum at 480.

BPWINDOW_OPACITY = 30   #the window's opacity; 0-255

 

#Introduce the texts here, as in the example. ALWAYS leave the first one blank.

BPWINDOW_TEXTS = [ ""               , 

                   "Pigface Sketch" ,

                   "The game logo"  ,

                   "Sketch of the bad guy" ,

                   "Castle of Illyuria draft"]

#===============================================================================

 #How many pictures are there?

 PICTURES_NUMBER = 4

 #The following constants are settings for the music; line 12

 BP_SONGNAME = "Audio/BGM/001-Battle01" #The song's name; must be imported

 BP_SONGVOLUME = 80           #The song's volume

 BP_SONGPITCH = 100           #The song's pitch

 

 #How do you want the menu entry to look like? (if using the default title screen

 #and the slave)

    BPMENU = "Porn"

 

      #When the player wants to enter and no pic is unlocked, do you want

      #  a message to pop? If false, he'll hear only the buzzer sound.

      NOPIC = false

    

        #If true, what is the message you want the player to see?

        NOPIC_MSG = "You haven\'t unlocked any pics yet."

#===============================================================================

class BonusPics_Window < Window_Base

  

  def initialize

    

    super( (640 - BPWINDOW_W)/ 2, 480 - BPWINDOW_H, BPWINDOW_W, BPWINDOW_H)

    self.contents = Bitmap.new(width - 32, height - 32)

 

  end

  

  def add_text(text)

    

  self.contents.clear

  

  self.contents.font.color = Color.new(0, 0, 0)

 

  self.contents.draw_text(150, 20, 400, 60, text) 

 

  end

 

    

end

 

#=========================

class Scene_Bonus_Pics 

#=========================

def main

#-------------------------

  Audio.bgm_play(BP_SONGNAME, BP_SONGVOLUME, BP_SONGPITCH)

#-------------------------

   if @current_picture != nil

   @picture.dispose

   end 

#-------------------------

 @picture = Sprite.new

 @current_picture = 1

#-------------------------

   if BPWINDOW

    @explanatory_window = BonusPics_Window.new

    @explanatory_window.opacity = BPWINDOW_OPACITY   

   end

#-------------------------- 

 Graphics.transition

#--------------------------

  loop do

    Graphics.update

    Input.update

    current_picture_by_input

      if $scene != self

         break

      end

  end

#-------------------------

      Graphics.freeze

      @picture.dispose

#-------------------------

        if BPWINDOW

        @explanatory_window.dispose

        end

#-------------------------

end

#========================= 

  def current_picture_by_input   

#-------------------------

    if Input.trigger?(Input::RIGHT)

      next_picture

 

    elsif Input.trigger?(Input::LEFT)    

      previous_picture

 

    elsif Input.trigger?(Input::B)

      $game_system.se_play($data_system.decision_se)

      $scene = Scene_Title.new        

    end

#-------------------------

        check_picture

#-------------------------

end

#=========================

def check_picture      

#-------------------------

    @picture.dispose

    @picture = Sprite.new

    @picture.bitmap = RPG::Cache.picture(@current_picture.to_s)

#-------------------------

    if BPWINDOW

    @explanatory_window.add_text(BPWINDOW_TEXTS[@current_picture].to_s)

    end

#-------------------------

end

#=========================

def next_picture

#-------------------------

  if @current_picture !=  PICTURES_NUMBER and @current_picture < $unlocked_pics

    $game_system.se_play($data_system.cursor_se)

    @current_picture += 1

      else

        $game_system.se_play($data_system.buzzer_se)

  end

#-------------------------

end

#=========================

def previous_picture

#-------------------------

    if @current_picture != 1

     $game_system.se_play($data_system.cursor_se)

     @current_picture -= 1

    else

     $game_system.se_play($data_system.buzzer_se)

    end

#-------------------------

end 

#=========================

end #class

 

# Defining Command Bonus Pics in Scene_Title, for easier Scene_Title edits

class Scene_Title

  

   def command_bonuspics

     if $unlocked_pics == 0

          $game_system.se_play($data_system.buzzer_se)

            if NOPIC

             p NOPIC_MSG #message

            end 

     else

        $game_system.se_play($data_system.decision_se)

        $scene = Scene_Bonus_Pics.new

     end

   end      

end

If you're using version 1.5 AND THE DEFAULT TITLE SCREEN, post this somewhere below Scene_Title.
Code:
#=============================================================

# Constants

#=============================================================

#How do you want the menu entry to look like?

    BPMENU = "Porn"

 

      #When the player wants to enter and no pic is unlocked, do you want

      #  a message to pop? If false, he'll hear only the buzzer sound.

      NOPIC = false

    

        #If true, what is the message you want the player to see?

        NOPIC_MSG = "You haven\'t unlocked any pics yet."

 

 

#...........................................................................

# START SLAVE PART

#...........................................................................

 class Scene_Title

 

    

  def main

    # If battle test

    if $BTEST

      battle_test

      return

    end

    # Load database

    $data_actors        = load_data("Data/Actors.rxdata")

    $data_classes       = load_data("Data/Classes.rxdata")

    $data_skills        = load_data("Data/Skills.rxdata")

    $data_items         = load_data("Data/Items.rxdata")

    $data_weapons       = load_data("Data/Weapons.rxdata")

    $data_armors        = load_data("Data/Armors.rxdata")

    $data_enemies       = load_data("Data/Enemies.rxdata")

    $data_troops        = load_data("Data/Troops.rxdata")

    $data_states        = load_data("Data/States.rxdata")

    $data_animations    = load_data("Data/Animations.rxdata")

    $data_tilesets      = load_data("Data/Tilesets.rxdata")

    $data_common_events = load_data("Data/CommonEvents.rxdata")

    $data_system        = load_data("Data/System.rxdata")

    # Make system object

    $game_system = Game_System.new

    # Make title graphic

    @sprite = Sprite.new

    @sprite.bitmap = RPG::Cache.title($data_system.title_name)

    # Make command window

    s1 = "New Game"

    s2 = "Continue"

    s3 = "Shutdown"

    s4 = BPMENU

    @command_window = Window_Command.new(192, [s1, s2, s3, s4])

    @command_window.back_opacity = 160

    @command_window.x = 320 - @command_window.width / 2

    @command_window.y = 288

    # Continue enabled determinant

    # Check if at least one save file exists

    # If enabled, make @continue_enabled true; if disabled, make it false

    @continue_enabled = false

    for i in 0..3

      if FileTest.exist?("Save#{i+1}.rxdata")

        @continue_enabled = true

      end

    end

    # If continue is enabled, move cursor to "Continue"

    # If disabled, display "Continue" text in gray

    if @continue_enabled

      @command_window.index = 1

    else

      @command_window.disable_item(1)

    end

    if $unlocked_pics == nil

      $unlocked_pics = 0

    end

    if $unlocked_pics == 0

      @command_window.disable_item(3)

      end

    # Play title BGM

    $game_system.bgm_play($data_system.title_bgm)

    # Stop playing ME and BGS

    Audio.me_stop

    Audio.bgs_stop

    # Execute transition

    Graphics.transition

    # Main loop

    loop do

      # Update game screen

      Graphics.update

      # Update input information

      Input.update

      # Frame update

      update

      # Abort loop if screen is changed

      if $scene != self

        break

      end

    end

    # Prepare for transition

    Graphics.freeze

    # Dispose of command window

    @command_window.dispose

    # Dispose of title graphic

    @sprite.bitmap.dispose

    @sprite.dispose

  end

  

def update

    # Update command window

    @command_window.update

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Branch by command window cursor position

      case @command_window.index

      when 0  # New game

        command_new_game

      when 1  # Continue

        command_continue

      when 2  # Shutdown

        command_shutdown

      when 3

        command_bonuspics

    end

  end 

end

end

#...........................................................................

# END SLAVE PART

#...........................................................................

 

Instructions

They're in the script header.

FAQ

*The instructions are tl;dr!
Try the demo.

* Your pictures FAIL!
THose are just quick mock-up examples. =/
Compatibility

It may be incompatible with other scripts that change the title menu.

Credits and Thanks

-The game "Legacy of Kain : Defiance",for giving me this script's idea
-Me,aka Ludicus (Maximus).
-Ccoa,for her window tutorial,and the default scripts,which taught me basically
all I know about RGSS.
-Also lambchop's(Amaranth's?) Scene Splash,which I also studied
and learnt a few things from it.

Author's Notes

-I wrote this script in a single sitting :cheers: <- Only the first version,lol.
-This is most likely NOT the final version.

Terms and Conditions

You have to give credit to me if you use this script,preferably as Ludicus Maximus.
Free for commercial use.
 

Cola

Member

Ahh, this is amazing and perfect and I was just looking for something like this. I'm really more of an artist than anything else, so I'm really excited to be able to shove a bunch of drawings in everyone's faces if they play my games and adklasj;ldsa so excited. Thanks much *A*
 
@DoctorChaos:I only tested it with the default scripts,but I may see if it works if you send me that script via PM.

@Cola:Thanks :smile:

An unlockable version,similar to the one in Defiance (aka you don't see them all at once) is in the works.
 
New version, cleaned code, separated code blocks, customizable window, deleted the unneeded "elsif" part, plug & play for those with the default title screen, as long as they copy the "Version 1/5 Scene_Title" script.

[/self-necropost]
 
Holy freaking wow! It's just like in Dead Space (and a billion other games). Unfortunately, I can't use it in my current game because I'm using a Title Screen script that basically uses images for New Game, Continue, and Exit. If I PM you the script, could you make it compatible? You don't have to, I was just wondering because I would love to use your script, man ;)
 
Well, the title screen thingy only creates&manages a new command in the window, so I think I can do it.
Yes, PM me the script. :smile:
 

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