Neko Fondateur
Messages : 184 Date d'inscription : 14/07/2013 Age : 25 Localisation : Ici, la plupart du temps.
| Sujet: VX - Menu de MogHunter ( MOG - Scene Menu ) Dim 21 Juil - 17:55 | |
| Nom:MOG - Scene Menu Style:Scene/Menu - Code:
-
#_______________________________________________________________________________ # MOG Main Menu V1.7 #_______________________________________________________________________________ # By Moghunter # http://www.atelier-rgss.com #_______________________________________________________________________________ module MOG #Tipo de fundo. # 0 = Imagens em movimento. # 1 = Mapa de fundo. MENU_BACKGROUND = 0 #Transition Time. MNTT = 10 #Transition Type (Name) MNTP = "006-Stripe02" #Velocidade do cursor CURSOR_SPEED = 12 end $mogscript = {} if $mogscript == nil $mogscript["MOG_Main_Menu"] = true ############## # Game_Actor # ############## class Game_Actor < Game_Battler def now_exp return @exp - @exp_list[@level] end def next_exp return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0 end end ############ # Game_Map # ############ class Game_Map attr_reader :map_id def mpname $mpname = load_data("Data/MapInfos.rxdata") $mpname[@map_id].name end end ############### # Window_Base # ############### class Window_Base < Window def nada face = RPG::Cache.picture("") end def drw_face(actor,x,y) face = RPG::Cache.picture(actor.name + "_fc") rescue nada cw = face.width ch = face.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x , y - ch, face, src_rect) end def draw_maphp3(actor, x, y) back = RPG::Cache.picture("BAR0") cw = back.width ch = back.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 65, y - ch + 30, back, src_rect) meter = RPG::Cache.picture("HP_Bar") cw = meter.width * actor.hp / actor.maxhp ch = meter.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 65, y - ch + 30, meter, src_rect) text = RPG::Cache.picture("HP_Tx") cw = text.width ch = text.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 35, y - ch + 30, text, src_rect) self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 81, y - 1, 48, 32, actor.hp.to_s, 2) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 80, y - 2, 48, 32, actor.hp.to_s, 2) end def draw_mapsp3(actor, x, y) back = RPG::Cache.picture("BAR0") cw = back.width ch = back.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 65, y - ch + 30, back, src_rect) meter = RPG::Cache.picture("SP_Bar") cw = meter.width * actor.sp / actor.maxsp ch = meter.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 65, y - ch + 30, meter, src_rect) text = RPG::Cache.picture("SP_Tx") cw = text.width ch = text.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 35, y - ch + 30, text, src_rect) self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 81, y - 1, 48, 32, actor.sp.to_s, 2) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 80, y - 2, 48, 32, actor.sp.to_s, 2) end def draw_mexp2(actor, x, y) bitmap2 = RPG::Cache.picture("Exp_Back") cw = bitmap2.width ch = bitmap2.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 60 , y - ch + 30, bitmap2, src_rect) if actor.next_exp != 0 rate = actor.now_exp.to_f / actor.next_exp else rate = 1 end bitmap = RPG::Cache.picture("Exp_Meter") if actor.level < 99 cw = bitmap.width * rate else cw = bitmap.width end ch = bitmap.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 60 , y - ch + 30, bitmap, src_rect) exp_tx = RPG::Cache.picture("Exp_tx") cw = exp_tx.width ch = exp_tx.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 55 , y - ch + 30, exp_tx, src_rect) lv_tx = RPG::Cache.picture("LV_tx") cw = lv_tx.width ch = lv_tx.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 125 , y - ch + 35, lv_tx, src_rect) self.contents.font.color = Color.new(0,0,0,255) self.contents.draw_text(x + 161, y + 7, 24, 32, actor.level.to_s, 1) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 160, y + 6, 24, 32, actor.level.to_s, 1) end def draw_actor_state2(actor, x, y, width = 80) text = make_battler_state_text(actor, width, true) self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color self.contents.draw_text(x, y, width, 32, text,2) end end ###################### # Window_MenuStatus2 # ###################### class Window_MenuStatus2 < Window_Selectable def initialize super(0, 0, 415, 280) self.contents = Bitmap.new(width - 32, height - 32) self.windowskin = RPG::Cache.windowskin("") self.opacity = 0 self.z = 15 refresh self.active = false self.index = -1 end def refresh self.contents.clear @item_max = $game_party.actors.size for i in 0...$game_party.actors.size x = 20 y = i * 62 actor = $game_party.actors[i] self.contents.font.name = "Georgia" if $mogscript["TP_System"] == true draw_actor_tp(actor ,x + 285, y - 5,4) draw_actor_state2(actor ,x + 190, y - 5) else draw_actor_state2(actor ,x + 220, y - 5) end drw_face(actor,x,y + 50) draw_maphp3(actor,x + 40, y - 5) draw_mapsp3(actor,x + 40, y + 20 ) draw_mexp2(actor,x + 140, y + 15 ) end end def update_cursor_rect if @index < 0 self.cursor_rect.empty else self.cursor_rect.set(5, @index * 62, self.width - 32, 50) end end end ################ # Window_Gold2 # ################ class Window_Gold2 < Window_Base def initialize super(0, 0, 160, 64) self.contents = Bitmap.new(width - 32, height - 32) self.windowskin = RPG::Cache.windowskin("") self.opacity = 0 self.z = 15 refresh end def refresh self.contents.clear cx = contents.text_size($data_system.words.gold).width self.contents.font.color = normal_color self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2) self.contents.font.color = system_color self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2) end end #################### # Window_PlayTime2 # #################### class Window_PlayTime2 < Window_Base def initialize super(0, 0, 160, 96) self.contents = Bitmap.new(width - 32, height - 32) self.windowskin = RPG::Cache.windowskin("") self.opacity = 0 self.z = 15 refresh end def refresh self.contents.clear @total_sec = Graphics.frame_count / Graphics.frame_rate hour = @total_sec / 60 / 60 min = @total_sec / 60 % 60 sec = @total_sec % 60 text = sprintf("%02d:%02d:%02d", hour, min, sec) self.contents.font.color = normal_color self.contents.draw_text(4, 32, 120, 32, text, 2) end def update super if Graphics.frame_count / Graphics.frame_rate != @total_sec refresh end end end ################# # Window_Steps2 # ################# class Window_Steps2 < Window_Base def initialize super(0, 0, 160, 96) self.contents = Bitmap.new(width - 32, height - 32) self.windowskin = RPG::Cache.windowskin("") self.opacity = 0 self.z = 15 refresh end def refresh self.contents.clear self.contents.font.color = normal_color self.contents.draw_text(4, 32, 120, 32, $game_party.steps.to_s, 2) end end ################### # Window_Map_Name # ################### class Window_Map_Name < Window_Base def initialize super(0, 0, 160, 96) self.contents = Bitmap.new(width - 32, height - 32) self.windowskin = RPG::Cache.windowskin("") self.opacity = 0 self.z = 15 refresh end def refresh self.contents.clear self.contents.font.color = normal_color self.contents.draw_text(4, 32, 120, 32, $game_map.mpname.to_s, 1) end end ############## # Scene_Menu # ############## class Scene_Menu def initialize(menu_index = 0) @menu_index = menu_index end def main s1 = "" s2 = "" s3 = "" s4 = "" s5 = "" s6 = "" @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6]) @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.visible = false @command_window.x = -640 @mnlay = Sprite.new @mnlay.bitmap = RPG::Cache.picture("Mn_lay") @mnlay.z = 10 @mnlay.opacity = 0 @mnlay.x = -100 if MOG::MENU_BACKGROUND == 0 @mnback = Plane.new @mnback.bitmap = RPG::Cache.picture("Mn_back") @mnback.blend_type = 0 @mnback.z = 5 @mnback2 = Plane.new @mnback2.bitmap = RPG::Cache.picture("Mn_back") @mnback2.blend_type = 0 @mnback2.z = 5 @mnback2.opacity = 60 else @spriteset = Spriteset_Map.new end @cursor_x = -100 @cursor_y = 110 @mnsel = Sprite.new @mnsel.bitmap = RPG::Cache.picture("Mn_Sel") @mnsel.z = 20 @mnsel.x = @cursor_x @mnsel.y = @cursor_y @mnop = 150 if $game_system.save_disabled @command_window.disable_item(4) end @playtime_window = Window_PlayTime2.new @playtime_window.x = 30 @playtime_window.y = 375 @playtime_window.contents_opacity = 0 @mapname_window = Window_Map_Name.new @mapname_window.x = 425 @mapname_window.y = 25 @mapname_window.contents_opacity = 0 @steps_window = Window_Steps2.new @steps_window.x = 230 @steps_window.y = 375 @steps_window.contents_opacity = 0 @gold_window = Window_Gold2.new @gold_window.x = 455 @gold_window.y = 405 @gold_window.contents_opacity = 0 @status_window = Window_MenuStatus2.new @status_window.x = 295 @status_window.y = 110 @status_window.contents_opacity = 0
if MOG::MENU_BACKGROUND == 0 Graphics.transition(MOG::MNTT, "Graphics/Transitions/" + MOG::MNTP) else Graphics.transition end loop do Graphics.update Input.update update if $scene != self break end end for i in 0..10 if MOG::MENU_BACKGROUND == 0 @mnback.oy += 1 @mnback.ox += 1 @mnback2.oy += 1 @mnback2.ox -= 1 end @status_window.x += 20 @status_window.contents_opacity -= 25 @mnsel.opacity -= 25 @mnsel.zoom_x += 0.03 @mnlay.x -= 10 @mnlay.opacity -= 25 @mapname_window.x += 5 @mapname_window.contents_opacity -= 20 @steps_window.contents_opacity -= 25 @gold_window.contents_opacity -= 25 @playtime_window.contents_opacity -= 25 Graphics.update end Graphics.freeze @command_window.dispose @playtime_window.dispose @steps_window.dispose @gold_window.dispose @status_window.dispose @mnlay.dispose if MOG::MENU_BACKGROUND == 0 @mnback.dispose @mnback2.dispose else @spriteset.dispose end @mnsel.dispose @mapname_window.dispose Graphics.update end def update if @mnsel.x > @cursor_x @mnsel.x -= MOG::CURSOR_SPEED if @mnsel.x <= @cursor_x @mnsel.x = @cursor_x end elsif @mnsel.x < @cursor_x @mnsel.x += MOG::CURSOR_SPEED if @mnsel.x >= @cursor_x @mnsel.x = @cursor_x end end if @mnsel.y > @cursor_y @mnsel.y -= MOG::CURSOR_SPEED if @mnsel.y <= @cursor_y @mnsel.y = @cursor_y end elsif @mnsel.y < @cursor_y @mnsel.y += MOG::CURSOR_SPEED if @mnsel.y >= @cursor_y @mnsel.y = @cursor_y end end if @mnsel.zoom_x <= 1.6 @mnsel.zoom_x += 0.03 @mnsel.opacity -= 10 elsif @mnsel.zoom_x > 1.6 @mnsel.zoom_x = 1.0 @mnsel.opacity = 255 end if @mnlay.x < 0 @mnlay.opacity += 25 @mnlay.x += 10 elsif @mnlay.x >= 0 @mnlay.opacity = 255 @mnlay.x = 0 end @command_window.update if @command_window.active @playtime_window.update @status_window.update if @status_window.active if MOG::MENU_BACKGROUND == 0 @mnback.oy += 1 @mnback.ox += 1 @mnback2.oy += 1 @mnback2.ox -= 1 end @mnop += 5 @mapname_window.contents_opacity += 15 @playtime_window.contents_opacity += 15 @gold_window.contents_opacity += 15 @playtime_window.contents_opacity += 15 @steps_window.contents_opacity += 15 if @status_window.x > 195 @status_window.x -= 10 @status_window.contents_opacity += 10 elsif @status_window.x <= 195 @status_window.x = 195 @status_window.contents_opacity = 255 end if @mnop >= 255 @mnop = 120 end if @command_window.active update_command return end if @status_window.active update_status return end end def update_command case @command_window.index when 0 @cursor_x = 0 @cursor_y = 110 when 1 @cursor_x = 25 @cursor_y = 155 when 2 @cursor_x = 40 @cursor_y = 197 when 3 @cursor_x = 45 @cursor_y = 242 when 4 @cursor_x = 25 @cursor_y = 285 when 5 @cursor_x = 0 @cursor_y = 325 end 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.index = 0 when 2 $game_system.se_play($data_system.decision_se) @command_window.active = false @status_window.active = 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.index = 0 when 4 if $game_system.save_disabled $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) $scene = Scene_Save.new when 5 $game_system.se_play($data_system.decision_se) $scene = Scene_End.new end return end end def update_status case @status_window.index when 0 @cursor_x = 180 @cursor_y = 130 when 1 @cursor_x = 180 @cursor_y = 195 when 2 @cursor_x = 180 @cursor_y = 255 when 3 @cursor_x = 180 @cursor_y = 320 end if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) @command_window.active = true @status_window.active = 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 Les ressources pour faire fonctionner le script : ( Picture ) Télécharger ! | |
|