- voyoMembre
- Nombre de messages : 43
Age : 34
Localisation : Phalsbourg
Distinction : aucune
Date d'inscription : 28/01/2009
Neo-Face System Advance V3.1
Mer 28 Jan 2009 - 21:15
Nom du Script:Neo Face Syteme 3.1
Auteur du script: Woratana
Désolé de refaire un sujet sur ce script mais le topic de Tretian est verrouillé donc je n'ai pas pu en parler là-bas.
Voici un petit aperçu:
Je peux aussi vous redirigé vers le topic de Tretian pour la v.2.0 en cliquant ici
Les plus de la 3.1 :
-Apparition progressive du faceset de gauche ou de droite
-Mise en place d'une en-tête de message (le nom je pense, c'est ça qui ne marche pas chez moi)
Placer le script au dessus de main.
Importer un faceset dans le dossier FaceSet du jeu.
C'est tout.
Voici le code:
Auteur du script: Woratana
Désolé de refaire un sujet sur ce script mais le topic de Tretian est verrouillé donc je n'ai pas pu en parler là-bas.
Voici un petit aperçu:
Je peux aussi vous redirigé vers le topic de Tretian pour la v.2.0 en cliquant ici
Les plus de la 3.1 :
-Apparition progressive du faceset de gauche ou de droite
-Mise en place d'une en-tête de message (le nom je pense, c'est ça qui ne marche pas chez moi)
Placer le script au dessus de main.
Importer un faceset dans le dossier FaceSet du jeu.
C'est tout.
Voici le code:
- Code:
#==============================================================================
# ? [VX] ? Neo-Face System Advance {Version 3.1} + Name Box ?
#------------------------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Thaiware RPG Maker Community
# ? Special Thanks: Mako, Rabu, Yatzumo
#------------------------------------------------------------------------------
# Released on: 20/02/2008
#
# +[Features in NFS Advance (a.k.a. Neo Face System 3)]+
#
# ? For Both Face Systems
# ? 2 Show Face Effects! You can use them together~
# ? [New!] Move Effect << Move Face from outside the screen to inside
# ? Fade Effect << Fade in Face Picture
#
# ? Easier to change face side! Just type \side[side you want] in message box
# (This change will change side for all the next messages until you change face side again)
# (You can still change by call script: $game_message.side = side you want)
#----------------------------------------------------------------------
# ? FACE SIDE [a.k.a. Face Mode :)]
# ? \side[-1] << Switch to NORMAL Face System show in RIGHT SIDE
# ? \side[0] << Switch to NORMAL Face System show in LEFT SIDE
# ? \side[1] << Switch to NEO-FACE System show in LEFT SIDE
# ? \side[2] << Switch to NEO-FACE System show in RIGHT SIDE
#---------------------------------------------------------------------
#
# ? For Neo Face System
# ? Auto arrange Face Position (You can use any size of face file!)
# ? Choose to use 1 or 8 face(s) per file
#
# ? For Normal Face System
# ? Show face in right side!
#
# ? For Name Box
# ? Edit your name box easily~
# ? Change color of name text in game by call script
# $game_message.color = [Red,Green,Blue]
# ? Add text after name, e.g. add ":" after name >>result>> "name:"
# ? Move name box to right side when showing face in right side
# ? Change name text's font/size, and can make it bold and/or has outline
#
# ? Call Name box by type this in message box:
# \na[name you want] << e.g. \na[Worale]
#
# ? If you don't want to type same name every time, use this way:
# \nn[name you want] << e.g. \nn[Worale]
# This will show the name box repeatly unless you have \na[name] in that window,
# and it will show until you type \nn[] to clear the repeat name.
#
#-----------------------------------------------------------------------------
#==============================================================================
class Window_Base
#---------------------------------
# [START] SETUP SCRIPT PART
#-------------------------------
#------------------------------------------------
# ** NEO-FACE / NORMAL FACE SYSTEM SETUP
#----------------------------------------------
DEFAULT_SIDE = 0 # Default Face Side when game start~
FACE_X_PLUS = 0 # Move Face Horizontally (Left: -, Right: +)
FACE_Y_PLUS = -112 # Move Face Vertically (Up: -, Down: +)
TEXT_X_PLUS = 0 # Move Text Horizontally
CHOICE_INPUT_X_PLUS = 10
# Move Choices Text and Input Number Text Horizontally
MOVE_TEXT = false#true # (true/false)
# Move text to right side of face, when showing face in left side.
#-------------------------------
# ** NEO FACE SYSTEM
#----------------------------
EightFaces_File = false
# For NeoFace System: Use 8 Faces per file (or) 1 Face per file (true/false)
#-------------------------------------
# **SHOW FACE EFFECT
# * For both Face Systems *
#----------------------------------
FADE_EFFECT = true # Turn on/off fade effect (true/false)
FADE_SPEED = 20 # Speed up face's fade effect by increase this number
MOVE_EFFECT = true # Turn on/off "move in" effect (true/false)
MOVE_SPEED = 10 # Speed up face's "move in" effect by increase this number
#------------------------------------
# ** NAME BOX / NAME TEXT SETUP
#----------------------------------
NAMEBOX_SKIN = "Window" # Windowskin of Name Box (In folder 'Graphics/System')
NAMEBOX_OPACITY = 255 # Name Box Opacity (Lowest 0 - 255 Highest)
NAMEBOX_BACK_OPACITY = 180 # Name Box Background Opacity
NAMEBOX_X_PLUS = 115#20 # Move Name Box & Text Horizontally (both faces system)
NAMEBOX_X_PLUS_NF = 140 # Addtional Name Box X only for NeoFace Name Box
# When using NeoFace, X Plus will calculate by: NAMEBOX_X_PLUS + NAMEBOX_X_PLUS_NF
NAMEBOX_Y_PLUS = 0 # Move Name Box & Text Vertically
NAMEBOX_TEXT_LENGTH_PER_LETTER = 10 # Length of Text Per Letter (in pixel)
NAMEBOX_TEXT_FONT = "UmePlus Gothic" # Name Text Font's Name
NAMEBOX_TEXT_SIZE = 22 # Name Text Font's Size
NAMEBOX_TEXT_HEIGHT_PLUS = 2 # Increase Name Text Height (For Big Size Text)
NAMEBOX_TEXT_BOLD = false # Make Text in Name Box Bold
NAMEBOX_TEXT_OUTLINE = false # Make Black Outline around Text (Good with Opacity = 0)
NAMEBOX_TEXT_DEFAULT_COLOR = [173,216,230]#[255,255,255] # [Red,Green,Blue]: Name Text Color (RGB)
# You can easily find color code for RGB (RedGreenBlue) color in Google :)
# You are allow to change color in game by call script:
# $game_message.color = [Red,Green,Blue]
NAMEBOX_TEXT_AFTER_NAME = ":" # Add Text after Name, leave "" to disable.
NAMEBOX_BOX_WIDTH_PLUS = 6 # Increase Name Box Width
NAMEBOX_BOX_HEIGHT_PLUS = 7 # Increase Name Box Height
MOVE_NAMEBOX = true
# (true/false) Move Text Box to Right Side if showing Face in Right side.
#---------------------------------
# [END] SETUP SCRIPT PART
#-------------------------------
end
$worale = {} if $worale == nil
$worale["NeoFace"] = true
#==============================================================================
# Window_Message
#------------------------------------------------------------------------------
#==============================================================================
class Window_Message
alias msg_ini initialize
#------------------------------------
# EDITED FROM ORIGINAL METHODS
#----------------------------------
def initialize
msg_ini
@face = Sprite.new
@face.z = self.z + 5
@nametxt = Sprite.new
@nametxt.z = self.z + 15
@namebox = nil
@ori_x = 0
@name_text = nil
end
alias msg_conspecha convert_special_characters
def convert_special_characters
clear_namebox if @namebox != nil
msg_conspecha
# CHECK FOR CALL NAME BOX/ CALL REPEAT NAME BOX/ CHANGE SIDE
@text.scan(/\\na\[(.*?)\]/)
if $1.to_s != ""
@name_text = $1.to_s
@text.sub!(/\\na\[(.*?)\]/) {}
end
@text.gsub!(/\\nn\[(.*?)\]/) do
$game_message._name = $1.to_s
a = ""
end
@text.scan(/\\side\[([-,0-9]+)\]/)
if $1.to_s != ""
$game_message.side = $1.to_i
@text.sub!(/\\side\[([-,0-9]+)\]/) {}
end
@name_text = $game_message._name if @name_text == nil and $game_message._name != ""
end
def new_page
contents.clear
if @face.bitmap != nil
@face.bitmap.dispose
end
if $game_message.face_name.empty?
@contents_x = TEXT_X_PLUS
else
name = $game_message.face_name
index = $game_message.face_index
# CALL DRAW FACE METHOD
draw_face2(name, self.x, self.y, index)
# CHECK FOR MOVE EFFECT
if MOVE_EFFECT == true
@ori_x = @face.x
if $game_message.side == 0 or $game_message.side == 1
@face.x = 0 - @face.width
else
@face.x = 416 + @face.width
end
end
@contents_x = get_x_face
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 start_message
@text = ""
for i in 0...$game_message.texts.size
@text += "" if i >= $game_message.choice_start
@text += $game_message.texts[i].clone + "\x00"
end
@item_max = $game_message.choice_max
convert_special_characters
reset_window
new_page
end
def new_line
if $game_message.face_name.empty? or MOVE_TEXT == false
@contents_x = TEXT_X_PLUS
else
@contents_x = get_x_face
end
@contents_x += CHOICE_INPUT_X_PLUS if $game_message.choice_max > 0
@contents_y += WLH
@line_count += 1
@line_show_fast = false
end
def update
super
if @name_text != nil
draw_name(@name_text,self.x,self.y)
end
update_gold_window
update_number_input_window
update_back_sprite
update_show_fast
if @face.bitmap != nil
# UPDATE FADE IN EFFECT
if @face.opacity < 255
@face.opacity += FADE_SPEED
end
# UPDATE MOVE IN EFFECT
if MOVE_EFFECT == true and @ori_x != @face.x
if (@ori_x > @face.x and @face.x + MOVE_SPEED < @ori_x) or (@ori_x < @face.x and @face.x - MOVE_SPEED > @ori_x)
@face.x += MOVE_SPEED if @ori_x > @face.x
@face.x -= MOVE_SPEED if @ori_x < @face.x
else
@face.x = @ori_x
end
end
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
clear_namebox if @namebox != nil
$game_message.visible = @closing
end
end
end
- voyoMembre
- Nombre de messages : 43
Age : 34
Localisation : Phalsbourg
Distinction : aucune
Date d'inscription : 28/01/2009
Re: Neo-Face System Advance V3.1
Mer 28 Jan 2009 - 21:16
- Code:
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? or MOVE_TEXT == false
@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 + text_x) - 23
when 2
@number_input_window.x = x - 23
when -1
@number_input_window.x = x - 23
end
end
@number_input_window.x += CHOICE_INPUT_X_PLUS
@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 = TEXT_X_PLUS
else
x = get_x_face
end
y = ($game_message.choice_start + @index) * WLH
# CHANGE WIDTH OF CURSOR FOR CHOICE SELECT
if $game_message.face_name.empty? or MOVE_TEXT == false
facesize = x
else
facesize = get_x_face
facesize += @face.width if $game_message.side == 2
facesize += @face.width + 16 if $game_message.side == -1
end
self.cursor_rect.set(x, y, contents.width - facesize, WLH)
else
self.cursor_rect.empty
end
end
#--------------------------------
# ADDITIONAL METHODS
#------------------------------
# RETURN Text X-Coordinate, DEPENDS ON FACE SIDE
def get_x_face
if MOVE_TEXT == true
case $game_message.side
when 0
return 112 + TEXT_X_PLUS
when 1
return text_x
when 2
return TEXT_X_PLUS
else
return TEXT_X_PLUS
end
else
return TEXT_X_PLUS
end
end
# RETURN Text X-Coordinate for Face Side = 1
def text_x
return @face.width + TEXT_X_PLUS
end
# Clear Name Box & Name Text
def clear_namebox
@nametxt.bitmap.dispose
@namebox.dispose
@namebox = nil
@name_text = nil
end
#--------------------------------------
# DRAW FACE [Both Systems] METHOD
#------------------------------------
def draw_face2(face_name, x, y, index = 0)
if $game_message.side == 0 or $game_message.side == -1 or EightFaces_File == true
# USE 8 FACES PER FILE
bitmap = Cache.face(face_name)
rect = Rect.new(0,0,0,0)
rect.width = (bitmap.width / 4)
rect.height = (bitmap.height / 2)
rect.x = index % 4 * rect.width
rect.y = index / 4 * rect.height
@face.bitmap = Bitmap.new(rect.width,rect.height)
@face.bitmap.blt(0,0,bitmap,rect)
bitmap.dispose
else
# USE 1 FACES PER FILE
@face.bitmap = Cache.face(face_name)
end
# SET X/Y OF FACE DEPENDS ON FACE SIDE
if $game_message.side == 1
@face.mirror = false
@face.x = x + 6
@face.y = y - (@face.height - 123)
elsif $game_message.side == 2
@face.mirror = true
@face.x = x + (538 - @face.width)
@face.y = y - (@face.height - 123)
elsif $game_message.side == 0
@face.mirror = false
@face.x = x + 16
@face.y = y + 16
elsif $game_message.side == -1
@face.mirror = true
@face.x = self.contents.width - @face.width + 16
@face.y = y + 16
end
@face.x += FACE_X_PLUS
@face.y += FACE_Y_PLUS
@face.opacity = 0 if FADE_EFFECT == true
end
#--------------------------------------
# DRAW NAME BOX METHOD
#-----------------------------------
def draw_name(name,x,y)
name = name + NAMEBOX_TEXT_AFTER_NAME
namesize = calculate_name_size(name)
@nametxt.bitmap = Bitmap.new(16 + (namesize * NAMEBOX_TEXT_LENGTH_PER_LETTER), 24 + NAMEBOX_TEXT_HEIGHT_PLUS)
@nametxt.x = x + 8 + NAMEBOX_X_PLUS
@nametxt.x += NAMEBOX_X_PLUS_NF if $game_message.side == 1 or $game_message.side == 2
@nametxt.y = y - 20 + NAMEBOX_Y_PLUS
@nametxt.x = 544 - @nametxt.x - @nametxt.width if MOVE_NAMEBOX == true and ($game_message.side == 2 or $game_message.side == -1)
@namebox = Window.new
@namebox.windowskin = Cache.system(NAMEBOX_SKIN)
@namebox.z = self.z + 10
@namebox.opacity = NAMEBOX_OPACITY
@namebox.back_opacity = NAMEBOX_BACK_OPACITY
@namebox.openness = 255
@namebox.x = @nametxt.x - NAMEBOX_BOX_WIDTH_PLUS
@namebox.y = @nametxt.y - NAMEBOX_BOX_HEIGHT_PLUS
@namebox.width = @nametxt.bitmap.width + (NAMEBOX_BOX_WIDTH_PLUS * 2)
@namebox.height = @nametxt.bitmap.height + (NAMEBOX_BOX_HEIGHT_PLUS * 2)
@nametxt.bitmap.font.name = NAMEBOX_TEXT_FONT
@nametxt.bitmap.font.size = NAMEBOX_TEXT_SIZE
@nametxt.bitmap.font.bold = NAMEBOX_TEXT_BOLD
if NAMEBOX_TEXT_OUTLINE == true
# MAKE TEXT OUTLINE
@nametxt.bitmap.font.color = Color.new(0,0,0)
@nametxt.bitmap.draw_text(0,2,@nametxt.bitmap.width,@nametxt.bitmap.height,name,1)
@nametxt.bitmap.draw_text(0,0,@nametxt.bitmap.width,@nametxt.bitmap.height,name,1)
@nametxt.bitmap.draw_text(2,0,@nametxt.bitmap.width,@nametxt.bitmap.height,name,1)
@nametxt.bitmap.draw_text(2,2,@nametxt.bitmap.width,@nametxt.bitmap.height,name,1)
end
@nametxt.bitmap.font.color = Color.new($game_message.color[0],$game_message.color[1],$game_message.color[2])
@nametxt.bitmap.draw_text(1,1,@nametxt.bitmap.width,@nametxt.bitmap.height,name,1)
@name_text = nil
end
# CALCULATE REAL TEXT LENGTH (for Other Languages, e.g. Japanese)
def calculate_name_size(name = "")
name = name.scan(/./)
return name.size
end
end # Window_Message
#==============================================================================
# Game_Message: + store variables
#------------------------------------------------------------------------------
#==============================================================================
class Game_Message
attr_accessor :side, :color, :_name
alias wor_neoface_old_ini initialize
def initialize
@side = Window_Base::DEFAULT_SIDE
@_name = ""
@color = Window_Base::NAMEBOX_TEXT_DEFAULT_COLOR
wor_neoface_old_ini
end
end
#==============================================================================
# END Neo-Face System
# by Woratana (woratana@hotmail)
#==============================================================================
2 options que j'ai trouvé:
*Pour afficher une petite boite message au dessus du message:
-->appeler un script: $game_message.color = [x,x,x] avec pour x un nombre compris entre 0 et 255, le 1er x représente le rouge, le deuxième le vert puis le 3eme le bleu puis creer un nouveau message avec comme commande de départ:
soit -\na[nom du personnage]
soit -\nn[nom du personnage] (Evite de devoir réecrire à chaque fois \na[...])
*Pour placer la face ou vous voulez \side[placement voulu] :
-->
\side[-1] fance a l'intérieur droite
\side[0] face a l'intérieur gauche
\side[1] face a l'extérieur gauche
\side[2] face a l'exterieur droite
---------------------------------------------------------
J'ai régler le problème du nom de la boite de dialogue mais une problème persiste que je n'ai pas encore trouvé:
La face glisse de la gauche ou de la droite puis le message s'affiche seulement à chaque nouveau message, la face reglisse à nouveau, voyez par vous même en le testant, c'est difficile à expliquer.
Si quelqu'un a le même problème ou qu'il sait ou je fais une erreur et bien qu'il me le dise plz.
Re: Neo-Face System Advance V3.1
Mer 28 Jan 2009 - 21:37
et s'il ne marche pas chez toi, pourquoi le postes tu ici ? pour qu'il ne marche pas chez les autres ?
Dans cette section, on poste des scripts fonctionnels !
c'est dans le premier sous forum que l'on pose ce type de problemes !
donnes nous la ligne qui bug (la flemme de chercher) et le message d'erreur en entier.
berka
Dans cette section, on poste des scripts fonctionnels !
c'est dans le premier sous forum que l'on pose ce type de problemes !
donnes nous la ligne qui bug (la flemme de chercher) et le message d'erreur en entier.
berka
- voyoMembre
- Nombre de messages : 43
Age : 34
Localisation : Phalsbourg
Distinction : aucune
Date d'inscription : 28/01/2009
Re: Neo-Face System Advance V3.1
Jeu 29 Jan 2009 - 12:49
J'ai donné la ligne c'est la 434, mais j'arrive pas à le faire marcher moi, mais il est fonctionnel c'est juste que je galère pour faire marcher la zone du nom.
--------------------------------------------------------
Maintenant ça marche, j'ai donné la solution en bas de mon deuxième post, sous le code.
Par contre, j'ai aussi citer un autre problème aussi en bas de mon 2eme post que quelqu'un me dise si jamais il trouve la solution mais ça ne doit pas être bien compliqué, je vais encore un peu l'étudier.
--------------------------------------------------------
Maintenant ça marche, j'ai donné la solution en bas de mon deuxième post, sous le code.
Par contre, j'ai aussi citer un autre problème aussi en bas de mon 2eme post que quelqu'un me dise si jamais il trouve la solution mais ça ne doit pas être bien compliqué, je vais encore un peu l'étudier.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum