A więc tak, mam w grze takie skrypty:
=begin
Faces to Busts
by Fomar0153
Version 1.0
----------------------
Notes
----------------------
Allows you to use busts in place of faces in the editor.
----------------------
Instructions
----------------------
All busts should be placed in the Faces folder.
They should all contain a symbol in the filename by
default it is "!"
You can change the default values in the Fomar module.
----------------------
Known bugs
----------------------
None
=end
module Fomar
BUST_SYMBOL = "!"
BUST_WIDTH = 272
BUST_HEIGHT = 278
end
class Window_Message < Window_Base
#--------------------------------------------------------------------------
# * Draw Face Graphic
# enabled : Enabled flag. When false, draw semi-transparently.
#--------------------------------------------------------------------------
def draw_face(face_name, face_index, x, y, enabled = true)
if face_name.include?(Fomar::BUST_SYMBOL)
if @position == 0
y = (Graphics.height - Fomar::BUST_HEIGHT)
else
y = [2 * (Graphics.height - height) / 2 - Fomar::BUST_HEIGHT,0].max
end
screen.pictures[101].show(face_name, 0, 0, y, 100.0, 100.0, 255, 0)
else
super(face_name, face_index, x, y, enabled)
end
end
#--------------------------------------------------------------------------
# * New Page
#--------------------------------------------------------------------------
alias bust_new_page new_page
def new_page(text, pos)
screen.pictures[101].erase if screen.pictures[101]
bust_new_page(text, pos)
end
#--------------------------------------------------------------------------
# * Close
#--------------------------------------------------------------------------
def close
screen.pictures[101].erase if screen.pictures[101]
super
end
#--------------------------------------------------------------------------
# * Screen
#--------------------------------------------------------------------------
def screen
$game_party.in_battle ? $game_troop.screen : $game_map.screen
end
#--------------------------------------------------------------------------
# * Get New Line Position
#--------------------------------------------------------------------------
def new_line_x
if $game_message.face_name.empty? or $game_message.face_name.include?(Fomar::BUST_SYMBOL)
return 0
else
return 112
end
end
end
class Sprite_Picture < Sprite
#--------------------------------------------------------------------------
# * Update Transfer Origin Bitmap
#--------------------------------------------------------------------------
alias bust_update_bitmap update_bitmap
def update_bitmap
if !@picture.name.empty? and @picture.name.include?(Fomar::BUST_SYMBOL)
self.bitmap = Cache.face(@picture.name)
else
bust_update_bitmap
end
end
end
#==============================================================================
# NeoFace System v.2.0 [RMVXA Script]
#------------------------------------------------------------------------------
# by Woratana [woratana@hotmail.com]
# Thaiware RPG Maker Community
# Special Thanks: Rabu
# Simple (and still beta) conversion to RMVXA by Vladitor
#------------------------------------------------------------------------------
# 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 - -6)
@face.opacity = 0 # Change 0 to 255 to turn off face's fade in effect.
end
end
#==============================================================================
# Window_Message
#------------------------------------------------------------------------------
#==============================================================================
class Window_Message < Window_Base
alias msg_ini initialize
def initialize
msg_ini
@face = Sprite_Base.new
$game_message.side = 0 # Default face's side when game start~ (default: 1)
@default_conx = 0
@previous = ""
get_x_face
# Move text left (-) or right (+) when there's face in right side or no face (default: 0)
end
def no_face?
$game_message.face_name.empty?
end
def clear_face
if @face.bitmap
@face.dispose
@face = Sprite_Base.new
end
end
def new_page(text, pos)
contents.clear
clear_face
if no_face?
@contents_x = @default_conx
@previous = ""
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
@face.opacity = 255 if name==@previous
@previous = name
get_x_face
@contents_x = @fx
end
reset_font_settings
pos[:x] = new_line_x
pos[:y] = 0
pos[:new_x] = new_line_x
pos[:height] = calc_line_height(text)
clear_flags
end
def new_line_x
no_face? ? 0 : @fx
end
def update
super
update_all_windows
update_back_sprite
update_fiber
if @face.opacity < 255 and @face.bitmap
@face.opacity += 20 # Speed up face's fade in by increase this number
end
end
alias close_neo_face close
def close
clear_face
close_neo_face
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
#==============================================================================
# Window_ChoiceList: prevent choices from being obscured by face
#------------------------------------------------------------------------------
#==============================================================================
class Window_ChoiceList < Window_Command
alias update_placement_neo_face update_placement
def update_placement
update_placement_neo_face
if $game_message.side == 2 and not @message_window.no_face?
self.x = 0
else
self.x = Graphics.width - width
end
end
end
#==============================================================================
# Game_Message: + store side variable
#------------------------------------------------------------------------------
#==============================================================================
class Game_Message
attr_accessor :side
end
#==============================================================================
# END NeoFace System
# by Woratana (woratana@hotmail)
#==============================================================================
Mam już w nich wszystko ustawione i ładnie działają. Wygląda to jednak tak:
Oczywiście chodzi mi o drugi obrazek, chciałbym aby tak jak w przypadku face'a z prawej tekst zachowywał się jakby face'a nie było.
NeoFace został przekonwertowany do VXAce przez pewnego użytkownika, napisał, że mogą być błędy jakby co.
A właśnie, używam komendy z NeoFace by face pokazał się po lewej i aby pokazał się po prawej (są w skrypcie).