# =============================================================================# TheoAllen - Events Name
# Version : 1.0
# Contact : www.rpgmakerid.com (or)
http://theolized.blogspot.com
# (This script documentation is written in informal indonesian language)
# =============================================================================
($imported ||= {})[:Theo_TextEvent] = true
# =============================================================================
# CHANGE LOGS:
# -----------------------------------------------------------------------------
# 2013.06.09 - Finished script
# =============================================================================
=begin
Perkenalan :
Script ini cuman nampilin text diatas event
Cara penggunaan :
Pasang dibawah material namun diatas main
Tulis pada nama event jika mau ditampilin
TERMS OF USE :
Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
dipake buat komersil, jangan lupa, gw dibagi gratisannya.
=end
# =============================================================================
# Konfigurasi kecil2an :
# =============================================================================
module THEO
module MAP
# Lebar window yg diisi text
WINDOW_WIDTH = 200
# Size font
FONT_SIZE = 17
# Warnanya (red,green,blue
FONT_COLOR = Color.new(255,255,255)
# Posisi offset dari koordinat y
OFFSET_Y = 0
end
end
# =============================================================================
# Batas konfigurasi
# =============================================================================
module THEO
module MAP
module REGEXP
TEXT = /<(?:TEXT|text)

.*)>/i
end
end
end
class Window_CharText < Window_Base
include THEO::MAP
def initialize(char,text)
@char = char
@text = text
super(0,0,window_width,window_height)
self.opacity = 0
contents.font.size = FONT_SIZE
update_placement
refresh
end
def update_placement
return unless @char
self.x = @char.screen_x - self.width/2
self.y = @char.screen_y - 20 - self.height - OFFSET_Y
end
def update
super
update_placement
end
def refresh
contents.clear
draw_text(0,0,contents.width,FONT_SIZE,@text,1)
end
def window_width
WINDOW_WIDTH
end
def window_height
return FONT_SIZE + standard_padding*2
end
end
class Game_Event < Game_Character
def name
@event.name
end
end
class Scene_Map < Scene_Base
include THEO::MAP
alias pre_text_over_event_start start
def start
pre_text_over_event_start
create_text_event_windows
end
def create_text_event_windows
@event_text_windows = []
$game_map.events.values.each do |event|
case event.name
when REGEXP::TEXT
text = $1.to_s
@event_text_windows.push(Window_CharText.new(event,text))
end
end
end
alias pre_update_window_text update
def update
pre_update_window_text
update_text_window
end
def update_text_window
@event_text_windows.each {|w| w.update}
end
alias pre_text_event_terminate terminate
def termminate
pre_text_event_terminate
dispose_text_event_windows
end
def dispose_text_event_windows
@event_text_windows.each {|w| w.dispose}
end
alias text_event_post_transfer post_transfer
def post_transfer
dispose_text_event_windows
create_text_event_windows
text_event_post_transfer
end
end