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.

*~ Styled Chrono Trigger Menu ~*

Styled Chrono Trigger Menu
By: Rafidelis


marker4ca1.png
About the Script:

This script makes the menu looking like of the classic snes game Chorno Trigger
With it you can customize the pictures that will be used as options.

marker4ca1.png
ScreenShots:

sctm01mm3.png


sctm02jj2.png



marker4ca1.png
Instructions

Paste above the Main, then put 7 files in Pictures folder of your game, with the names you set in the script.
If you want you can use the images below:

Item:

item.png


Skill:

skill.png


Equip:

equip.png


Status:

status.png


Save:

save.png


End Game:

endgame.png


"Cursor"

seta.png

Code:
#===============================================================================
# STYLED CHRONO TRIGGER MENU
# BY : RAFIDELIS
#-------------------------------------------------------------------------------
# Rafa_Fidelis@hotmail.com ou Rafa_Fidelis@yahoo.com.br
# www.ReinoRpg.com 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Use Mode:
#-------------------------------------------------------------------------------
# Paste above the Main and take pictures 7 files in the folder where each will
# Represents a different option and the "cursor".
# In line 25 to line 31 defines the names of images that you will use.
# Note - the images must have at most 80 x 74 pixels, images larger than
# This can lead to error in the script, I recommend that you use the images of
# Iconset of VX RpgMaker ..
# If you use the images that are not centralized, go 57 and change this line:
# @ Img.x = (544 - @ img.width) / 14 and the 14 where it is changing the value you ate
# The images become centralized, so simple / ~
# If you do not want to use the cursor leaves the image name in the script "
#============================================================================== 

module SCTM_RAFIDELIS
  IMAGE_CURSOR_NAME = "seta"
  IMAGE_ITEM_NAME = "item"
  IMAGE_SKILL_NAME = "skill"
  IMAGE_EQUIP_NAME = "equip"
  IMAGE_STATUS_NAME = "status"
  IMAGE_SAVE_NAME = "Save"
  IMAGE_ENDGAME_NAME = "endgame"
  end
class Scene_Menu < Scene_Base
  include SCTM_RAFIDELIS 
  def initialize(index=0)
    @index = index
  end
  def start
    create_menu_background
    @cursor = Sprite.new
    @cursor.bitmap = Cache.picture(IMAGE_CURSOR_NAME)    
    @img = Sprite.new 
    @img.bitmap = Cache.picture(IMAGE_ITEM_NAME)
    @img2 = Sprite.new
    @img2.bitmap = Cache.picture(IMAGE_SKILL_NAME)
    @img3 = Sprite.new
    @img3.bitmap = Cache.picture(IMAGE_EQUIP_NAME)
    @img4 = Sprite.new
    @img4.bitmap = Cache.picture(IMAGE_STATUS_NAME)
    @img5 = Sprite.new
    @img5.bitmap = Cache.picture(IMAGE_SAVE_NAME)
    @img6 = Sprite.new
    @img6.bitmap = Cache.picture(IMAGE_ENDGAME_NAME)
#===============================================
# Establish the positions of images 
#===============================================
    @img.x = (544 - @img.width)/14
    @img.y = (416 - @img.height)/2
    @img2.x = (@img.x + @img2.width)
    @img2.y = (416 - @img2.height)/2
    @img3.x = (@img2.x + @img3.width)
    @img3.y = (416 - @img.height)/2 
    @img4.x = (@img3.x + @img4.width)
    @img4.y = (416 - @img4.height)/2
    @img5.x = (@img4.x + @img5.width)
    @img5.y = (416 - @img5.height)/2
    @img6.x = (@img5.x + @img6.width)
    @img6.y = (416 - @img6.height)/2
    @cursor.x = @img.x
    @cursor.y = @img.y
    @cursor.z = 100
#===============================================
# Creating the Windows 
#===============================================
    @gold_window = Window_Gold.new(0, 360)
    @status_window = Window_MenuStatus.new(160, 0)
    @window_mapname = Window_Mapname.new(0,0)
    @window_playtime = Window_PlayTime.new(0,@window_mapname.height)
    @gold_window.opacity = 0
    @status_window.z = 0 
    @window = Window_Base.new(0,0,544,@img.height + 10)
    @window.y = (416 - @window.height)/2
    @window.z = 0
    @window.opacity = 0
