Non plus de moi
Script pour RMVX, la compatibilité avec RMXP n'est pas assurée.
Alors, que permet ce script? Et bien, de rajouter un menu de quêtes, dans le menu (bon, il faut modifier le script du menu, mais je vais l'expliquer là) tout simplement. Avec des options comme si la quête est réussie, si elle est vérouillée, inachevée...
LES IMAGES NECESSAIRES AU FONCTIONNEMENT DU SCRIPT SONT A TELECHARGER ICI: http://www.mediafire.com/file/fkmyihmytot/ImagesPack.zip
Alors, le script en lui même:
Portion de code:
=begin
#----Script créé par Josué Alvarez (RPG-Man)---#
Bon, quelques explications s'imposent :
=== Dans "def initialize" on doit avoir : ===
(Pour en rajouter)
@id_switch_qX = Y
Avec X : numéro de la quête
Avec Y : ID du switch qui fait que la quête est terminée
@id_switch_qdX = Y
Avec X : numéro de la quête
avec Y : ID du switch qui fait que la quête est débloquée
=== Dans "Def create_command_window", on doit avoir : ===
#---- Quête 1 ----#
if $game_switches[@id_switch_qd1] == true
s1 = "Nom quête 1"
else
s1 = "Quête_1 (vérouillée)"
end
#---- Quête 2 ----#
if $game_switches[@id_switch_qd2] == true
s2 = "Nom quête 2"
else
s2 = "Quête_2 (vérouillée)"
end
#---- Quête 3 ----#
if $game_switches[@id_switch_qd3] == true
s3 = "Nom quête 3"
else
s3 = "Quête_3 (vérouillée)"
end
@command_window = Window_Command.new(160, [s1, s2, s3])
Si vous rajoutez une quête, rajoutez pour que ça donne ça:
=== Dans "Def create_command_window", on doit avoir : ===
#---- Quête 1 ----#
if $game_switches[@id_switch_qd1] == true
s1 = "Nom quête 1"
else
s1 = "Quête_1 (vérouillée)"
end
#---- Quête 2 ----#
if $game_switches[@id_switch_qd2] == true
s2 = "Nom quête 2"
else
s2 = "Quête_2 (vérouillée)"
end
#---- Quête 3 ----#
if $game_switches[@id_switch_qd3] == true
s3 = "Nom quête 3"
else
s3 = "Quête_3 (vérouillée)"
end
#---- Quête 4 ----#
if $game_switches[@id_switch_qd4] == true
s4 = "Nom quête 4"
else
s4 = "Quête_4 (vérouillée)
end
@command_window = Window_Command.new(160, [s1, s2, s3, s4 ]) #(NE PAS OUBLIER DE RAJOUTER ICI!!)
=== Dans "texte_quete" : ===
A chaque fois qu'une quête est rajoutée, il faut rajouter (au bon endroit, mais ça se voir)
when (numero de la quete, SANS PARENTHESES!!)
@image_b.bitmap = Cache.picture("Nom de l'image")
== Dans "def image_c" ===
Si vous avez rajouté des quêtes :
when (numéro de la quete -1, vous verrez c'est à la suite)
if $game_switches[@id_switch_qX] == true #Avec X le n° de la quete
@image_c.bitmap = Cache.picture("Quete_ter")
=== Dans def image_d ===
Si vous avez rajouté des quêtes :
when (numéro de la quete -1, vous verrez c'est à la suite)
if $game_switches[@id_switch_qdX] == false # Avec X numéro de la quête
@image_c.bitmap = Cache.picture("Quete_cache")
=== Dans "def update_command_selection" :===
Si vous avez rajouté une quête, rajoutez :
when (numéro de la quete -1, vous verrez c'est à la suite)
@image_a = (Le même n° que dans when)
texte_quete
image_c
image_d
NE PAS OUBLIER LES IMAGES QUI VONT AVEC !!!!
=end
#================================================================
#Classe Scene_Quete par RPG-Man #================================================================
class Scene_Quete
def main
start
picture_back
perform_transition
Input.update
loop do
Graphics.update
Input.update
update
break if $scene != self
end
Graphics.update
pre_terminate
Graphics.freeze
terminate
end
def initialize(menu_index = 0)
@menu_index = menu_index
picture_back
texte_quete
image_c
#---- Switches quetes débloquées ---#
@id_switch_qd1 = 96
@id_switch_qd2 = 97
@id_switch_qd3 = 97
@id_switch_qd4 = 97
@id_switch_qd5 = 97
@id_switch_qd6 = 98
@id_switch_qd7 = 98
@id_switch_qd8 = 98
@id_switch_qd9 = 98
#---- Switches quetes terminées ---#
@id_switch_q1 = 96
@id_switch_q2 = 99
@id_switch_q3 = 99
@id_switch_q4 = 99
@id_switch_q5 = 99
@id_switch_q6 = 100
@id_switch_q7 = 100
@id_switch_q8 = 100
@id_switch_q9 = 100
end
def create_menu_background
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.color.set(16, 16, 16, 128)
update_menu_background
end
def dispose_menu_background
@menuback_sprite.dispose
end
def update_menu_background
end
def perform_transition
Graphics.transition(10)
end
def start
create_menu_background
create_command_window
picture_back
texte_quete
image_c
end
def pre_terminate
@command_window.close
@picture_back = nil
begin
@command_window.update
Graphics.update
end
end
def terminate
dispose_menu_background
@command_window.dispose
end
def update
update_menu_background
@command_window.update
texte_quete
if @command_window.active
update_command_selection
elsif @status_window.active
update_actor_selection
picture_back
end
end
#=============================================
#---- Image fond ----#
#=============================================
def picture_back
#~ @picture_back = Sprite.new
#~ @picture_back.bitmap = Cache.picture("Menu_quetes")
end
#=============================================
#---- Affichage des noms des quetes ----#
#=============================================
def create_command_window
#---- Quête 1 ----#
if $game_switches[@id_switch_qd1] == true
s1 = "Quête 1"
else
s1 = "Quête_1 (vérouillée)"
end
#---- Quête 2 ----#
if $game_switches[@id_switch_qd2] == true
s2 = "Quête 2"
else
s2 = "Quête_2 (vérouillée)"
end
#---- Quête 3 ----#
if $game_switches[@id_switch_qd3] == true
s3 = "Quête 3"
else
s3 = "Quête_3 (vérouillée)"
end
#---- Quête 4 ----#
if $game_switches[@id_switch_qd4] == true
s4 = "Quête 4"
else
s4 = "Quête_4 (vérouillée)"
end
#---- Quête 5 ----#
if $game_switches[@id_switch_qd5] == true
s5 = "Quête 5"
else
s5 = "Quête_5 (vérouillée)"
end
#---- Quête 6 ----#
if $game_switches[@id_switch_qd6] == true
s6 = "Quête 6"
else
s6 = "Quête_6 (vérouillée)"
end
#---- Quête 7 ----#
if $game_switches[@id_switch_qd7] == true
s7 = "Quête 7"
else
s7 = "Quête_7 (vérouillée)"
end
#---- Quête 8 ----#
if $game_switches[@id_switch_qd8] == true
s8 = "Quête 8"
else
s8 = "Quête_8 (vérouillée)"
end
#---- Quête 8 ----#
if $game_switches[@id_switch_qd8] == true
s8 = "Quête 8"
else
s8 = "Quête_8 (vérouillée)"
end
#---- Quête 9 ----#
if $game_switches[@id_switch_qd9] == true
s9 = "Quête 9"
else
s9 = "Quête_9 (vérouillée)"
end
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8, s9])
@command_window.index = @menu_index
@command_window.openness = 0
@command_window.open
end
#=============================================
#---- Affichage de l'image de quête ----#
#=============================================
def texte_quete
if @image_b == nil
@image_b = Sprite.new
@image_b.opacity = 255
case @image_a
when 0
@image_b.bitmap = Cache.picture("Quete_1")
when 1
@image_b.bitmap = Cache.picture("Quete_2")
when 2
@image_b.bitmap = Cache.picture("Quete_3")
when 3
@image_b.bitmap = Cache.picture("Quete_4")
when 4
@image_b.bitmap = Cache.picture("Quete_5")
when 5
@image_b.bitmap = Cache.picture("Quete_5")
when 6
@image_b.bitmap = Cache.picture("Quete_5")
when 7
@image_b.bitmap = Cache.picture("Quete_5")
when 8
@image_b.bitmap = Cache.picture("Quete_5")
end
end
end
#=============================================
#---- Affichage de l'image lorsque la quête est réussie ----#
#=============================================
def image_c
if @image_c == nil
@image_c = Sprite.new
case @image_a
when 0
if $game_switches[@id_switch_q1] == true
@image_c.bitmap = Cache.picture("Quete_ter")
end
when 1
if $game_switches[@id_switch_q2] == true
@image_c.bitmap = Cache.picture("Quete_ter")
end
when 2
if $game_switches[@id_switch_q3] == true
@image_c.bitmap = Cache.picture("Quete_ter")
end
when 3
if $game_switches[@id_switch_q4] == true
@image_c.bitmap = Cache.picture("Quete_ter")
end
when 4
if $game_switches[@id_switch_q5] == true
@image_c.bitmap = Cache.picture("Quete_ter")
end
when 5
if $game_switches[@id_switch_q6] == true
@image_c.bitmap = Cache.picture("Quete_ter")
end
when 6
if $game_switches[@id_switch_q7] == true
@image_c.bitmap = Cache.picture("Quete_ter")
end
when 7
if $game_switches[@id_switch_q8] == true
@image_c.bitmap = Cache.picture("Quete_ter")
end
when 8
if $game_switches[@id_switch_q9] == true
@image_c.bitmap = Cache.picture("Quete_ter")
end
end
end
end
#================================================
#---- Affichage de l'image cachant la quête non débloquée ----#
#================================================
def image_d
if @image_d == nil
@image_d = Sprite.new
case @image_a
when 0
if $game_switches[@id_switch_qd1] == false
@image_c.bitmap = Cache.picture("Quete_cache")
@image_b.dispose
end
when 1
if $game_switches[@id_switch_qd2] == false
@image_c.bitmap = Cache.picture("Quete_cache")
@image_b.dispose
end
when 2
if $game_switches[@id_switch_qd3] == false
@image_c.bitmap = Cache.picture("Quete_cache")
@image_b.dispose
end
when 3
if $game_switches[@id_switch_qd4] == false
@image_c.bitmap = Cache.picture("Quete_cache")
@image_b.dispose
end
when 4
if $game_switches[@id_switch_qd5] == false
@image_c.bitmap = Cache.picture("Quete_cache")
@image_b.dispose
end
when 5
if $game_switches[@id_switch_qd6] == false
@image_c.bitmap = Cache.picture("Quete_cache")
@image_b.dispose
end
when 6
if $game_switches[@id_switch_qd7] == false
@image_c.bitmap = Cache.picture("Quete_cache")
@image_b.dispose
end
when 7
if $game_switches[@id_switch_qd8] == false
@image_c.bitmap = Cache.picture("Quete_cache")
@image_b.dispose
end
when 8
if $game_switches[@id_switch_qd9] == false
@image_c.bitmap = Cache.picture("Quete_cache")
@image_b.dispose
end
end
end
end
#================================================
#---- Sélection ----#
#================================================
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Menu.new
@picture_back = nil
@image_b = nil
@image_a = nil
@image_c = nil #Réussie
@image_d = nil #Cache image
elsif Input.trigger?(Input::C)
Sound.play_decision
if @image_b != nil and
@image_c != nil and
@image_d != nil
@image_b.dispose
@image_c.dispose
@image_d.dispose
end
@image_a = nil
@image_c = nil
@image_d = nil
@image_b = nil
case @command_window.index
when 0
@image_a = 0
texte_quete
image_c
image_d
when 1
@image_a = 1
texte_quete
image_c
image_d
when 2
@image_a = 2
texte_quete
image_c
image_d
when 3
@image_a = 3
texte_quete
image_c
image_d
when 4
@image_a = 4
texte_quete
image_c
image_d
when 5
@image_a = 5
texte_quete
image_c
image_d
when 6
@image_a = 6
texte_quete
image_c
image_d
when 7
@image_a = 7
texte_quete
image_c
image_d
when 8
@image_a = 8
texte_quete
image_c
image_d
end
end
end
end
Alors, la plupart des explications sont dans le script, mais, voici la méthode pour l'intégrer au menu (je ferais bien un copier coller de Scene_Menu, mais ça passerait pas à mon avis):
Allez dans Scene_Menu, ici :
Portion de code:
def create_command_window
s1 = Vocab::item
s2 = Vocab::skill
s3 = Vocab::equip
s4 = Vocab::status
s5 = Vocab::save
s6 = Vocab::game_end
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
remplacez cette portion de code par:
Portion de code:
def create_command_window
s1 = Vocab::item
s2 = Vocab::skill
s3 = Vocab::equip
s4 = Vocab::status
s5 = Vocab::save
s6 = "Quêtes"
s7 = Vocab::game_end
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
Ensuite, TRES IMPORTANT (sinon, ça va rien faire, voire si vous sélectionnez "quêtes" ça fera la fonction quitter à la place!):
Ici:
Portion de code:
case @command_window.index
when 0 # Item
$scene = Scene_Item.new
when 1,2,3 # Skill, equipment, status
start_actor_selection
when 4 # Save
$scene = Scene_File.new(true, false, false)
when 5 # End Game
$scene = Scene_End.new
end
Remplacez par:
Portion de code:
case @command_window.index
when 0 # Item
$scene = Scene_Item.new
when 1,2,3 # Skill, equipment, status
start_actor_selection
when 4 # Save
$scene = Scene_File.new(true, false, false)
when 5
$scene = Scene_Quete.new
when 6
$scene = Scene_End.new
end
Des screens? Parfait, voici ceux faits sur Ouroboros (de Yakzawik) :
![[VX] Menu de quête Inache10](https://i.servimg.com/u/f80/12/90/04/03/inache10.jpg)
![[VX] Menu de quête Termin10](https://i.servimg.com/u/f80/12/90/04/03/termin10.jpg)
![[VX] Menu de quête V-roui10](https://i.servimg.com/u/f80/12/90/04/03/v-roui10.jpg)
Bien sûr, vous pouvez changer les images, MAIS ATTENTION AU NOM! Ou alors, si vous n'avez pas le bon nom, changez le dans le script.
Voilà, bon making! Si vous avez des questions, posez-les moi!