Sora-Master Posted February 14, 2008 Share Posted February 14, 2008 (edited) nn so se esiste già uno script del genere cmq questo è un menù ad anello credo ke sia stato fatto da MakirouAru #============================================================================== # ¡ Window_RingMenu #============================================================================== #============================================================================== # Edited by MakirouAru #============================================================================== class Window_RingMenu < Window_Base #-------------------------------------------------------------------------- # › ƒNƒ‰ƒX’è” #-------------------------------------------------------------------------- STARTUP_FRAMES = 20 # ‰ŠúƒAƒjƒ[ƒVƒ‡ƒ“‚̃tƒŒ[ƒ€” MOVING_FRAMES = 5 # ƒŠƒ“ƒO‚ð‰ñ‚µ‚½Žž‚̃tƒŒ[ƒ€” RING_R = 64 # ƒŠƒ“ƒO‚Ì”¼Œa ICON_ITEM = RPG::Cache.icon("034-Item03") # uƒAƒCƒeƒ€vƒƒjƒ…[‚̃AƒCƒRƒ“ ICON_SKILL = RPG::Cache.icon("044-Skill01") # uƒXƒLƒ‹vƒƒjƒ…[‚̃AƒCƒRƒ“ ICON_EQUIP = RPG::Cache.icon("001-Weapon01") # u‘•”õvƒƒjƒ…[‚̃AƒCƒRƒ“ ICON_STATUS = RPG::Cache.icon("050-Skill07") # uƒXƒe[ƒ^ƒXvƒƒjƒ…[‚̃AƒCƒRƒ“ ICON_SAVE = RPG::Cache.icon("038-Item07") # uƒZ[ƒuvƒƒjƒ…[‚̃AƒCƒRƒ“ ICON_EXIT = RPG::Cache.icon("046-Skill03") # uI—¹vƒƒjƒ…[‚̃AƒCƒRƒ“ ICON_DISABLE= RPG::Cache.icon("") # Žg—p‹ÖŽ~€–Ú‚É•t‚ƒAƒCƒRƒ“ SE_STARTUP = "056-Right02" # ƒƒjƒ…[‚ðŠJ‚¢‚½‚Æ‚«‚ɖ‚炷SE MODE_START = 1 # ƒXƒ^[ƒgƒAƒbƒvƒAƒjƒ[ƒVƒ‡ƒ“ MODE_WAIT = 2 # ‘Ò‹@ MODE_MOVER = 3 # ŽžŒv‰ñ‚è‰ñ“]ƒAƒjƒ[ƒVƒ‡ƒ“ MODE_MOVEL = 4 # ”½ŽžŒv‰ñ‚è‰ñ“]ƒAƒjƒ[ƒVƒ‡ƒ“ #-------------------------------------------------------------------------- # › ƒ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 = "Arial" self.opacity = 0 self.back_opacity = 0 s1 = "Items" s2 = "Skills" s3 = "Equip" s4 = "Stats" s5 = "Save" s6 = "Quit" @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ƒŒ[ƒ€XV #-------------------------------------------------------------------------- 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 #============================================================================== # ¡ Window_MenuStatus #------------------------------------------------------------------------------ # @ƒƒjƒ…[‰æ–ʂŃp[ƒeƒBƒƒ“ƒo[‚̃Xƒe[ƒ^ƒX‚ð•\ަ‚·‚éƒEƒBƒ“ƒhƒE‚Å‚·B #============================================================================== 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) refresh self.active = false self.index = -1 end #-------------------------------------------------------------------------- # œ ƒŠƒtƒŒƒbƒVƒ… #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.name = "Arial" @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[ƒ\ƒ‹‚Ì‹éŒXV #-------------------------------------------------------------------------- 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 #============================================================================== # #¡ Scene_RingMenu # ¡ Scene_Menu #------------------------------------------------------------------------------ # @ƒƒjƒ…[‰æ–ʂ̈—‚ðs‚¤ƒNƒ‰ƒX‚Å‚·B #============================================================================== #class Scene_RingMenu class Scene_Menu #-------------------------------------------------------------------------- # œ ƒIƒuƒWƒFƒNƒg‰Šú‰» # menu_index : ƒRƒ}ƒ“ƒh‚̃J[ƒ\ƒ‹‰ŠúˆÊ’u #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # œ ƒƒCƒ“ˆ— #-------------------------------------------------------------------------- def main # ƒ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ƒBl”‚ª 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 = 160 @status_window.y = 0 @status_window.z = 200 @status_window.visible = false # ƒgƒ‰ƒ“ƒWƒVƒ‡ƒ“ŽÀs Graphics.transition # ƒƒCƒ“ƒ‹[ƒv loop do # ƒQ[ƒ€‰æ–Ê‚ðXV Graphics.update # “ü—Íî•ñ‚ðXV Input.update # ƒtƒŒ[ƒ€XV 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‚ð‰ð•ú @command_window.dispose @status_window.dispose end #-------------------------------------------------------------------------- # œ ƒtƒŒ[ƒ€XV #-------------------------------------------------------------------------- def update # ƒEƒBƒ“ƒhƒE‚ðXV @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ƒŒ[ƒ€XV (ƒ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ƒBl”‚ª 0 l‚ÅAƒZ[ƒuAƒ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ƒŒ[ƒ€XV (ƒ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 Edited August 12, 2013 by Flame http://dragcave.net/image/VqHI.gifhttp://dragcave.net/image/5thF.gifhttp://dragcave.net/image/7cb8.gifhttp://dragcave.net/image/WPrD.gifhttp://dragcave.net/image/DxRI.gifhttp://dragcave.net/image/JAV2.gifhttp://dragcave.net/image/aiDE.gifclicca sull'uovoFrom Wikipidia:Makeritus vulgaris(Makeritus Enpatologium Catostum) Malattia che si sviluppa nel mekeratore.si manifesta con status alterati di noia e svogliatezza.Malattia grave poiche puo guarire solo con il tempo e impedisce il Maker al soggetto che ne è infetto.Attualmente gli scenziati della Ryu-soft stanno cercando rimedio a questa malattia Ryu-Soft VISITA LA MIA BOTTEGA http://r5.fodey.com/19cf30d77a0fd435cb06407ab7023508e.1.gif ouyang_keba@hotmail.it ha inviato 15/03/2009 15.24:yaDiosba S.O.J. 4ever!!!!! scrive:who's fat??ouyang_keba@hotmail.it ha inviato 15/03/2009 15.25:eccomi mi sono appena connessoouyang_keba@hotmail.it ha inviato 15/03/2009 15.26:wath?Diosba S.O.J. 4ever!!!!! scrive:O.ODiosba S.O.J. 4ever!!!!! scrive:si scrive whatouyang_keba@hotmail.it ha inviato 15/03/2009 15.26:mi sono connesso clandestinamente xD me manca un es di italiano e poi ho finito i compitiouyang_keba@hotmail.it ha inviato 15/03/2009 15.27:seDiosba S.O.J. 4ever!!!!! scrive:O.ODiosba S.O.J. 4ever!!!!! scrive:addiritturingouyang_keba@hotmail.it ha inviato 15/03/2009 15.28:e giaouyang_keba@hotmail.it ha inviato 15/03/2009 15.28:che me raccontiDiosba S.O.J. 4ever!!!!! scrive:mmmmhDiosba S.O.J. 4ever!!!!! scrive:qlcsa che ti farà feliceDiosba S.O.J. 4ever!!!!! scrive:indovining...Diosba S.O.J. 4ever!!!!! scrive:http://www.youtube.com/watch?v=p9Zt8mn14hY...feature=relatedouyang_keba@hotmail.it ha inviato 15/03/2009 15.28:mmmmmmmmmmmmmmmouyang_keba@hotmail.it ha inviato 15/03/2009 15.29:caghi a spruzzo xEDiosba S.O.J. 4ever!!!!! scrive:O.O ri iniziamo a giocare a D&D Diosba S.O.J. 4ever!!!!! scrive::xouyang_keba@hotmail.it ha inviato 15/03/2009 15.30:yeees!!Diosba S.O.J. 4ever!!!!! scrive: Link to comment Share on other sites More sharing options...
Redrum Posted January 29, 2009 Share Posted January 29, 2009 Spettacolo, non serve ne grafica, ne impostazioni. Thanks. Link to comment Share on other sites More sharing options...
raXor Posted September 22, 2010 Share Posted September 22, 2010 Scusa se scrivo dopo circa 2 anni ke è stato postato... ma volvevo chiedere se c'è una soluzione a un mio problema :unsure: Il menu parte normalmente ma se io faccio una battagli e poi, finita la battaglia, riapro il menu mi da un errore nella stringa 143... nn capisco (Centra qualcosa con la variabile 'rect') Potresti aiutarmi?? Link to comment Share on other sites More sharing options...
athreus Posted September 25, 2010 Share Posted September 25, 2010 Mi unisco alla richiesta di raXor. Per caso va in conflitto con il CTB di Charlie Fleed? Link to comment Share on other sites More sharing options...
Soul Eater Posted September 25, 2010 Share Posted September 25, 2010 Provatelo su un progetto nuovo. Se va, significa che il problema sta negli scripts incollati nel vostro progetto. Targhettehttp://www.rpg2s.net/awards/mostpolite2.jpghttp://www.rpg2s.net/awards/mostpresent1.jpghttp://i51.tinypic.com/2mfnpt2.png http://www.rpg2s.net/dax_games/r2s_regali5.png Link to comment Share on other sites More sharing options...
rizzuccio Posted April 15, 2013 Share Posted April 15, 2013 Come si toglie il menu' skill da ste menu ?non fa altro che dare errori su errori =( http://www.freankexpo.net/signature.php?gid=683.png Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now