Laguna Dream Party
Mr & Ms Pac-Man
- 15/6/03
- 120
- 0
Đoạn script sau sẽ khiến cho các chữ trong hộp Message có viền màu đỏ (màu đỏ là mặc định, muốn có màu khác chỉ việc thay đổi giá trị màu, tức là thay 155 bằng một số khác, như 60 chẳng hạn, sẽ làm cho chữ có viền xanh) trông rất đẹp mắt:
Đầu tiên các bạn mở Script Editor ra, vào Windows_Base, tìm đến 3 dòng
def knockout_color
return Color.new(255, 64, 0)
end
Ngay dưới dòng End, bạn dán đoạn script sau vào:
def outline_color
return Color.new(155, 100, 0)
end
Sau đó lại vào phần Windows_Message, tìm tất cả các dòng bắt đầu bằng self.contents.draw_text
Xóa dòng đó đi, thay bằng những dòng sau:
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
Có khoảng 8 đến 9 lần thay như vậy.
Bây giờ vào trò chơi và thử cho nhân vật nói một câu gì đó xem
Các bạn hoàn toàn có thể dùng cách này cùng với cách cải tiến Message Box mà tôi đã giới thiệu ở trên. Không có tranh chấp gì cả.
Hoặc đơn giản là copy đoạn script sau thay cho Windows_Message, đoạn mã này bao gồm cả hai "chiêu":
class Window_Message < Window_Selectable
attr_accessor :autoclosetime
attr_accessor :op
# ----------------------------
def initialize
super(80, 304, 480, 160)
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
self.z = 9998
@fade_in = false
@fade_out = false
@contents_showing = false
@cursor_width = 0
@autoclosetime = -1
@op = 255
@refreshflag = false
self.active = false
self.index = -1
end
# ----------------------------
def dispose
terminate_message
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
super
end
# ----------------------------
def terminate_message
self.active = false
self.pause = false
self.index = -1
self.contents.clear
@contents_showing = false
if $game_temp.message_proc != nil
$game_temp.message_proc.call
end
$game_temp.message_text = nil
$game_temp.message_proc = nil
$game_temp.choice_start = 99
$game_temp.choice_max = 0
$game_temp.choice_cancel_type = 0
$game_temp.choice_proc = nil
$game_temp.num_input_start = 99
$game_temp.num_input_variable_id = 0
$game_temp.num_input_digits_max = 0
if @gold_window != nil
@gold_window.dispose
@gold_window = nil
end
end
# ----------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.font.name = ".VnTime"
self.contents.font.size = 24
x = y = 0
@cursor_width = 0
@autoclosetime = -1
@refreshflag = true
lineheight = 32
active = ""
a = ""
centerflag = false
rightflag = false
bannerflag = false
if $game_temp.choice_start == 0
x = 8
end
if $game_temp.message_text != nil
text = $game_temp.message_text
begin
last_text = text.clone
text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
end until text == last_text
text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end
text.gsub!(/\\\\/) { "\000" }
text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
text.gsub!(/\\[Gg]/) { "\002" }
text.gsub!(/\\[Ii]\[([0-9]+)\]/) { "\003[#{$1}]" }
text.gsub!(/\\[Ff]\[([0-9]+)\]/) { "\004[#{$1}]" }
text.gsub!(/\\[Aa]\[([0-9]+)\]/) { "\005[#{$1}]" }
text.gsub!(/\\[Xx]/) { "\006" }
text.gsub!(/\\[Rr]/) { "\007" }
text.gsub!(/\\[Dd]/) { "\011" }
text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\023[#{$1}]" }
text.gsub!(/\\[Bb]/) { "\017" }
text.gsub!(/\\[Ww]\[([0-9]+)\]/) { "\014[#{$1}]" }
text.gsub!(/\\[Mm]\[([0-9]+)\]/) { "\015[#{$1}]" }
text.gsub!(/\\[Oo]\[([0-9]+)\]/) { "\016[#{$1}]" }
text.gsub!(/\\[Jj]\[([0-9]+)\]/) { "\013[#{$1}]" }
text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "\021[#{$1}]" }
text.gsub!(/\\[Kk]\[([0-9]+)\]/) { "\022[#{$1}]" }
while ((c = text.slice!(/./m)) != nil)
if c == "\000"
c = "\\"
end
if c == "\001"
text.sub!(/\[([0-9]+)\]/, "")
color = $1.to_i
if color >= 0 and color <= 7
self.contents.font.color = text_color(color)
end
next
end
if c == "\002"
if @gold_window == nil
@gold_window = Window_Gold.new
@gold_window.x = 560 - @gold_window.width
if $game_temp.in_battle
@gold_window.y = 192
else
@gold_window.y = self.y >= 128 ? 32 : 384
end
@gold_window.opacity = self.opacity
@gold_window.back_opacity = self.back_opacity
end
next
end
if c == "\003"
text.sub!(/\[([0-9]+)\]/, "")
item_sub = $1.to_i
c = $data_items[item_sub].name
l = self.contents.text_size(c).width
draw_item_name($data_items[item_sub], x, y * 32 + 1)
x = x + l + 24
next
end
if c == "\004"
text.sub!(/\[([0-9]+)\]/, "")
fontize = $1.to_i
case fontize
when 1
self.contents.font.name = "Arial"
when 2
self.contents.font.name = "High Tower Text"
when 3
self.contents.font.name = "Tw Cen MT"
when 4
self.contents.font.name = "Tahoma"
end
next
end
if c == "\005"
text.sub!(/\[([0-9]+)\]/, "")
@autoclosetime = $1.to_i
next
end
if c == "\006"
centerflag = true
next
end
if c == "\007"
rightflag = true
next
end
if c == "\011"
self.contents.font.name = "Arial"
self.contents.font.size = 18
self.contents.font.color = normal_color
lineheight = 32
next
end
if c == "\014"
text.sub!(/\[([0-9]+)\]/, "")
w_sub = $1.to_i
c = $data_weapons[w_sub].name
l = self.contents.text_size(c).width
bitmap = RPG::Cache.icon($data_weapons[w_sub].icon_name)
self.contents.blt(x+4, y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
x += 28
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
x = x + l
next
end
if c == "\015"
text.sub!(/\[([0-9]+)\]/, "")
a_sub = $1.to_i
c = $data_armors[a_sub].name
l = self.contents.text_size(c).width
bitmap = RPG::Cache.icon($data_armors[a_sub].icon_name)
self.contents.blt(x+4, y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
x += 28
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
x = x + l
next
end
if c == "\016"
text.sub!(/\[([0-9]+)\]/, "")
@op = $1.to_i
next
end
if c == "\017"
bannerflag = true
next
end
if c == "\018"
text.sub!(/\[([0-9]+)\]/, "")
jump = $1.to_i
x += jump
next
end
if c == "\021"
text.sub!(/\[([0-9]+)\]/, "")
lineheight = $1.to_i
next
end
if c == "\022"
text.sub!(/\[([0-9]+)\]/, "")
skill_sub = $1.to_i
c = $data_skills[skill_sub].name
l = self.contents.text_size(c).width
bitmap = RPG::Cache.icon($data_skills[skill_sub].icon_name)
self.contents.blt(x+4, y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
x += 28
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
x = x + l
next
end
if c == "\023"
text.sub!(/\[([0-9]+)\]/, "")
bigness = $1.to_i
self.contents.font.size = bigness
next
end
if c == "\n"
if centerflag == true
x = 448 - x
x = x / 2
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
end
if rightflag == true
x = 448 - x
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
end
if bannerflag == true
x = 448 - x
x = x / 2
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
end
a = ""
centerflag = false
rightflag = false
bannerflag = false
if y >= $game_temp.choice_start
@cursor_width = [@cursor_width, x].max
end
y += 1
x = 0
if y >= $game_temp.choice_start
x = 8
end
next
end
if centerflag == false && rightflag == false && bannerflag == false
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
x += self.contents.text_size(c).width
else
a += c
x += self.contents.text_size(c).width
end
end
end
if $game_temp.choice_max > 0
@item_max = $game_temp.choice_max
self.active = true
self.index = 0
end
if $game_temp.num_input_variable_id > 0
digits_max = $game_temp.num_input_digits_max
number = $game_variables[$game_temp.num_input_variable_id]
@input_number_window = Window_InputNumber.new(digits_max)
@input_number_window.number = number
@input_number_window.x = self.x + 8
@input_number_window.y = self.y + $game_temp.num_input_start * 32
end
end
# ----------------------------
def reset_window
if $game_temp.in_battle
self.y = 16
else
case $game_system.message_position
when 0
self.y = 16
when 1
self.y = 160
when 2
self.y = 304
end
end
if $game_system.message_frame == 0
self.opacity = 255
else
self.opacity = 0
end
self.back_opacity = 160
end
# ----------------------------
def update
super
if @refreshflag && @fade_in == false
self.contents_opacity = @op
end
if @autoclosetime == 0
@autoclosetime = -1
terminate_message
end
if @autoclosetime >= 1
@autoclosetime -= 1
end
if @fade_in
self.contents_opacity += 24
if @input_number_window != nil
@input_number_window.contents_opacity += 24
end
if self.contents_opacity >= @op
@fade_in = false
end
return
end
if @input_number_window != nil
@input_number_window.update
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
$game_variables[$game_temp.num_input_variable_id] =
@input_number_window.number
$game_map.need_refresh = true
@input_number_window.dispose
@input_number_window = nil
terminate_message
end
return
end
if @contents_showing
if $game_temp.choice_max == 0
self.pause = true
end
if Input.trigger?(Input::B)
if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
$game_system.se_play($data_system.cancel_se)
$game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
terminate_message
end
end
if Input.trigger?(Input::C)
if $game_temp.choice_max > 0
$game_system.se_play($data_system.decision_se)
$game_temp.choice_proc.call(self.index)
end
@op = 255
terminate_message
end
return
end
if @fade_out == false and $game_temp.message_text != nil
@contents_showing = true
$game_temp.message_window_showing = true
reset_window
refresh
Graphics.frame_reset
self.visible = true
self.contents_opacity = 0
if @input_number_window != nil
@input_number_window.contents_opacity = 0
end
@fade_in = true
return
end
if self.visible
@fade_out = true
self.opacity -= 48
if self.opacity == 0
self.visible = false
@fade_out = false
$game_temp.message_window_showing = false
end
return
end
end
# ----------------------------
def update_cursor_rect
if @index >= 0
n = $game_temp.choice_start + @index
self.cursor_rect.set(8, n * 32, @cursor_width, 32)
else
self.cursor_rect.empty
end
end
end
Dĩ nhiên là các bạn vẫn phải làm việc với Windows_Base như trên, nếu không sẽ báo lỗi đấy.
Các thông tin trên được lấy từ Internet. Bản quyền thuộc về tất cả chúng ta!
Đầu tiên các bạn mở Script Editor ra, vào Windows_Base, tìm đến 3 dòng
def knockout_color
return Color.new(255, 64, 0)
end
Ngay dưới dòng End, bạn dán đoạn script sau vào:
def outline_color
return Color.new(155, 100, 0)
end
Sau đó lại vào phần Windows_Message, tìm tất cả các dòng bắt đầu bằng self.contents.draw_text
Xóa dòng đó đi, thay bằng những dòng sau:
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
Có khoảng 8 đến 9 lần thay như vậy.
Bây giờ vào trò chơi và thử cho nhân vật nói một câu gì đó xem
Các bạn hoàn toàn có thể dùng cách này cùng với cách cải tiến Message Box mà tôi đã giới thiệu ở trên. Không có tranh chấp gì cả.
Hoặc đơn giản là copy đoạn script sau thay cho Windows_Message, đoạn mã này bao gồm cả hai "chiêu":
class Window_Message < Window_Selectable
attr_accessor :autoclosetime
attr_accessor :op
# ----------------------------
def initialize
super(80, 304, 480, 160)
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
self.z = 9998
@fade_in = false
@fade_out = false
@contents_showing = false
@cursor_width = 0
@autoclosetime = -1
@op = 255
@refreshflag = false
self.active = false
self.index = -1
end
# ----------------------------
def dispose
terminate_message
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
super
end
# ----------------------------
def terminate_message
self.active = false
self.pause = false
self.index = -1
self.contents.clear
@contents_showing = false
if $game_temp.message_proc != nil
$game_temp.message_proc.call
end
$game_temp.message_text = nil
$game_temp.message_proc = nil
$game_temp.choice_start = 99
$game_temp.choice_max = 0
$game_temp.choice_cancel_type = 0
$game_temp.choice_proc = nil
$game_temp.num_input_start = 99
$game_temp.num_input_variable_id = 0
$game_temp.num_input_digits_max = 0
if @gold_window != nil
@gold_window.dispose
@gold_window = nil
end
end
# ----------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.font.name = ".VnTime"
self.contents.font.size = 24
x = y = 0
@cursor_width = 0
@autoclosetime = -1
@refreshflag = true
lineheight = 32
active = ""
a = ""
centerflag = false
rightflag = false
bannerflag = false
if $game_temp.choice_start == 0
x = 8
end
if $game_temp.message_text != nil
text = $game_temp.message_text
begin
last_text = text.clone
text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
end until text == last_text
text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end
text.gsub!(/\\\\/) { "\000" }
text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
text.gsub!(/\\[Gg]/) { "\002" }
text.gsub!(/\\[Ii]\[([0-9]+)\]/) { "\003[#{$1}]" }
text.gsub!(/\\[Ff]\[([0-9]+)\]/) { "\004[#{$1}]" }
text.gsub!(/\\[Aa]\[([0-9]+)\]/) { "\005[#{$1}]" }
text.gsub!(/\\[Xx]/) { "\006" }
text.gsub!(/\\[Rr]/) { "\007" }
text.gsub!(/\\[Dd]/) { "\011" }
text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\023[#{$1}]" }
text.gsub!(/\\[Bb]/) { "\017" }
text.gsub!(/\\[Ww]\[([0-9]+)\]/) { "\014[#{$1}]" }
text.gsub!(/\\[Mm]\[([0-9]+)\]/) { "\015[#{$1}]" }
text.gsub!(/\\[Oo]\[([0-9]+)\]/) { "\016[#{$1}]" }
text.gsub!(/\\[Jj]\[([0-9]+)\]/) { "\013[#{$1}]" }
text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "\021[#{$1}]" }
text.gsub!(/\\[Kk]\[([0-9]+)\]/) { "\022[#{$1}]" }
while ((c = text.slice!(/./m)) != nil)
if c == "\000"
c = "\\"
end
if c == "\001"
text.sub!(/\[([0-9]+)\]/, "")
color = $1.to_i
if color >= 0 and color <= 7
self.contents.font.color = text_color(color)
end
next
end
if c == "\002"
if @gold_window == nil
@gold_window = Window_Gold.new
@gold_window.x = 560 - @gold_window.width
if $game_temp.in_battle
@gold_window.y = 192
else
@gold_window.y = self.y >= 128 ? 32 : 384
end
@gold_window.opacity = self.opacity
@gold_window.back_opacity = self.back_opacity
end
next
end
if c == "\003"
text.sub!(/\[([0-9]+)\]/, "")
item_sub = $1.to_i
c = $data_items[item_sub].name
l = self.contents.text_size(c).width
draw_item_name($data_items[item_sub], x, y * 32 + 1)
x = x + l + 24
next
end
if c == "\004"
text.sub!(/\[([0-9]+)\]/, "")
fontize = $1.to_i
case fontize
when 1
self.contents.font.name = "Arial"
when 2
self.contents.font.name = "High Tower Text"
when 3
self.contents.font.name = "Tw Cen MT"
when 4
self.contents.font.name = "Tahoma"
end
next
end
if c == "\005"
text.sub!(/\[([0-9]+)\]/, "")
@autoclosetime = $1.to_i
next
end
if c == "\006"
centerflag = true
next
end
if c == "\007"
rightflag = true
next
end
if c == "\011"
self.contents.font.name = "Arial"
self.contents.font.size = 18
self.contents.font.color = normal_color
lineheight = 32
next
end
if c == "\014"
text.sub!(/\[([0-9]+)\]/, "")
w_sub = $1.to_i
c = $data_weapons[w_sub].name
l = self.contents.text_size(c).width
bitmap = RPG::Cache.icon($data_weapons[w_sub].icon_name)
self.contents.blt(x+4, y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
x += 28
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
x = x + l
next
end
if c == "\015"
text.sub!(/\[([0-9]+)\]/, "")
a_sub = $1.to_i
c = $data_armors[a_sub].name
l = self.contents.text_size(c).width
bitmap = RPG::Cache.icon($data_armors[a_sub].icon_name)
self.contents.blt(x+4, y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
x += 28
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
x = x + l
next
end
if c == "\016"
text.sub!(/\[([0-9]+)\]/, "")
@op = $1.to_i
next
end
if c == "\017"
bannerflag = true
next
end
if c == "\018"
text.sub!(/\[([0-9]+)\]/, "")
jump = $1.to_i
x += jump
next
end
if c == "\021"
text.sub!(/\[([0-9]+)\]/, "")
lineheight = $1.to_i
next
end
if c == "\022"
text.sub!(/\[([0-9]+)\]/, "")
skill_sub = $1.to_i
c = $data_skills[skill_sub].name
l = self.contents.text_size(c).width
bitmap = RPG::Cache.icon($data_skills[skill_sub].icon_name)
self.contents.blt(x+4, y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24))
x += 28
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
x = x + l
next
end
if c == "\023"
text.sub!(/\[([0-9]+)\]/, "")
bigness = $1.to_i
self.contents.font.size = bigness
next
end
if c == "\n"
if centerflag == true
x = 448 - x
x = x / 2
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
end
if rightflag == true
x = 448 - x
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
end
if bannerflag == true
x = 448 - x
x = x / 2
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
end
a = ""
centerflag = false
rightflag = false
bannerflag = false
if y >= $game_temp.choice_start
@cursor_width = [@cursor_width, x].max
end
y += 1
x = 0
if y >= $game_temp.choice_start
x = 8
end
next
end
if centerflag == false && rightflag == false && bannerflag == false
self.contents.font.color = outline_color
self.contents.draw_text(4 + x-1, 32 * y-1, 40, 32, c)
self.contents.draw_text(4 + x-1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y+1, 40, 32, c)
self.contents.draw_text(4 + x+1, 32 * y-1, 40, 32, c)
self.contents.font.color = normal_color
self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
x += self.contents.text_size(c).width
else
a += c
x += self.contents.text_size(c).width
end
end
end
if $game_temp.choice_max > 0
@item_max = $game_temp.choice_max
self.active = true
self.index = 0
end
if $game_temp.num_input_variable_id > 0
digits_max = $game_temp.num_input_digits_max
number = $game_variables[$game_temp.num_input_variable_id]
@input_number_window = Window_InputNumber.new(digits_max)
@input_number_window.number = number
@input_number_window.x = self.x + 8
@input_number_window.y = self.y + $game_temp.num_input_start * 32
end
end
# ----------------------------
def reset_window
if $game_temp.in_battle
self.y = 16
else
case $game_system.message_position
when 0
self.y = 16
when 1
self.y = 160
when 2
self.y = 304
end
end
if $game_system.message_frame == 0
self.opacity = 255
else
self.opacity = 0
end
self.back_opacity = 160
end
# ----------------------------
def update
super
if @refreshflag && @fade_in == false
self.contents_opacity = @op
end
if @autoclosetime == 0
@autoclosetime = -1
terminate_message
end
if @autoclosetime >= 1
@autoclosetime -= 1
end
if @fade_in
self.contents_opacity += 24
if @input_number_window != nil
@input_number_window.contents_opacity += 24
end
if self.contents_opacity >= @op
@fade_in = false
end
return
end
if @input_number_window != nil
@input_number_window.update
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
$game_variables[$game_temp.num_input_variable_id] =
@input_number_window.number
$game_map.need_refresh = true
@input_number_window.dispose
@input_number_window = nil
terminate_message
end
return
end
if @contents_showing
if $game_temp.choice_max == 0
self.pause = true
end
if Input.trigger?(Input::B)
if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
$game_system.se_play($data_system.cancel_se)
$game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
terminate_message
end
end
if Input.trigger?(Input::C)
if $game_temp.choice_max > 0
$game_system.se_play($data_system.decision_se)
$game_temp.choice_proc.call(self.index)
end
@op = 255
terminate_message
end
return
end
if @fade_out == false and $game_temp.message_text != nil
@contents_showing = true
$game_temp.message_window_showing = true
reset_window
refresh
Graphics.frame_reset
self.visible = true
self.contents_opacity = 0
if @input_number_window != nil
@input_number_window.contents_opacity = 0
end
@fade_in = true
return
end
if self.visible
@fade_out = true
self.opacity -= 48
if self.opacity == 0
self.visible = false
@fade_out = false
$game_temp.message_window_showing = false
end
return
end
end
# ----------------------------
def update_cursor_rect
if @index >= 0
n = $game_temp.choice_start + @index
self.cursor_rect.set(8, n * 32, @cursor_width, 32)
else
self.cursor_rect.empty
end
end
end
Dĩ nhiên là các bạn vẫn phải làm việc với Windows_Base như trên, nếu không sẽ báo lỗi đấy.
Các thông tin trên được lấy từ Internet. Bản quyền thuộc về tất cả chúng ta!
...Good Luck !!