#===============================================
# Deixando as imagens com Tom Escuro
#===============================================
    @img2.tone = Tone.new(0,0,0,255)
    @img3.tone = Tone.new(0,0,0,255)
    @img4.tone = Tone.new(0,0,0,255)
    @img5.tone = Tone.new(0,0,0,255)
    @img6.tone = Tone.new(0,0,0,255)
#===============================================
#Leaving the images with Dark tone 
#===============================================
    @img.opacity = 20
    @img2.opacity = 20
    @img3.opacity = 20
    @img4.opacity = 20
    @img5.opacity = 20
    @img6.opacity = 20
    @cursor.opacity = 20
  end
#================================================
# Update
#================================================
  def update
    super
    update_menu_background
    @img.update
    @img2.update
    @img3.update
    @img4.update
    @img5.update
    @img6.update
    @gold_window.update
    @status_window.update
    @window_mapname.update
    @window_playtime.update
    if @img.opacity < 255 and @img2.opacity < 255 and 
      @img3.opacity < 255 and @img4.opacity < 255 and 
      @img5.opacity < 255 and @window.opacity < 255 and
      @gold_window.opacity < 255 and  @img6.opacity < 255 and @cursor.opacity < 255
      @img.opacity += 5
      @img2.opacity += 5
      @img3.opacity += 5
      @img4.opacity += 5
      @img5.opacity += 5
      @img6.opacity += 5
      @window.opacity += 5
      @gold_window.opacity += 5
      @cursor.opacity += 5
    end
    if @index == 0
      @cursor.x = @img.x
      @cursor.y = @img.y
      @img.tone = Tone.new(0,0,0)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(0,0,0,255)
    elsif @index == 1
      @cursor.x = @img2.x
      @cursor.y = @img2.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(0,0,0,255)
    elsif @index == 2
      @cursor.x = @img3.x
      @cursor.y = @img3.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(0,0,0,255)
    elsif @index == 3
      @cursor.x = @img4.x
      @cursor.y = @img4.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(0,0,0,255)
    elsif @index == 4
      @cursor.x = @img5.x
      @cursor.y = @img5.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0)
      @img6.tone = Tone.new(0,0,0,255)
    elsif @index == 5
      @cursor.x = @img6.x
      @cursor.y = @img6.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(120,0,0)

end
    if Input.trigger?(Input::B)
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::RIGHT) and @index == 0
      @index = 1
      @cursor.x = @img2.x
      @cursor.y = @img2.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(0,0,0,255)
    elsif Input.trigger?(Input::RIGHT) and @index == 1
      @index = 2
      @cursor.x = @img3.x
      @cursor.y = @img3.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(0,0,0,255)
    elsif Input.trigger?(Input::RIGHT) and @index == 2
      @index = 3
      @cursor.x = @img4.x
      @cursor.y = @img4.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(0,0,0,255)
    elsif Input.trigger?(Input::RIGHT) and @index == 3
      @index = 4
      @cursor.x = @img5.x
      @cursor.y = @img5.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0)
      @img6.tone = Tone.new(0,0,0,255)
    elsif Input.trigger?(Input::RIGHT) and @index == 4
      @index = 5
      @cursor.x = @img6.x
      @cursor.y = @img6.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(120,0,0)
    elsif Input.trigger?(Input::RIGHT) and @index == 5
      @index = 0
      @cursor.x = @img.x
      @cursor.y = @img.y
      @img.tone = Tone.new(0,0,0)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(0,0,0,255)
    elsif Input.trigger?(Input::LEFT) and @index == 5
      @index = 4
      @cursor.x = @img5.x
      @cursor.y = @img5.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0)
      @img6.tone = Tone.new(0,0,0,255)
    elsif Input.trigger?(Input::LEFT) and @index == 4
      @index = 3
      @cursor.x = @img4.x
      @cursor.y = @img4.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(0,0,0,255)
    elsif Input.trigger?(Input::LEFT) and @index == 3
      @index = 2
      @cursor.x = @img3.x
      @cursor.y = @img3.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(0,0,0,255)
    elsif Input.trigger?(Input::LEFT) and @index == 2
      @index = 1
      @cursor.x = @img2.x
      @cursor.y = @img2.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,0)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(0,0,0,255)      
    elsif Input.trigger?(Input::LEFT) and @index == 1
      @index = 0
      @cursor.x = @img.x
      @cursor.y = @img.y
      @img.tone = Tone.new(0,0,0)
      @img2.tone = Tone.new(0,0,0,255)
      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(0,0,0,255)
    elsif Input.trigger?(Input::LEFT) and @index == 0
      @index = 5
      @cursor.x = @img6.x
      @cursor.y = @img6.y
      @img.tone = Tone.new(0,0,0,255)
      @img2.tone = Tone.new(0,0,0,255)

      @img3.tone = Tone.new(0,0,0,255)
      @img4.tone = Tone.new(0,0,0,255)
      @img5.tone = Tone.new(0,0,0,255)
      @img6.tone = Tone.new(120,0,0)
    elsif Input.trigger?(Input::C)
      Sound.play_decision
    case @index
      when 0 
       $scene = Scene_Item.new
      when 1 
        $scene = Scene_Skill.new
      when 2
        $scene = Scene_Equip.new
      when 3
        $scene = Scene_Status.new
      when 4
        $scene = Scene_File.new(true, false, false)
      when 5
        $scene = Scene_End.new
    end    
  end
#===============================================
# Dispose
#===============================================
  def terminate
    dispose_menu_background
    @img.dispose
    @img2.dispose
    @img3.dispose
    @img4.dispose
    @img5.dispose
    @img6.dispose
    @window.dispose
    @status_window.dispose
    @gold_window.dispose
    @window_mapname.dispose
    @window_playtime.dispose
    @cursor.dispose
    end
  end 
end
#=============================================
#Window with MapNAme
#=============================================
class Window_Mapname < Window_Base
  def initialize(x, y)
    super(x, y, 160, 86)
    update
  end
  def update
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(0,0,128,32,"Map Name:")
    self.contents.font.color = normal_color
    self.contents.draw_text(0,24,128,32,$game_map.map_name.to_s)
  end
end

class Game_Map
attr_reader   :map_id  
def map_name
  $mpname = load_data("Data/MapInfos.rvdata")
  $mpname[@map_id].name
end
end
#=============================================
# Window with Play Time
#=============================================
class Window_PlayTime < Window_Base
  def initialize(x,y)
    super(x, y, 160, 80)
    refresh
  end  
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 24, "Play Time")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 24, 120, 24, text, 2)
  end
  
  def update
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end
#===============================================================================
#END OF SCRIPT - Find more Rafidelis scripts in www.ReinoRpg.com / forum 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

marker4ca1.png
Demo Download:





RGSS and RGSS2 Scripts and RGSS1/2 Tutorials by Rafidelis is licensed under a
Creative Commons Atribuiçao-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.
Permissions beyond the scope of this license may be available at ReinoRPG.com
[/font]
 

e

Sponsor

It would be nice if you pointed out how to change the displayed text (which is in...Portuguese?).

i.e.:

At the lines:

Code:
    self.contents.draw_text(0,0,128,32,"Mapa:")
Code:
    self.contents.draw_text(4, 0, 120, 24, "Tempo de Jogo")

You can just change the strings (Mapa or Tempo de Jogo) to Map and Play time. Or whatever you want.

We're trying to push authors to document their scripts so that the average user can easily use it. This is fine, but it'd be nice to have more explanations next time. :thumb:
 
Thank you for remembering that.
I forgot that I had minimal detail, try to take care of next time = D
I already modified the part to English
And "Tempo de Jogo" is in Portuguese o/~
 

e

Sponsor

Code:
#=============================================
# Window with Play Time
#=============================================
class Window_PlayTime < Window_Base
  def initialize(x,y)
    super(x, y, 160, 80)
    refresh
  end  
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 24, "Play Time")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 24, 120, 24, text, 2)
  end
  
  def update
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end

This is the class which takes care of showing the clock. What do you need?
 
Well I also do not understand very well your question, the more I understand you want a window of time is not displayed?
If it is, change the script for thiis:

removed

And Thankz Etheon for help =D
 

Rya

Member

I love the Chrono Trigger menu. It was a very unique menu. Glad to see someone make a script for it for VX. I had no problem with it.
 

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