[Hướng Dẫn] [help] officer david cần help script Event name

David ChaseDavid Chase Posts: 1,766Registered
Mình đang cần cái event Event Text Display
nghĩa là hiện tên event trên đầu của event ấy
nhưng tìm hoài mà ko có ra.. hoặc lỗi script\
ai có thì giúp mình cái
«134

Comments

  • kumuzukumuzu Posts: 669Registered
    thấy City of roleplay 7.2 có script này rồi mà copy lại cho vào thôi ~.~
  • David ChaseDavid Chase Posts: 1,766Registered
    đã add nhưng bị lỗi script.. ko hiện event name
    @kumuzu
  • kumuzukumuzu Posts: 669Registered
    lỗi thì chịu rồi :(
  • chikoebisuchikoebisu Posts: 6Registered
    Mình đang cần cái event Event Text Display
    nghĩa là hiện tên event trên đầu của event ấy
    nhưng tìm hoài mà ko có ra.. hoặc lỗi script\
    ai có thì giúp mình cái

    Của bạn đây
    module MelekTaus
      FONT_NAME = "Arial"
      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]] + [105])), Color.new(0, 0, 0, 105))
    #           else
    #           @event_name.bitmap.draw_text(0, 19, 128, 19, name[1], 1)
    #           end
            end
          end
        end
      end
    end
    
  • David ChaseDavid Chase Posts: 1,766Registered
    @chikoebisu
    cách sử dụng như thế nào nhỉ
    58922239.untitled.png
    and...
  • DeathDeath Posts: 732Registered, Moderators
    ^ Script đó của VX dùng thế quái nào đc :v
  • kumuzukumuzu Posts: 669Registered
  • David ChaseDavid Chase Posts: 1,766Registered
    ai giúp với đi mà
  • chikoebisuchikoebisu Posts: 6Registered
    @chikoebisu
    cách sử dụng như thế nào nhỉ
    58922239.untitled.png
    and...

  • David ChaseDavid Chase Posts: 1,766Registered
    có ai có script của XP ko
  • kumuzukumuzu Posts: 669Registered
    có script rồi mà cứ đòi hỏi đâu đâu ý nhỉ :D
  • David ChaseDavid Chase Posts: 1,766Registered
    @kumuzu
    script đó bị lỗi và chỉ hiện tên của nhân vật chính chứ ko hiện cho event
  • Dang_KhoaDang_Khoa Posts: 3,861Administrators
    Em thử dùng trong project mới xem, có khi nó bị xung đột script
  • kumuzukumuzu Posts: 669Registered
    tốt nhất bỏ nó đi đỡ lỗi :)
  • chikoebisuchikoebisu Posts: 6Registered
    @kumuzu
    script đó bị lỗi và chỉ hiện tên của nhân vật chính chứ ko hiện cho event

    I bao k hieenj ten even nhung ev co ten dang EV00... số thì k hiệnChú làm bực mình quá...
    thử cái này đê XV chứ j:
    # 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
    #--------------------------------------------------------------------------
    
Sign In or Register to comment.