Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Multiple popups v1.0
- # by mikb89 for Stuntman Mike
- # This script is a partial porting for VX Ace of some MelekTaus's VX script.
- module MelekTaus
- FONT_NAME = "AvQest"
- FONT_BOLD = false
- DISTANCE = 4
- end
- class Game_Event < Game_Character
- attr_reader :erased
- def comment_name
- @event.name
- end
- end
- class Sprite_Character < Sprite_Base
- alias melektaus_sprite_character_initialize initialize unless $@
- def initialize(viewport, character = nil)
- melektaus_sprite_character_initialize(viewport, character)
- create_event_name(character)
- end
- def create_event_name(c)
- return if !c.is_a?(Game_Event)# and !c.is_a?(Game_Special_Event)
- @event_name = ::Sprite.new(viewport)
- @event_name.bitmap = Bitmap.new(128, 38)
- @event_name.bitmap.font.name = MelekTaus::FONT_NAME
- @event_name.bitmap.font.bold = MelekTaus::FONT_BOLD
- size = @event_name.bitmap.font.size * 0.1
- @event_name.bitmap.font.size -= size.round
- @event_name.ox = 64
- @event_name.oy = 31
- @event_comment_name = ""
- end
- alias melektaus_sprite_character_dispose dispose unless $@
- def dispose
- dispose_event_name
- melektaus_sprite_character_dispose
- end
- def dispose_event_name
- return if @event_name.nil?
- @event_name.dispose
- end
- alias melektaus_sprite_character_update update unless $@
- def update
- if @character.is_a? Game_Event and @character.erased
- self.visible = false
- @event_name.visible = false unless @event_name.nil?
- else
- melektaus_sprite_character_update
- update_event_name
- end
- end
- def update_event_name
- return if @event_name.nil?
- c = @character
- if !c.transparent and# $game_map.event_names_visible and
- (c.tile_id != 0 || c.character_name != "") and# || c.icon_index != 0) and
- c.opacity > 0 and
- c.comment_name != "" && c.comment_name[0, 3] != "EV0"
- @event_name.visible = true
- else
- @event_name.visible = false
- end
- if @event_name.visible
- @event_name.x = x
- @event_name.y = y - height
- @event_name.z = z + 190
- r_x = c.real_x - $game_player.real_x
- r_y = c.real_y - $game_player.real_y
- v = 255-[r_x.abs, r_y.abs].max*255/MelekTaus::DISTANCE
- if v > 0
- @event_name.opacity += 10
- else
- @event_name.opacity -= 10
- end
- if (c.is_a?(Game_Event) && @event_comment_name != c.comment_name)# or
- #~ (c.is_a? Game_Special_Event && @event_comment_name != c.name)
- @event_comment_name = c.comment_name
- @event_name.bitmap.clear
- name = @event_comment_name.split("\\n")
- if name.size == 1
- @event_name.bitmap.draw_text(0, 0, 128, 38, name[0], 1)
- elsif name.size == 2
- @event_name.bitmap.draw_text(0, 0, 128, 19, name[0], 1)
- #~ if MelekTaus::SpecialEvents::USE_BARS and !c.bar.nil?
- #~ @event_name.bitmap.draw_bar(40, 24, 48, 5, c.bar[0], c.bar[1],
- #~ Color.new(*([*c.bar[2]] + [205])), Color.new(0, 0, 0, 205))
- #~ else
- @event_name.bitmap.draw_text(0, 19, 128, 19, name[1], 1)
- #~ end
- end
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement