[Script] [RPGXP] Hiển thị tên cho sự kiện - New

Nguyễn Thế Trọng HiệpNguyễn Thế Trọng Hiệp Posts: 333Registered
edited August 2019 in RPG Maker
Script đầu tay của mình! Mong mọi người ủng hộ


Tên Script: Display Event Name
Tác Giả: Miraki
Phiên bản: 1.0
Tác dụng:
Hiển thị tên của nhân vật hoặc sự kiện lên bản đồ.
Hướng dẫn:
Sử dụng cú pháp ",n + Tên sự kiện" để hiển thị tên sự kiện
VD: ,nMiraki -> Miraki
Bonus:
Sử dụng tốt cho XAS Script
Preview:
Untitledpng
#===============================================================================
# Display Event Name
# Ver 1.0
# Author: Miraki
#--------------------------
# Use for RPG Maker XP
#--------------------------
#===============================================================================
#Tutorial
#===============================================================================
#VIETNAMESE
#Sử dụng ,n trước tên sự kiện để hiển thị tên sự kiện
#English
#Use ,n before name event to display name event
#===============================================================================
#Update
#===============================================================================
#Ver 1.0 : Use for XAS script, hide and show character name
#===============================================================================
#SETTING
#===============================================================================
@hide_character_name = true #Show or hide character name
                            #Bật hoặc tắt hiển thị tên sự kiện
#===============================================================================
#-------------------------------------------------------------------------------
#Nhận tên sự kiện
#-------------------------------------------------------------------------------
class Game_Event < Game_Character
  def name
    return @event.name
  end
end
#-------------------------------------------------------------------------------
#Gán biến tên và tạo obj
#-------------------------------------------------------------------------------
class Sprite_Character < RPG::Sprite
  #------------------------------------------
  attr_accessor :character
  #------------------------------------------
  def initialize(viewport, character = nil)
    super(viewport)
    name = character.name
    @character = character
    @name_sprite = Sprite.new
    @name_sprite.bitmap = Bitmap.new(160, 48)
    #--------------------------------------------------
    @name_sprite.bitmap.font.name = ".VnArial"
    @name_sprite.bitmap.font.size = 16
    @name_sprite.bitmap.font.color.set(255, 255, 128)
    #--------------------------------------------------
    @eventname = name
    @eventname_main = name.split(/,mik/)[0]
    if name[0, 2] == "EV"
      @eventname_main = ""
    end
    if @hide_character_name == true
      if name == $game_party.actors[0].name
        @eventname_main = ""
      end
    end
    if name[0, 2] == ",n"
       @eventname_main = name.split(/,n/)[1]
    else
       @eventname_main = ""
    end
    if @eventname_main != nil or @eventname_main != ""
       @name_sprite.bitmap.draw_text(0, 0, 160, 36, @eventname_main, 1)
    end
    update
  end
#-------------------------------------------------------------------------------
# Update
#-------------------------------------------------------------------------------
  def update
    name = @character.name
    if @tile_id != @character.tile_id or @character_name != @character.character_name or @character_hue != @character.character_hue then
      @tile_id = @character.tile_id
      @character_name = @character.name
      @character_hue = @character.character_hue
      if @tile_id >= 384 then
        self.bitmap = RPG::Cache::tile($game_map.tileset_name, @tile_id, @character.character_hue)
        self.src_rect.set(0, 0, 64, 64)
        self.ox = 64
        self.oy = 64
      else
        self.bitmap = RPG::Cache.character(@character.character_name, @character.character_hue)
        @c_w = bitmap.width / 4
        @c_h = bitmap.height / 4
        self.ox = @c_w / 2
        self.oy = @c_h
      end
    end
    if @eventname != @character.name
     @name_sprite.bitmap.clear
     @eventname = @character.name
     @eventname_main = name.split(/,n/)[1]
    end
    if @eventname_main != "" and @evname_main != nil
       @name_sprite.bitmap.draw_text(0, 0, 160, 50, @eventname_main, 1)
    end
    @name_sprite.x = self.x - 80
    @name_sprite.y = self.y - self.oy - 25
    self.visible = (not @character.transparent)
    if @tile_id == 0 then
      sx = @character.pattern * @c_w
      sy = (@character.direction - 2) / 2 * @c_h
      self.src_rect.set(sx, sy, @c_w, @c_h)
    end
    self.x = @character.screen_x
    self.y = @character.screen_y
    self.z = @character.screen_z
    self.opacity = @character.opacity
    self.blend_type = @character.blend_type
    self.bush_depth = @character.bush_depth
    if @character.animation_id != 0
      animetion = $date.animations(@character.animtion_id)
      animation(animetion, true)
      @character.animetion_id = 0
    end
  end
end
#-------------------------------------------------------------------------------
# Game_Player
#-------------------------------------------------------------------------------
class Game_Player < Game_Character
  def name
      return $game_party.actors[0].name
  end
end
«1

Comments

  • À quên ! Thank anh Admon giúp em trong suốt quá trình làm script nhé ! :3
  • Black FaceBlack Face Posts: 424Registered
    Đù, nhớ tới 1 thời với XP mà chả biết cái mịa gì code
  • Black Face wrote:
    Đù, nhớ tới 1 thời với XP mà chả biết cái mịa gì code

    :3
  • Thành MinhThành Minh Posts: 82Registered
    :3 cũng được đấy, nhưng mà chuyển sang VX Ace rồi :))
  • Dang_KhoaDang_Khoa Posts: 3,861Administrators
    Sao cách dùng script ngộ vậy em  :angel:
  • Thanh Dev wrote:
    :3 cũng được đấy, nhưng mà chuyển sang VX Ace rồi :))
    Hi hi ! Lỗ thời ùi !
  • Dang_Khoa wrote:
    Sao cách dùng script ngộ vậy em  :angel:

    Để nó phù hợp với XAS anh à ! :)
  • BướmBướm Posts: 1,220Registered
    Mình hay dùng cách thủ công kiểu này 
    B1: Tạo tên của 1 even hay NPC dùng chữ viết trên 1 layer trắng rồi duplicate ra theo ô với tỉ lệ 3X4 (Theo tỉ lệ char của XV ace)
    B2: Đưa hàng chữ lên xuống 1 chút hay viết 1 dòng chữ thường 1 dòng nổi hoặc thêm 1 mũi tên phía dưới để tạo hiệu ứng như nhấp nháy như 1 cursor.
    B3: Sử dụng như 1 even và nên để above char và tittleset
    Cách này chỉ tốn công làm cái đầu tiên các cái sau cứ copy paste với đổi tên vị trí với NPC bạn cần là đc mà lại có thể sử dụng bất cứ font chữ nào mình muốn.
  • Mình hay dùng cách thủ công kiểu này 
    B1: Tạo tên của 1 even hay NPC dùng chữ viết trên 1 layer trắng rồi duplicate ra theo ô với tỉ lệ 3X4 (Theo tỉ lệ char của XV ace)
    B2: Đưa hàng chữ lên xuống 1 chút hay viết 1 dòng chữ thường 1 dòng nổi hoặc thêm 1 mũi tên phía dưới để tạo hiệu ứng như nhấp nháy như 1 cursor.
    B3: Sử dụng như 1 even và nên để above char và tittleset
    Cách này chỉ tốn công làm cái đầu tiên các cái sau cứ copy paste với đổi tên vị trí với NPC bạn cần là đc mà lại có thể sử dụng bất cứ font chữ nào mình muốn.

    Đây là script mình mới làm nên mình dựa trên khả năng của mình và những gì mình học được để có thể hỗ trợ tốt nhất cho dự án mình !
    Script của mình cũng có thể sử dụng bất kì font nào cũng được ! Bạn có thể sửa nó, làm chữ in đậm, đổi màu, thêm điều kiện !
    Về event mà bạn nói thì mình thấy nó mất công quá ! :) ! Ví dụ nhé ! Nếu bạn sử dụng vào hình ảnh rộng như của RPG XP thì sao? Chữ nó sẽ bay lơ lửng  :(
  • BướmBướm Posts: 1,220Registered
    BuomBUomChua
    Đây là script mình mới làm nên mình dựa trên khả năng của mình và những gì mình học được để có thể hỗ trợ tốt nhất cho dự án mình !
    Script của mình cũng có thể sử dụng bất kì font nào cũng được ! Bạn có thể sửa nó, làm chữ in đậm, đổi màu, thêm điều kiện !
    Về event mà bạn nói thì mình thấy nó mất công quá ! :) ! Ví dụ nhé ! Nếu bạn sử dụng vào hình ảnh rộng như của RPG XP thì sao? Chữ nó sẽ bay lơ lửng  :(


    Mình dùng cho XVA thôi nên cũng ko rõ nếu dùng trên XV sẽ thế nào nhưng cũng có thể hạ thấp độ cao của chữ xuống cho vừa với bị trí, mà cũng chỉ mất công làm cái đầu tiên các cái sau cứ thế dè lên rồi xóa layer cũ đi là đc mầ đc cái có thể nhồi thêm 1-2 cái cursor khác vào nhìn cũng hay như kiểu bãi quái hoặc bãi fruits event NPC etc...
    Cứ thử làm trên XP xem chỉ mất thời gian edit ban đầu tí thôi, đây là ảnh làm trên XVA nếu cần icon có thể dùng của XVA cũng đc, nếu thíc làm kiểu này có sẵn bộ balloon speech to nhỏ tùy theo chữ hoặc icon cần nhồi vào

    TEST_zps65nmkdnx.png
  • Black FaceBlack Face Posts: 424Registered
    Đẹp nhờ, ý tưởng tốt đấy
  • Cái đó mình cũng viết được nhưng với game của mình nó hơi khác ! :)
  • Black Face wrote:
    Đẹp nhờ, ý tưởng tốt đấy

    Cảm ơn bạn !
  • David ChaseDavid Chase Posts: 1,766Registered
    Hay quaa đang cần

    Thanks youuuuuuu
  • kumuzukumuzu Posts: 669Registered
    :dodgy: chữ cao hơn người kìa
Sign In or Register to comment.