#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= # Show Event Name # Version: 5.02 # Author : LiTTleDRAgo #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: # # Explanation: # # - This script shows event name in map # # Instructions: # # - Setup the few configurations below. # - This script uses comments in the event's pages at any line. # # Comment : # Name: String # Fontname: String # Fontsize: Integer # Bold # Italic # Color: R,G,B,A # # To show Actors/Items/Weapons/Armors Name, type # Name: ActorID # Name: ItemID # Name: WeaponID # Name: ArmorID # Name: SkillID # Name: EnemyID # Name: VarID # # Example = # Comment : # Name: Actor1 # # # That's all # # Press Z and C together to turn on the name on / off # #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=: module EventName FONTNAME = ['Calibri',Font.default_name] FONTSIZE = 18 BOLD = true ITALIC = true COLOR = Color.new(255,255,255,240) SWITCH = 50 # Switch for Disable Show Event Name PRESS_BTN = [Input::A, # (Z for XP) (Shift for VX) Input::C] # (C/Enter for XP) (Z/Enter for VX) POSITION = "A" # A = Above, B = Below OFFSET = [0,0] # Offset X and Y RANGE = nil#3 # Range from character to show the name # Change to nil to disable Z_VALUE = 1000 SHOW_IN_SCENE = [Scene_Map] end ($imported ||= {})[:drg_show_event_name] = 5.02 core = "This script needs Drago - Core Engine ver 1.14 or above" ($imported[:drg_core_engine]||0) >= 1.14 || raise(core) #============================================================================== # ** Sprite_EventName #------------------------------------------------------------------------------ # This sprite is used to display Event Name. It observes a instance of the # Game_Character class and automatically changes sprite conditions. #============================================================================== class Sprite_Character #-------------------------------------------------------------------------- # * Constant #-------------------------------------------------------------------------- DIS_EV_SWITCH = EventName::SWITCH PRESS_BTN = EventName::PRESS_BTN POS = EventName::POSITION RANGE = EventName::RANGE SCENE = EventName::SHOW_IN_SCENE #-------------------------------------------------------------------------- # * Alias Listing #-------------------------------------------------------------------------- alias_sec_method :update_spritename, :update alias_sec_method :dispose_spritename, :dispose #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update update_spritename update_bitmap_name update_name_visibility return if !@name_event.visible update_name_position end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose dispose_spritename @name_event.dispose end #-------------------------------------------------------------------------- # * create_name_sprite #-------------------------------------------------------------------------- def create_name_sprite @name_event = Sprite.new @name_event.bitmap = Bitmap.new(300,280) end #-------------------------------------------------------------------------- # * update_bitmap_name #-------------------------------------------------------------------------- def update_bitmap_name create_name_sprite if @name_event.nil? refresh_name if @character_showname != name_var end #-------------------------------------------------------------------------- # * update_name_position #-------------------------------------------------------------------------- def update_name_position @name_event.x = self.x - @name_event.bitmap.width/2 @name_event.y = self.y - @name_event.bitmap.height/2 @name_event.y = self.y - @name_event.bitmap.height/2 - self.oy if POS == "A" @name_event.x += EventName::OFFSET.at(0) @name_event.y += EventName::OFFSET.at(1) @name_event.z = self.z + EventName::Z_VALUE @name_event.opacity = self.opacity @name_event.blend_type = self.blend_type @name_event.bush_depth = self.bush_depth end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh_name @name_event.bitmap.clear event_name_check draw_name if @char end #-------------------------------------------------------------------------- # * event_name_check #-------------------------------------------------------------------------- def event_name_check @character_showname = name_var @fontname = EventName::FONTNAME.flatten @fontsize = EventName::FONTSIZE @bold = EventName::BOLD @italic = EventName::ITALIC @color = EventName::COLOR @char = nil @char = name_var if @character.is_a?(Game_Player) @char = name_var if defined?(Game_Follower) && @character.is_a?(Game_Follower) @show_name = false if name_var =~ /<(?:SHOW_NAME|show name)>/i if true name = name_var begin @char = $1.to_s if name =~ /name: [ ]*(.*)/i @char = $game_actors[$1.to_i].name if name =~ /name: actor(\d+)/i @char = $game_party.members[$1.to_i].name if name =~ /name: party(\d+)/i @char = $data_items[$1.to_i].name if name =~ /name: item(\d+)/i @char = $data_weapons[$1.to_i].name if name =~ /name: weapon(\d+)/i @char = $data_armors[$1.to_i].name if name =~ /name: armor(\d+)/i @char = $data_skills[$1.to_i].name if name =~ /name: skill(\d+)/i @char = $data_enemies[$1.to_i].name if name =~ /name: enemy(\d+)/i @char = $game_variables[$1.to_i].to_s if name =~ /name: var(\d+)/i rescue @char = '' end @fontname = $1.to_s if name =~ /fontname: [ ]*(.*)/i @fontsize = $1.to_i if name =~ /fontsize: (\d+)/i @bold = true if name =~ /bold/i @italic = true if name =~ /italic/i @color = Color.new($1.to_i,$2.to_i,$3.to_i) if name =~ /color: (\d+),(\d+),(\d+)/i @color = Color.new($1.to_i,$2.to_i,$3.to_i,$4.to_i) if name =~ /color: (\d+),(\d+),(\d+),(\d+)/i end end end #-------------------------------------------------------------------------- # * name_var #-------------------------------------------------------------------------- def name_var n = nil n ||= @character.note if @character.respond_to?(:note) && @character.note != '' n ||= @character.name if @character.respond_to?(:name) n ||= '' return n end #-------------------------------------------------------------------------- # * Draw Name #-------------------------------------------------------------------------- def draw_name bitmap = @name_event.bitmap bitmap.font.name = @fontname bitmap.font.italic = @italic bitmap.font.size = @fontsize bitmap.font.bold = @bold bitmap.font.color = @color args = [0, 0, bitmap.width, bitmap.height, @char ,1] method = [:draw_edging_text, :draw_text] method = method.select {|m| bitmap.respond_to?(m)}.first bitmap.send(method, *args) end #-------------------------------------------------------------------------- # * Visibility #-------------------------------------------------------------------------- def update_name_visibility disable_switch = DIS_EV_SWITCH ? @character.opacity < 50 : false disable_switch ||= DIS_EV_SWITCH && $game_switches[DIS_EV_SWITCH] disable_switch ||= @character.transparent disable_switch ||= SCENE.not.include?(LiTTleDRAgo.scene.class) update_name_visibility_press if PRESS_BTN && !disable_switch return @name_event.visible = false if disable_switch || $game_self_switches["Hide Event Name"] update_name_visibility_range if RANGE && !@pressed end #-------------------------------------------------------------------------- # * update_name_visibility_press #-------------------------------------------------------------------------- def update_name_visibility_press pressed = Input.press?(PRESS_BTN.at(0)) && Input.trigger?(PRESS_BTN.at(1)) hide_name = $game_self_switches["Hide Event Name"] if !hide_name && pressed @name_event.visible = false $game_self_switches["Hide Event Name"] = true elsif hide_name && pressed @name_event.visible = true $game_self_switches["Hide Event Name"] = false end end #-------------------------------------------------------------------------- # * update_name_visibility_range #-------------------------------------------------------------------------- def update_name_visibility_range @name_event.visible = ($game_player.distance_from(@character) <= RANGE) end end #-------------------------------------------------------------------------- # END OF SCRIPT #--------------------------------------------------------------------------