Derniers messages sur les forums

Une communauté de plus d'un millier de membres actifs

Afficher un faceset dans un message

Ce script est tiré du forum RMO et a été trouvé par link@. Si vous désirez poser une question ou voir les commentaires de ce script, rendez vous sur la page Afficher un faceset dans un message.

 


Sur RMXP, vous remarquerez qu'il n'y a pas d'option pour afficher un faceset, bien voilà comment!

 

Créer un nouveau script au dessus de Main que vous nommerez "Window_Message2" et copier/coller y ce code:

#=================================================
#=============================
# Window_Message
#------------------------------------------------------------------------------
#
#=================================================
#=============================

class Window_Message < Window_Selectable
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def initialize
super(80, 304, 480, 160)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font = Font.new("Arial")
self.visible = false
self.z = 9998
@fade_in = false
@fade_out = false
@contents_showing = false
@cursor_width = 0
@pic_width = 96
@pic_height = 96
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def dispose
terminate_message
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
super
end
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def terminate_message
self.active = false
self.pause = false
self.index = -1
self.contents.clear
@contents_showing = false

if $game_temp.message_proc != nil
$game_temp.message_proc.call
end

$game_temp.message_text = nil
$game_temp.message_proc = nil
$game_temp.choice_start = 99
$game_temp.choice_max = 0
$game_temp.choice_cancel_type = 0
$game_temp.choice_proc = nil
$game_temp.num_input_start = 99
$game_temp.num_input_variable_id = 0
$game_temp.num_input_digits_max = 0

if @gold_window != nil
@gold_window.dispose
@gold_window = nil
end
end
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
x = y = 0
@cursor_width = 0

if $game_temp.choice_start == 0
x = 8
end

if $game_temp.message_text != nil
text = $game_temp.message_text

begin
last_text = text.clone
text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
end until text == last_text
text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end
text.gsub!(/\\[Ww]\[([0-9]+)\]/) do
@pic_width = $1.to_i
""
end
text.gsub!(/\\[Hh]\[([0-9]+)\]/) do
@pic_height = $1.to_i
""
end
text.gsub!(/\\[Ff]\[([\w]+)\]/) do
temp = RPG::Cache.picture($1)
pic_x = self.contents.width - @pic_width - 10
pic_y = self.contents.height / 2 - @pic_height / 2
dest = Rect.new(pic_x,pic_y,@pic_width, @pic_height)
src = Rect.new(0,0,temp.width, temp.height)
self.contents.stretch_blt(dest, temp, src)
""
end

text.gsub!(/\\\\/) { "\000" }
text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
text.gsub!(/\\[Gg]/) { "\002" }

while ((c = text.slice!(/./m)) != nil)

if c == "\000"
c = "\\"
end

if c == "\001"
text.sub!(/\[([0-9]+)\]/, "")
color = $1.to_i
if color >= 0 and color <= 7
self.contents.font.color = text_color(color)
end
next
end

if c == "\002"
if @gold_window == nil
@gold_window = Window_Gold.new
@gold_window.x = 560 - @gold_window.width
if $game_temp.in_battle
@gold_window.y = 192
else
@gold_window.y = self.y >= 128 ? 32 : 384
end
@gold_window.opacity = self.opacity
@gold_window.back_opacity = self.back_opacity
end
next
end

if c == "\n"
if y >= $game_temp.choice_start
@cursor_width = [@cursor_width, x].max
end
y += 1
x = 0

if y >= $game_temp.choice_start
x = 8
end
next
end

self.contents.draw_text(4 + x, 32 * y, 40, 32, c)

x += self.contents.text_size(c).width
end
end

if $game_temp.choice_max > 0
@item_max = $game_temp.choice_max
self.active = true
self.index = 0
end

if $game_temp.num_input_variable_id > 0
digits_max = $game_temp.num_input_digits_max
number = $game_variables[$game_temp.num_input_variable_id]
@input_number_window = Window_InputNumber.new(digits_max)
@input_number_window.number = number
@input_number_window.x = self.x + 8
@input_number_window.y = self.y + $game_temp.num_input_start * 32
end
end
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def reset_window
if $game_temp.in_battle
self.y = 16
else
case $game_system.message_position
when 0 # ?
self.y = 16
when 1 # ?
self.y = 160
when 2 # ?
self.y = 304
end
end
if $game_system.message_frame == 0
self.opacity = 255
else
self.opacity = 0
end
self.back_opacity = 160
end
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def update
super

if @fade_in
self.contents_opacity += 24
if @input_number_window != nil
@input_number_window.contents_opacity += 24
end
if self.contents_opacity == 255
@fade_in = false
end
return
end

if @input_number_window != nil
@input_number_window.update

if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
$game_variables[$game_temp.num_input_variable_id] = @input_number_window.number
$game_map.need_refresh = true

@input_number_window.dispose
@input_number_window = nil
terminate_message
end
return
end

if @contents_showing

if $game_temp.choice_max == 0
self.pause = true
end

if Input.trigger?(Input::B)
if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
$game_system.se_play($data_system.cancel_se)
$game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
terminate_message
end
end

if Input.trigger?(Input::C)
if $game_temp.choice_max > 0
$game_system.se_play($data_system.decision_se)
$game_temp.choice_proc.call(self.index)
end
terminate_message
end
return
end

if @fade_out == false and $game_temp.message_text != nil
@contents_showing = true
$game_temp.message_window_showing = true
reset_window
refresh
Graphics.frame_reset
self.visible = true
self.contents_opacity = 0
if @input_number_window != nil
@input_number_window.contents_opacity = 0
end
@fade_in = true
return
end

if self.visible
@fade_out = true
self.opacity -= 48
if self.opacity == 0
self.visible = false
@fade_out = false
$game_temp.message_window_showing = false
end
return
end
end
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def update_cursor_rect
if @index >= 0
n = $game_temp.choice_start + @index
self.cursor_rect.set(8, n * 32, @cursor_width, 32)
else
self.cursor_rect.empty
end
end
end

Et à chaques fois que vous faites parler un personnage, dans Message copier/coller:

\f[nom_de_l'image_sans_l'extention]

L'image doit être 96x96 et dans le dossier Pictures de votre jeu, ne mettez pas l'extension!

À faire: \f[Perso1]
À ne pas faire: \f[Perso1.png]

Faites ceci à chaques fois dans votre message, suivit sur la ligne suivante de ce que dit le perso. 

Auteur: Danny Coulombe
Créé le: 2007-12-18 06:26:00
Cette page a été vues: 1601 fois

Prenez le temps de visiter nos partenaires

Vidéos, OST, émulation Espace Emulation, le nonos de l'emulation ! Forum réservé pour makers, traitant de thème divers. iKara Rpg Maker Tout sur Kingdom Hearts, des actus, des soluces, des vidéos, des musiques et plus encore... Actualités RPG, astuces, soluce, download sur Final Fantasy, Dragon Quest et Kingdom Hearts de Square-Enix. Animes Naruto, FMA, Love Hina... Final Fantasy VII Origin est un RPG amateur dont le scénario précède FFVII. Téléchargeable gratuitement sur ce site. Rpg Maker Love dit RML c'est un ensemble de sites entretenus par Monos.

Ajouter aux favoris Ajouter à mes favoris
Abonnement à au bulletin d'informations Newsletters
Abonnement aux flux d'actualités RSS M'abonner aux flux RSS