RMRK is retiring.
Server is paid up for the rest of 2026, but the forum may go after that. See here for more information. Please archive or save anything you would like to keep before 2027.
Main Menu
  • Welcome to The RPG Maker Resource Kit.

Ring Menu

Started by Restaurant Sackboy, July 17, 2007, 03:04:37 PM

0 Members and 1 Guest are viewing this topic.

Restaurant Sackboy

Where can I find it?
I had it, but it didn't work.
Also if you have better CMS-es, please post them.

killer in the heat

#1
i'll go find it.
here
#------------------------------------------------------------------------------
#  Ring_Menu
#------------------------------------------------------------------------------
#  By:  XRXS, Dubealex, and Hypershadow180
#------------------------------------------------------------------------------
class Scene_Menu
#------------------------------------------------------------------------------
#  Initialize
#------------------------------------------------------------------------------
def initialize(menu_index = 0)
   @menu_index = menu_index
   $location_text=[]
   $gold_text=[]
   $window_size=[]
   $ring_menu_text=[]
   $chara_select=[]
   @window_opacity=[]
   @chara_select=[]
   @window_position=[]
   $location_text[0]="Tahoma" # Font Type
   $location_text[1]=16 # Font Size
   $location_text[2]=0 # Location Title Color
   $location_text[4]=0 # Map Name Color
   $location_text[3]="Location:" # Text
   $gold_text[0]="Tahoma" # Font Type
   $gold_text[1]=16 # Font Size
   $gold_text[2]=0 # Gold Title Color
   $gold_text[3]=0 # Gold Color
   $gold_text[4]="Gold" # Text
   @window_opacity[0]=255 # Border Opacity
   @window_opacity[1]=130 # Background Opacity
   $window_location_skin=$data_system.windowskin_name # Location Windowskin
   $window_gold_skin=$data_system.windowskin_name # Gold Windowskin
   @window_position[0]=0 # X Axis Position
   @window_position[1]=0 # Location Y Axis Position
   @window_position[2]=480-64 # Gold Y Axis Position
   $window_size[0]=640 # Length
   $window_size[1]=64 # Height
   $ring_menu_text[0]="Tahoma" # Font Type
   $ring_menu_text[7]=0 # Font Color
   $ring_menu_text[8]=16 # Font Size
   $ring_menu_text[1]="Items"
   $ring_menu_text[2]="Skills"
   $ring_menu_text[3]="Equip"
   $ring_menu_text[4]="Stats"
   $ring_menu_text[5]="Save"
   $ring_menu_text[6]="Quit"
   $ring_menu_text[9]="Map"
   @chara_select[0]=408 # X Axis Position
   @chara_select[1]=0 # Y Axis Position
   $chara_select[0]="Tahoma" # Font Type
   $chara_select[1]=0 # Font Color
   $chara_select[5]=12 # Font Size
   $chara_select[2]=255 # Border Opacity
   $chara_select[3]=130 # Background Opacity
   $chara_select[4]=$data_system.windowskin_name # Windowskin
end
#------------------------------------------------------------------------------
#  Main
#------------------------------------------------------------------------------
def main
   @window_location = Window_Location.new
   @window_location.x = @window_position[0]
   @window_location.y = @window_position[1]
   @window_location.opacity = @window_opacity[0]
   @window_location.back_opacity = @window_opacity[1]
   @window_gold = Window_MenuGold.new
   @window_gold.x = @window_position[0]
   @window_gold.y = @window_position[2]
   @window_gold.opacity = @window_opacity[0]
   @window_gold.back_opacity = @window_opacity[1]
   @spriteset = Spriteset_Map.new
   px = 320
   py = 240
   @command_window = Window_RingMenu.new(px,py)
   @command_window.index = @menu_index
   if $game_party.actors.size == 0
     @command_window.disable_item(0)
     @command_window.disable_item(1)
     @command_window.disable_item(2)
     @command_window.disable_item(3)
   end
   @command_window.z = 100
   if $game_system.save_disabled
     @command_window.disable_item(4)
   end
   @status_window = Window_RingMenuStatus.new
   @status_window.x = @chara_select[0]
   @status_window.y = @chara_select[1]
   @status_window.z = 400
   @status_window.opacity=$chara_select[2]
   @status_window.back_opacity=$chara_select[3]
   @status_window.visible = false
   Graphics.transition
   loop do
     Graphics.update
     Input.update
     update
     if $scene != self
       break
     end
   end
   Graphics.freeze
   @spriteset.dispose
   @window_location.dispose
   @window_gold.dispose
   @command_window.dispose
   @status_window.dispose
end
#------------------------------------------------------------------------------
#  Update
#------------------------------------------------------------------------------
def update
   @window_location.update
   @window_gold.update
   @command_window.update
   @status_window.update
   if @command_window.active
     update_command
     return
   end
   if @status_window.active
     update_status
     return
   end
end
#------------------------------------------------------------------------------
#  Update Comman
#------------------------------------------------------------------------------
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_window.index < 4
       $game_system.se_play($data_system.buzzer_se)
       return
     end
   case @command_window.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)
     @command_window.active = false
     @status_window.active = true
     @status_window.visible = true
     @status_window.index = 0
   when 2
     $game_system.se_play($data_system.decision_se)
     @command_window.active = false
     @status_window.active = true
     @status_window.visible = true
     @status_window.index = 0
   when 3
     $game_system.se_play($data_system.decision_se)
     @command_window.active = false
     @status_window.active = true
     @status_window.visible = true
     @status_window.index = 0
   when 4 #Oops! This was a 5 before!
     $game_system.se_play($data_system.decision_se)
     $scene = Scene_End.new
   end
   return
end
return if @command_window.animation?
   if Input.press?(Input::UP) or  Input.press?(Input::LEFT)
     $game_system.se_play($data_system.cursor_se)
     @command_window.setup_move_move(Window_RingMenu::MODE_MOVEL)
     return
   end
   if Input.press?(Input::DOWN) or  Input.press?(Input::RIGHT)
     $game_system.se_play($data_system.cursor_se)
     @command_window.setup_move_move(Window_RingMenu::MODE_MOVER)
     return
   end
end
#------------------------------------------------------------------------------
#  Update Status
#------------------------------------------------------------------------------
def update_status
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     @command_window.active = true
     @status_window.active = false
     @status_window.visible = false
     @status_window.index = -1
     return
   end
   if Input.trigger?(Input::C)
   case @command_window.index
   when 1
     if $game_party.actors[@status_window.index].restriction >= 2
       $game_system.se_play($data_system.buzzer_se)
       return
     end
     $game_system.se_play($data_system.decision_se)
     $scene = Scene_Skill.new(@status_window.index)
   when 2
     $game_system.se_play($data_system.decision_se)
     $scene = Scene_Equip.new(@status_window.index)
   when 3
     $game_system.se_play($data_system.decision_se)
     $scene = Scene_Status.new(@status_window.index)
     end
     return
   end
end
end
#------------------------------------------------------------------------------
#  Window_RingMenu
#------------------------------------------------------------------------------
class Window_RingMenu < Window_Base
STARTUP_FRAMES = 20
MOVING_FRAMES = 5 
RING_R = 64       
ICON_ITEM   = RPG::Cache.icon("034-Item03")
ICON_SKILL  = RPG::Cache.icon("044-Skill01")
ICON_EQUIP  = RPG::Cache.icon("001-Weapon01")
ICON_STATUS = RPG::Cache.icon("050-Skill07")
ICON_SAVE   = RPG::Cache.icon("047-Skill04")
ICON_EXIT   = RPG::Cache.icon("046-Skill03")
ICON_DISABLE= RPG::Cache.icon("")
ICOM_MAP    = RPG::Cache.icon("038-Item07")
SE_STARTUP = "056-Right02"
MODE_START = 1
MODE_WAIT  = 2
MODE_MOVER = 3
MODE_MOVEL = 4
attr_accessor :index
#------------------------------------------------------------------------------
#  Initialize
#------------------------------------------------------------------------------
def initialize( center_x, center_y )
   super(0, 0, 640, 480)
   self.contents = Bitmap.new(width-32, height-32)
   self.contents.font.name = $ring_menu_text[0]
   self.contents.font.color = text_color($ring_menu_text[7])
   self.contents.font.size = $ring_menu_text[8]
   self.opacity = 0
   self.back_opacity = 0
   s1 = $ring_menu_text[1]
   s2 = $ring_menu_text[2]
   s3 = $ring_menu_text[3]
   s4 = $ring_menu_text[4]
   s5 = $ring_menu_text[6]
   @commands = [ s1, s2, s3, s4, s5]
   @item_max = 5
   @index = 0
   @items = [ ICON_ITEM, ICON_SKILL, ICON_EQUIP, ICON_STATUS, ICON_EXIT ]
   @disabled = [ false, false, false, false, false, false ]
   @cx = center_x - 16
   @cy = center_y - 16
   setup_move_start
   refresh
end
#------------------------------------------------------------------------------
#  Update
#------------------------------------------------------------------------------
def update
   super
   refresh
end
#------------------------------------------------------------------------------
#  Refresh
#------------------------------------------------------------------------------
def refresh
   self.contents.clear
   case @mode
   when MODE_START
     refresh_start
   when MODE_WAIT
     refresh_wait
   when MODE_MOVER
     refresh_move(1)
   when MODE_MOVEL
     refresh_move(0)
   end
   rect = Rect.new(@cx - 272, @cy + 24, self.contents.width-32, 32)
   self.contents.draw_text(rect, @commands[@index],1)
end
#------------------------------------------------------------------------------
#  Refresh Start
#------------------------------------------------------------------------------
def refresh_start
   d1 = 2.0 * Math::PI / @item_max
   d2 = 1.0 * Math::PI / STARTUP_FRAMES
   r = RING_R - 1.0 * RING_R * @steps / STARTUP_FRAMES
   for i in 0...@item_max
     j = i - @index
     d = d1 * j + d2 * @steps
     x = @cx + ( r * Math.sin( d ) ).to_i
     y = @cy - ( r * Math.cos( d ) ).to_i
     draw_item(x, y, i)
   end
   @steps -= 1
   if @steps < 1
     @mode = MODE_WAIT
   end
end
#------------------------------------------------------------------------------
#  Refresh Wait
#------------------------------------------------------------------------------
def refresh_wait
   d = 2.0 * Math::PI / @item_max
   for i in 0...@item_max
     j = i - @index
     x = @cx + ( RING_R * Math.sin( d * j ) ).to_i
     y = @cy - ( RING_R * Math.cos( d * j ) ).to_i
     draw_item(x, y, i)
   end
end
#------------------------------------------------------------------------------
#  Refresh Move
#------------------------------------------------------------------------------
def refresh_move( mode )
   d1 = 2.0 * Math::PI / @item_max
   d2 = d1 / MOVING_FRAMES
   d2 *= -1 if mode != 0
   for i in 0...@item_max
     j = i - @index
     d = d1 * j + d2 * @steps
     x = @cx + ( RING_R * Math.sin( d ) ).to_i
     y = @cy - ( RING_R * Math.cos( d ) ).to_i
     draw_item(x, y, i)
   end
   @steps -= 1
   if @steps < 1
     @mode = MODE_WAIT
   end
end
#------------------------------------------------------------------------------
#  Draw Item
#------------------------------------------------------------------------------
def draw_item(x, y, i)
   rect = Rect.new(0, 0, @items.width, @items.height)
   if @index == i
     self.contents.blt( x, y, @items, rect )
     if @disabled[@index]
       self.contents.blt( x, y, ICON_DISABLE, rect )
     end
   else
     self.contents.blt( x, y, @items, rect, 128 )
     if @disabled[@index]
       self.contents.blt( x, y, ICON_DISABLE, rect, 128 )
     end
   end
end
#------------------------------------------------------------------------------
#  Disable Item
#------------------------------------------------------------------------------
def disable_item(index)
   @disabled[index] = true
end
#------------------------------------------------------------------------------
#  Setup Move Start
#------------------------------------------------------------------------------
def setup_move_start
   @mode = MODE_START
   @steps = STARTUP_FRAMES
   if  SE_STARTUP != nil and SE_STARTUP != ""
     Audio.se_play("Audio/SE/" + SE_STARTUP, 80, 100)
   end
end
#------------------------------------------------------------------------------
#  Setup Move Move
#------------------------------------------------------------------------------
def setup_move_move(mode)
   if mode == MODE_MOVER
     @index -= 1
     @index = @items.size - 1 if @index < 0
     @mode = MODE_START
   elsif mode == MODE_MOVEL
     @index += 1
     @index = 0 if @index >= @items.size
     @mode = MODE_START
   else
     return
   end
   @mode = mode
   @steps = MOVING_FRAMES
end
#------------------------------------------------------------------------------
#  Animation
#------------------------------------------------------------------------------
def animation?
   return @mode != MODE_WAIT
