Kingdom Hearts - Legendary Past
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Kingdom Hearts - Legendary Past

Kingdom Hearts - Legendary Past : Forum Officiel
 
AccueilRechercherDernières imagesS'enregistrerConnexion
-20%
Le deal à ne pas rater :
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, 144 Hz, FreeSync ...
399 € 499 €
Voir le deal

 

 Des dialogues en bulles de BD

Aller en bas 
AuteurMessage
Yami-Roxas
Chef de projet
Chef de projet
Yami-Roxas


Masculin
Nombre de messages : 116
Age : 28
Localisation : Si tu est une meuf ( 95 B ), je suis juste derrière toi .
Emploi/loisirs : Programmation, dessin, et sport de chambre .
Humeur : Neutre .
Date d'inscription : 23/12/2007

Des dialogues en bulles de BD Empty
MessageSujet: Des dialogues en bulles de BD   Des dialogues en bulles de BD Icon_minitimeDim 20 Jan - 14:22

Bon voilà le script est expliqué dans le titre.

Remplacez déjà tout le script windows message par le code suivant:

Code:
#==============================================
# ■ Window_Message
#------------------------------------------------------------------------------
#  文章表示に使うメッセージウィンドウです。
#==============================================

class Window_Message < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(80, 304, 480, 160)
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
self.z = 9998
@fade_in = false
@fade_out = false
@contents_showing = false
@cursor_width = 0
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
if @comic !=nil
@comic.dispose
@comic = nil
end
end
#Comic Script
def GRmens_calc(x, y, w_size, text)
self.x = 700
rsl_size = w_size + 32
h_size = 64
rsl_x = [[x - rsl_size / 2, 0].max, 640 - rsl_size].min
if y <= 96
rsl_y = [[y - 16, 0].max, 480 - 116].min
else
rsl_y = [[y - 116, 0].max, 480 - 116].min
end

if x >= 608
ind_x = x - 16
ind_name = "ind_se"
else
ind_x = x + 8
ind_name = "ind_so"
end

if y <= 96
ind_y = rsl_y - 7
ind_name = "ind_no"
else
ind_y = rsl_y + 61
end

if x >= 608 and y <= 96
ind_name = "ind_ne"
end

@comic = Window_GRmens.new (rsl_x, rsl_y, rsl_size, ind_x, ind_y, ind_name, text)
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
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
# 便宜上、"\\\\" を "\000" に変換
text.gsub!(/\\\\/) { "\000" }
#--------event
if (/\\[Nn]pc\[(.+?)\]/.match(last_text)) != nil
event_id = $1
x = $game_map.events[$1.to_i].screen_x
y = $game_map.events[$1.to_i].screen_y
text.sub!(/\\[Nn]pc\[(.*?)\]/) { "" }
w_size = self.contents.text_size(text).width
GRmens_calc(x, y, w_size, text)
end
#---------player
if (/\\[Pp]lr/.match(last_text)) != nil
x = $game_player.screen_x
y = $game_player.screen_y
text.sub!(/\\[Pp]lr/) { "" }
w_size = self.contents.text_size(text).width
GRmens_calc(x, y, w_size, text)
end
# "\\C" を "\001" に、"\\G" を "\002" に変換
text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
text.gsub!(/\\[Gg]/) { "\002" }
# c に 1 文字を取得 (文字が取得できなくなるまでループ)
while ((c = text.slice!(/./m)) != nil)
# \\ の場合
if c == "\000"
# 本来の文字に戻す
c = "\\"
end
# \C[n] の場合
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
# \G の場合
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 を加算
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 に描画した文字の幅を加算
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



Créez ensuite un autre script au dessus de main que vous appellerez Comic et copiez-y le code suivant:

Code:
class Window_GRmens < Window_Selectable

#--------------------------------------------------------------------------

def initialize(rsl_x, rsl_y, rsl_size, ind_x, ind_y, ind_name, text)
super(rsl_x, rsl_y, rsl_size, 64)
self.contents = Bitmap.new(self.width - 32, self.height - 32)
self.windowskin = RPG::Cache.windowskin("comic_skin")
w = self.contents.width
h = self.contents.height
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.contents.font.color = text_color(9)
self.contents.draw_text(0, 0, w, h, text)
@ind = Sprite.new
@ind.bitmap = RPG::Cache.picture(ind_name)
@ind.x = ind_x
@ind.y = ind_y
@ind.z = 101
end
#--------------------------------------------------------------------------
def dispose
self.contents = nil
@ind.dispose
super
end
end



Et juste une ressource à placer dans graphics/windowskin

Des dialogues en bulles de BD Comicskinpo2

Il n'y a pas besoin de changer le windowskin dans system,il faut juste la placer dans les ressources.

Et quatre autres à placer dans graphics/pictures:

Des dialogues en bulles de BD Indneqt2 Des dialogues en bulles de BD Indnoon7 Des dialogues en bulles de BD Indselu3 Des dialogues en bulles de BD Indsook9

Il suffit ensuite de placer avant le message soit \plr pour que la
bulle indique le héros ou \npc[***] pour un autre evenement. (Il faut
remplacer *** par le numero de l'évènement).

Voilà,j'espère que ce script vous sera utile Des dialogues en bulles de BD Smiley-laughing
Revenir en haut Aller en bas
http://www.e-monsite.com/yamiroxas/
 
Des dialogues en bulles de BD
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Kingdom Hearts - Legendary Past :: RPG Maker XP :: Scripts-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser