设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 115|回复: 0

[转载发布] Event Text Display

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    9071

    主题

    864

    回帖

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    58883
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    68848

    灌水之王

    发表于 2026-8-1 08:24:28 | 显示全部楼层 |阅读模式
    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: [ETDname][NNnickname]





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

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

    # Author: Áص¹ (RGSS)

    # Edited by Death10 (RGSS3)

    # http://gamesvts.com

    # http://taotrochoi.com

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

    # Comment: [ETDname][NNnickname]

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

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

    # ** 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[0].dup.gsub!(/\[[Ee][Tt][Dd](.+?)\]/) do

                            @etd_display_color = ETD_Default_EventText_Color

                            @etd_display_text = $1

                      end

                    if @list.code == 108

                      @list.parameters[0].dup.gsub!(/\[[Nn][Nn](.+?)\]/) 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[0]

            # 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









    FAQ



    Spoiler-Remove the game actor name and nickname:Change


                    Code:       
    1. [I]ETD_Default_PlayerText = 'name'[/I]
    2. [I]ETD_Default_PlayerText2 = 'nickname'[/I]
    复制代码

    to



                    Code:       
    1. [I]ETD_Default_PlayerText = ''[/I]
    2. [I]ETD_Default_PlayerText2 = ''[/I]
    复制代码








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

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-8-17 21:10 , Processed in 0.131212 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表