end
end
#------------------------------------------------------------------------------
#  Window_RingMenuStatus
#------------------------------------------------------------------------------
class Window_RingMenuStatus < Window_Selectable
#------------------------------------------------------------------------------
#  Initialize
#------------------------------------------------------------------------------
def initialize
   super(204, 64, 232, 352)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.size = $chara_select[5]
   refresh
   self.active = false
   self.index = -1
end
#------------------------------------------------------------------------------
#  Refresh
#------------------------------------------------------------------------------
def refresh
   self.contents.clear
   self.windowskin = RPG::Cache.windowskin($chara_select[4])
   self.contents.font.name = $chara_select[0]
   self.contents.font.color = text_color($chara_select[1])
   @item_max = $game_party.actors.size
   for i in 0...$game_party.actors.size
     x = 80
     y = 80 * i
     actor = $game_party.actors
     draw_actor_graphic(actor, x - 60, y + 65)
     draw_actor_name(actor, x, y + 2)
     draw_actor_hp(actor, x - 40, y + 26)
     draw_actor_sp(actor, x - 40, y + 50)
   end
end
#------------------------------------------------------------------------------
#  Update Cursor Rect
#------------------------------------------------------------------------------
def update_cursor_rect
   if @index < 0
     self.cursor_rect.empty
   else
     self.cursor_rect.set(0, @index * 80, self.width - 32, 80)
   end
end
end
#------------------------------------------------------------------------------
#  Game_Map
#------------------------------------------------------------------------------
class Game_Map
#------------------------------------------------------------------------------
#  Name
#------------------------------------------------------------------------------
def name
   $map_infos[@map_id]
end
end
#------------------------------------------------------------------------------
#  Scene_Title
#------------------------------------------------------------------------------
class Scene_Title
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
   $map_infos[key] = $map_infos[key].name
end
end
#------------------------------------------------------------------------------
#  Window_Location
#------------------------------------------------------------------------------
class Window_Location < Window_Base
#------------------------------------------------------------------------------
#  Initialize
#------------------------------------------------------------------------------
def initialize
   super(0, 0, $window_size[0], $window_size[1])
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $location_text[0]
   self.contents.font.size = $location_text[1]
   refresh
end
#------------------------------------------------------------------------------
#  Refresh
#------------------------------------------------------------------------------
def refresh
   self.contents.clear
   self.windowskin = RPG::Cache.windowskin($window_location_skin)
   self.contents.font.color = text_color($location_text[2])
   self.contents.draw_text(0, 0, 640, 16, $location_text[3])
   self.contents.font.color = text_color($location_text[4])
   self.contents.draw_text(4, 16, 640, 16, $game_map.name)
end
end
#------------------------------------------------------------------------------
#  Window_MenuGold
#------------------------------------------------------------------------------
class Window_MenuGold < Window_Base
#------------------------------------------------------------------------------
#  Initialize
#------------------------------------------------------------------------------
def initialize
   super(0, 0, $window_size[0], $window_size[1])
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $gold_text[0]
   self.contents.font.size = $gold_text[1]
   refresh
end
#------------------------------------------------------------------------------
#  Refresh
#------------------------------------------------------------------------------
def refresh
   self.contents.clear
   self.windowskin = RPG::Cache.windowskin($window_gold_skin)
   self.contents.font.color = text_color($gold_text[2])
   self.contents.draw_text(0, 0, 640, 16, $gold_text[4])
   self.contents.font.color = text_color($gold_text[3])
   self.contents.draw_text(4, 16, 640, 16, $game_party.gold.to_s)
end
end

give me your stuff,yu not going to need them where your going....Disney land!!!

tSwitch

please, for the love of god, put that in code tags!


FCF3a A+ C- D H- M P+ R T W- Z- Sf RLCT a cmn+++ d++ e++ f h+++ iw+++ j+ p sf+
Follow my project: MBlok | Find me on: Bandcamp | Twitter | Patreon

killer in the heat

i don't know how sorry
give me your stuff,yu not going to need them where your going....Disney land!!!

shaz

modify post; at top of code, put code in [], at bottom of code, put /code in []
Always remember you're unique.
Just like everybody else.

tSwitch

yeah
you need to hit the Edit or Modify button below your av
then "script"

basically what ^ said :lol:


FCF3a A+ C- D H- M P+ R T W- Z- Sf RLCT a cmn+++ d++ e++ f h+++ iw+++ j+ p sf+
Follow my project: MBlok | Find me on: Bandcamp | Twitter | Patreon