Poulet Lv.1
Inscrit le : 27/02/2010 Messages : 8
| Sujet: Integration d'un menu bestiaire Mer 2 Mar 2011 - 13:19 | |
| Bonjour ! J'ai voulu récement integrer une option bestiaire a mon menu. Je débute dans le script. Etant donner que j'utilise également le script Menu_Mog_Yui (désoler je ne me souvient plus du nom exacte ) j'ai integrer mon bestiaire au scripte scene_menu ET a mon script mog_menu mais au lancement du jeu tout va bien et dès que j'ouvre le menu sa plante avec le message "Script 'Mog_menu' line 381: NoMethodError occurred. undefined method 'bestiaire' for Vocab:Module". Voila ce que j'ai changer a mes script : Scene_Menu: - Code:
-
#============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ # This class performs the menu screen processing. #==============================================================================
class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # * Object Initialization # menu_index : command cursor's initial position #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background create_command_window @gold_window = Window_Gold.new(0, 360) @status_window = Window_MenuStatus.new(160, 0) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @command_window.dispose @gold_window.dispose @status_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update @gold_window.update @status_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 s1 = Vocab::item s2 = Vocab::skill s3 = Vocab::equip s4 = Vocab::status s5 = Vocab::save s6 = Vocab::game_end s7 = Vocab::bestiaire @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7]) @command_window.index = @menu_index if $game_party.members.size == 0 # If number of party members is 0 @command_window.draw_item(0, false) # Disable item @command_window.draw_item(1, false) # Disable skill @command_window.draw_item(2, false) # Disable equipment @command_window.draw_item(3, false) # Disable status end if $game_system.save_disabled # If save is forbidden @command_window.draw_item(4, false) # Disable save end 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 case @command_window.index when 0 # Item $scene = Scene_Item.new when 1,2,3 # Skill, equipment, status start_actor_selection when 4 # Save $scene = Scene_File.new(true, false, false) when 5 # End Game $scene = Scene_End.new when 6 $scene = Scene_Liste_Monstres.new end end end #-------------------------------------------------------------------------- # * Start Actor Selection #-------------------------------------------------------------------------- def start_actor_selection @command_window.active = false @status_window.active = true 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 @status_window.active = false @status_window.index = -1 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 case @command_window.index when 1 # skill $scene = Scene_Skill.new(@status_window.index) when 2 # equipment $scene = Scene_Equip.new(@status_window.index) when 3 # status $scene = Scene_Status.new(@status_window.index) end end end end
Mog_Menu : - Code:
-
################################################# # Mog Menu Yui V 1.0 # ################################################## # By Moghunter # http://www.atelier-rgss.com ################################################## # Menu com layout em pictures. # É necessário criar uma pasta com o nome de # Menus e colocar todas as imagens dentro dela, de resto # é só criar o seu próprio estilo de menu através de um #editor de imagem. #------------------------------------------------- ############### # module Cache # ############### module Cache def self.menu(filename) load_bitmap("Graphics/Menus/", filename) end end ############### # Window_Base # ############### class Window_Base < Window def draw_actor_level_menu(actor, x, y) self.contents.font.color = system_color self.contents.draw_text(x, y, 32, WLH, Vocab::level_a) self.contents.font.color = normal_color self.contents.draw_text(x + 16, y, 24, WLH, actor.level, 2) end def draw_currency_value_menu(value, x, y, width) cx = contents.text_size(Vocab::gold).width self.contents.font.color = normal_color self.contents.draw_text(x, y, width-cx-2, WLH, value, 1) end def draw_actor_hp_menu(actor, x, y) back = Cache.menu("Meter_Back") 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 = Cache.menu("HP_Meter") 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 = Cache.menu("HP_Text") 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(255,255,255,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_actor_mp_menu(actor, x, y) back = Cache.menu("Meter_Back") 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 = Cache.menu("MP_Meter") cw = meter.width * actor.mp / actor.maxmp ch = meter.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x + 65, y - ch + 30, meter, src_rect) text = Cache.menu("MP_Text") 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.mp.to_s, 2) self.contents.font.color = Color.new(255,255,255,255) self.contents.draw_text(x + 80, y - 2, 48, 32, actor.mp.to_s, 2) end def draw_actor_name_menu(actor, x, y) self.contents.font.color = text_color(23) self.contents.draw_text(x, y, 108, WLH, actor.name,1) end def draw_actor_level_menu(actor, x, y) self.contents.font.color = system_color self.contents.draw_text(x, y, 32, WLH, " L") self.contents.font.color = text_color(10) self.contents.draw_text(x + 18, y, 24, WLH, actor.level, 1) end end ############ # Game_Map # ############ class Game_Map attr_reader :map_id def mpname $mpname = load_data("Data/MapInfos.rvdata") $mpname[@map_id].name end end ######################## # Window_Selectable_Menu # ######################## class Window_Selectable_Menu < Window_Base attr_reader :item_max attr_reader :column_max attr_reader :index def initialize(x, y, width, height, spacing = 32) @item_max = 1 @column_max = 1 @index = -1 @spacing = spacing super(x, y, width, height) end def create_contents self.contents.dispose self.contents = Bitmap.new(width - 32, [height - 32, row_max * WLH].max) end def index=(index) @index = index end def row_max return (@item_max + @column_max - 1) / @column_max end def top_row return self.oy / WLH end def top_row=(row) row = 0 if row < 0 row = row_max - 1 if row > row_max - 1 self.oy = row * WLH end def page_row_max return (self.height - 32) / WLH end def page_item_max return page_row_max * @column_max end def bottom_row return top_row + page_row_max - 1 end def bottom_row=(row) self.top_row = row - (page_row_max - 1) end def cursor_movable? return false if (not visible or not active) return false if (index < 0 or index > @item_max or @item_max == 0) return false if (@opening or @closing) return true end def cursor_down(wrap = false) if (@index < @item_max - @column_max) or (wrap and @column_max == 1) @index = (@index + @column_max) % @item_max end end def cursor_up(wrap = false) if (@index >= @column_max) or (wrap and @column_max == 1) @index = (@index - @column_max + @item_max) % @item_max end end def cursor_right(wrap = false) if (@column_max >= 2) and (@index < @item_max - 1 or (wrap and page_row_max == 1)) @index = (@index + 1) % @item_max end end def cursor_left(wrap = false) if (@column_max >= 2) and (@index > 0 or (wrap and page_row_max == 1)) @index = (@index - 1 + @item_max) % @item_max end end def update super if cursor_movable? last_index = @index if Input.repeat?(Input::DOWN) cursor_down(Input.trigger?(Input::DOWN)) end if Input.repeat?(Input::UP) cursor_up(Input.trigger?(Input::UP)) end if Input.repeat?(Input::RIGHT) cursor_down(Input.trigger?(Input::DOWN)) end if Input.repeat?(Input::LEFT) cursor_up(Input.trigger?(Input::UP)) end
if @index != last_index Sound.play_cursor end end end end ####################### # Window_MenuStatus_Yui # ####################### class Window_MenuStatus_Yui < Window_Selectable_Menu def initialize(x, y) super(x, y, 460, 300) self.contents.font.bold = true self.contents.font.shadow = true self.contents.font.size = 16 refresh self.active = false self.index = -1 end def refresh self.contents.clear @item_max = $game_party.members.size for actor in $game_party.members if actor.index == 0 draw_actor_graphic(actor, 65, 110) draw_actor_name_menu(actor, 15, 120) draw_actor_level_menu(actor, -5, 55) draw_actor_state(actor, 20, 100) draw_actor_hp_menu(actor, -30, 25) draw_actor_mp_menu(actor, 0, 45) elsif actor.index == 1 draw_actor_graphic(actor, 170, 210) draw_actor_name_menu(actor, 120, 220) draw_actor_level_menu(actor, 100, 155) draw_actor_state(actor, 125, 200) draw_actor_hp_menu(actor, 75, 120) draw_actor_mp_menu(actor, 105, 145) elsif actor.index == 2 draw_actor_graphic(actor, 265, 110) draw_actor_name_menu(actor, 215, 120) draw_actor_level_menu(actor, 195, 55) draw_actor_state(actor, 220, 100) draw_actor_hp_menu(actor, 170, 20) draw_actor_mp_menu(actor, 205, 45) elsif actor.index == 3 draw_actor_graphic(actor, 370, 210) draw_actor_name_menu(actor, 320, 220) draw_actor_level_menu(actor, 370, 155) draw_actor_state(actor, 325, 200) draw_actor_hp_menu(actor, 275, 120) draw_actor_mp_menu(actor, 245, 145) end end end def update_cursor end end ############### # Window_Time # ############### class Window_Mapname < Window_Base def initialize(x, y) super(x, y, 160, WLH + 32) self.contents.font.bold = true self.contents.font.size = 16 refresh end def refresh self.contents.clear self.contents.font.color = normal_color self.contents.draw_text(4, 0, 120, 32, $game_map.mpname.to_s, 1) end end ################### # Window_Gold_Menu # ################### class Window_Gold_Menu < Window_Base def initialize(x, y) super(x, y, 160, WLH + 32) self.contents.font.bold = true self.contents.font.size = 16 self.contents.font.color = power_up_color refresh end def refresh self.contents.clear draw_currency_value_menu($game_party.gold, 10, 0, 120) end end ############### # Window_Time # ############### class Window_Time < Window_Base def initialize(x, y) super(x, y, 160, WLH + 32) self.contents.font.bold = true self.contents.font.size = 16 self.contents.font.color = power_up_color 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.draw_text(4, 0, 120, 32, text, 2) end def update super if Graphics.frame_count / Graphics.frame_rate != @total_sec refresh end end end ############## # Scene_Menu # ############## class Scene_Menu def main start perform_transition Input.update loop do Graphics.update Input.update update break if $scene != self end Graphics.update pre_terminate Graphics.freeze terminate end def initialize(menu_index = 0) @menu_index = menu_index end def perform_transition Graphics.transition(10, "Graphics/System/BattleStart", 80) end def start @menu_back = Plane.new @menu_back.bitmap = Cache.menu("Background") @menu_layout = Sprite.new @menu_layout.bitmap = Cache.menu("Menu_Layout") @menu_com = Sprite.new @menu_com.bitmap = Cache.menu("Menu_Com01") @menu_select = Sprite.new @menu_select.bitmap = Cache.menu("Menu_Select00") create_command_window @gold_window = Window_Gold_Menu.new(195, 45) @status_window = Window_MenuStatus_Yui.new(100, 60) @playtime_window = Window_Time .new(165, 0) @mapname_window = Window_Mapname.new(195,360) @status_window.opacity = 0 @playtime_window.opacity = 0 @mapname_window.opacity = 0 @gold_window.opacity = 0 end def pre_terminate end def terminate @menu_back.dispose @menu_layout.dispose @menu_com.dispose @menu_select.dispose @command_window.dispose @gold_window.dispose @status_window.dispose @playtime_window.dispose @mapname_window.dispose end def update @menu_back.ox += 1 @command_window.update @gold_window.update @status_window.update @mapname_window.update @playtime_window.update if @command_window.active update_command_selection elsif @status_window.active update_actor_selection end end def create_command_window s1 = Vocab::item s2 = Vocab::skill s3 = Vocab::equip s4 = Vocab::status s5 = Vocab::save s6 = Vocab::game_end s7 = Vocab::bestiaire @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7]) @command_window.index = @menu_index @command_window.openness = 0 @command_window.open @command_window.opacity = 0 @command_window.contents_opacity = 0 if $game_system.save_disabled @command_window.draw_item(4, false) end end def update_command_selection case @command_window.index when 0 @menu_com.bitmap = Cache.menu("Menu_Com01") when 1 @menu_com.bitmap = Cache.menu("Menu_Com02") when 2 @menu_com.bitmap = Cache.menu("Menu_Com03") when 3 @menu_com.bitmap = Cache.menu("Menu_Com04") when 4 @menu_com.bitmap = Cache.menu("Menu_Com05") when 5 @menu_com.bitmap = Cache.menu("Menu_Com06") when 6 @menu_com.bitmap = Cache.menu("Menu_Com07") end 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 case @command_window.index when 0 $scene = Scene_Item.new when 1,2,3 start_actor_selection when 4 $scene = Scene_File.new(true, false, false) when 5 $scene = Scene_End.new when 6 $scene = Scene_Liste_Monstres.new end end end def start_actor_selection @command_window.active = false @status_window.active = true 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 def end_actor_selection @command_window.active = true @status_window.active = false @menu_select.bitmap = Cache.menu("Menu_Select00") @status_window.index = -1 end def update_actor_selection case @status_window.index when 0 @menu_select.bitmap = Cache.menu("Menu_Select01") when 1 @menu_select.bitmap = Cache.menu("Menu_Select02") when 2 @menu_select.bitmap = Cache.menu("Menu_Select03") when 3 @menu_select.bitmap = Cache.menu("Menu_Select04") end 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 case @command_window.index when 1 $scene = Scene_Skill.new(@status_window.index) when 2 $scene = Scene_Equip.new(@status_window.index) when 3 $scene = Scene_Status.new(@status_window.index) when 4 $scene = Scene_Liste_Monstres.new(@status_window.index) end end end end $mogscript = {} if $mogscript == nil $mogscript["menu_yui"] = true
Merci d'avance |
|