Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
- # 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 : <Show Name>
- # 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 : <Show Name>
- # 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
- #--------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement