[Script] [RPGXP] Hiển thị tên cho sự kiện - New
Nguyễn Thế Trọng Hiệp
Posts: 333Registered
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:
#===============================================================================
# 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
Comments
THAM GIA GROUP CỦA TTC TRÊN FACEBOOK
Để nó phù hợp với XAS anh à !
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
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
Cảm ơn bạn !
Thanks youuuuuuu