じ☆ve冰风 发表于 2026-8-1 08:24:28

Event Text Display

Event Text Display





Author: Áص¹ (RGSS)





Edited by Death10 (RGSS3)





Introduction





-Display text above Actor and Event





Features





-New nickname line





-Can update in map





Script





Comment in Event Page:





Spoiler#==============================================================================
# ** Event Text Display

#==============================================================================

# Author: Áص¹ (RGSS)

# Edited by Death10 (RGSS3)

# http://gamesvts.com

# http://taotrochoi.com

#==============================================================================

# Comment:

#==============================================================================

#==============================================================================

# ** Game_Character

#==============================================================================

class Game_Character

#--------------------------------------------------------------------------

# * Defaults

#

#~ Default Player Display Options (Non-Case Sensitive):

#          'Name', 'Nickname', 'Class', 'Level', 'Hp', 'Sp'

#--------------------------------------------------------------------------

ETD_Default_EventText_Color = Color.new(255, 255, 255)

ETD_Default_PlayerText_Color = Color.new(255, 255, 255)

ETD_Default_EventText_Color2 = Color.new(255, 255, 255)

ETD_Default_PlayerText_Color2 = Color.new(255, 255, 255)

ETD_Default_PlayerText = 'name'

ETD_Default_PlayerText2 = 'nickname'

#--------------------------------------------------------------------------

# * Public Instance Variables

#--------------------------------------------------------------------------

attr_accessor :etd_display_shadow_color

attr_accessor :etd_display_color

attr_accessor :etd_display_text

attr_accessor :etd_display_shadow_color2

attr_accessor :etd_display_color2

attr_accessor :etd_display_text2

#--------------------------------------------------------------------------

# * Alias Listings

#--------------------------------------------------------------------------

alias seph_etd_gmchr_init initialize

#--------------------------------------------------------------------------

# * Object Initialization

#--------------------------------------------------------------------------

def initialize

        # Sets ETD Options

        @etd_display_color = self.is_a?(Game_Player) ?

          ETD_Default_PlayerText_Color : ETD_Default_EventText_Color

        @etd_display_color2 = self.is_a?(Game_Player) ?

          ETD_Default_PlayerText_Color2 : ETD_Default_EventText_Color2

        # Original Initialization

        seph_etd_gmchr_init

end

end

#==============================================================================

# ** Game_Event

#==============================================================================

class Game_Event < Game_Character

#--------------------------------------------------------------------------

# * Alias Listings

#--------------------------------------------------------------------------

alias seph_etd_gmevt_refresh refresh

#--------------------------------------------------------------------------

# * Refresh

#--------------------------------------------------------------------------

def refresh

        # Original Refresh Method

        seph_etd_gmevt_refresh

        # Erase ETD Display Text

        @etd_display_text = nil

        @etd_display_text2 = nil

        # Checks to see if display text

        unless @list.nil? || @erased

          for i in 0...@list.size

                if @list.code == 108

                  @list.parameters.dup.gsub!(/\[(.+?)\]/) do

                        @etd_display_color = ETD_Default_EventText_Color

                        @etd_display_text = $1

                  end

                if @list.code == 108

                  @list.parameters.dup.gsub!(/\[(.+?)\]/) do

                        @etd_display_color2 = ETD_Default_EventText_Color2

                        @etd_display_text2 = $1

                  end

                end

          end

        end

end

end

end

#==============================================================================

# ** Game_Player

#==============================================================================

class Game_Player < Game_Character

#--------------------------------------------------------------------------

# * Alias Listings

#--------------------------------------------------------------------------

alias seph_etd_gmplyr_refresh refresh

alias etd_update update

#--------------------------------------------------------------------------

# * Refresh

#--------------------------------------------------------------------------

def etd

        # Gets First Actor

        actor = $game_party.members

        # Determines Text

        case ETD_Default_PlayerText.dup.downcase

        when 'name'   ; txt = actor.name

        when 'nickname'   ; txt = actor.nickname

        when 'class'; txt = actor.class.name

        when 'level'; txt = "Level: #{actor.level}"

        when 'hp'       ; txt = "HP: #{actor.hp} / #{actor.mhp}"

        when 'sp'       ; txt = "SP: #{actor.sp} / #{actor.msp}"

        else                  ; txt = ''

        end

        # Determines Text

        case ETD_Default_PlayerText2.dup.downcase

        when 'name'   ; txt2 = actor.name

        when 'nickname'   ; txt2 = actor.nickname

        when 'class'; txt2 = actor.class.name

        when 'level'; txt2 = "Level: #{actor.level}"

        when 'hp'       ; txt2 = "HP: #{actor.hp} / #{actor.mhp}"

        when 'sp'       ; txt2 = "SP: #{actor.sp} / #{actor.msp}"

        else                  ; txt2 = ''

        end

        # Creates Text Display

        @etd_display_color = ETD_Default_PlayerText_Color

        @etd_display_text = txt

        @etd_display_color2 = ETD_Default_PlayerText_Color2

        @etd_display_text2 = txt2

end

def refresh

        seph_etd_gmplyr_refresh

        etd

end

def update

        etd_update

        etd

end

end

#==============================================================================

# ** Sprite_Character

#==============================================================================

class Sprite_Character < Sprite_Base

#--------------------------------------------------------------------------

# * Alias Listings

#--------------------------------------------------------------------------

if @seph_etd_spchr.nil?

        alias seph_etd_spchr_update update

        alias seph_etd_spchr_dispose dispose

        @seph_etd_spchr = true

end

#--------------------------------------------------------------------------

# * Frame Update

#--------------------------------------------------------------------------

def update

        # Original update Method

        seph_etd_spchr_update

        # Character Display Update Method

        update_display_text

        update_display_text2

end

#--------------------------------------------------------------------------

# * Dispose

#--------------------------------------------------------------------------

def dispose

        # Original Dispose

        seph_etd_spchr_dispose

        # Dispose ETD Sprite

        dispose_etd_sprite

        dispose_etd_sprite2

end

#--------------------------------------------------------------------------

# * Dispose ETD Sprite

#--------------------------------------------------------------------------

def dispose_etd_sprite

        # Dispose ETD Sprite

        unless @_etd_text_sprite.nil?

          @_etd_text_sprite.dispose

          @_etd_text_sprite = nil

        end

end

def dispose_etd_sprite2

        # Dispose ETD Sprite

        unless @_etd_text_sprite2.nil?

          @_etd_text_sprite2.dispose

          @_etd_text_sprite2 = nil

        end

end

#--------------------------------------------------------------------------

# * Update Display Sprite

#--------------------------------------------------------------------------

def update_display_text

        # If Character Has No ETD

        if @character.etd_display_text.nil?

          # Dispose ETD Sprite

          dispose_etd_sprite

          return

        end

        # If ETD Text Sprite Doesn't Exist

        if @_etd_text_sprite.nil?

          # Create ETD Text Sprite

          create_etd_sprite

          return

        end

        # If ETD Sprite Parameters Don't Match Characters

        unless @_etd_display_text == @character.etd_display_text &&

                   @_etd_display_color == @character.etd_display_color &&

                   @_etd_display_shadow_color == @character.etd_display_shadow_color

          # Dispose Sprite

          dispose_etd_sprite

          # Recreate Sprite

          create_etd_sprite

        end

        # Update ETD Sprite Position

        @_etd_text_sprite.x = self.x

        @_etd_text_sprite.y = self.y - self.oy / 2 - 41

end

def update_display_text2

        # If Character Has No ETD

        if @character.etd_display_text2.nil?

          # Dispose ETD Sprite

          dispose_etd_sprite2

          return

        end

        # If ETD Text Sprite Doesn't Exist

        if @_etd_text_sprite2.nil?

          # Create ETD Text Sprite

          create_etd_sprite2

          return

        end

        # If ETD Sprite Parameters Don't Match Characters

        unless @_etd_display_text2 == @character.etd_display_text2 &&

                   @_etd_display_color2 == @character.etd_display_color2 &&

                   @_etd_display_shadow_color2 == @character.etd_display_shadow_color2

          # Dispose Sprite

          dispose_etd_sprite2

          # Recreate Sprite

          create_etd_sprite2

        end

        # Update ETD Sprite Position

        @_etd_text_sprite2.x = self.x

        @_etd_text_sprite2.y = self.y - self.oy / 2 - 24

end

#--------------------------------------------------------------------------

# * Create ETD Sprite

#--------------------------------------------------------------------------

def create_etd_sprite

        # Creates Display Bitmap

        bitmap = Bitmap.new(162, 40)

        # Draws ETD Display Text

        bitmap.font.color = @character.etd_display_color

        bitmap.font.size = 22

        bitmap.draw_text(0, 0, 161, 40, @character.etd_display_text, 1)

        # Creates Display Text Sprite

        @_etd_text_sprite = Sprite.new(self.viewport)

        @_etd_text_sprite.bitmap = bitmap

        @_etd_text_sprite.ox = 80

        @_etd_text_sprite.oy = 20

        @_etd_text_sprite.x = self.x

        @_etd_text_sprite.y = self.y - self.oy / 2 - 41

        @_etd_text_sprite.z = 3000

        @_etd_text_sprite.visible = true

        # Saves ETD Text

        @_etd_display_text = @character.etd_display_text

        @_etd_display_color = @character.etd_display_color

        @_etd_display_shadow_color = @character.etd_display_shadow_color

end

def create_etd_sprite2

        # Creates Display Bitmap

        bitmap2 = Bitmap.new(162, 40)

        # Draws ETD Display Text

        bitmap2.font.color = @character.etd_display_color2

        bitmap2.font.size = 22

        bitmap2.draw_text(0, 0, 161, 40, @character.etd_display_text2, 1)

        # Creates Display Text Sprite

        @_etd_text_sprite2 = Sprite.new(self.viewport)

        @_etd_text_sprite2.bitmap = bitmap2

        @_etd_text_sprite2.ox = 80

        @_etd_text_sprite2.oy = 20

        @_etd_text_sprite2.x = self.x

        @_etd_text_sprite2.y = self.y - self.oy / 2 - 24

        @_etd_text_sprite2.z = 3000

        @_etd_text_sprite2.visible = true

        # Saves ETD Text

        @_etd_display_text2 = @character.etd_display_text2

        @_etd_display_color2 = @character.etd_display_color2

        @_etd_display_shadow_color2 = @character.etd_display_shadow_color2

end

end






Screenshot





Spoiler
https://lh5.googleusercontent.com/-_Fhy2NEwLqE/UAbDVEtejVI/AAAAAAAAAX0/f24xpQOGlm0/s550/etd.PNG








FAQ



Spoiler-Remove the game actor name and nickname:Change


                Code:       
ETD_Default_PlayerText = 'name'
ETD_Default_PlayerText2 = 'nickname'

to



                Code:       
ETD_Default_PlayerText = ''
ETD_Default_PlayerText2 = ''








本贴来自国际rpgmaker官方论坛作者:Death10处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/event-text-display.3320/
页: [1]
查看完整版本: Event Text Display