赞 | 0 |
VIP | 2 |
好人卡 | 3 |
积分 | 2 |
经验 | 7215 |
最后登录 | 2019-3-20 |
在线时间 | 84 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 190
- 在线时间
- 84 小时
- 注册时间
- 2009-11-29
- 帖子
- 44
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 summerxud 于 2010-7-31 14:59 编辑
工程下载
Project3.rar
(597.71 KB, 下载次数: 65)
脚本原地址:http://wiki.pockethouse.com/index.php?title=Final_Fantasy_13_Main_Menu- #===============================================================================
- #
- # Shanghai Simple Script - Final Fantasy 13 Main Menu
- # Last Date Updated: 2010.06.02
- # Level: Normal
- #
- # NOTE! This requires Yanfly Engine Melody's Main Menu Melody script to be
- # installed and located above this script to work. This makes your main menu
- # ordered like Final Fantasy 13's.
- #===============================================================================
- # Instructions
- # -----------------------------------------------------------------------------
- # To install this script, open up your script editor and copy/paste this script
- # to an open slot below ▼ Materials but above ▼ Main. Remember to save.
- #
- #===============================================================================
-
- $imported = {} if $imported == nil
- $imported["FinalFantasy13Menu"] = true
-
- module SSS
- # This is the image file for the menu background. Place this inside of the
- # Graphics\System folder.
- MENU_BACK_IMAGE = "MenuBack"
-
- # This is the image file used for the back of each of the menu items. This
- # image must be 160x24 pixels and placed inside of the Graphics\System folder.
- MENU_BACK_ITEM_IMAGE = "MenuBackItem"
-
- # This sets the menu help window's text color.
- MENU_HELP_TEXT_COLOR = Color.new(0, 0, 0)
-
- # This is the text format used to write out the current map.
- MENU_LOCATION = "Location: %s"
-
- # This hash sets the image files for your actors. These images must be placed
- # inside of the Graphics\System folder and they have to be 104x288 pixels.
- MENU_ACTOR_IMAGES ={
- 1 => "MenuRalph",
- 2 => "MenuUlrika",
- 3 => "MenuBennett",
- 4 => "MenuYlva",
- } # Remove this and perish.
-
- # This hash sets what colors belong to which class when drawn.
- MENU_CLASS_COLORS ={
- 1 => 2,
- 2 => 6,
- 3 => 4,
- 4 => 5,
- } # Remove this and perish.
-
- # This sets the help window descripts for the menu commands.
- MENU_HELP_WINDOW ={
- "Item" => "View and manage your party's items.",
- "Status" => "View a party member's status.",
- "Skill" => "Manage a party member's skills.",
- "Equip" => "Manage a party member's equipment.",
- "Save" => "Save your current progress.",
- "Game End" => "End the current game.",
- "System" => "Adjust the game's options.",
- } # Remove this and perish.
- end
-
- #==============================================================================
- # ** Window_Base
- #==============================================================================
-
- class Window_Base < Window
- #--------------------------------------------------------------------------
- # * Object Initialization
- #--------------------------------------------------------------------------
- alias initialize_sss_ff13_menu_window_base initialize unless $@
- def initialize(x, y, width, height)
- initialize_sss_ff13_menu_window_base(x, y, width, height)
- self.opacity = 0 if $scene.is_a?(Scene_Menu)
- end
- end
-
- #==============================================================================
- # ** Window_MenuHelp
- #==============================================================================
-
- class Window_MenuHelp < Window_Help
- #--------------------------------------------------------------------------
- # * Set Text
- #--------------------------------------------------------------------------
- def set_text(text, align = 0)
- if text != @text or align != @align
- self.contents.clear
- self.contents.font.shadow = false
- self.contents.font.color = SSS::MENU_HELP_TEXT_COLOR
- self.contents.draw_text(4, 0, self.width - 40, WLH, text, align)
- @text = text
- @align = align
- end
- end
- end
-
- #==============================================================================
- # ** Window_MainMenuParty
- #==============================================================================
-
- class Window_MainMenuParty < Window_Selectable
- #--------------------------------------------------------------------------
- # * Object Initialization
- #--------------------------------------------------------------------------
- def initialize(x, y)
- super(x-24, y, Graphics.width-x+32, Graphics.height-y)
- self.active = false
- @column_max = [4, $game_party.members.size].max
- @spacing = 0
- refresh
- end
- #--------------------------------------------------------------------------
- # * Refresh
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- @data = $game_party.members
- @item_max = @data.size
- create_contents
- for i in 0...@item_max
- draw_item(i)
- end
- end
- #--------------------------------------------------------------------------
- # * Draw Item
- #--------------------------------------------------------------------------
- def draw_item(index)
- rect = item_rect(index)
- self.contents.clear_rect(rect)
- actor = @data[index]
- unless actor.nil?
- draw_actor_image(actor, rect)
- draw_actor_name(actor, rect)
- draw_actor_state(actor, rect.x, WLH*5/2, 96)
- draw_actor_class(actor, rect)
- draw_actor_level(actor, rect)
- draw_actor_hp(actor, rect)
- draw_actor_mp(actor, rect)
- end
- end
- #--------------------------------------------------------------------------
- # * Draw Actor Image
- #--------------------------------------------------------------------------
- def draw_actor_image(actor, rect)
- filename = SSS::MENU_ACTOR_IMAGES[actor.id]
- return if filename.nil?
- bitmap = Cache.system(filename)
- image_rect = Rect.new(2, 2, rect.width-4, 284)
- self.contents.blt(rect.x+2, rect.y+2, bitmap, image_rect)
- end
- #--------------------------------------------------------------------------
- # * Draw Actor Name
- #--------------------------------------------------------------------------
- def draw_actor_name(actor, rect)
- name = actor.name
- self.contents.font.size = Font.default_size
- self.contents.font.color = normal_color
- self.contents.draw_text(rect.x+4, WLH*3/2, rect.width-8, WLH, name)
- end
- #--------------------------------------------------------------------------
- # * Draw Actor Class
- #--------------------------------------------------------------------------
- def draw_actor_class(actor, rect)
- name = actor.class.name
- self.contents.font.size = Font.default_size - 4
- color_id = SSS::MENU_CLASS_COLORS[actor.class.id].to_i
- self.contents.font.color = text_color(color_id)
- self.contents.draw_text(rect.x+4, WLH*0, rect.width-8, WLH, name, 2)
- end
- #--------------------------------------------------------------------------
- # * Draw Actor Level
- #--------------------------------------------------------------------------
- def draw_actor_level(actor, rect)
- self.contents.font.size = Font.default_size - 4
- self.contents.font.color = power_up_color
- yy = 288 - WLH*7/2 - 8
- self.contents.draw_text(rect.x+4, yy, rect.width-8, WLH, Vocab.level_a, 0)
- yy += WLH/2
- self.contents.font.color = normal_color
- self.contents.font.size += 2
- self.contents.draw_text(rect.x+4, yy, rect.width-8, WLH, actor.level, 2)
- end
- #--------------------------------------------------------------------------
- # * Draw Actor HP
- #--------------------------------------------------------------------------
- def draw_actor_hp(actor, rect)
- self.contents.font.size = Font.default_size - 4
- self.contents.font.color = hp_gauge_color2
- yy = 288 - WLH*5/2 - 4
- self.contents.draw_text(rect.x+4, yy, rect.width-8, WLH, Vocab.hp, 0)
- yy += WLH/2
- self.contents.font.color = normal_color
- self.contents.font.size += 2
- self.contents.draw_text(rect.x+4, yy, rect.width-8, WLH, actor.hp, 2)
- end
- #--------------------------------------------------------------------------
- # * Draw Actor MP
- #--------------------------------------------------------------------------
- def draw_actor_mp(actor, rect)
- self.contents.font.size = Font.default_size - 4
- self.contents.font.color = mp_gauge_color2
- yy = 288 - WLH*3/2
- self.contents.draw_text(rect.x+4, yy, rect.width-8, WLH, Vocab.mp, 0)
- yy += WLH/2
- self.contents.font.color = normal_color
- self.contents.font.size += 2
- self.contents.draw_text(rect.x+4, yy, rect.width-8, WLH, actor.mp, 2)
- end
- #--------------------------------------------------------------------------
- # * Item Rect
- #--------------------------------------------------------------------------
- def item_rect(index)
- rect = Rect.new(0, 0, 0, 0)
- rect.width = (contents.width + @spacing) / @column_max - @spacing
- rect.height = 288
- rect.x = index % @column_max * (rect.width + @spacing)
- rect.y = index / @column_max * WLH
- return rect
- end
- end
-
- #==============================================================================
- # ** Window_MenuTimer
- #==============================================================================
-
- class Window_MenuTimer < Window_Base
- #--------------------------------------------------------------------------
- # * Object Initialization
- #--------------------------------------------------------------------------
- def initialize
- super(0, Graphics.height - 60, 120, 56)
- self.contents.font.size = Font.default_size - 4
- self.contents.font.shadow = false
- self.contents.font.color = SSS::MENU_HELP_TEXT_COLOR
- refresh
- end
- #--------------------------------------------------------------------------
- # * Refresh
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- format = "%03d:%02d:%02d"
- @game_time = Graphics.frame_count / Graphics.frame_rate
- hours = @game_time / 3600
- minutes = @game_time / 60 % 60
- seconds = @game_time % 60
- text = sprintf(format, hours, minutes, seconds)
- self.contents.draw_text(0, 0, contents.width-4, WLH, text, 2)
- end
- #--------------------------------------------------------------------------
- # * Update
- #--------------------------------------------------------------------------
- def update
- super
- refresh if @game_time != (Graphics.frame_count / Graphics.frame_rate)
- end
- end
-
- #==============================================================================
- # ** Window_MenuGold
- #==============================================================================
-
- class Window_MenuGold < Window_Base
- #--------------------------------------------------------------------------
- # * Object Initialization
- #--------------------------------------------------------------------------
- def initialize
- super(100, Graphics.height - 60, 120, 56)
- self.contents.font.size = Font.default_size - 4
- self.contents.font.shadow = false
- self.contents.font.color = SSS::MENU_HELP_TEXT_COLOR
- refresh
- end
- #--------------------------------------------------------------------------
- # * Refresh
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- text = sprintf("%d%s", $game_party.gold, Vocab.gold)
- self.contents.draw_text(0, 0, contents.width-4, WLH, text, 0)
- end
- end
-
- #==============================================================================
- # ** Window_MenuLocation
- #==============================================================================
-
- class Window_MenuLocation < Window_Base
- #--------------------------------------------------------------------------
- # * Object Initialization
- #--------------------------------------------------------------------------
- def initialize
- super(Graphics.width/2-16, Graphics.height - 60, Graphics.width/2+16, 56)
- self.contents.font.size = Font.default_size - 4
- self.contents.font.shadow = false
- self.contents.font.color = SSS::MENU_HELP_TEXT_COLOR
- refresh
- end
- #--------------------------------------------------------------------------
- # * Refresh
- #--------------------------------------------------------------------------
- def refresh
- self.contents.clear
- text = sprintf(SSS::MENU_LOCATION, $game_map.map_name)
- self.contents.draw_text(4, 0, contents.width, WLH, text, 0)
- end
- end
-
- #===============================================================================
- # Override Main Menu Melody Settings
- #===============================================================================
-
- YEM::MENU::USE_ICONS = false
- YEM::MENU::MENU_RIGHT_SIDE = false
- YEM::MENU::ON_SCREEN_MENU = false
- YEM::MENU::USE_MULTI_VARIABLE_WINDOW = false
-
- #==============================================================================
- # ** Scene_Menu
- #==============================================================================
-
- class Scene_Menu < Scene_Base
- #--------------------------------------------------------------------------
- # * Start processing
- #--------------------------------------------------------------------------
- alias start_sss_ff13_menu start unless $@
- def start
- start_sss_ff13_menu
- start_ff13_menu_style
- end
- #--------------------------------------------------------------------------
- # * Termination Processing
- #--------------------------------------------------------------------------
- alias terminate_sss_ff13_menu terminate unless $@
- def terminate
- @help_window.dispose
- @location_window.dispose
- @menu_timer_window.dispose
- @menubackitem_sprite.bitmap.dispose
- @menubackitem_sprite.dispose
- terminate_sss_ff13_menu
- end
- #--------------------------------------------------------------------------
- # * Create Background for Menu Screen
- #--------------------------------------------------------------------------
- def create_menu_background
- @menuback_sprite = Sprite.new
- @menuback_sprite.bitmap = Cache.system(SSS::MENU_BACK_IMAGE)
- update_menu_background
- end
- #--------------------------------------------------------------------------
- # * Update Background for Menu Screen
- #--------------------------------------------------------------------------
- def update_menu_background
- super
- @menubackitem_sprite.update unless @menubackitem_sprite.nil?
- @menu_timer_window.update unless @menu_timer_window.nil?
- end
- #--------------------------------------------------------------------------
- # * Create Menu Back Items
- #--------------------------------------------------------------------------
- def create_menu_back_items
- @menubackitem_sprite = Sprite.new
- width = 160
- height = @command_window.height-32
- @menubackitem_sprite.bitmap = Bitmap.new(width, height)
- bitmap = Cache.system(SSS::MENU_BACK_ITEM_IMAGE)
- rect = Rect.new(0, 0, 160, 24)
- y = 0
- loop do
- break if y >= height
- @menubackitem_sprite.bitmap.blt(0, y, bitmap, rect)
- y += 24
- end
- @menubackitem_sprite.y = @command_window.y+16
- end
- #--------------------------------------------------------------------------
- # * Start Final Fantasy 13 Menu Style
- #--------------------------------------------------------------------------
- def start_ff13_menu_style
- @gold_window.dispose
- @gold_window = Window_MenuGold.new
- @menu_timer_window = Window_MenuTimer.new
- @location_window = Window_MenuLocation.new
- @help_window = Window_MenuHelp.new
- @help_window.x += 48
- @help_window.width -= 48
- @help_window.create_contents
- @help_window.contents.font.size = Font.default_size - 4
- @command_window.y = @help_window.height - 9
- @status_window.dispose
- x = @command_window.width
- y = @help_window.height-9
- @status_window = Window_MainMenuParty.new(x, y)
- @command_window.x -= 4
- @help_window.y += 12
- update_help_window
- create_menu_back_items
- end
- #--------------------------------------------------------------------------
- # * Update Command Selection
- #--------------------------------------------------------------------------
- alias update_command_selection_sss_ff13_menu update_command_selection unless $@
- def update_command_selection
- update_help_window
- update_command_selection_sss_ff13_menu
- end
- #--------------------------------------------------------------------------
- # * Update Help Window
- #--------------------------------------------------------------------------
- def update_help_window
- return if @help_window_index == @command_window.index
- @help_window_index = @command_window.index
- commands = @command_window.commands
- text = SSS::MENU_HELP_WINDOW[commands[@help_window_index]].to_s
- @help_window.set_text(text)
- end
- end
-
- #===============================================================================
- #
- # END OF FILE
- #
- #===============================================================================
复制代码
说常量YEM未定义?我并没有修改过脚本.. |
|