Script Request Template
Hi everyone, Im working on a Lord of the Rings game, and Im using the ring menu, but my Idea was to put "The One Ring" around the Ring menu. Please let me know if this is possible
Script Title:
The "One" Ring menu
RMXP or RMVX:
RMXP
Detailed Description:
Well this is the script:
And this is the image I want around the menu:
Screen shots:
.
Hi everyone, Im working on a Lord of the Rings game, and Im using the ring menu, but my Idea was to put "The One Ring" around the Ring menu. Please let me know if this is possible
Script Title:
The "One" Ring menu
RMXP or RMVX:
RMXP
Detailed Description:
Well this is the script:
Code:
#===================================================
# ■ 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.
#
# [email=alex@dubealex.com]alex@dubealex.com[/email]
#===================================================
#===================================================
# ▼ 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=true #Set to false to not use it !
@window_opacity[0]=255 # Border Opacity
@window_opacity[1]=130 # Background Opacity
$window_location_skin="001-Blue01" # 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]="Items" # Items Menu Text
$ring_menu_text[2]="Skills" # Skills Menu Text
$ring_menu_text[3]="Equip" # Equip Menu Text
$ring_menu_text[4]="Stats" # Stats Menu Text
$ring_menu_text[5]="Save" # Save Menu Text
$ring_menu_text[6]="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]="001-Blue01" # 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)
@command_window.disable_item(2)
@command_window.disable_item(3)
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 < 4
# ?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 # ????
# ???? 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 3 # ?X?eپ[?^?X
# ???? 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 4 # ?Zپ[?u
# ?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 5 # ?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
#--------------------------------------------------------------------------
# پ? ?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)
when 2 # ????
# ???? SE ?????t
$game_system.se_play($data_system.decision_se)
# ????????? ?????
$scene = Scene_Equip.new(@status_window.index)
when 3 # ?X?eپ[?^?X
# ???? SE ?????t
$game_system.se_play($data_system.decision_se)
# ?X?eپ[?^?X????? ?????
$scene = Scene_Status.new(@status_window.index)
end
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("044-Skill01")
ICON_EQUIP = RPG::Cache.icon("001-Weapon01")
ICON_STATUS = RPG::Cache.icon("050-Skill07")
ICON_SAVE = RPG::Cache.icon("038-Item07")
ICON_EXIT = RPG::Cache.icon("046-Skill03")
ICON_DISABLE= RPG::Cache.icon("")
SE_STARTUP = "056-Right02"
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]
s5 = $ring_menu_text[5]
s6 = $ring_menu_text[6]
@commands = [ s1, s2, s3, s4, s5, s6 ]
@item_max = 6
@index = 0
@items = [ ICON_ITEM, ICON_SKILL, ICON_EQUIP, ICON_STATUS, ICON_SAVE, ICON_EXIT ]
@disabled = [ false, false, 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
#===================================================
Screen shots: