Tạo Trò Chơi - [Script] Hiển thị tên cho sự kiện - New

Tạo Trò Chơi

Phiên bản đầy đủ: [Script] Hiển thị tên cho sự kiện - New
Bạn đang xem phiên bản rút gọn. Xem phiên bản đầy đủ với định dạng thích hợp.
Trang: 1 2 3
Script đầu tay của mình! Mong mọi người ủng hộ
----------------------------------------------------------------

Trích dẫn: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
Trích dẫn:Preview:
[Image: Untitled.png]

Trích dẫn:Demo:
Ten Lua - Download (177kb)
Code:
#===============================================================================
# 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
À quên ! Thank anh Admon giúp em trong suốt quá trình làm script nhé ! :3
Đù, nhớ tới 1 thời với XP mà chả biết cái mịa gì code
(26-01-2015, 05:29 PM)Black Face Đã viết: [ -> ]Đù, nhớ tới 1 thời với XP mà chả biết cái mịa gì code

:3
:3 cũng được đấy, nhưng mà chuyển sang VX Ace rồi :))
Sao cách dùng script ngộ vậy em  Angel
(26-01-2015, 07:37 PM)Thanh Dev Đã viết: [ -> ]:3 cũng được đấy, nhưng mà chuyển sang VX Ace rồi :))
Hi hi ! Lỗ thời ùi !
(26-01-2015, 07:49 PM)Dang_Khoa Đã viết: [ -> ]Sao cách dùng script ngộ vậy em  Angel

Để nó phù hợp với XAS anh à ! Smile
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.
(26-01-2015, 09:31 PM)BuomBUomChua Đã viết: [ -> ]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á ! Smile ! 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  Sad
Trang: 1 2 3