#==============================================================================# NeoFace System v.2.0 [RMVX Script]#------------------------------------------------------------------------------# by Woratana [woratana@hotmail.com]# Thaiware RPG Maker Community# Special Thanks: Rabu#------------------------------------------------------------------------------# Released on: 22/01/2008# - Put face graphics in folder "face" of your project.# [New Features in Version 2.0]# - Auto arrange face position (You can use any size of face file)# - Call Script "$game_message.side = (number)" to switch show face mode.# $game_message.side = 0 << switch to normal face system (default face system of RMVX)# $game_message.side = 1 << switch to NeoFace system (show face in left side)# $game_message.side = 2 << switch to NeoFace system (show face in right side)# Default system when you first setup this script is 1# THESE NUMBERS & RESULTS ARE DIFFERENT FROM VERSION 1.0 ## Fixed bug in Show Choice command.#==============================================================================#==============================================================================# Window_Base#------------------------------------------------------------------------------#==============================================================================class Window_Base def draw_face2(face_name, x, y) @face.z = 201 @face.bitmap = Cache.face(face_name) if $game_message.side == 1 @face.mirror = false @face.x = x + 6 else @face.mirror = true @face.x = x + (538 - @face.width) end @face.y = y - (@face.width - 123) @face.opacity = 0 # Change 0 to 255 to turn off face's fade in effect. endend#==============================================================================# Window_Message#------------------------------------------------------------------------------#==============================================================================class Window_Message alias msg_ini initialize def initialize msg_ini @face = Sprite.new $game_message.side = 1 # Default face's side when game start~ (default: 1) @default_conx = 0 # Move text left (-) or right (+) when there's face in right side or no face (default: 0) end def new_page contents.clear if @face.bitmap != nil @face.bitmap.dispose end if $game_message.face_name.empty? @contents_x = @default_conx else name = $game_message.face_name index = $game_message.face_index if $game_message.side == 0 ## draw_face(name, index, 0, 0) else draw_face2(name, self.x, self.y) end get_x_face @contents_x = @fx end @contents_y = 0 @line_count = 0 @show_fast = false @line_show_fast = false @pause_skip = false contents.font.color = text_color(0) end def new_line if $game_message.face_name.empty? @contents_x = @default_conx else get_x_face @contents_x = @fx end @contents_y += WLH @line_count += 1 @line_show_fast = false end def update super update_gold_window update_number_input_window update_back_sprite update_show_fast if @face.bitmap != nil and @face.opacity < 255 @face.opacity += 20 # Speed up face's fade in by increase this number end unless @opening or @closing if @wait_count > 0 @wait_count -= 1 elsif self.pause input_pause elsif self.active input_choice elsif @number_input_window.visible input_number elsif @text != nil update_message elsif continue? start_message open $game_message.visible = true else close if @face.bitmap != nil @face.bitmap.dispose end $game_message.visible = @closing end end end def start_number_input digits_max = $game_message.num_input_digits_max number = $game_variables[$game_message.num_input_variable_id] @number_input_window.digits_max = digits_max @number_input_window.number = number if $game_message.face_name.empty? @number_input_window.x = x - 23 else case $game_message.side ## when 0 @number_input_window.x = (x + 112) - 23 when 1 @number_input_window.x = (x + @face.width) - 23 when 2 @number_input_window.x = x - 23 end end @number_input_window.y = y + @contents_y @number_input_window.active = true @number_input_window.visible = true @number_input_window.update end def update_cursor if @index >= 0 if $game_message.face_name.empty? x = @default_conx else get_x_face x = @fx end y = ($game_message.choice_start + @index) * WLH if $game_message.face_name.empty? facesize = x else facesize = @face.width end self.cursor_rect.set(x, y, contents.width - facesize, WLH) else self.cursor_rect.empty end end def get_x_face case $game_message.side when 0 @fx = 112 when 1 @fx = @face.width when 2 @fx = @default_conx else @fx = @default_conx end end end # Class#==============================================================================# Game_Message: + store side variable#------------------------------------------------------------------------------#==============================================================================class Game_Message attr_accessor :sideend#==============================================================================# END NeoFace System# by Woratana (woratana@hotmail)#==============================================================================