- Código:
<table style="table-layout:fixed;" align="center" border="0" cellpadding="0" cellspacing="1" width="90%"><tr><td class="code"> #============================================================================== # # ▼ Yanfly Engine Ace - Ace Core Engine v1.08 # -- Last Updated: 2012.02.10 # -- Level: Easy, Normal # -- Requires: n/a # #==============================================================================
$imported = {} if $imported.nil? $imported["YEA-CoreEngine"] = true
#============================================================================== # ▼ Updates # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # 2012.02.10 - Bug Fixed: Forced actions no longer cancel out other actions # that have been queued up for later. # 2012.01.08 - Font resets no longer reset bold and italic to off, but instead # to whatever default you've set. # 2011.12.26 - New Bugfix: When using substitute, allies will no longer take # place of low HP allies for friendly skills. # 2011.12.20 - New Bugfix: Force Action no longer cancels out an actor's queue. # Credits to Yami for finding and making the fix for! # Switch added for those who want removed forced action battlers. # 2011.12.15 - Updated for better menu gauge appearance. # 2011.12.10 - Bug Fixed: Right and bottom sides of the map would show # the left and top sides of the map. # - Bug Fixed: Viewport sizes didn't refresh from smaller maps. # 2011.12.07 - New Bugfix: Dual weapon normal attacks will now play both # animations without one animation interrupting the other. # 2011.12.04 - Updated certain GUI extensions for increased screen size. # - More efficient digit grouping method credits to TDS. # 2011.12.01 - Started Script and Finished. # #============================================================================== # ▼ Introduction # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # This is the core engine for Yanfly Engine Ace, made for RPG Maker VX Ace. # This script provides various changes made to the main engine including bug # fixes and GUI upgrades. # # ----------------------------------------------------------------------------- # Bug Fix: Animation Overlay # ----------------------------------------------------------------------------- # - It's the same bug from VX. When an all-screen animation is played against a # group of enemies, the animation bitmap is actually made multiple times, thus # causing a pretty extreme overlay when there are a lot of enemies on screen. # This fix will cause the animation to play only once. # # ----------------------------------------------------------------------------- # Bug Fix: Animation Interruption # ----------------------------------------------------------------------------- # - A new bug. When a character dual wields and attacks a single target, if an # animation lasts too long, it will interrupt and/or halt the next animation # from occurring. This script will cause the first animation to finish playing # and then continue forth. # # ----------------------------------------------------------------------------- # Bug Fix: Battle Turn Order Fix # ----------------------------------------------------------------------------- # - Same bug from VX. For those who use the default battle system, once a # turn's started, the action order for the turn becomes set and unchanged for # the remainder of that turn. Any changes to a battler's AGI will not be # altered at all even if the battler were to receive an AGI buff or debuff. # This fix will cause the speed to be updated properly upon each action. # # ----------------------------------------------------------------------------- # Bug Fix: Forced Action Fix # ----------------------------------------------------------------------------- # - A new bug. When a battler is forced to perform an action, the battler's # queued action is removed and the battler loses its place in battle. This # fix will resume queue after a forced action. # # ----------------------------------------------------------------------------- # Bug Fix: Gauge Overlap Fix # ----------------------------------------------------------------------------- # - Same bug from VX. When some values exceed certain amounts, gauges can # overextend past the width they were originally designed to fit in. This fix # will prevent any overextending from gauges. # # ----------------------------------------------------------------------------- # Bug Fix: Held L and R Menu Scrolling # ----------------------------------------------------------------------------- # - Before in VX, you can scroll through menus by holding down L and R buttons # (Q and W on the keyboard) to scroll through menus quickly. This fix will # re-enable the ability to scroll through menus in such a fashion. Disable it # in the module if you wish to. # # ----------------------------------------------------------------------------- # Bug Fix: Substitute Healing # ----------------------------------------------------------------------------- # If an actor has the substitute (cover) flag on them, they will attempt to # take the place of low HP allies when they're the target of attack. However, # this is also the case for friendly skills such as heal. This script will fix # it where if a battler targets an ally, no substitutes will take place. # # ----------------------------------------------------------------------------- # New Feature: Screen Resolution Size # ----------------------------------------------------------------------------- # - The screen can now be resized from 544x416 with ease and still support maps # that are smaller than 544x416. Maps smaller than 544x416 will be centered on # the screen without having sprites jumping all over the place. # # ----------------------------------------------------------------------------- # New Feature: Adjust Animation Speed # ----------------------------------------------------------------------------- # - RPG Maker VX Ace plays animations at a rate of 15 FPS by default. Speed up # the animations by changing a simple constant in the module. # # ----------------------------------------------------------------------------- # New Feature: GUI Modifications # ----------------------------------------------------------------------------- # - There are quite a lot of different modifications you can do to the GUI. # This includes placing outlines around your gauges, changing the colours of # each individual font aspect, and more. Also, you can change the default font # setting for your games here. # # ----------------------------------------------------------------------------- # New Feature: Numeric Digit Grouping # ----------------------------------------------------------------------------- # This will change various scenes to display numbers in groups where they are # separated by a comma every three digits. Thus, a number like 1234567 will # show up as 1,234,567. This allows for players to read numbers quicker. # # And that's all for the bug fixes and features! # #============================================================================== # ▼ 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. # #============================================================================== # ▼ Compatibility # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that # it will run with RPG Maker VX without adjusting. # #==============================================================================
module YEA module CORE #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Screen Resolution Size - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # RPG Maker VX Ace has the option of having larger width and height for # your games. Resizing the width and height will have these changes: # # Default Resized Min Tiles Default Min Tiles New # Width 544 640 17 20 # Height 416 480 13 15 # # * Note: Maximum width is 640 while maximum height is 480. # Minimum width is 110 while maximum height is 10. # These are limitations set by RPG Maker VX Ace's engine. # # By selecting resize, all of the default menus will have their windows # adjusted, but scripts provided by non-Yanfly Engine sources may or may # not adjust themselves properly. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- RESIZE_WIDTH = 640 RESIZE_HEIGHT = 416 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Adjust Animation Speed - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # By default, the animation speed played in battles operates at 15 FPS # (frames per second). For those who would like to speed it up, change this # constant to one of these values: # RATE Speed # 4 15 fps # 3 20 fps # 2 30 fps # 1 60 fps #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ANIMATION_RATE = 3 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Digit Grouping - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Setting this to true will cause numbers to be grouped together when they # are larger than a thousand. For example, 12345 will appear as 12,345. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- GROUP_DIGITS = true #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Font Settings - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Adjust the default font settings for your game here. The various settings # will be explained below. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- FONT_NAME = ["VL Gothic", "Verdana", "Arial", "Courier"] # This adjusts the fonts used for your game. If the font at the start of # the array doesn't exist on the player's computer, it'll use the next one. FONT_SIZE = 24 # Adjusts font size. Default: 24 FONT_BOLD = false # Makes font bold. Default: false FONT_ITALIC = false # Makes font italic. Default: false FONT_SHADOW = false # Gives font a shadow. Default: false FONT_OUTLINE = true # Gives font an outline. Default: true FONT_COLOUR = Color.new(255, 255, 255, 255) # Default: 255, 255, 255, 255 FONT_OUTLINE_COLOUR = Color.new(0, 0, 0, 128) # Default: 0, 0, 0, 128 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Forced Action Settings - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # For those who would like to allow the game to remove a forced action # battler from the queue list, use the switch below. If you don't want to # use this option, set the switch ID to 0. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- FORCED_ACTION_REMOVE_SWITCH = 0 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Gauge Appearance Settings - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # You can modify the way your gauges appear in the game. If you wish for # them to have an outline, it's possible. You can also adjust the height # of the gauges, too. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- GAUGE_OUTLINE = true GAUGE_HEIGHT = 12 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - Held L and R Menu Scrolling - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # VX gave the ability to scroll through menus quickly through holding the # L and R buttons (Q and W on the keyboard). VX Ace disabled it. Now, you # can re-enable the ability to scroll faster by setting this constant to # true. To disable it, set this constant to false. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- QUICK_SCROLLING = true #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - System Text Colours - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Sometimes the system text colours are boring as just orange for HP, blue # for MP, and green for TP. Change the values here. Each number corresponds # to the colour index of the Window.png skin found in Graphics\System. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COLOURS ={ # :text => ID :normal => 0, # Default: 0 :system => 16, # Default: 16 :crisis => 17, # Default: 17 :knockout => 18, # Default: 18 :gauge_back => 19, # Default: 19 :hp_gauge1 => 28, # Default: 20 :hp_gauge2 => 29, # Default: 21 :mp_gauge1 => 22, # Default: 22 :mp_gauge2 => 23, # Default: 23 :mp_cost => 23, # Default: 23 :power_up => 24, # Default: 24 :power_down => 25, # Default: 25 :tp_gauge1 => 10, # Default: 28 :tp_gauge2 => 2, # Default: 29 :tp_cost => 2, # Default: 29 } # Do not remove this. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # - System Text Options - #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Here, you can adjust the transparency used for disabled items, the % # needed for HP and MP to enter "crisis" mode. #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- TRANSPARENCY = 160 # Adjusts transparency of disabled items. Default: 160 HP_CRISIS = 0.25 # When HP is considered critical. Default: 0.25 MP_CRISIS = 0.25 # When MP is considered critical. Default: 0.25 ITEM_AMOUNT = "×%s" # The prefix used for item amounts. end # CORE end # YEA
#============================================================================== # ▼ Editting anything past this point may potentially result in causing # computer damage, incontinence, explosion of user's head, coma, death, and/or # halitosis so edit at your own risk. #==============================================================================
Graphics.resize_screen(YEA::CORE::RESIZE_WIDTH, YEA::CORE::RESIZE_HEIGHT) Font.default_name = YEA::CORE::FONT_NAME Font.default_size = YEA::CORE::FONT_SIZE Font.default_bold = YEA::CORE::FONT_BOLD Font.default_italic = YEA::CORE::FONT_ITALIC Font.default_shadow = YEA::CORE::FONT_SHADOW Font.default_outline = YEA::CORE::FONT_OUTLINE Font.default_color = YEA::CORE::FONT_COLOUR Font.default_out_color = YEA::CORE::FONT_OUTLINE_COLOUR
#============================================================================== # ■ Numeric #==============================================================================
class Numeric #-------------------------------------------------------------------------- # new method: group_digits #-------------------------------------------------------------------------- def group return self.to_s unless YEA::CORE::GROUP_DIGITS self.to_s.gsub(/(\d)(?=\d{3}+(?:\.|$))(\d{3}\..*)?/,'\1,\2') end end # Numeric
#============================================================================== # ■ Switch #==============================================================================
module Switch #-------------------------------------------------------------------------- # self.forced_action_remove #-------------------------------------------------------------------------- def self.forced_action_remove return false if YEA::CORE::FORCED_ACTION_REMOVE_SWITCH <= 0 return $game_switches[YEA::CORE::FORCED_ACTION_REMOVE_SWITCH] end end # Switch
#============================================================================== # ■ BattleManager #==============================================================================
module BattleManager #-------------------------------------------------------------------------- # overwrite method: turn_start #-------------------------------------------------------------------------- def self.turn_start @phase = :turn clear_actor $game_troop.increase_turn @performed_battlers = [] make_action_orders end #-------------------------------------------------------------------------- # overwrite method: next_subject #-------------------------------------------------------------------------- def self.next_subject @performed_battlers = [] if @performed_battlers.nil? loop do @action_battlers -= @performed_battlers battler = @action_battlers.shift return nil unless battler next unless battler.index && battler.alive? @performed_battlers.push(battler) return battler end end #-------------------------------------------------------------------------- # overwrite method: force_action #-------------------------------------------------------------------------- def self.force_action(battler) @action_forced = [] if @action_forced == nil @action_forced.push(battler) return unless Switch.forced_action_remove @action_battlers.delete(battler) end #-------------------------------------------------------------------------- # overwrite method: action_forced? #-------------------------------------------------------------------------- def self.action_forced? @action_forced != nil end #-------------------------------------------------------------------------- # overwrite method: action_forced_battler #-------------------------------------------------------------------------- def self.action_forced_battler @action_forced.shift end #-------------------------------------------------------------------------- # overwrite method: clear_action_force #-------------------------------------------------------------------------- def self.clear_action_force @action_forced = nil if @action_forced.empty? end end # BattleManager
#============================================================================== # ■ Game_Battler #==============================================================================
class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # public instance variables #-------------------------------------------------------------------------- attr_accessor :pseudo_ani_id #-------------------------------------------------------------------------- # alias method: clear_sprite_effects #-------------------------------------------------------------------------- alias game_battler_clear_sprite_effects_ace clear_sprite_effects def clear_sprite_effects game_battler_clear_sprite_effects_ace @pseudo_ani_id = 0 end #-------------------------------------------------------------------------- # alias method: force_action #-------------------------------------------------------------------------- alias game_battler_force_action_ace force_action def force_action(skill_id, target_index) clone_current_actions game_battler_force_action_ace(skill_id, target_index) end #-------------------------------------------------------------------------- # new method: clone_current_actions #-------------------------------------------------------------------------- def clone_current_actions @cloned_actions = @actions.dup end #-------------------------------------------------------------------------- # new method: restore_cloned_actions #-------------------------------------------------------------------------- def restore_cloned_actions return if @cloned_actions.nil? @actions = @cloned_actions.dup @cloned_actions = nil end #-------------------------------------------------------------------------- # alias method: on_action_end #-------------------------------------------------------------------------- alias game_battler_on_action_end_ace on_action_end def on_action_end game_battler_on_action_end_ace restore_cloned_actions end #-------------------------------------------------------------------------- # alias method: on_battle_end #-------------------------------------------------------------------------- alias game_battler_on_battle_end_ace on_battle_end def on_battle_end game_battler_on_battle_end_ace @cloned_actions = nil end end # Game_Battler
#============================================================================== # ■ Game_Troop #==============================================================================
class Game_Troop < Game_Unit #-------------------------------------------------------------------------- # overwrite method: setup #-------------------------------------------------------------------------- def setup(troop_id) clear @troop_id = troop_id @enemies = [] troop.members.each do |member| next unless $data_enemies[member.enemy_id] enemy = Game_Enemy.new(@enemies.size, member.enemy_id) enemy.hide if member.hidden enemy.screen_x = member.x + (Graphics.width - 544)/2 enemy.screen_y = member.y + (Graphics.height - 416) @enemies.push(enemy) end init_screen_tone make_unique_names end end # Game_Troop
#============================================================================== # ■ Game_Map #==============================================================================
class Game_Map #-------------------------------------------------------------------------- # overwrite method: scroll_down #-------------------------------------------------------------------------- def scroll_down(distance) if loop_vertical? @display_y += distance @display_y %= @map.height * 256 @parallax_y += distance else last_y = @display_y dh = Graphics.height > height * 32 ? height : screen_tile_y @display_y = [@display_y + distance, height - dh].min @parallax_y += @display_y - last_y end end #-------------------------------------------------------------------------- # overwrite method: scroll_right #-------------------------------------------------------------------------- def scroll_right(distance) if loop_horizontal? @display_x += distance @display_x %= @map.width * 256 @parallax_x += distance else last_x = @display_x dw = Graphics.width > width * 32 ? width : screen_tile_x @display_x = [@display_x + distance, width - dw].min @parallax_x += @display_x - last_x end end end # Game_Map
#============================================================================== # ■ Game_Event #==============================================================================
class Game_Event < Game_Character #-------------------------------------------------------------------------- # overwrite method: near_the_screen? #-------------------------------------------------------------------------- def near_the_screen?(dx = nil, dy = nil) dx = [Graphics.width, $game_map.width * 256].min/32 - 5 if dx.nil? dy = [Graphics.height, $game_map.height * 256].min/32 - 5 if dy.nil? ax = $game_map.adjust_x(@real_x) - Graphics.width / 2 / 32 ay = $game_map.adjust_y(@real_y) - Graphics.height / 2 / 32 ax >= -dx && ax <= dx && ay >= -dy && ay <= dy end end # Game_Event
#============================================================================== # ■ Sprite_Base #==============================================================================
class Sprite_Base < Sprite #-------------------------------------------------------------------------- # overwrite method: set_animation_rate #-------------------------------------------------------------------------- def set_animation_rate @ani_rate = YEA::CORE::ANIMATION_RATE end #-------------------------------------------------------------------------- # new method: start_pseudo_animation #-------------------------------------------------------------------------- def start_pseudo_animation(animation, mirror = false) dispose_animation @animation = animation return if @animation.nil? @ani_mirror = mirror set_animation_rate @ani_duration = @animation.frame_max * @ani_rate + 1 @ani_sprites = [] end end # Sprite_Base
#============================================================================== # ■ Sprite_Battler #==============================================================================
class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # alias method: setup_new_animation #-------------------------------------------------------------------------- alias sprite_battler_setup_new_animation_ace setup_new_animation def setup_new_animation sprite_battler_setup_new_animation_ace return if @battler.nil? return if @battler.pseudo_ani_id.nil? return if @battler.pseudo_ani_id <= 0 animation = $data_animations[@battler.pseudo_ani_id] mirror = @battler.animation_mirror start_pseudo_animation(animation, mirror) @battler.pseudo_ani_id = 0 end end # Sprite_Battler
#============================================================================== # ■ Spriteset_Map #==============================================================================
class Spriteset_Map #-------------------------------------------------------------------------- # overwrite method: create_viewports #-------------------------------------------------------------------------- def create_viewports if Graphics.width > $game_map.width * 32 && !$game_map.loop_horizontal? dx = (Graphics.width - $game_map.width * 32) / 2 else dx = 0 end dw = [Graphics.width, $game_map.width * 32].min dw = Graphics.width if $game_map.loop_horizontal? if Graphics.height > $game_map.height * 32 && !$game_map.loop_vertical? dy = (Graphics.height - $game_map.height * 32) / 2 else dy = 0 end dh = [Graphics.height, $game_map.height * 32].min dh = Graphics.height if $game_map.loop_vertical? @viewport1 = Viewport.new(dx, dy, dw, dh) @viewport2 = Viewport.new(dx, dy, dw, dh) @viewport3 = Viewport.new(dx, dy, dw, dh) @viewport2.z = 50 @viewport3.z = 100 end #-------------------------------------------------------------------------- # new method: update_viewport_sizes #-------------------------------------------------------------------------- def update_viewport_sizes if Graphics.width > $game_map.width * 32 && !$game_map.loop_horizontal? dx = (Graphics.width - $game_map.width * 32) / 2 else dx = 0 end dw = [Graphics.width, $game_map.width * 32].min dw = Graphics.width if $game_map.loop_horizontal? if Graphics.height > $game_map.height * 32 && !$game_map.loop_vertical? dy = (Graphics.height - $game_map.height * 32) / 2 else dy = 0 end dh = [Graphics.height, $game_map.height * 32].min dh = Graphics.height if $game_map.loop_vertical? rect = Rect.new(dx, dy, dw, dh) for viewport in [@viewport1, @viewport2, @viewport3] viewport.rect = rect end end end # Spriteset_Map
#============================================================================== # ■ Window_Base #==============================================================================
class Window_Base < Window #-------------------------------------------------------------------------- # overwrite method: reset_font_settings #-------------------------------------------------------------------------- def reset_font_settings change_color(normal_color) contents.font.size = Font.default_size contents.font.bold = Font.default_bold contents.font.italic = Font.default_italic contents.font.out_color = Font.default_out_color end #-------------------------------------------------------------------------- # overwrite methods: color #-------------------------------------------------------------------------- def normal_color; text_color(YEA::CORE::COLOURS[:normal]); end; def system_color; text_color(YEA::CORE::COLOURS[:system]); end; def crisis_color; text_color(YEA::CORE::COLOURS[:crisis]); end; def knockout_color; text_color(YEA::CORE::COLOURS[:knockout]); end; def gauge_back_color; text_color(YEA::CORE::COLOURS[:gauge_back]); end; def hp_gauge_color1; text_color(YEA::CORE::COLOURS[:hp_gauge1]); end; def hp_gauge_color2; text_color(YEA::CORE::COLOURS[:hp_gauge2]); end; def mp_gauge_color1; text_color(YEA::CORE::COLOURS[:mp_gauge1]); end; def mp_gauge_color2; text_color(YEA::CORE::COLOURS[:mp_gauge2]); end; def mp_cost_color; text_color(YEA::CORE::COLOURS[:mp_cost]); end; def power_up_color; text_color(YEA::CORE::COLOURS[:power_up]); end; def power_down_color; text_color(YEA::CORE::COLOURS[:power_down]); end; def tp_gauge_color1; text_color(YEA::CORE::COLOURS[:tp_gauge1]); end; def tp_gauge_color2; text_color(YEA::CORE::COLOURS[:tp_gauge2]); end; def tp_cost_color; text_color(YEA::CORE::COLOURS[:tp_cost]); end; #-------------------------------------------------------------------------- # overwrite method: translucent_alpha #-------------------------------------------------------------------------- def translucent_alpha return YEA::CORE::TRANSPARENCY end #-------------------------------------------------------------------------- # overwrite method: hp_color #-------------------------------------------------------------------------- def hp_color(actor) return knockout_color if actor.hp == 0 return crisis_color if actor.hp < actor.mhp * YEA::CORE::HP_CRISIS return normal_color end #-------------------------------------------------------------------------- # overwrite method: mp_color #-------------------------------------------------------------------------- def mp_color(actor) return crisis_color if actor.mp < actor.mmp * YEA::CORE::MP_CRISIS return normal_color end #-------------------------------------------------------------------------- # overwrite method: draw_gauge #-------------------------------------------------------------------------- def draw_gauge(dx, dy, dw, rate, color1, color2) dw -= 2 if YEA::CORE::GAUGE_OUTLINE fill_w = [(dw * rate).to_i, dw].min gauge_h = YEA::CORE::GAUGE_HEIGHT gauge_y = dy + line_height - 2 - gauge_h if YEA::CORE::GAUGE_OUTLINE outline_colour = gauge_back_color outline_colour.alpha = translucent_alpha contents.fill_rect(dx, gauge_y-1, dw+2, gauge_h+2, outline_colour) dx += 1 end contents.fill_rect(dx, gauge_y, dw, gauge_h, gauge_back_color) contents.gradient_fill_rect(dx, gauge_y, fill_w, gauge_h, color1, color2) end #-------------------------------------------------------------------------- # overwrite method: draw_actor_level #-------------------------------------------------------------------------- def draw_actor_level(actor, dx, dy) change_color(system_color) draw_text(dx, dy, 32, line_height, Vocab::level_a) change_color(normal_color) draw_text(dx + 32, dy, 24, line_height, actor.level.group, 2) end #-------------------------------------------------------------------------- # overwrite method: draw_current_and_max_values #-------------------------------------------------------------------------- def draw_current_and_max_values(dx, dy, dw, current, max, color1, color2) total = current.group + "/" + max.group if dw < text_size(total).width + text_size(Vocab.hp).width change_color(color1) draw_text(dx, dy, dw, line_height, current.group, 2) else xr = dx + text_size(Vocab.hp).width dw -= text_size(Vocab.hp).width change_color(color2) text = "/" + max.group draw_text(xr, dy, dw, line_height, text, 2) dw -= text_size(text).width change_color(color1) draw_text(xr, dy, dw, line_height, current.group, 2) end end #-------------------------------------------------------------------------- # overwrite method: draw_actor_tp #-------------------------------------------------------------------------- def draw_actor_tp(actor, x, y, width = 124) draw_gauge(x, y, width, actor.tp_rate, tp_gauge_color1, tp_gauge_color2) change_color(system_color) draw_text(x, y, 30, line_height, Vocab::tp_a) change_color(tp_color(actor)) draw_text(x + width - 42, y, 42, line_height, actor.tp.to_i.group, 2) end #-------------------------------------------------------------------------- # overwrite method: draw_actor_param #-------------------------------------------------------------------------- def draw_actor_param(actor, x, y, param_id) change_color(system_color) draw_text(x, y, 120, line_height, Vocab::param(param_id)) change_color(normal_color) draw_text(x + 120, y, 36, line_height, actor.param(param_id).group, 2) end #-------------------------------------------------------------------------- # overwrite method: draw_currency_value #-------------------------------------------------------------------------- def draw_currency_value(value, unit, x, y, width) cx = text_size(unit).width change_color(normal_color) draw_text(x, y, width - cx - 2, line_height, value.group, 2) change_color(system_color) draw_text(x, y, width, line_height, unit, 2) end #-------------------------------------------------------------------------- # overwrite method: draw_actor_simple_status #-------------------------------------------------------------------------- def draw_actor_simple_status(actor, dx, dy) draw_actor_name(actor, dx, dy) draw_actor_level(actor, dx, dy + line_height * 1) draw_actor_icons(actor, dx, dy + line_height * 2) dw = contents.width - dx - 124 draw_actor_class(actor, dx + 120, dy, dw) draw_actor_hp(actor, dx + 120, dy + line_height * 1, dw) draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw) end end # Window_Base
#============================================================================== # ■ Window_Selectable #==============================================================================
class Window_Selectable < Window_Base #-------------------------------------------------------------------------- # overwrite method: process_cursor_move #-------------------------------------------------------------------------- if YEA::CORE::QUICK_SCROLLING def process_cursor_move return unless cursor_movable? last_index = @index cursor_down (Input.trigger?(:DOWN)) if Input.repeat?(:DOWN) cursor_up (Input.trigger?(:UP)) if Input.repeat?(:UP) cursor_right(Input.trigger?(:RIGHT)) if Input.repeat?(:RIGHT) cursor_left (Input.trigger?(:LEFT)) if Input.repeat?(:LEFT) cursor_pagedown if !handle?(:pagedown) && Input.repeat?(:R) cursor_pageup if !handle?(:pageup) && Input.repeat?(:L) Sound.play_cursor if @index != last_index end end # YEA::CORE::QUICK_SCROLLING end # Window_Selectable
#============================================================================== # ■ Window_ItemList #==============================================================================
class Window_ItemList < Window_Selectable #-------------------------------------------------------------------------- # overwrite method: draw_item #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] return if item.nil? rect = item_rect(index) rect.width -= 4 draw_item_name(item, rect.x, rect.y, enable?(item), rect.width - 24) draw_item_number(rect, item) end #-------------------------------------------------------------------------- # overwrite method: draw_item_number #-------------------------------------------------------------------------- def draw_item_number(rect, item) text = sprintf(YEA::CORE::ITEM_AMOUNT, $game_party.item_number(item).group) draw_text(rect, text, 2) end end # Window_ItemList
#============================================================================== # ■ Window_SkillList #==============================================================================
class Window_SkillList < Window_Selectable #-------------------------------------------------------------------------- # draw_item #-------------------------------------------------------------------------- def draw_item(index) skill = @data[index] return if skill.nil? rect = item_rect(index) rect.width -= 4 draw_item_name(skill, rect.x, rect.y, enable?(skill), rect.width - 24) draw_skill_cost(rect, skill) end end # Window_SkillList
#============================================================================== # ■ Window_Status #==============================================================================
class Window_Status < Window_Selectable #-------------------------------------------------------------------------- # overwrite method: draw_exp_info #-------------------------------------------------------------------------- def draw_exp_info(x, y) s1 = @actor.max_level? ? "-------" : @actor.exp s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp s_next = sprintf(Vocab::ExpNext, Vocab::level) change_color(system_color) draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal) draw_text(x, y + line_height * 2, 180, line_height, s_next) change_color(normal_color) s1 = s1.group if s1.is_a?(Integer) s2 = s2.group if s2.is_a?(Integer) draw_text(x, y + line_height * 1, 180, line_height, s1, 2) draw_text(x, y + line_height * 3, 180, line_height, s2, 2) end end # Window_Status
#============================================================================== # ■ Window_ShopBuy #==============================================================================
class Window_ShopBuy < Window_Selectable #-------------------------------------------------------------------------- # overwrite method: draw_item #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] rect = item_rect(index) draw_item_name(item, rect.x, rect.y, enable?(item)) rect.width -= 4 draw_text(rect, price(item).group, 2) end end # Window_ShopBuy
#============================================================================== # ■ Scene_Map #==============================================================================
class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # alias method: post_transfer #-------------------------------------------------------------------------- alias scene_map_post_transfer_ace post_transfer def post_transfer @spriteset.update_viewport_sizes scene_map_post_transfer_ace end end # Scene_Map
#============================================================================== # ■ Scene_Battle #==============================================================================
class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # alias method: check_substitute #-------------------------------------------------------------------------- alias scene_battle_check_substitute_ace check_substitute def check_substitute(target, item) return false if @subject.actor? == target.actor? return scene_battle_check_substitute_ace(target, item) end #-------------------------------------------------------------------------- # overwrite method: process_forced_action #-------------------------------------------------------------------------- def process_forced_action while BattleManager.action_forced? last_subject = @subject @subject = BattleManager.action_forced_battler process_action @subject = last_subject BattleManager.clear_action_force end end #-------------------------------------------------------------------------- # overwrite method: show_attack_animation #-------------------------------------------------------------------------- def show_attack_animation(targets) if @subject.actor? show_normal_animation(targets, @subject.atk_animation_id1, false) wait_for_animation show_normal_animation(targets, @subject.atk_animation_id2, true) else Sound.play_enemy_attack abs_wait_short end end #-------------------------------------------------------------------------- # overwrite method: show_normal_animation #-------------------------------------------------------------------------- def show_normal_animation(targets, animation_id, mirror = false) animation = $data_animations[animation_id] return if animation.nil? ani_check = false targets.each do |target| if ani_check && target.animation_id <= 0 target.pseudo_ani_id = animation_id else target.animation_id = animation_id end target.animation_mirror = mirror abs_wait_short unless animation.to_screen? ani_check = true if animation.to_screen? end abs_wait_short if animation.to_screen? end end # Scene_Battle
#============================================================================== # # ▼ End of File # #==============================================================================</td></tr></table>
|
Dom Out 01, 2017 12:08 am por Animex
» 100 Sempre
Dom Out 02, 2016 11:59 pm por Green Kun
» Oie!!!
Sex Ago 12, 2016 6:23 pm por Giovannabolo
» Laboratório do Professor Carvalho
Sex Dez 25, 2015 5:12 pm por Steven Galaxy
» Laboratório do Professor Elm
Qui Nov 26, 2015 1:31 pm por Pablo Barrutia
» Perguntas & Respostas
Sáb Set 19, 2015 3:22 pm por Terry
» Laboratório do Professor Sycamore
Sáb Set 12, 2015 6:37 pm por xDarkLightKP
» Laboratório do Professor Rowan
Dom Jun 14, 2015 1:30 am por Lucas JC
» Olá novamente !
Dom Jun 14, 2015 1:21 am por Lucas JC