Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #===================================================
- # ¦ Ring Menu - Show Player Location - Release #1 (Enhanced By Dubealex)
- #===================================================
- # For more infos and update, visit:
- # asylum.dubealex.com
- #
- # Original Ring Menu by: ?? (From XRXS)
- # Original Edit and Fix by: Maki
- # Show Player Location Version by: Dubealex
- #
- # You can customize this script at line #35 - Have fun !!
- # If you want to show more stuff, its easy to do, you can try to ask in the forum.
- #
- # alex@dubealex.com
- #===================================================
- #===================================================
- # ? CLASS Scene_Menu Begins
- #===================================================
- class Scene_Menu
- #--------------------------------------------------------------------------
- # ?? ?I?u?W?F?N?g??????
- # menu_index : ?R?}???h??J?[?\????????u
- #--------------------------------------------------------------------------
- def initialize(menu_index = 0)
- @menu_index = menu_index
- $location_text=[]
- $window_size=[]
- $ring_menu_text=[]
- $chara_select=[]
- @window_opacity=[]
- @chara_select=[]
- @window_position=[]
- #--------------------------------------------------------------------------------------------------
- # ¦ Ring Menu Customization Section: (By Dubealex)
- #--------------------------------------------------------------------------------------------------
- # Those variables defines how the script will act.
- # Simply change the value by those you want.
- # Remember that changing the font size has its limitation due to text space allocation.
- #
- # ? TEXT SETTINGS FOR SHOW PLAYER LOCATION WINDOW:
- $location_text[0]="Tahoma" # Font Type
- $location_text[1]=22 # Font Size
- $location_text[2]=6 # Location Title Color
- $location_text[4]=0 # Map Name Color
- $location_text[3]="Location:" # Customize the "Location" Title Text
- # ? SHOW LOCATION WINDOW SETTINS:
- @show_location_window=false #Set to false to not use it !
- @window_opacity[0]=255 # Border Opacity
- @window_opacity[1]=130 # Background Opacity
- $window_location_skin="Pheniox" # Window Skin
- @window_position[0]=20 # X Axis Position
- @window_position[1]=20 # Y Axis Position
- $window_size[0]=160 # Lengh
- $window_size[1]=96 # Heigh
- # ? TEXT SETTINGS FOR INSIDE THE RING MENU:
- $ring_menu_text[0]="Tahoma" # Font Type
- $ring_menu_text[7]=0 # Font Color
- $ring_menu_text[8]=22 # Font Size
- $ring_menu_text[1]="Key Items" # Items Menu Text
- $ring_menu_text[2]="Controls" # Skills Menu Text
- $ring_menu_text[3]="Save" # Save Menu Text
- $ring_menu_text[4]="Quit" # Quit Menu Text
- # ? CHARACTER SELECTION WINDOW SETTINGS :
- @chara_select[0]=400 # 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]=22 # Font Size
- $chara_select[2]=255 # Window Border Opacity
- $chara_select[3]=130 # Window Background Opacity
- $chara_select[4]="Pheniox" # Window Skin to use
- #--------------------------------------------------------------------------------------------------
- end
- #--------------------------------------------------------------------------
- # ?? ???C?????
- #--------------------------------------------------------------------------
- def main
- # Show Player Location Feature:
- if @show_location_window==true
- @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]
- end
- #End of Show Player Location
- # ?X?v???C?g?Z?b?g???? ?
- @spriteset = Spriteset_Map.new
- # ?R?}???h?E?B???h?E???? ?
- px = $game_player.screen_x - 15
- py = $game_player.screen_y - 24
- @command_window = Window_RingMenu.new(px,py)
- @command_window.index = @menu_index
- # ?p?[?e?B l ??? 0 l??????
- if $game_party.actors.size == 0
- # ?A?C?e???A?X?L???A?????A?X?e?[?^?X????????
- @command_window.disable_item(0)
- @command_window.disable_item(1)
- end
- @command_window.z = 100
- # ?Z?[?u??~??????
- if $game_system.save_disabled
- # ?Z?[?u???????????
- @command_window.disable_item(4)
- end
- # ?X?e?[?^?X?E?B???h?E???? ?
- @status_window = Window_RingMenuStatus.new
- @status_window.x = @chara_select[0]
- @status_window.y = @chara_select[1]
- @status_window.z = 200
- @status_window.opacity=$chara_select[2]
- @status_window.back_opacity=$chara_select[3]
- @status_window.visible = false
- # ?g?????W?V???????s
- Graphics.transition
- # ???C?????[?v
- loop do
- # ?Q?[????????X V
- Graphics.update
- # ???????????X V
- Input.update
- # ?t???[???X V
- update
- # ????? ????????????[?v?????f
- if $scene != self
- break
- end
- end
- # ?g?????W?V????????
- Graphics.freeze
- # ?X?v???C?g?Z?b?g??????
- @spriteset.dispose
- # ?E?B???h?E??????
- if @show_location_window==true
- @window_location.dispose
- end
- @command_window.dispose
- @status_window.dispose
- end
- #--------------------------------------------------------------------------
- # ?? ?t???[???X V
- #--------------------------------------------------------------------------
- def update
- # ?E?B???h?E???X V
- if @show_location_window==true
- @window_location.update
- end
- @command_window.update
- @status_window.update
- # ?R?}???h?E?B???h?E???A?N?e?B?u??????: update_command ?????
- if @command_window.active
- update_command
- return
- end
- # ?X?e?[?^?X?E?B???h?E???A?N?e?B?u??????: update_status ?????
- if @status_window.active
- update_status
- return
- end
- end
- #--------------------------------------------------------------------------
- # ?? ?t???[???X V (?R?}???h?E?B???h?E???A?N?e?B?u??????)
- #--------------------------------------------------------------------------
- def update_command
- # B ?{?^??????????????
- if Input.trigger?(Input::B)
- # ?L?????Z?? SE ?????t
- $game_system.se_play($data_system.cancel_se)
- # ?}?b?v????? ?????
- $scene = Scene_Map.new
- return
- end
- # C ?{?^??????????????
- if Input.trigger?(Input::C)
- # ?p?[?e?B l ??? 0 l???A?Z?[?u?A?Q?[???I????O??R?}???h??????
- if $game_party.actors.size == 0 and @command_window.index < 2
- # ?u?U?[ SE ?????t
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- # ?R?}???h?E?B???h?E??J?[?\????u?????
- case @command_window.index
- when 0 # ?A?C?e??
- # ???? SE ?????t
- $game_system.se_play($data_system.decision_se)
- # ?A?C?e??????? ?????
- $scene = Scene_Item.new
- when 1 # ?X?L??
- # ???? SE ?????t
- $game_system.se_play($data_system.decision_se)
- # ?X?e?[?^?X?E?B???h?E???A?N?e?B?u?????
- @command_window.active = false
- @status_window.active = true
- @status_window.visible = true
- @status_window.index = 0
- when 2 # ????
- # ?Z?[?u??~??????
- if $game_system.save_disabled
- # ?u?U?[ SE ?????t
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- # ???? SE ?????t
- $game_system.se_play($data_system.decision_se)
- # ?Z?[?u????? ?????
- $scene = Scene_Save.new
- when 3 # ?Q?[???I??
- # ???? SE ?????t
- $game_system.se_play($data_system.decision_se)
- # ?Q?[???I??????? ?????
- $scene = Scene_End.new
- end
- return
- end
- # ?A?j???[?V??????????J?[?\??????? ???s?????
- return if @command_window.animation?
- # ??or?? ?{?^??????????????
- 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
- # ??or?? ?{?^??????????????
- 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
- end
- #--------------------------------------------------------------------------
- # ?? ?t???[???X V (?X?e?[?^?X?E?B???h?E???A?N?e?B?u??????)
- #--------------------------------------------------------------------------
- def update_status
- # B ?{?^??????????????
- if Input.trigger?(Input::B)
- # ?L?????Z?? SE ?????t
- $game_system.se_play($data_system.cancel_se)
- # ?R?}???h?E?B???h?E???A?N?e?B?u?????
- @command_window.active = true
- @status_window.active = false
- @status_window.visible = false
- @status_window.index = -1
- return
- end
- # C ?{?^??????????????
- if Input.trigger?(Input::C)
- # ?R?}???h?E?B???h?E??J?[?\????u?????
- case @command_window.index
- when 1 # ?X?L??
- # ????A?N?^?[???s?? ????? 2 ??????????
- if $game_party.actors[@status_window.index].restriction >= 2
- # ?u?U?[ SE ?????t
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- # ???? SE ?????t
- $game_system.se_play($data_system.decision_se)
- # ?X?L??????? ?????
- $scene = Scene_Skill.new(@status_window.index)
- return
- end
- end
- end
- #===================================================
- # ? CLASS Scene_Menu Ends
- #===================================================
- #===================================================
- # ? CLASS Window_RingMenu Begins
- #===================================================
- class Window_RingMenu < Window_Base
- #--------------------------------------------------------------------------
- # ?? ?N???X?? ?
- #--------------------------------------------------------------------------
- STARTUP_FRAMES = 20
- MOVING_FRAMES = 5
- RING_R = 64
- ICON_ITEM = RPG::Cache.icon("034-Item03")
- ICON_SKILL = RPG::Cache.icon("049-Skill06")
- ICON_SAVE = RPG::Cache.icon("save")
- ICON_EXIT = RPG::Cache.icon("Quit")
- ICON_DISABLE= RPG::Cache.icon("")
- SE_STARTUP = "terrain2"
- MODE_START = 1
- MODE_WAIT = 2
- MODE_MOVER = 3
- MODE_MOVEL = 4
- #--------------------------------------------------------------------------
- # ?? ?A?N?Z?T
- #--------------------------------------------------------------------------
- attr_accessor :index
- #--------------------------------------------------------------------------
- # ?? ?I?u?W?F?N?g??????
- #--------------------------------------------------------------------------
- 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]
- @commands = [ s1, s2, s3, s4 ]
- @item_max = 4
- @index = 0
- @items = [ ICON_ITEM, ICON_SKILL, ICON_SAVE, ICON_EXIT ]
- @disabled = [ false, false, false, false ]
- @cx = center_x - 16
- @cy = center_y - 16
- setup_move_start
- refresh
- end
- #--------------------------------------------------------------------------
- # ?? ?t???[???X V
- #--------------------------------------------------------------------------
- def update
- super
- refresh
- end
- #--------------------------------------------------------------------------
- # ?? ??????`??
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- # ?A?C?R?????`??
- 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
- # ?A?N?e?B?u??R?}???h???\??
- rect = Rect.new(@cx - 272, @cy + 24, self.contents.width-32, 32)
- self.contents.draw_text(rect, @commands[@index],1)
- end
- #--------------------------------------------------------------------------
- # ?? ??????`??(????????)
- #--------------------------------------------------------------------------
- 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
- #--------------------------------------------------------------------------
- # ?? ??????`??(??@??)
- #--------------------------------------------------------------------------
- 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
- #--------------------------------------------------------------------------
- # ?? ??????`??(???]??)
- # mode : 0=?????v???? 1=???v????
- #--------------------------------------------------------------------------
- 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
- #--------------------------------------------------------------------------
- # ?? ?????`??
- # x :
- # y :
- # i : ???????
- #--------------------------------------------------------------------------
- def draw_item(x, y, i)
- #p "x=" + x.to_s + " y=" + y.to_s + " i=" + @items[i].to_s
- rect = Rect.new(0, 0, @items[i].width, @items[i].height)
- if @index == i
- self.contents.blt( x, y, @items[i], rect )
- if @disabled[@index]
- self.contents.blt( x, y, ICON_DISABLE, rect )
- end
- else
- self.contents.blt( x, y, @items[i], rect, 128 )
- if @disabled[@index]
- self.contents.blt( x, y, ICON_DISABLE, rect, 128 )
- end
- end
- end
- #--------------------------------------------------------------------------
- # ?? ??????????????
- # index : ???????
- #--------------------------------------------------------------------------
- def disable_item(index)
- @disabled[index] = true
- end
- #--------------------------------------------------------------------------
- # ?? ???????A?j???[?V??????????
- #--------------------------------------------------------------------------
- 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
- #--------------------------------------------------------------------------
- # ?? ???]?A?j???[?V??????????
- #--------------------------------------------------------------------------
- def setup_move_move(mode)
- if mode == MODE_MOVER
- @index -= 1
- @index = @items.size - 1 if @index < 0
- elsif mode == MODE_MOVEL
- @index += 1
- @index = 0 if @index >= @items.size
- else
- return
- end
- @mode = mode
- @steps = MOVING_FRAMES
- end
- #--------------------------------------------------------------------------
- # ?? ?A?j???[?V?????????????
- #--------------------------------------------------------------------------
- def animation?
- return @mode != MODE_WAIT
- end
- end
- #===================================================
- # ? CLASS Window_RingMenu Ends
- #===================================================
- #===================================================
- # ? CLASS Window_RingMenuStatus Begins
- #===================================================
- class Window_RingMenuStatus < Window_Selectable
- #--------------------------------------------------------------------------
- # ?? ?I?u?W?F?N?g??????
- #--------------------------------------------------------------------------
- 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
- #--------------------------------------------------------------------------
- # ?? ???t???b?V??
- #--------------------------------------------------------------------------
- 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[i]
- draw_actor_graphic(actor, x - 40, y + 80)
- draw_actor_name(actor, x, y + 24)
- end
- end
- #--------------------------------------------------------------------------
- # ?? ?J?[?\??????`?X V
- #--------------------------------------------------------------------------
- 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
- #===================================================
- # ? CLASS Window_RingMenuStatus Ends
- #===================================================
- #===================================================
- # ? CLASS Game_Map Additional Code Begins
- #===================================================
- class Game_Map
- #Dubealex Addition (from XRXS) to show Map Name on screen
- def name
- $map_infos[@map_id]
- end
- end
- #===================================================
- # ? CLASS Game_Map Additional Code Ends
- #===================================================
- #===================================================
- # ? CLASS Scene_Title Additional Code Begins
- #===================================================
- class Scene_Title
- #Dubealex Addition (from XRXS) to show Map Name on screen
- $map_infos = load_data("Data/MapInfos.rxdata")
- for key in $map_infos.keys
- $map_infos[key] = $map_infos[key].name
- end
- end
- #===================================================
- # ? CLASS Scene_Title Additional Code Ends
- #===================================================
- #===================================================
- # ? CLASS Window_Location Begins
- #===================================================
- class Window_Location < Window_Base
- 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
- 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(4, 0, 120, 32, $location_text[3])
- self.contents.font.color = text_color($location_text[4])
- self.contents.draw_text(4, 32, 120, 32, $game_map.name, 2)
- end
- end
- #===================================================
- # ? CLASS Window_Location Ends
- #===================================================
- #===================================================
- # ? Ring Menu - Show Player Location R1 - Ends
- #===================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement