Neo-Face SystemVersion 2.0
by Woratana
Release Date: 22/01/2008
IntroductionYesterday I read this thread:
Your RPG Maker VX Maps and found
Rabu's show face style
I heard that he used show picture for this, and he posted the face graphic that cut already.
So I script one to make it easier~^^
FeaturesVersion 2.0- No limitation in face size, use 1 face per file
Example:Face size 192*192 pixel
http://i83.photobucket.com/albums/j295/woratana/facess1.jpgFace size 255*255
http://i83.photobucket.com/albums/j295/woratana/facess2.jpg- Show face in left side, right side, or switch back to normal RMVX face system.
- Fix bug when use "Show Choice" command.
Before and After:Version 1.0
http://i83.photobucket.com/albums/j295/woratana/faced1.pngVersion 2.0
http://i83.photobucket.com/albums/j295/woratana/faced2.pngVersion 1.0- Face size: 192*192 pixel, use 1 face per file
- Show face in left side or right side.
- Turn on/off face's Fade In effect, and change speed of Fade In effect.
ScriptPlace it above main
#==============================================================================
# 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.
end
end
#==============================================================================
# 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 :side
end
#==============================================================================
# END NeoFace System
# by Woratana (woratana@hotmail)
#==============================================================================
Download- Face graphic cut in 192*192 pixel by Rabu
Download Faces Pack Here!
example:Instruction Version 2.01) First, import the face graphic (any size) to folder "Face" in your game folder.
2) When you're choosing face graphic in event command "Show Message", you will see that it divided in 8 parts.
Don't worry about it, choose any part you want. All parts will show face same result in this script.
3) Type the message you want, and "Show Message" window should look like this:
4) Test the game, and you will see the result!
=================================
Change Face's Side & Switch to Normal VX Face SystemYou can show face in left or right side, or switch back to normal VX face system.
To change face's side, use event command "Call Script" and type this:
$game_message.side = (0 or 1 or 2)
0 << switch to normal face system (default face system of RMVX)
1 << switch to NeoFace system (show face in left side)
2 << switch to NeoFace system (show face in right side)
^
1 is DEFAULT MODE when you first place this script
(If you don't use this script before show message, face will show in the last side that you set)
Example:$game_message.side = 0 Normal RMVX Face System
http://i83.photobucket.com/albums/j295/woratana/facess8.jpg << In Editor
$game_message.side = 1 NeoFace system in Left side
http://i83.photobucket.com/albums/j295/woratana/facess4.jpg << In Editor
$game_message.side = 2 NeoFace system in Right side
http://i83.photobucket.com/albums/j295/woratana/facess6.jpg << In Editor
=================================
Author's NotesFree for use in your non-commercial work if credit included. If your project is commercial, please contact me.
Please do not redistribute this script without permission. If you want to post it on any forum, please link to this topic.
Special Thanks- Rabu (for cutout face graphics)
- ccoa's script thread, for outline of the script thread.