#============================================================
# ? [VX] ? Quick Face Border ?
#------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Thaiware RPG Maker Community
# ? Released Date: 23/02/2008
#------------------------------------------------------------
# Version 1.5
# - Edited Window_Message Bug
# - You can use custom image for border
#------------------------------------------------------------
class Window_Base < Window
#------------------------------
# START SETUP SCRIPT
#---------------------------
BORDER_MODE = 0 # Choose Border Mode (0: Use Windowskin, 1:Use Image)
BORDER_SKIN = "Window" # Name of Window Skin for Border (Mode 0)
BORDER_IMAGE = "borderpic" # Custom Image for Border (Mode 1)
# Custom image must be in folder "Graphics/Pictures" and size 96 x 96 pixel
BORDER_OPACITY = 255 # Face Border's Opacity (0 - 255)
# (true/false)
USE_BORDER_IN_MENU = true
USE_BORDER_IN_MESSAGE = true
USE_BORDER_IN_STATUS_WINDOW = true
USE_BORDER_IN_NAME_WINDOW = true
#------------------------------
# END SETUP SCRIPT
#---------------------------
alias wor_facbor_winbas_ini initialize
alias wor_facbor_winbas_dis dispose
alias wor_facbor_winbas_draf draw_face
def initialize(x, y, width, height)
wor_facbor_winbas_ini(x, y, width, height)
@border = Array.new
end
def dispose
delete_border if @border != []
wor_facbor_winbas_dis
end
def draw_face(face_name, face_index, x, y, size = 96)
if ($scene.is_a?(Scene_Menu) and USE_BORDER_IN_MENU) or ($scene.is_a?(Scene_Map) and USE_BORDER_IN_MESSAGE) or ($scene.is_a?(Scene_Status) and USE_BORDER_IN_STATUS_WINDOW) or ($scene.is_a?(Scene_Name) and USE_BORDER_IN_NAME_WINDOW)
if BORDER_MODE == 0
@border.push Window_Border.new(self.x + x + 16,self.y + y + 16,96,96)
elsif BORDER_MODE == 1
id = @border.size
@border[id] = Sprite.new
@border[id].bitmap = Cache.picture(BORDER_IMAGE)
@border[id].x = self.x + x + 16
@border[id].y = self.y + y + 16
@border[id].z = 500
end
end
wor_facbor_winbas_draf(face_name, face_index, x, y, size)
end
def delete_border
for i in 0..(@border.size - 1)
if BORDER_MODE == 0 and !@border[i].nil?
@border[i].dispose
elsif BORDER_MODE == 1 and !@border[i].nil?
@border[i].bitmap.dispose
@border[i].dispose
end
end
@border = []
end
end
$worale = {} if !$worale
$worale["FaceBorder"] = true
class Window_Border < Window_Base
def initialize(x,y,width,height)
super(x,y,width,height)
self.windowskin = Cache.system(BORDER_SKIN)
self.opacity = BORDER_OPACITY
self.back_opacity = 0
self.z = 500
end
end
class Window_Message < Window_Selectable
alias wor_facbot_winmsg_upd update
def update
wor_facbot_winmsg_upd
if @closing and @border != []
delete_border
end
end
end