Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Castlevania Menu
#1
Castlevania Menu
by Sheol
Sep 4, 2006

This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.


Only insert a script below main and paste it.
Line 39 assumes you have a background image (richter2.png) in the Graphics\Pictures folder.

Code:
#-----------------------------------------------------------------
# Slipknot Castlevania Menu System
#    created by Slipknot
#    only work for one actor (like a normal Castlevania game)
#-----------------------------------------------------------------
class Scene_Menu #to not use my Menu change class Scene_Menu for class Scene_Menu2
#-----------------------------------------------------------------
  def initialize (menu_index = 0)
      @menu_index = menu_index
  end
#-----------------------------------------------------------------
  def main
     @lines = Lines.new
     @status = Status.new
     @status.y = 16
     @status.x = 22
     @level = Level.new
     s1 = $data_system.words.item
     s2 = $data_system.words.skill
     s3 = $data_system.words.equip
     s4 = "" #for the moment nothing
     s5 = "Save"
     s6 = "Exit"
     @command = Window_Command.new (192, [s1,s2,s3,s4,s5,s6])
     @command.back_opacity = 175
     @command.index = @menu_index
     @command.y = 480 - 16 - @command.height
     @command.x = 16
     if $game_party.actors.size == 0
        @command.disable_item (0)
        @command.disable_item (1)
        @command.disable_item (2)
        @command.disable_item (3)
     end
     if $game_system.save_disabled
        @command.disable_item(4)
     end
     @imagen = Sprite.new
     @imagen.bitmap=RPG::Cache.picture("") #"richter2") #Change it if you want
     @imagen.x = 640 - 16 - @imagen.bitmap.width
     @imagen.y = 16
     gtx = @command.width + 32
     gty = @command.y
     @goldtime = Goldtime.new(gtx,gty)
     @help = Help.new
     @help.y = 480 - @help.height - 16
     @help.x = 640 - @help.width - 16
     Graphics.transition
     loop do
        Graphics.update
        Input.update
        update
        if $scene != self
           break
        end
     end
     Graphics.freeze
     @command.dispose
     @imagen.dispose
     @status.dispose
     @level.dispose
     @goldtime.dispose
     @help.dispose
     @lines.dispose
  end
#-----------------------------------------------------------------
  def update
     @status.update
     @lines.update
     @imagen.update
     @goldtime.update
     @command.update
     @help.update
     if @command.active
        update_command
        update_help
        return
     end
  end
#-----------------------------------------------------------------
  def update_help #The help change it if you want
     case @command.index
     when 0
        @help.refresh("See the items.")
     when 1
        @help.refresh("See the Richter's skills.")
     when 2
        @help.refresh("See or change the equipment.")
     when 3
        @help.refresh("Sorry is empty.")
     when 4
        @help.refresh("Save the game for play later.")
     when 5
        @help.refresh("Restart or close the game.")
     end
  end
#-----------------------------------------------------------------
  def update_command
      if Input.trigger?(Input::B)
           $game_system.se_play ($data_system.cancel_se)
           $scene = Scene_Map.new
           return
      end
      if Input.trigger?(Input::C)
           if $game_party.actors.size == 0 and @command.index < 4
               $game_system.se_play ($data_system.buzzer_se)
               return
           end
           case @command.index
           when 0
              $game_system.se_play ($data_system.decision_se)
              $scene = Scene_Item.new
           when 1
              $game_system.se_play ($data_system.decision_se)
              $scene = Scene_Skill.new(0,1)
           when 2
              $game_system.se_play ($data_system.decision_se)
              $scene = Scene_Equip.new(0,2)
           when 3
              $game_system.se_play ($data_system.decision_se)
           when 4
              if $game_system.save_disabled
                 $game_system.se_play($data_system.buzzer_se)
                 return
              end
              $game_system.se_play($data_system.decision_se)
              $scene = Scene_Save.new
           when 5
              $game_system.se_play ($data_system.decision_se)
              $scene = Scene_End.new
           end
           return
      end
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Status < Window_Base
#-----------------------------------------------------------------
  def initialize
     super (0,0,466,208)
     #self.back_opacity = 175
     self.opacity = 0
     self.contents = Bitmap.new (width - 32, height - 32)
     #self.contents.font.name = $defaultfonttype
     #self.contents.font.size = $defaultfontsize
     @item_max = $game_party.actors.size
     for i in 0...$game_party.actors.size
        actor = $game_party.actors[i]
        draw_actor_name (actor, 0,0)
        draw_actor_state (actor, 230,0)
        self.contents.fill_rect(0,32,418,4,system_color)
        draw_actor_exp (actor, 0,36)
        draw_actor_hp (actor, 230, 36)
        draw_actor_sp (actor, 0, 60)
        draw_actor_parameter(actor, 230, 60, 0)
        draw_actor_parameter(actor, 0, 84, 1)
        draw_actor_parameter(actor, 230, 84, 2)
        draw_actor_parameter(actor, 0, 108, 3)
        draw_actor_parameter(actor, 230, 108, 4)
        draw_actor_parameter(actor, 0, 132, 5)
        draw_actor_parameter(actor, 230,132, 6)
     end
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Level < Window_Base
#-----------------------------------------------------------------
  def initialize
     super(488,144,152,64)
     self.opacity = 0
     self.contents = Bitmap.new (width - 32, height - 32)
     #self.contents.font.name = $defaultfonttype
     self.contents.font.size = 28
     actor = $game_party.actors[0]
     self.contents.font.color = system_color
     self.contents.draw_text(0,0,48,32, "Level")
     self.contents.font.color = normal_color
     self.contents.draw_text(48,0,36,32, actor.level.to_s, 2)
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Scene_End
#-----------------------------------------------------------------
  def command_cancel
     $game_system.se_play($data_system.decision_se)
     $scene = Scene_Menu.new
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Scene_Save < Scene_File
#-----------------------------------------------------------------
  def on_cancel
     $game_system.se_play($data_system.cancel_se)
     if $game_temp.save_calling
        $game_temp.save_calling = false
        $scene = Scene_Map.new
        return
     end
     $scene = Scene_Menu.new
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Goldtime < Window_Base
#-----------------------------------------------------------------
  def initialize(x,y)
     super(x,y,264,96)
     self.back_opacity = 175
     self.opacity = 0
     self.contents = Bitmap.new (width - 32, height - 32)
     #self.contents.font.size = $defaultfontsize
     #self.contents.font.name = $defaultfonttype
     refresh
  end
