-
Posts
14 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by toto79
-
-
si, questo è un modo, ma poi va a discapito sulla scelta (si,no, ecc) nei messaggi, se ho capito bene come dici tu, dopo aver modificato l'immaggine e salvata, vado sul database e seleziono la "nuova" windowskin, ma come detto prima ne va a discapito quando sui messaggi il pg deve fare delle scelte
-
si, uso rpg maker xp, mmmm... allora in pratica cit. Cold
"quella casella bianca semitrasparente ke viene nel menù predefinito quando si seleziona un comando resta anke con le nuova immagini"
anche se Tio lo ha spiegato, io non so molto di script, non so dove mettere le mani XD, spero che adesso mi sono spiegato meglio ^^
-
salve a tutti, ho qualche "problema" con questo menu, o meglio nell'eliminare il "cursore/rettangolo selezionatrice"
ho visto che gia questa domanda è stata fatta ed ha avuto una risposta, non capendo niente di Ruby non ho capito
come fare qualcuno che me lo spieghi in parole profane ?! grazie
-
uno script che farebbe ciò che chiedi sarebbe il mapp item http://www.rpg2s.net/forum/index.php?showtopic=1050
ma non sono riuscito a farlo funzionare ç_ç
P.S se qualcuno sa come far partire il tutto... je ne saro grato, se magari posterebbe una demo grazie ^^
-
Wow... è dal 20 gennaio che chiedi aiuto e il 2 giugno ancora nessun aiuto?
guarda... non ho parole...
ci do un occhiata io adesso.
EDIT:inanzitutto potresti dirci qualche cosa in più per esempio... come far funzionare questo coso.
Poi ti sei dimenticato il file Cursor.
emmm si hai ragione, comunque le istruzioni sono dentro lo scrip (per far parlare un eroe basta che prima del messaggio metti \prl e per un npc appunto \npc ) se non ricordo male sono questi i comandi,
http://i47.tinypic.com/znvc4l.png
grazie per l'interessamento ^^
-
emmm nessuna risposta ?
vabbe si vede che è una cosa che non interesa potete chiudere il topic grazie
-
Dovresti cercare battlewindowcommand e cambiare il valore della x per spostarlo a tuo piacemento
Se non ha già un valore x scrivi @nomevariabile (che sarebbe quella della windowbattle command) = valore che vuoi.
Grazie 1000,

-
salve raga!! avrei una cosa da chiedervi: è possibile spostare la finestra dei comandi in battaglia, dal centro dello schermo, alla sua sinistra ? se è si come ?............grazie a tuti in anticipo :rox:
-
nessuna risposta ...........pls è urgente Help (comunque razie ^^ )
-
ciao ragazzi, ho scaricato questo script da un sito francese, lo script funge, ma se ad esempio si torna a parlare con npc, la bolla a fumetto diventa irregolare. vi posto lo script e le immagini spero che mi potete aiutare .....grazie a tutti ^^
scrpt
##################################################################
#############
#==============================================================================
# ● Advanced_Bulle ●
#------------------------------------------------------------------------------
# By Sin
# 22-26/06/2008
# Adds : 27/11/2008 & 01/01/2009 & 19/04/2009
# Spéciale dédicasse à Sire pour "Kingdom Hearts The Keyblades War"
#==============================================================================
#
# FONCTIONNALITES :
# Script de méssages qui s'affichent sous forme de bulle rectangulaire.
# Il peut afficher jusqu'a trois lignes de texteet gère les choix.
# C'est pour cela que la largeur de la bulle ne peut varier avec le texte.
# La largeur de la bulle est par défaut à 200 pixels, mais peut être réglée.
# En revanche la hauteur de la bulle se règle automatiquement en fonction
# du nombre de lignes et du texte.
# La bulle se centre selon la largeur et la hauteur.
# Il faut impérativement définir avant chaque méssage, qui parle (le héros ou un
# evennement (voir commande ci-dessous).
#
# COMMANDES INTERTEXTUELLES :
#
# NE PAS METTRE DEUX COMMANDES PAR LIGNES !
# ==> Nouvelles :
# \Plr : Indique que c'est le héros qui parle (à préciser à chaque texte)
#
# \Npc[$] : Indique que c'est l'évennement dont l'ID est $ qui parle (à préciser à chaque texte)
#
# \O : Affiche dans le texte l'argent possédé (sans le nom de la monnaie)
#
# \M : Affiche dans le texte l'argent possédé (avec le nom de la monnaie)
#
# \T : Affiche dans le texte le nombre de pas effectués
#
# \E : Affiche dans le texte le nom de la map
#
# \Z[$] Change la taille de la police pour cette bulle uniquement
#
# \H[$,$2,$3,$4] : Change la couleur du texte par la méthode RGB.
# $ code pour la quantité de rouge, le $2 pour le vert, le $3 pour
# le bleu et le $4 pour la lumière. Ces nombres varient tous de 0 à 255.
# Pour vous faire une idée du code correspondant à la couleur voulue, utiliser
# le créateur de flash dans l'editeur d'animation dans la base de donnée.
# Privilégiez cette méthode par rapport à \C[$].
#
# \Ll[$] : Règle la largeur de la bulle à $ pixels
#
# ==> Déjà existantes :
# \C[$] : Change la couleur du texte
# \N[$] : Affiche le nom du héros dont l'ID est $
# \V[$] : Affiche le contenu de la variable dont l'ID est $
# \G : Affiche l'argent possédé dans une fenêtre à part
#
# Remarque : \ = Antislash (Alt gr + 8)
#
# CHOIX :
#
# Tout comme dans le script de méssage normal, il possible d'afficher dans
# la bulle plusieurs choix, mais 3 maximums !
# Pour cela, rien de plus simple, comme d'habitude, allez dans votre évènnement,
# choisissez "Proposer un choix" (dans la première page), cependant, au lieu de
# marquer directement vos choix (comme "Oui" "Non", par exemple) il faudrat
# ecrire devant votre premier choix la commande intertextuelle : "\Plr" ou "\Npc"
# comme pour les bulles normales (en suivant toujours notre exemple, ça fait :
# "\PlrOui" "Non"). La hauteur de la bulle se réglera automatiquement en fonction
# du nombre de choix.
# Il est de plus possible de faire afficher un curseur (mouvant ou non) devant
# les choix, à la place de la "bande blanche" clignotante par défaut. Voir la
# section réglages pour cela.
#
# ########### - REGLAGES - ###########
def reglage_bulle
#
# - Largeur PAR DEFAUT de la bulle, c'est à dire la largeur quand vous ne la
# définissez pas par la commande \Ll[$] :
$largeur_bulle = 200
#
# - Police d'écriture : Ecrivez la police d'écriture de vos texte PAR DEFAUT,
# c'est à dire la police quand vous ne l'avez pas définie par la command R[$].
# Remplacez $fontface par le nom de la police, sans oublier les guillemets ("") :
$font_bulle = $fontface
#
# - Taille de la police PAR DEFAUT (attention à ne pas mettre trop gros ) :
$fontsize_bulle = 16
#
# - Couleur PAR DEFAUT du texte :
# Il faut régler les 4 nombres qui sont dans la parenthèse :
# Le premier correspond à la quantité de rouge (varie de 0 à 255)
# Le second correspond à la quantité de vert (varie de 0 à 255)
# Le troisième correspond à la quantié de bleu (varie de 0 à 255)
# Le quatrième correspond à la quantité de lumière (varie de 0 à 255)
# ici par défaut c'est noir
$fontcolor_bulle = Color.new(0,0,0,255)
#
# - Présence ou non d'un curseur pour les choix (mettez oui ou non, en minuscule,
# entre les guillemets) :
$cursor = "oui"
# Indiquez ici si vous voulez qu'il bouge ou non (va et viens de gauche à droite) :
$cursor_mouvant = "oui"
# Indiquez la vitesse de déplacement du curseur :
# 1 => rapide
# 2 => moyen
# 4 => lent
$vitesse_curseur = 2
#
end
#==============================================================================
################################################################################
class Window_Message < Window_Selectable
#--------------------------------------------------------------------------
# ● Initialisation
#--------------------------------------------------------------------------
def initialize
$speaker_bulle = $game_player
super($speaker_bulle.screen_x - 125, $speaker_bulle.screen_y - 145, 200, 90)
self.contents = Bitmap.new(width + 125, height - 32)
self.visible = false
self.z = 9998
self.windowskin = RPG::Cache.windowskin("comic_skin")
reglage_bulle
self.contents.font.name = $font_bulle
self.contents.font.size = $fontsize_bulle
self.contents.font.color = $fontcolor_bulle
@largeur_window = $largeur_bulle
$yyy = 100
@ind = Sprite.new
@ind.bitmap = RPG::Cache.picture("ind_se")
@ind.x = $speaker_bulle.screen_x - 15
@ind.y = $speaker_bulle.screen_y - 59
@ind.z = 9999
@ind.opacity = 255
@ind.visible = false
@ind2 = Sprite.new
@ind2.bitmap = RPG::Cache.picture("ind_no")
@ind2.x = $speaker_bulle.screen_x + 10
@ind2.y = $speaker_bulle.screen_y + 10
@ind2.z = 9999
@ind2.opacity = 255
@ind2.visible = false
@ind3 = Sprite.new
@ind3.bitmap = RPG::Cache.picture("ind_so")
@ind3.x = $speaker_bulle.screen_x + 6
@ind3.y = $speaker_bulle.screen_y - 59
@ind3.z = 9999
@ind3.opacity = 255
@ind3.visible = false
@ind4 = Sprite.new
@ind4.bitmap = RPG::Cache.picture("ind_ne")
@ind4.x = $speaker_bulle.screen_x - 17
@ind4.y = $speaker_bulle.screen_y + 10
@ind4.z = 9999
@ind4.opacity = 255
@ind4.visible = false
@ind5 = Sprite.new
@ind5.bitmap = RPG::Cache.picture("cursor")
@ind5.x = self.x + 15
@ind5.y = self.y + 20
@ind5.z = 9999
@ind5.opacity = 255
@ind5.visible = false
@fade_in = false
@fade_out = false
@contents_showing = false
@cursor_width = 0
self.active = false
self.index = -1
$normal_window = true
@va = 1
@demi = 1
@inicursor = 0
end
#--------------------------------------------------------------------------
# ● Fermeture
#--------------------------------------------------------------------------
def dispose
terminate_message
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
super
end
#--------------------------------------------------------------------------
# ● Procèdure de fermeture
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Gestion de la bulle (0)
#--------------------------------------------------------------------------
def gestion0
# Définition de la fenêtre selon qu'elle est normale ou en bulle
if $normal_window == false
self.windowskin = RPG::Cache.windowskin("comic_skin")
reglage_bulle
self.contents = Bitmap.new(width + 125, height - 32)
self.contents.font.name = $font_bulle
self.contents.font.size = $fontsize_bulle
self.contents.font.color = $fontcolor_bulle
self.width = @largeur_window
self.back_opacity = 255
gestion
@ind.opacity = 255
@ind2.opacity = 255
@ind3.opacity = 255
@ind4.opacity = 255
@ind5.opacity = 255
$ecart_ligne = 20
$décalage = 8
else
self.x = 80
self.y = 304
self.width = 480
self.height = 160
self.opacity = 255
self.back_opacity = 255
self.windowskin = RPG::Cache.windowskin($game_system.windowskin_name)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.contents.font.color = normal_color
@ind.opacity = 0
@ind2.opacity = 0
@ind3.opacity = 0
@ind4.opacity = 0
@ind5.opacity = 0
$ecart_ligne = 32
$décalage = 0
end
end
#--------------------------------------------------------------------------
# ● Gestion de la bulle (1)
#--------------------------------------------------------------------------
def gestion
reglage_bulle
self.x = $speaker_bulle.screen_x - 125
self.y = $speaker_bulle.screen_y - 145
@ind.x = $speaker_bulle.screen_x - 15
@ind.y = $speaker_bulle.screen_y - 54
@ind2.x = $speaker_bulle.screen_x + 10
@ind2.y = $speaker_bulle.screen_y + 5
@ind3.x = $speaker_bulle.screen_x + 6
@ind3.y = $speaker_bulle.screen_y - 54
@ind4.x = $speaker_bulle.screen_x - 17
@ind4.y = $speaker_bulle.screen_y + 5
@ind5.x = self.x + 15
@ind5.y = self.y + 20
end
#--------------------------------------------------------------------------
# ● Gestion de la bulle (2)
#--------------------------------------------------------------------------
def gestion2
reglage_bulle
if self.x >= 2 and (self.x + @largeur_window) <= 628
self.x = @ind.x - (@largeur_window / 2)
else
if self.x < 2
self.x = 2
end
if (self.x + @largeur_window) > 628
self.x = (638 - @largeur_window)
end
end
end
#--------------------------------------------------------------------------
# ● Gestion de la bulle (3)
#--------------------------------------------------------------------------
def gestion3
# Gestion de la position des flèches d'indication de direction
if self.y >= 30
if self.x > 2 and (self.x + @largeur_window) <= 628
@ind.visible = true
@ind2.visible = false
@ind3.visible = false
@ind4.visible = false
else
if self.x <= 2
@ind.visible = false
@ind2.visible = false
@ind3.visible = true
@ind4.visible = false
end
if (self.x + @largeur_window) > 628
@ind.visible = true
@ind2.visible = false
@ind3.visible = false
@ind4.visible = false
end
end
else
if self.x >= 2 and (self.x + @largeur_window) <= 628
@ind.visible = false
@ind2.visible = true
@ind3.visible = false
@ind4.visible = false
else
if self.x < 2
@ind.visible = false
@ind2.visible = true
@ind3.visible = false
@ind4.visible = false
end
if (self.x + @largeur_window) > 628
@ind.visible = false
@ind2.visible = false
@ind3.visible = false
@ind4.visible = true
end
end
end
end
#--------------------------------------------------------------------------
# ● Rafraichissement (mise à jour de l'apparence)
#--------------------------------------------------------------------------
def refresh
self.contents.clear
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
# On vérifie si l'on veut un texte normal ou une bulle
if (/\\[Pp]lr/.match(last_text)) == nil and (/\\[Nn]pc\[(.+?)\]/.match(last_text)) == nil
$normal_window = true
else
$normal_window = false
end
gestion0
# Code intertextuel pour désigner le héros comme porteur de la bulle
if (/\\[Pp]lr/.match(last_text)) != nil
$speaker_bulle = $game_player
gestion
gestion2
gestion3
text.sub!(/\\[Pp]lr/) { "" }
$normal_window = false
end
# Code intertextuel pour désigner un évenement comme porteur de la bulle
if (/\\[Nn]pc\[(.+?)\]/.match(last_text)) != nil
event_id = $1
$speaker_bulle = $game_map.events[$1.to_i]
gestion
gestion2
gestion3
text.sub!(/\\[Nn]pc\[(.*?)\]/) { "" }
$normal_window = false
end
# Code intertextuel pour régler la largeur de la bulle
if (/\\[Ll]l\[(.+?)\]/.match(last_text)) != nil
@largeur_window = $1.to_i
text.sub!(/\\[Ll]l\[(.*?)\]/) { "" }
self.width = @largeur_window
gestion
gestion2
gestion3
end
# Code intertextuel pour régler la taille du texte
if (/\\[Zz]\[(.+?)\]/.match(last_text)) != nil
self.contents.font.size = $1.to_i
text.sub!(/\\[Zz]\[(.*?)\]/) { "" }
end
# Code intertextuel pour régler la taille du texte
if (/\\[Hh]\[(.+?),(.+?),(.+?),(.+?)\]/.match(last_text)) != nil
@rgb_r = $1.to_i
@rgb_g = $2.to_i
@rgb_b = $3.to_i
if $4.to_i != nil
@rgb_l = $4.to_i
else
@rgb_l = 255
end
text.sub!(/\\[Hh]\[(.*?)\]/) { "" }
self.contents.font.color = Color.new(@rgb_r,@rgb_g,@rgb_b,@rgb_l)
end
# Code intertextuel pour afficher dans le méssage l'or possédé
if (/\\[Oo]/.match(last_text)) != nil
text.sub!(/\\[Oo]/) { $game_party.gold.to_s }
end
# Code intertextuel pour afficher dans le méssage l'or possédé et la monnaie
if (/\\[Mm]/.match(last_text)) != nil
text.sub!(/\\[Mm]/) { $game_party.gold.to_s + " " + $data_system.words.gold }
end
# Code intertextuel pour afficher dans le méssage les pas effectués
if (/\\[Tt]/.match(last_text)) != nil
text.sub!(/\\[Tt]/) { $game_party.steps.to_s }
end
# Code intertextuel pour afficher dans le méssage le lieu
if (/\\[Ee]/.match(last_text)) != nil
text.sub!(/\\[Ee]/) { load_data("Data/MapInfos.rxdata")[$game_map.map_id].name }
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
# Ecriture du texte
self.contents.draw_text(2 + x, ($ecart_ligne * y) - $décalage, 40, 32, c)
x += self.contents.text_size©.width
# Adaptation de la position de la bulle en fonction du nombre de ligne
if $normal_window == false
if @index >= 0
case @index
when 0
self.height = (15 * (@index + 1)) + self.contents.height - 5
when 1
self.height = (10 * (@index + 1)) + self.contents.height
when 2
self.height = (15 * (@index + 1)) + self.contents.height + 2
end
$yyy = (@ind.y - self.height) + 3
else
if y == 0
self.height = self.contents.height - 5
$yyy = (@ind.y - self.height) + 3
end
if y == 1
self.height = (10 * y) + self.contents.height
$yyy = (@ind.y - self.height) + 3
end
if y == 2
self.height = (15 * y) + self.contents.height + 2
$yyy = (@ind.y - self.height) + 3
end
end
end
end
end
if $game_temp.choice_max > 0
@item_max = $game_temp.choice_max
self.active = true
self.index = 0
end
# Gestion des choix
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 * $ecart_ligne
end
# On réinitialise la fenêtre à chaque boucle
reset_window
end
#--------------------------------------------------------------------------
# ● Réinitialisation de la fenêtre
#--------------------------------------------------------------------------
def reset_window
if $normal_window == false
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
# Determination de la position de la bulle en fonction de la position en ordonnée du personnage
if self.y >= 30
self.y = $yyy
else
self.y = $speaker_bulle.screen_y + 12
end
end
end
else
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
end
if $game_system.message_frame == 0
self.opacity = 255
else
self.opacity = 0
end
end
#--------------------------------------------------------------------------
# ● Rafraichissement (mise à jour des commandes et des calculs)
#--------------------------------------------------------------------------
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
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
self.back_opacity -= 48
self.contents_opacity -= 48
@ind.opacity -= 48
@ind2.opacity -= 48
@ind3.opacity -= 48
@ind4.opacity -= 48
@ind5.opacity -= 48
if self.opacity == 0
self.visible = false
@fade_out = false
$game_temp.message_window_showing = false
end
return
end
end
#--------------------------------------------------------------------------
# ● Rafraichissement du curseur
#--------------------------------------------------------------------------
def update_cursor_rect
if @index >= 0
n = $game_temp.choice_start + @index
if $normal_window == false
if $cursor == "oui"
if @inicursor == 0
@ind5.x = self.x + 15
@inicursor = 1
end
@ind5.visible = true
@ind5.y = ((self.y + 20) + (n * $ecart_ligne))
if $cursor_mouvant == "oui"
if (@ind5.x < self.x + 15 + 5) and (@va == 1)
if @demi < $vitesse_curseur
@demi += 1
else
@demi = 1
end
@ind5.x += (@demi / $vitesse_curseur)
@va = 1
end
if (@ind5.x >= self.x + 15 + 5) and (@va == 1)
@va = 0
end
if (@ind5.x > self.x + 15) and (@va == 0)
if @demi < $vitesse_curseur
@demi += 1
else
@demi = 1
end
@ind5.x -= (@demi / $vitesse_curseur)
@va = 0
end
if (@ind5.x <= self.x + 15) and (@va == 0)
@va = 1
end
end
else
self.cursor_rect.set(8, n * $ecart_ligne, @cursor_width, $ecart_ligne)
end
else
self.cursor_rect.set(8, n * $ecart_ligne, @cursor_width, $ecart_ligne)
end
else
self.cursor_rect.empty
end
end
end
immagini:le imm vanno rinominate
http://i49.tinypic.com/25s8wnd.jpg ind_no
http://i45.tinypic.com/vsp0lt.png ind_so
http://i49.tinypic.com/25s8wnd.png ind_se
http://i50.tinypic.com/2nrm03l.png ind_ne
http://i45.tinypic.com/23hpus5.png comic_skin
mi scuso per il doppio post, ho visto che nel primo le immagini non venivano caricate
grazie .....
-
ciao ragazzi, ho scaricato questo script da un sito francese, lo script funge, ma se ad esempio si torna a parlare con npc, la bolla a fumetto diventa irregolare. vi posto lo script e le immagini spero che mi potete aiutare .....grazie a tutti ^^
scrpt
##################################################################
#############
#==============================================================================
# ● Advanced_Bulle ●
#------------------------------------------------------------------------------
# By Sin
# 22-26/06/2008
# Adds : 27/11/2008 & 01/01/2009 & 19/04/2009
# Spéciale dédicasse à Sire pour "Kingdom Hearts The Keyblades War"
#==============================================================================
#
# FONCTIONNALITES :
# Script de méssages qui s'affichent sous forme de bulle rectangulaire.
# Il peut afficher jusqu'a trois lignes de texteet gère les choix.
# C'est pour cela que la largeur de la bulle ne peut varier avec le texte.
# La largeur de la bulle est par défaut à 200 pixels, mais peut être réglée.
# En revanche la hauteur de la bulle se règle automatiquement en fonction
# du nombre de lignes et du texte.
# La bulle se centre selon la largeur et la hauteur.
# Il faut impérativement définir avant chaque méssage, qui parle (le héros ou un
# evennement (voir commande ci-dessous).
#
# COMMANDES INTERTEXTUELLES :
#
# NE PAS METTRE DEUX COMMANDES PAR LIGNES !
# ==> Nouvelles :
# \Plr : Indique que c'est le héros qui parle (à préciser à chaque texte)
#
# \Npc[$] : Indique que c'est l'évennement dont l'ID est $ qui parle (à préciser à chaque texte)
#
# \O : Affiche dans le texte l'argent possédé (sans le nom de la monnaie)
#
# \M : Affiche dans le texte l'argent possédé (avec le nom de la monnaie)
#
# \T : Affiche dans le texte le nombre de pas effectués
#
# \E : Affiche dans le texte le nom de la map
#
# \Z[$] Change la taille de la police pour cette bulle uniquement
#
# \H[$,$2,$3,$4] : Change la couleur du texte par la méthode RGB.
# $ code pour la quantité de rouge, le $2 pour le vert, le $3 pour
# le bleu et le $4 pour la lumière. Ces nombres varient tous de 0 à 255.
# Pour vous faire une idée du code correspondant à la couleur voulue, utiliser
# le créateur de flash dans l'editeur d'animation dans la base de donnée.
# Privilégiez cette méthode par rapport à \C[$].
#
# \Ll[$] : Règle la largeur de la bulle à $ pixels
#
# ==> Déjà existantes :
# \C[$] : Change la couleur du texte
# \N[$] : Affiche le nom du héros dont l'ID est $
# \V[$] : Affiche le contenu de la variable dont l'ID est $
# \G : Affiche l'argent possédé dans une fenêtre à part
#
# Remarque : \ = Antislash (Alt gr + 8)
#
# CHOIX :
#
# Tout comme dans le script de méssage normal, il possible d'afficher dans
# la bulle plusieurs choix, mais 3 maximums !
# Pour cela, rien de plus simple, comme d'habitude, allez dans votre évènnement,
# choisissez "Proposer un choix" (dans la première page), cependant, au lieu de
# marquer directement vos choix (comme "Oui" "Non", par exemple) il faudrat
# ecrire devant votre premier choix la commande intertextuelle : "\Plr" ou "\Npc"
# comme pour les bulles normales (en suivant toujours notre exemple, ça fait :
# "\PlrOui" "Non"). La hauteur de la bulle se réglera automatiquement en fonction
# du nombre de choix.
# Il est de plus possible de faire afficher un curseur (mouvant ou non) devant
# les choix, à la place de la "bande blanche" clignotante par défaut. Voir la
# section réglages pour cela.
#
# ########### - REGLAGES - ###########
def reglage_bulle
#
# - Largeur PAR DEFAUT de la bulle, c'est à dire la largeur quand vous ne la
# définissez pas par la commande \Ll[$] :
$largeur_bulle = 200
#
# - Police d'écriture : Ecrivez la police d'écriture de vos texte PAR DEFAUT,
# c'est à dire la police quand vous ne l'avez pas définie par la command R[$].
# Remplacez $fontface par le nom de la police, sans oublier les guillemets ("") :
$font_bulle = $fontface
#
# - Taille de la police PAR DEFAUT (attention à ne pas mettre trop gros ) :
$fontsize_bulle = 16
#
# - Couleur PAR DEFAUT du texte :
# Il faut régler les 4 nombres qui sont dans la parenthèse :
# Le premier correspond à la quantité de rouge (varie de 0 à 255)
# Le second correspond à la quantité de vert (varie de 0 à 255)
# Le troisième correspond à la quantié de bleu (varie de 0 à 255)
# Le quatrième correspond à la quantité de lumière (varie de 0 à 255)
# ici par défaut c'est noir
$fontcolor_bulle = Color.new(0,0,0,255)
#
# - Présence ou non d'un curseur pour les choix (mettez oui ou non, en minuscule,
# entre les guillemets) :
$cursor = "oui"
# Indiquez ici si vous voulez qu'il bouge ou non (va et viens de gauche à droite) :
$cursor_mouvant = "oui"
# Indiquez la vitesse de déplacement du curseur :
# 1 => rapide
# 2 => moyen
# 4 => lent
$vitesse_curseur = 2
#
end
#==============================================================================
################################################################################
class Window_Message < Window_Selectable
#--------------------------------------------------------------------------
# ● Initialisation
#--------------------------------------------------------------------------
def initialize
$speaker_bulle = $game_player
super($speaker_bulle.screen_x - 125, $speaker_bulle.screen_y - 145, 200, 90)
self.contents = Bitmap.new(width + 125, height - 32)
self.visible = false
self.z = 9998
self.windowskin = RPG::Cache.windowskin("comic_skin")
reglage_bulle
self.contents.font.name = $font_bulle
self.contents.font.size = $fontsize_bulle
self.contents.font.color = $fontcolor_bulle
@largeur_window = $largeur_bulle
$yyy = 100
@ind = Sprite.new
@ind.bitmap = RPG::Cache.picture("ind_se")
@ind.x = $speaker_bulle.screen_x - 15
@ind.y = $speaker_bulle.screen_y - 59
@ind.z = 9999
@ind.opacity = 255
@ind.visible = false
@ind2 = Sprite.new
@ind2.bitmap = RPG::Cache.picture("ind_no")
@ind2.x = $speaker_bulle.screen_x + 10
@ind2.y = $speaker_bulle.screen_y + 10
@ind2.z = 9999
@ind2.opacity = 255
@ind2.visible = false
@ind3 = Sprite.new
@ind3.bitmap = RPG::Cache.picture("ind_so")
@ind3.x = $speaker_bulle.screen_x + 6
@ind3.y = $speaker_bulle.screen_y - 59
@ind3.z = 9999
@ind3.opacity = 255
@ind3.visible = false
@ind4 = Sprite.new
@ind4.bitmap = RPG::Cache.picture("ind_ne")
@ind4.x = $speaker_bulle.screen_x - 17
@ind4.y = $speaker_bulle.screen_y + 10
@ind4.z = 9999
@ind4.opacity = 255
@ind4.visible = false
@ind5 = Sprite.new
@ind5.bitmap = RPG::Cache.picture("cursor")
@ind5.x = self.x + 15
@ind5.y = self.y + 20
@ind5.z = 9999
@ind5.opacity = 255
@ind5.visible = false
@fade_in = false
@fade_out = false
@contents_showing = false
@cursor_width = 0
self.active = false
self.index = -1
$normal_window = true
@va = 1
@demi = 1
@inicursor = 0
end
#--------------------------------------------------------------------------
# ● Fermeture
#--------------------------------------------------------------------------
def dispose
terminate_message
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
super
end
#--------------------------------------------------------------------------
# ● Procèdure de fermeture
#--------------------------------------------------------------------------
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
#--------------------------------------------------------------------------
# ● Gestion de la bulle (0)
#--------------------------------------------------------------------------
def gestion0
# Définition de la fenêtre selon qu'elle est normale ou en bulle
if $normal_window == false
self.windowskin = RPG::Cache.windowskin("comic_skin")
reglage_bulle
self.contents = Bitmap.new(width + 125, height - 32)
self.contents.font.name = $font_bulle
self.contents.font.size = $fontsize_bulle
self.contents.font.color = $fontcolor_bulle
self.width = @largeur_window
self.back_opacity = 255
gestion
@ind.opacity = 255
@ind2.opacity = 255
@ind3.opacity = 255
@ind4.opacity = 255
@ind5.opacity = 255
$ecart_ligne = 20
$décalage = 8
else
self.x = 80
self.y = 304
self.width = 480
self.height = 160
self.opacity = 255
self.back_opacity = 255
self.windowskin = RPG::Cache.windowskin($game_system.windowskin_name)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.contents.font.color = normal_color
@ind.opacity = 0
@ind2.opacity = 0
@ind3.opacity = 0
@ind4.opacity = 0
@ind5.opacity = 0
$ecart_ligne = 32
$décalage = 0
end
end
#--------------------------------------------------------------------------
# ● Gestion de la bulle (1)
#--------------------------------------------------------------------------
def gestion
reglage_bulle
self.x = $speaker_bulle.screen_x - 125
self.y = $speaker_bulle.screen_y - 145
@ind.x = $speaker_bulle.screen_x - 15
@ind.y = $speaker_bulle.screen_y - 54
@ind2.x = $speaker_bulle.screen_x + 10
@ind2.y = $speaker_bulle.screen_y + 5
@ind3.x = $speaker_bulle.screen_x + 6
@ind3.y = $speaker_bulle.screen_y - 54
@ind4.x = $speaker_bulle.screen_x - 17
@ind4.y = $speaker_bulle.screen_y + 5
@ind5.x = self.x + 15
@ind5.y = self.y + 20
end
#--------------------------------------------------------------------------
# ● Gestion de la bulle (2)
#--------------------------------------------------------------------------
def gestion2
reglage_bulle
if self.x >= 2 and (self.x + @largeur_window) <= 628
self.x = @ind.x - (@largeur_window / 2)
else
if self.x < 2
self.x = 2
end
if (self.x + @largeur_window) > 628
self.x = (638 - @largeur_window)
end
end
end
#--------------------------------------------------------------------------
# ● Gestion de la bulle (3)
#--------------------------------------------------------------------------
def gestion3
# Gestion de la position des flèches d'indication de direction
if self.y >= 30
if self.x > 2 and (self.x + @largeur_window) <= 628
@ind.visible = true
@ind2.visible = false
@ind3.visible = false
@ind4.visible = false
else
if self.x <= 2
@ind.visible = false
@ind2.visible = false
@ind3.visible = true
@ind4.visible = false
end
if (self.x + @largeur_window) > 628
@ind.visible = true
@ind2.visible = false
@ind3.visible = false
@ind4.visible = false
end
end
else
if self.x >= 2 and (self.x + @largeur_window) <= 628
@ind.visible = false
@ind2.visible = true
@ind3.visible = false
@ind4.visible = false
else
if self.x < 2
@ind.visible = false
@ind2.visible = true
@ind3.visible = false
@ind4.visible = false
end
if (self.x + @largeur_window) > 628
@ind.visible = false
@ind2.visible = false
@ind3.visible = false
@ind4.visible = true
end
end
end
end
#--------------------------------------------------------------------------
# ● Rafraichissement (mise à jour de l'apparence)
#--------------------------------------------------------------------------
def refresh
self.contents.clear
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
# On vérifie si l'on veut un texte normal ou une bulle
if (/\\[Pp]lr/.match(last_text)) == nil and (/\\[Nn]pc\[(.+?)\]/.match(last_text)) == nil
$normal_window = true
else
$normal_window = false
end
gestion0
# Code intertextuel pour désigner le héros comme porteur de la bulle
if (/\\[Pp]lr/.match(last_text)) != nil
$speaker_bulle = $game_player
gestion
gestion2
gestion3
text.sub!(/\\[Pp]lr/) { "" }
$normal_window = false
end
# Code intertextuel pour désigner un évenement comme porteur de la bulle
if (/\\[Nn]pc\[(.+?)\]/.match(last_text)) != nil
event_id = $1
$speaker_bulle = $game_map.events[$1.to_i]
gestion
gestion2
gestion3
text.sub!(/\\[Nn]pc\[(.*?)\]/) { "" }
$normal_window = false
end
# Code intertextuel pour régler la largeur de la bulle
if (/\\[Ll]l\[(.+?)\]/.match(last_text)) != nil
@largeur_window = $1.to_i
text.sub!(/\\[Ll]l\[(.*?)\]/) { "" }
self.width = @largeur_window
gestion
gestion2
gestion3
end
# Code intertextuel pour régler la taille du texte
if (/\\[Zz]\[(.+?)\]/.match(last_text)) != nil
self.contents.font.size = $1.to_i
text.sub!(/\\[Zz]\[(.*?)\]/) { "" }
end
# Code intertextuel pour régler la taille du texte
if (/\\[Hh]\[(.+?),(.+?),(.+?),(.+?)\]/.match(last_text)) != nil
@rgb_r = $1.to_i
@rgb_g = $2.to_i
@rgb_b = $3.to_i
if $4.to_i != nil
@rgb_l = $4.to_i
else
@rgb_l = 255
end
text.sub!(/\\[Hh]\[(.*?)\]/) { "" }
self.contents.font.color = Color.new(@rgb_r,@rgb_g,@rgb_b,@rgb_l)
end
# Code intertextuel pour afficher dans le méssage l'or possédé
if (/\\[Oo]/.match(last_text)) != nil
text.sub!(/\\[Oo]/) { $game_party.gold.to_s }
end
# Code intertextuel pour afficher dans le méssage l'or possédé et la monnaie
if (/\\[Mm]/.match(last_text)) != nil
text.sub!(/\\[Mm]/) { $game_party.gold.to_s + " " + $data_system.words.gold }
end
# Code intertextuel pour afficher dans le méssage les pas effectués
if (/\\[Tt]/.match(last_text)) != nil
text.sub!(/\\[Tt]/) { $game_party.steps.to_s }
end
# Code intertextuel pour afficher dans le méssage le lieu
if (/\\[Ee]/.match(last_text)) != nil
text.sub!(/\\[Ee]/) { load_data("Data/MapInfos.rxdata")[$game_map.map_id].name }
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
# Ecriture du texte
self.contents.draw_text(2 + x, ($ecart_ligne * y) - $décalage, 40, 32, c)
x += self.contents.text_size©.width
# Adaptation de la position de la bulle en fonction du nombre de ligne
if $normal_window == false
if @index >= 0
case @index
when 0
self.height = (15 * (@index + 1)) + self.contents.height - 5
when 1
self.height = (10 * (@index + 1)) + self.contents.height
when 2
self.height = (15 * (@index + 1)) + self.contents.height + 2
end
$yyy = (@ind.y - self.height) + 3
else
if y == 0
self.height = self.contents.height - 5
$yyy = (@ind.y - self.height) + 3
end
if y == 1
self.height = (10 * y) + self.contents.height
$yyy = (@ind.y - self.height) + 3
end
if y == 2
self.height = (15 * y) + self.contents.height + 2
$yyy = (@ind.y - self.height) + 3
end
end
end
end
end
if $game_temp.choice_max > 0
@item_max = $game_temp.choice_max
self.active = true
self.index = 0
end
# Gestion des choix
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 * $ecart_ligne
end
# On réinitialise la fenêtre à chaque boucle
reset_window
end
#--------------------------------------------------------------------------
# ● Réinitialisation de la fenêtre
#--------------------------------------------------------------------------
def reset_window
if $normal_window == false
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
# Determination de la position de la bulle en fonction de la position en ordonnée du personnage
if self.y >= 30
self.y = $yyy
else
self.y = $speaker_bulle.screen_y + 12
end
end
end
else
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
end
if $game_system.message_frame == 0
self.opacity = 255
else
self.opacity = 0
end
end
#--------------------------------------------------------------------------
# ● Rafraichissement (mise à jour des commandes et des calculs)
#--------------------------------------------------------------------------
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
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
self.back_opacity -= 48
self.contents_opacity -= 48
@ind.opacity -= 48
@ind2.opacity -= 48
@ind3.opacity -= 48
@ind4.opacity -= 48
@ind5.opacity -= 48
if self.opacity == 0
self.visible = false
@fade_out = false
$game_temp.message_window_showing = false
end
return
end
end
#--------------------------------------------------------------------------
# ● Rafraichissement du curseur
#--------------------------------------------------------------------------
def update_cursor_rect
if @index >= 0
n = $game_temp.choice_start + @index
if $normal_window == false
if $cursor == "oui"
if @inicursor == 0
@ind5.x = self.x + 15
@inicursor = 1
end
@ind5.visible = true
@ind5.y = ((self.y + 20) + (n * $ecart_ligne))
if $cursor_mouvant == "oui"
if (@ind5.x < self.x + 15 + 5) and (@va == 1)
if @demi < $vitesse_curseur
@demi += 1
else
@demi = 1
end
@ind5.x += (@demi / $vitesse_curseur)
@va = 1
end
if (@ind5.x >= self.x + 15 + 5) and (@va == 1)
@va = 0
end
if (@ind5.x > self.x + 15) and (@va == 0)
if @demi < $vitesse_curseur
@demi += 1
else
@demi = 1
end
@ind5.x -= (@demi / $vitesse_curseur)
@va = 0
end
if (@ind5.x <= self.x + 15) and (@va == 0)
@va = 1
end
end
else
self.cursor_rect.set(8, n * $ecart_ligne, @cursor_width, $ecart_ligne)
end
else
self.cursor_rect.set(8, n * $ecart_ligne, @cursor_width, $ecart_ligne)
end
else
self.cursor_rect.empty
end
end
end
immagini:le imm vanno rinominate
http://image.forumcommunity.it/3/6/6/8/9/3/1/1263986596.png ind_no
http://image.forumcommunity.it/3/6/6/8/9/3/1/1263986597.png ind_so
http://image.forumcommunity.it/3/6/6/8/9/3/1/1263986022.png ind_se
http://image.forumcommunity.it/3/6/6/8/9/3/1/1263986021.png ind_ne
http://image.forumcommunity.it/3/6/6/8/9/3/1/1263986020.png comic_skin
ok credo che sia tutto ........ancora grazie :rovatfl:
-
ciao!! scusa avrei un problema nell'estrarre gli script avendo la versione1.0, mi chiedevo se fosse possibile avere direttamente gli cript, o magari una soluzione per estrarli.........grazie ^^
-
emmm farei la stessa domanda............ fenrix posso chiederti un favore ? sono un po nabbo de ste cose se potevi mettere tutto sullo scrit compreso lo scene_title...........pls grazie ^^
scusate se riesumo questo script ma mi piace molto poter avere un effetto del genere
-
salve sono poco + di 6 mesi che conosco il tool rpg maker xp, spero che con il vosto aiuto posso migliorare,
ciao

Menù a immagini con RGSS
in Guide alla Programmazione
Posted
si, ho visto che c'è molto lavoro, dopo varie riflessioni, andrebbe fatto un lavorone, credo che a sto punto punterò o ad uno script già pronto, ho ne faro uno ad eventi, comunque ti ringrazio della risposta