driko-rios Viajante
![Viajante Viajante](https://2img.net/h/eutenhoumhosterrs.files.wordpress.com/2011/03/nova.png)
![driko-rios](https://2img.net/u/2815/20/63/30/avatars/36-91.png)
Mensagens : 9 Data de inscrição : 24/08/2011
![Menu Nostalgia DS Empty](https://2img.net/i/empty.gif) | Assunto: Menu Nostalgia DS Qua Ago 24, 2011 7:32 pm | |
| Introdução: Desculpe o meu Inglês é muito ruim =.= ". Bem, esse script faz o seu olhar principal no menu como o menu principal do jogo DS Nostalgia com janela de ajuda personalizável. Nada mais. Como usar: Executar 100% Plug n '. Toda a instrução está no script. Você só pode alterar a descrição de cada comando de menu. Screenshot: - Spoiler:
Script: - Código:
-
# ============================================================================ # # Menu Nostalgia v1.0 # by Zidane ~ EvilEagles # This script makes your menu look like the menu of the DS game Nostalgia. # ============================================================================ #
module Zid # ---------------------------------------------------------------------------- # # Set the description for each Menu command. # ---------------------------------------------------------------------------- #
ITEMCMD_DESCRIPTION = "View your items" SKILLCMD_DESCRIPTION = "View your skills" EQUIPCMD_DESCRIPTION = "Equip your characters" STATUSCMD_DESCRIPTION = "View your status" SAVECMD_DESCRIPTION = "Save your progress" ENDCMD_DESCRIPTION = "End Game"
# ----------------------- END OF THE CONFIGURATION --------------------------- # # DON'T TOUCH ANYTHING UNLESS YOU KNOW WHAT YOU'RE DOING # ---------------------------------------------------------------------------- # end
#============================================================================== # ** Window_MenuCommand #============================================================================== class Window_MenuCom < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # x : window x-coordinate # y : window y-coordinate # width : window width # height : window height #-------------------------------------------------------------------------- def initialize(x, y, width, height) super(137, 10, width - 270, WLH + 34, 10) @column_max = 6 self.index = 0 refresh end #-------------------------------------------------------------------------- # * Get Item #-------------------------------------------------------------------------- def item return @data[self.index] end #-------------------------------------------------------------------------- # * Whether or not to display in enabled state # item : item #-------------------------------------------------------------------------- def enable?(index) if $game_party.members.size == 0 and index <= 3 return false end if $game_system.save_disabled and index = 6 return false end return true end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh @data = ["Item","Skill","Equip","Status","Save","End"] @icon = [64,231,3,137,141,224] @item_max = @data.size create_contents for i in 0...@item_max draw_item(i) end end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) item = @data[index] if item != nil enabled = enable?(index) rect.width -= 10 rect.x += 0 draw_icon(@icon[index], rect.x + 3, rect.y + 3, enabled) end end
def item_rect(index) rect = Rect.new(0, 0, 0, 0) rect.width = (contents.width + @spacing) / @column_max - @spacing rect.height = 30 rect.x = index % @column_max * (rect.width + @spacing) rect.y = index / @column_max * WLH return rect end
end
#============================================================================== # ** Window_MenuNosStatus #------------------------------------------------------------------------------ # This window displays party member status on the menu screen. #==============================================================================
class Window_MenuNosStatus < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(x, y) super(0, 56, 384, 304) refresh self.active = false self.index = -1 self.z = 0 end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear @item_max = $game_party.members.size for actor in $game_party.members draw_actor_face(actor, 2, actor.index * 68 + 2 ,65 ) x = 68 y = actor.index * 70 self.contents.font.bold = true draw_actor_name(actor, x + 5, y) self.contents.font.bold = false draw_actor_level(actor, x + 110, y) draw_actor_state(actor, x + 170, y) self.contents.font.size = 18 draw_nosactor_hp(actor, x + 10, y + WLH * 1) draw_nosactor_mp(actor, x + 150, y + WLH * 1) self.contents.font.size = 21 draw_actor_exp_meter(actor, x + 45, y + WLH * 2 - 10) end end
#-------------------------------------------------------------------------- # * Update cursor #-------------------------------------------------------------------------- def update_cursor if @index < 0 # No cursor self.cursor_rect.empty elsif @index < @item_max # Normal self.cursor_rect.set(0, @index * 68, contents.width, 68) elsif @index >= 100 # Self self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96) else # All self.cursor_rect.set(0, 0, contents.width, @item_max * 96) end end end
#============================================================================== # ** Window_Base #==============================================================================
class Window_Base #-------------------------------------------------------------------------- # * Draw HP # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # width : Width #-------------------------------------------------------------------------- def draw_nosactor_hp(actor, x, y) contents.font.bold = true contents.font.color = Color.new(255,126,0) contents.draw_text(x, y, 30, WLH, Vocab::hp_a) contents.font.bold = false contents.font.color = normal_color contents.font.color = hp_color(actor) last_font_size = contents.font.size contents.draw_text(x + 24, y, 44, WLH, actor.hp, 2) contents.font.color = normal_color() contents.draw_text(x + 68, y, 11, WLH, "/", 2) contents.draw_text(x + 79, y, 44, WLH, actor.maxhp, 2) end #-------------------------------------------------------------------------- # * Draw MP # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # width : Width #-------------------------------------------------------------------------- def draw_nosactor_mp(actor, x, y) contents.font.bold = true contents.font.color = Color.new(0,38,255) contents.draw_text(x, y, 30, WLH, Vocab::mp_a) contents.font.bold = false contents.font.color = normal_color contents.font.color = mp_color(actor) last_font_size = contents.font.size contents.draw_text(x + 24, y, 44, WLH, actor.mp, 2) contents.font.color = normal_color() contents.draw_text(x + 68, y, 11, WLH, "/", 2) contents.draw_text(x + 79, y, 44, WLH, actor.maxmp, 2) end #-------------------------------------------------------------------------- # * EXP Gauge Color 1 #-------------------------------------------------------------------------- def exp_gauge_color1 return text_color(30) end #-------------------------------------------------------------------------- # * EXP Gauge Color 2 #-------------------------------------------------------------------------- def exp_gauge_color2 return text_color(31) end #-------------------------------------------------------------------------- # * Draw EXP Gauge #-------------------------------------------------------------------------- def draw_actor_exp_meter(actor, x, y, width = 230)
if actor.next_exp != 0 exp = actor.now_exp else exp = 1 end gw = width * exp / [actor.next_exp, 1].max gc1 = exp_gauge_color1 gc2 = exp_gauge_color2 self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color) self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2) self.contents.font.color = Color.new(0,255,29) self.contents.draw_text(x - 40, y + 5, 30, WLH, "EXP") self.contents.font.color = normal_color xr = x + width end end
#============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ # This class performs the menu screen processing. #==============================================================================
class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background create_command_window @gold_window = Window_Gold.new(384, 79) @status_window = Window_MenuNosStatus.new(0, 56) @help_window = Window_Help.new @help_window.x = 0 @help_window.y = 360 @playtime_window = Window_PlayTime.new(384, 135) @mapname_window = Window_Mapname.new(384, 191) end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update @gold_window.update @status_window.update @mapname_window.update @playtime_window.update if @command_window.active update_command_selection update_command_selection2 elsif @status_window.active update_actor_selection end end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @command_window.dispose @gold_window.dispose @status_window.dispose @help_window.dispose @playtime_window.dispose @mapname_window.dispose end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window @command_window = Window_MenuCom.new(0, 0, 544, 80) @command_window.index = @menu_index @command_window.z = 200 end
#-------------------------------------------------------------------------- # * update_command_selection2 #-------------------------------------------------------------------------- def update_command_selection2 case @command_window.index when 0 @help_window.set_text(Zid::ITEMCMD_DESCRIPTION) when 1 @help_window.set_text(Zid::SKILLCMD_DESCRIPTION) when 2 @help_window.set_text(Zid::EQUIPCMD_DESCRIPTION) when 3 @help_window.set_text(Zid::STATUSCMD_DESCRIPTION) when 4 @help_window.set_text(Zid::SAVECMD_DESCRIPTION) when 5 @help_window.set_text(Zid::ENDCMD_DESCRIPTION) end end end
#============================================================================== # ** Window_PlayTime #============================================================================== class Window_PlayTime < Window_Base def initialize(x, y) super(x, y, 160, WLH + 32) 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, -5, 120, 32, text, 2) draw_icon(188, 4, 0) end def update super if Graphics.frame_count / Graphics.frame_rate != @total_sec refresh end 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_Mapname #============================================================================== class Window_Mapname < Window_Base def initialize(x, y) super(x, y, 160, WLH * 2 + 32) refresh end def refresh self.contents.clear self.contents.font.color = normal_color self.contents.draw_text(4, 20, 120, 32, $game_map.mpname.to_s, 2) draw_icon(2680, 4, -2) end end
#============================================================================== # ** Game_Actor #============================================================================== class Game_Actor < Game_Battler
#-------------------------------------------------------------------------- # * now_exp #-------------------------------------------------------------------------- def now_exp return @exp - @exp_list[@level] end #-------------------------------------------------------------------------- # * next_exp #-------------------------------------------------------------------------- def next_exp return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0 end end Compatibility: Não tenho certeza. Mas eu acho que pode ser compatível com praticamente qualquer script de menu relacionados. Créditos - Me, EvilEagles para amar este jogo Nostalgia no DS xD - Moghunter, pq eu peguei emprestado alguns de seus códigos. - Enterbrain, para criar este maravilhoso RPG Maker motor | |
|