이번 스크립트는 메시지가 출력될때 기본족으로 오른쪽정렬되어 출력되게 하는 스크립트입니다.
사용법은 스크립트만 추가시켜 주시면 적용이 됩니다. ^^
=begin
Arabic Reading Right to left
Author: Bulletxt
Version: 0.4
Date: 11/07/2009
=end
# this is an id switch, if ON it will reverse the letters of a word.
# example: "Hello World" will be "olleH dlroW"
REVERSE_LETTERS_OF_WORD = 1
############################## END CONFIGURATION ###############################
class Window_Message < Window_Selectable
#--------------------------------------------------------------------------
# * Start Message
#--------------------------------------------------------------------------
def start_message
@text = ""
for i in 0...$game_message.texts.size
@text += " " if i >= $game_message.choice_start
m = $game_message.texts.shift
m = m.split(//u).reverse.join
m = m.split(/ /).map { |w| w.split(//u).reverse.join}.join(' ') if $game_switches[REVERSE_LETTERS_OF_WORD]
#debug sentance
#p sprintf (m)
@text += m + "x00"
end
@item_max = $game_message.choice_max
convert_special_characters
reset_window
new_page
end
#--------------------------------------------------------------------------
# * New Page
#--------------------------------------------------------------------------
def new_page
contents.clear
if $game_message.face_name.empty?
@contents_x = 512
else
name = $game_message.face_name
index = $game_message.face_index
draw_face(name, index, 416, 0)
@contents_x = 406
end
@contents_y = 0
@line_count = 0
@show_fast = false
@line_show_fast = false
@pause_skip = false
contents.font.color = text_color(0)
end
#--------------------------------------------------------------------------
# * New Line
#--------------------------------------------------------------------------
def new_line
if $game_message.face_name.empty?
@contents_x = 512
else
@contents_x = 406
end
@contents_y += WLH
@line_count += 1
@line_show_fast = false
end
#--------------------------------------------------------------------------
# * Update Message
#--------------------------------------------------------------------------
def update_message
loop do
c = @text.slice!(/./m) # Get next text character
case c
when nil # There is no text that must be drawn
finish_message # Finish update
break
when "x00" # New line
new_line
if @line_count >= MAX_LINE # If line count is maximum
unless @text.empty? # If there is more
self.pause = true # Insert number input
break
end
end
when "x01" # C[n] (text character color change)
@text.sub!(/[([0-9]+)]/, "")
contents.font.color = text_color($1.to_i)
next
when "x02" # G (gold display)
@gold_window.refresh
@gold_window.open
when "x03" # . (wait 1/4 second)
@wait_count = 15
break
when "x04" # | (wait 1 second)
@wait_count = 60
break
when "x05" # ! (Wait for input)
self.pause = true
break
when "x06" # > (Fast display ON)
@line_show_fast = true
when "x07" # < (Fast display OFF)
@line_show_fast = false
when "x08" # ^ (No wait for input)
@pause_skip = true
else # Normal text character
c_width = contents.text_size(c).width
@contents_x -= c_width
contents.draw_text(@contents_x, @contents_y, 40, WLH, c)
end
break unless @show_fast or @line_show_fast
end
end
end