Per 2016, RMID pindah ke RMID Discord (Invite link dihapus untuk mencegah spambot -Theo @ 2019). Posting sudah tidak bisa dilakukan lagi.
Mohon maaf atas ketidaknyamanannya dan mohon kerjasamanya.
|
|
| [Help] Cara tambah menu di Ring Menu | |
| 2012-04-02, 21:02 | [Help] Cara tambah menu di Ring Menu |
---|
yade26 Novice
Posts : 132 Thanked : 0 Engine : RMVX Ace Skill : Skilled Type : Scripter
| agan agan yang jago RmVx tolongin ane dong... ane pake Script Ring Menu by Syvkals nah, trus ane mw tambahin menu lain... ane mw nambahin menu buku monster, yang script dari KGC Enemy Guide[klo gk salah], gimana caranya ??? ane coba, koq error melulu... untuk script Ring Menunya ini - Buka Scriptnya:
#============================================================================== # ** Ring Menu #------------------------------------------------------------------------------- # by Syvkal # Version 1.1 # 06-23-08 #==============================================================================
#===================================================# # ** C O N F I G U R A T I O N S Y S T E M ** # #===================================================# # Amount of frames for Startup Animation STARTUP_FRAMES = 20 # Amount of frames for Movement Animation MOVING_FRAMES = 15 # Radius of the Menu Ring RING_R = 75 # Disabled icon to display when disabled ICON_DISABLE= Cache::picture('Icon_Disable') #-------------D-O---N-O-T---T-O-U-C-H---------------# class Scene_Title < Scene_Base alias game_objects_original create_game_objects def create_game_objects game_objects_original #-------------D-O---N-O-T---T-O-U-C-H---------------# # As this script allows you to make a custom Menu I thought to make it easier # I would make it possible to add extra Menu Options from here # All you need to do is specify the Text to display, the icon and the command # The command must be in a STRING # Simply add to the array below :
$game_ring_menu = [ # Menu Option 0 eg. Item [Vocab::item, Cache::picture('Icon_Items'), "$scene = Scene_Item.new"], # Menu Option 1 eg. Skill [Vocab::skill, Cache::picture('Icon_Skills'), "start_actor_selection", "$scene = Scene_Skill.new(@status_window.index)"], # Menu Option 2 eg. Equip [Vocab::equip, Cache::picture('Icon_Equip'), "start_actor_selection", "$scene = Scene_Equip.new(@status_window.index)"], # Menu Option 3 eg. Status [Vocab::status, Cache::picture('Icon_Status'), "start_actor_selection", "$scene = Scene_Status.new(@status_window.index)"], #---------------------------------------------------# # ** I N S E R T M O R E H E R E ** # #---------------------------------------------------# # Preferably Insert your custom Menu Options Here # Otherwise the existing Menu Options will return to wrong point on the Menu # Menu Option 4 eg. Save ["Save Game", Cache::picture('Icon_Save'), "$scene = Scene_File.new(true, false, false)"], # Menu Option 5 eg. Load ["Load Game", Cache::picture('Icon_Load'), "$scene = Scene_File.new(false, false, false)"], # Menu Option 6 eg. End Game [Vocab::game_end, Cache::picture('Icon_End'), "$scene = Scene_End.new"] ] # <--- Do no Delete This #===================================================# # ** E N D C O N F I G U R A T I O N ** # #===================================================# end end #============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ # Edited to add Ring Menu #==============================================================================
class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias initialize_original initialize alias start_selection_original start_actor_selection alias end_selection_original end_actor_selection #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(menu_index = 0, move = true) @move = move initialize_original(menu_index) end #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background create_command_window @gold_window = Window_Gold.new(0, 360) @location_window = Window_location.new(0, 0) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @command_window.dispose @gold_window.dispose @status_window.dispose if @status_window @location_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update @gold_window.update @status_window.update if @status_window @location_window.update if @command_window.active update_command_selection elsif @status_window.active update_actor_selection end end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window commands = [] for i in 0...$game_ring_menu.size commands.push($game_ring_menu[i][0]) end icons = [] for i in 0...$game_ring_menu.size icons.push($game_ring_menu[i][1]) end @command_window = Window_RingMenu.new(232, 164, commands, icons, @move, @menu_index) if $game_party.members.size == 0 @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end if $game_system.save_disabled @command_window.disable_item(4) end end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_status_window names = [] chars = [] for i in 0...$game_party.members.size names[i] = $game_party.members[i].name chars[i] = $game_party.members[i] end @status_window = Window_RingMenu.new(255, 200, names, chars, true, $game_party.last_actor_index, true) end #-------------------------------------------------------------------------- # * Update Command Selection #-------------------------------------------------------------------------- def update_command_selection if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::C) if $game_party.members.size == 0 and @command_window.index < 4 Sound.play_buzzer return elsif $game_system.save_disabled and @command_window.index == 4 Sound.play_buzzer return end Sound.play_decision eval($game_ring_menu[@command_window.index][2]) end end #-------------------------------------------------------------------------- # * Start Actor Selection #-------------------------------------------------------------------------- def start_actor_selection @command_window.active = false @command_window.visible = false create_status_window if $game_party.last_actor_index < @status_window.item_max @status_window.index = $game_party.last_actor_index else @status_window.index = 0 end end #-------------------------------------------------------------------------- # * End Actor Selection #-------------------------------------------------------------------------- def end_actor_selection @command_window.active = true @command_window.visible = true @status_window.dispose if @status_window @status_window = nil end #-------------------------------------------------------------------------- # * Update Actor Selection #-------------------------------------------------------------------------- def update_actor_selection if Input.trigger?(Input::B) Sound.play_cancel end_actor_selection elsif Input.trigger?(Input::C) $game_party.last_actor_index = @status_window.index Sound.play_decision eval($game_ring_menu[@command_window.index][3]) end end end
#============================================================================== # ** Scene_File #------------------------------------------------------------------------------ # Edited to return to the menu properly when loading #==============================================================================
class Scene_File alias return_scene_original return_scene def return_scene if @from_title $scene = Scene_Title.new elsif @from_event $scene = Scene_Map.new else if @saving $scene = Scene_Menu.new($game_ring_menu.size - 3) else $scene = Scene_Menu.new($game_ring_menu.size - 2) end end end end
#============================================================================== # ** Scene_End #------------------------------------------------------------------------------ # Edited to return to the menu properly due to loading being added #==============================================================================
class Scene_End alias return_scene_original return_scene def return_scene $scene = Scene_Menu.new($game_ring_menu.size - 1) end end
#============================================================================== # ** Window_Location #------------------------------------------------------------------------------ # This class shows the current map name. #==============================================================================
class Window_location < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 160, (WLH*2) + 32) self.contents = Bitmap.new(width - 32, height - 32) refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear $maps = load_data("Data/MapInfos.rvdata") @map_id = $game_map.map_id @currmap = $maps[@map_id].name self.contents.font.color = system_color self.contents.draw_text(0, -4, 128, 32, "Lokasi :") self.contents.font.color = normal_color self.contents.draw_text(0, -4+WLH, 128, 32, @currmap, 1) end end
#============================================================================== # ** Window_RingMenu #------------------------------------------------------------------------------ # This Window creates a Ring Menu system #==============================================================================
class Window_RingMenu < Window_Base #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :index attr_reader :item_max #-------------------------------------------------------------------------- # * Refresh Setup #-------------------------------------------------------------------------- START = 1 WAIT = 2 MOVER = 3 MOVEL = 4 #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(center_x, center_y, commands, items, move = true, index = 0, character = false) super(0, 0, 544, 416) self.contents = Bitmap.new(width-32, height-32) self.opacity = 0 @move = move @char = character @startup = STARTUP_FRAMES @commands = commands @item_max = commands.size @index = index @items = items @disabled = [] for i in 0...commands.size-1 @disabled[i] = false end @cx = center_x @cy = center_y start_setup refresh end #-------------------------------------------------------------------------- # * Start Setup #-------------------------------------------------------------------------- def start_setup @mode = START @steps = @startup end #-------------------------------------------------------------------------- # * Disable index # index : item number #-------------------------------------------------------------------------- def disable_item(index) @disabled[index] = true end #-------------------------------------------------------------------------- # * Determines if is moving #-------------------------------------------------------------------------- def animation? return @mode != WAIT end #-------------------------------------------------------------------------- # * Determine if cursor is moveable #-------------------------------------------------------------------------- def cursor_movable? return false if (not visible or not active) return false if (@opening or @closing) return false if animation? return true end #-------------------------------------------------------------------------- # * Move cursor right #-------------------------------------------------------------------------- def cursor_right @index -= 1 @index = @items.size - 1 if @index < 0 @mode = MOVER @steps = MOVING_FRAMES end #-------------------------------------------------------------------------- # * Move cursor left #-------------------------------------------------------------------------- def cursor_left @index += 1 @index = 0 if @index >= @items.size @mode = MOVEL @steps = MOVING_FRAMES end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super if self.active if cursor_movable? last_index = @index if Input.repeat?(Input::DOWN) or Input.repeat?(Input::RIGHT) cursor_right end if Input.repeat?(Input::UP) or Input.repeat?(Input::LEFT) cursor_left end if @index != last_index Sound.play_cursor end end refresh end end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear case @mode when START refresh_start when WAIT refresh_wait when MOVER refresh_move(1) when MOVEL refresh_move(0) end rect = Rect.new(18, 196, self.contents.width-32, 32) self.contents.draw_text(rect, @commands[@index], 1) end #-------------------------------------------------------------------------- # * Refresh Start Period #-------------------------------------------------------------------------- def refresh_start d1 = 2.0 * Math::PI / @item_max d2 = 1.0 * Math::PI / @startup for i in 0...@item_max j = i - @index if @move r = RING_R - 1.0 * RING_R * @steps / @startup d = d1 * j + d2 * @steps else r = RING_R d = d1 * j end 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 = WAIT end end #-------------------------------------------------------------------------- # * Refresh Wait Period #-------------------------------------------------------------------------- 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 Movement Period #-------------------------------------------------------------------------- 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 = WAIT end end #-------------------------------------------------------------------------- # * Draw Item # x : draw spot x-coordinate # y : draw spot y-coordinate # index : item number #-------------------------------------------------------------------------- def draw_item(x, y, index) if @char if @index == index draw_character(@items[index].character_name, @items[index].character_index , x, y) if @mode == WAIT draw_actor_hp_ring(@items[index], @cx, @cy-16, 50, 6, 84, 270, false) draw_actor_mp_ring(@items[index], @cx, @cy-16, 50, 6, 84, 180, false) draw_actor_exp_ring(@items[index], @cx, @cy-16, 50, 6, 155, 12, false) end else draw_character(@items[index].character_name, @items[index].character_index , x, y, false) end else rect = Rect.new(0, 0, @items[index].width, @items[index].height) if @index == index self.contents.blt( x, y, @items[index], rect ) if @disabled[@index] self.contents.blt( x, y, ICON_DISABLE, rect ) end else self.contents.blt( x, y, @items[index], rect, 128 ) end end end end
#============================================================================== # ** Window_Base #------------------------------------------------------------------------------ # Edited to allow disabled character icons #==============================================================================
class Window_Base < Window #-------------------------------------------------------------------------- # * Draw Character Graphic #-------------------------------------------------------------------------- def draw_character(character_name, character_index, x, y, enabled = true) return if character_name == nil bitmap = Cache.character(character_name) sign = character_name[/^[\!\$]./] if sign != nil and sign.include?('$') cw = bitmap.width / 3 ch = bitmap.height / 4 else cw = bitmap.width / 12 ch = bitmap.height / 8 end n = character_index src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch) self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, enabled ? 255 : 128) end end
silahkan di modif lagi senpai... thanks.... |
| | | 2012-04-02, 22:07 | Re: [Help] Cara tambah menu di Ring Menu |
---|
LowlingLife Administrator
Posts : 2000 Thanked : 25 Engine : Multi-Engine User
Awards:
| Itu bagian INSERTMOREHERE. Kan ada dia bilang tambahin menu baru. Saya belum coba tapi coba di buat opsi barunya dengan ngikutin template dari opsi sebelumnya.. |
| | | 2012-04-02, 22:15 | Re: [Help] Cara tambah menu di Ring Menu |
---|
Roronoa_Zojo Senior
Posts : 833 Thanked : 3 Engine : Multi-Engine User Skill : Skilled Type : Mapper
| ok gini.. pertama cari bagian ini - Code:
-
#---------------------------------------------------# # ** I N S E R T M O R E H E R E ** # #---------------------------------------------------#
# Preferably Insert your custom Menu Options Here # Otherwise the existing Menu Options will return to wrong point on the Menu
# Menu Option 4 eg. Save ["Save Game", Cache::picture('Icon_Save'), "$scene = Scene_File.new(true, false, false)"],
# Menu Option 5 eg. Load ["Load Game", Cache::picture('Icon_Load'), "$scene = Scene_File.new(false, false, false)"],
# Menu Option 6 eg. End Game [Vocab::game_end, Cache::picture('Icon_End'), "$scene = Scene_End.new"] Trus kalo kmu ingin pilihan itu ada sebelum Save... tambahkan ini - Code:
-
["Enemy", Cache::picture('isi ini dengan nama gambar di folder picture'), "$scene = Scene_EnemyGuide.new"], diatas - Code:
-
# Menu Option 4 eg. Save ["Save Game", Cache::picture('Icon_Save'), "$scene = Scene_File.new(true, false, false)"], |
| | | 2012-04-03, 15:30 | Re: [Help] Cara tambah menu di Ring Menu |
---|
yade26 Novice
Posts : 132 Thanked : 0 Engine : RMVX Ace Skill : Skilled Type : Scripter
| wahh,, thanks master.... sebenernya ane punya masalah lagi nih sama Ring Menu, ane pake script Status Distibution, cara nampilinnya gimana??? pas ane buka menu status di Ring Menu nya koq gk muncul ya... yang statdistrbutionnya... |
| | | | Re: [Help] Cara tambah menu di Ring Menu |
---|
Sponsored content
| | | | | [Help] Cara tambah menu di Ring Menu | |
|
Halaman 1 dari 1 | |
| Permissions in this forum: | Anda tidak dapat menjawab topik
| |
| |
Latest 10 Topics | [Web Novel] Gloria Infidelis 2016-11-17, 21:27 by LightNightKnight
[Announcement] Forum baru untuk RMID 2016-08-25, 16:39 by TheoAllen
Where I'm Wrong ? 2016-07-24, 16:10 by ReydVires
flakeheartnet's Resources part III 2016-07-08, 14:30 by flakeheartnet
Keira's Art Warehouse 2016-06-28, 19:27 by KeiraBlaze
Theo Core Time System + Bingung 2016-06-27, 16:24 by Lockin
Error Script, Maybe ? 2016-06-27, 16:20 by Lockin
Nusaimoe @ RMID Lounge 2016-06-21, 05:02 by Jihad Bagas
Call Random Battle 2016-06-15, 17:04 by Lockin
Flakeheartnet Resources Part II [come back gift] 2016-06-07, 15:51 by flakeheartnet
|
Statistics
|
Members: [ 4947 ]
Topics: [ 8258 ]
Posts: [ 112606 ]
Newest member: [ https://rmid.forumotion.net/u4968 ]
|
|
|
|
|
|