#-----------------------------------------------------------------
  def refresh
     self.contents.clear
     self.contents.font.color = system_color
     self.contents.draw_text (4,0,105,28, "Elapsed 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 (105,0,85,28,text, 2)
     gold = $game_party.gold.to_s
     unless gold.size > 4
        money = gold
     else
        case gold.size
        when 5
           ary = gold.slice!(0,2)
           money = ary + ","+ gold
        when 6
           ary = gold.slice!(0,3)
           money = ary + ","+ gold
        when 7
           ary1 = gold.slice!(0,4)
           ary2 = ary1.slice!(1,4)
           money = ary1 + ","+ ary2 +","+ gold
        end
     end
     cx = contents.text_size ($data_system.words.gold).width
     self.contents.font.color = normal_color
     self.contents.draw_text (0,32,186-cx,28,money.to_s,2)
     self.contents.font.color = system_color
     self.contents.draw_text (192-cx,32,cx,28, $data_system.words.gold,2)
  end
#-----------------------------------------------------------------
  def update
     super
     if Graphics.frame_count / Graphics.frame_rate != @total_sec
        refresh
     end
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Help < Window_Base
#-----------------------------------------------------------------
  def initialize
     super(0,0,400,112)
     self.back_opacity = 175
     self.contents = Bitmap.new (width - 32, height - 32)
     #self.contents.font.size = $defaultfontsize
     #self.contents.font.name = $defaultfonttype
     refresh("")
  end
#-----------------------------------------------------------------
  def refresh(text)
     self.contents.clear
     self.contents.font.color = normal_color
     self.contents.draw_text(0,4,368,32,text)
     self.contents.draw_text(0,36,368,32,"Close the menu with the B button.")
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Lines < Window_Base
#-----------------------------------------------------------------
  def initialize
     super(0,0,640,480)
     self.opacity = 0
     self.contents = Bitmap.new (width - 32, height - 32)
     self.contents.clear
     self.contents.fill_rect(0,0,468,4,system_color)
     self.contents.fill_rect(0,0,4,200,system_color)
     self.contents.fill_rect(0,200,208,4,system_color)
     self.contents.fill_rect(208,200,4,116,system_color)
     self.contents.fill_rect(208,312,400,4,system_color)
     self.contents.fill_rect(604,146,4,168,system_color)
  end
#-----------------------------------------------------------------
end
}


Possibly Related Threads…
Thread Author Replies Views Last Post
  FF7 style menu system Narc the Jester 0 2,527 05-04-2010, 01:00 PM
Last Post: Narc the Jester
  L's Custom Menu Scenes Landarma 0 2,471 02-27-2009, 01:00 PM
Last Post: Landarma
  Advanced Menu Screen Kanon 1 3,195 11-21-2008, 01:00 PM
Last Post: Kanon
  Legend of dragoon type Equipment Menu Genshyu 0 2,405 09-02-2008, 01:00 PM
Last Post: Genshyu
  Final Fantasy III Menu Style DragonKnigth 0 2,468 09-07-2007, 01:00 PM
Last Post: DragonKnigth
  SilentSteps Menu System Silentwalker 0 2,028 06-17-2007, 01:00 PM
Last Post: Silentwalker
  Ring Menu for SDK2 Landarma 0 2,815 06-01-2007, 01:00 PM
Last Post: Landarma
  Variable Image Menu Chrono Cry 0 2,031 04-25-2007, 01:00 PM
Last Post: Chrono Cry
  Ztorm's Speed Menu ztorm 0 2,359 01-21-2007, 01:00 PM
Last Post: ztorm
  Kingdom Hearts Menu Leon Blade 0 2,402 12-29-2006, 01:00 PM
Last Post: Leon Blade



Users browsing this thread: