Bonjour j'étais à la recherche d'un script que j'ai d'ailleurs trouvé:il s'agit d'un script de quête gérable par les variables mais il n'était pas fonctionnel donc j'aimerais une petite correction. Voici le script en question:
[/code]module BI
module Quete
#===============================
# Config
#===============================
# Texte des dexcriptions
TEXT_DES = "Description de la quête :"
# Texte des récompenses
TEXT_REC = "Récompense de la quête :"
# Texte quand quête finie !
TEXT_END = "Quête finie !"
# Texte du Donneur
TEXT_DON = "Donneur :"
# Nom quand la quête est bloquée
LOCK = "Bloqué"
# Image de fond dans le dossier Pictures
IMG_FOND = "Fond"
# Mettez ici les quêtes !!
# 1=> [Nom = "Trouve une potion", Var = 1, Donneur = "Quete1", Nom_Donneur = "Alfred"],
# Quete :
#Nom = "Nom de la Quête
# Var = Variable qui stockela quête ! 0 : Quête non débloqué/ 1: Quête en cours/ 2 ou +: Quête fini
# La variable de la quête doit être égale à 1 pour être activé.
# La variable de la quête doit être égale ou superieure à 2 pour être fini.
#Si elle est égale à 0, elle n'est pas débloqué !
# Donneur = Nom de l'image du PNJ qui donne la quête. Elle doit faire 32*32. Elle ne doit contenir qu'un seul perso !
# Nom_Donneur = Nom du donneur de la quête
Quete = {
1=> [Nom = "Trouve une potion", Var = 1, Donneur = "Quete1", Nom_Donneur ="Alfred"],
2=> [Nom = "Tue 5 slimes", Var = 2, Donneur = "Truc", Nom_Donneur = "Georges"]
} # Laissez ça !
# Modifiez ici le texte de la description !!
# Il faut absolument qui y est :
# ID=> [Ligne1 = "Il faut que tu trouve", Ligne2 = "une potion et, bien sur,", Ligne3 ="il faudra que tu me", Ligne4 ="la ramène !", Ligne5 = ""],
# ID = Numéro du dernier + 1
# Les lignes = Le max de ligne est 5. Il faut absoluement que vous mettiez les 5 dedans ! Même si il y en a une vide !
Description = {
1=> [Ligne1 = "Il faut que tu trouve", Ligne2 = "une potion et, bien sur,", Ligne3 ="il faudra que tu me", Ligne4 ="la ramène !", Ligne5 = ""],
2=> [Ligne1 = "Salut", Ligne2 ="Ca va ?", Ligne3 ="", Ligne4 = "Ok ! alors c'est bon !", Ligne5 = "A plus !"]
} # Laissez ça !
#Texte des Récompense
Recompense = {
1=> [Rec1 = "150 Gold", Rec2 = "1 Epee", Rec3 = "250 Exp"],
2=> [Rec1 = "150 Gold", Rec2 = "1 Epee", Rec3 = "250 Exp"]
} # Laissez ça !
# Mettez true si vous voulez utiliser l'image de fond !
Fond = false
# Touche sur laquelle il faudra appuyez pour afficher la quête
TOUCHE = Input::F5
# Pour appeller le script en event, mettez un appel de script comme celui-ci :
# $scene = Quete.new
end # Quete
end # BI
class Quete < Scene_Base
def start
@choix = []
@commands = []
for i in 1..BI::Quete::Quete.size
if $game_variables[BI::Quete::Quete[i][1]] == 1 or $game_variables[BI::Quete::Quete[i][1]] == 2
@commands.push(BI::Quete::Quete[i][0])
else
@commands.push(BI::Quete::LOCK)
end
end
@choix = Window_Command.new(200, @commands, 1, 16)
@choix.x = 0
@choix.y = 0
if BI::Quete::Fond
@choix.opacity = 0
end # If
@window = Window_Quete1.new
@windoow = Window_Quete2.new
if BI::Quete::Fond
@sprite = Sprite.new
@sprite.bitmap = Cache.picture("Fond")
end # If
position
end # Start
def terminate
@choix.dispose
@window.dispose
@windoow.dispose
if @sprite != nil
@sprite.dispose
end # If
if @chara != nil
@chara.dispose
end
end #terminate
def update
@choix.update
if Input.trigger?(BI::Quete::TOUCHE)
if BI::Quete::Quete[@choix.index + 1][2] != nil and $game_variables[BI::Quete::Quete[@choix.index + 1][1]] != 0
if @chara != nil
@chara.dispose
end
@chara = Sprite.new
@chara.bitmap = Cache.picture(BI::Quete::Quete[@choix.index + 1][2])
@chara.x = 425
@chara.y = 345
@chara.z = 1000
else
if @chara != nil
@chara.dispose
end
end
end
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Menu.new
end # if
@window.set_action(@choix.index)
@windoow.set_action(@choix.index)
end # Update
def position
@window.x = 200
@window.y = 0
@windoow.x = 200
@windoow.y = 56
if BI::Quete::Fond
@window.opacity = 0
@windoow.opacity = 0
end # If
end # Position
end # Quete
class Window_Quete1 < Window_Base
def initialize
super(0, 0, 544-200, 56)
refresh
end # Initialize
def set_action(num)
@action = num
refresh
end # Set_action
def refresh
if Input.trigger?(BI::Quete::TOUCHE)
self.contents.clear
self.contents.font.color = Color.new (255, 0, 0, 255)
if $game_variables[BI::Quete::Quete[@action.to_i + 1][1]] == 1 or $game_variables[BI::Quete::Quete[@action.to_i + 1][1]] == 2
self.contents.draw_text(50, -195, 544, 416, BI::Quete::Quete[@action.to_i + 1][0], 0)
else
self.contents.draw_text(50, -195, 544, 416, BI::Quete::LOCK, 0)
end # If
self.contents.font.color = Color.new (255, 255, 255, 255)
end
end # Refresh
end # Window_Quete 1
class Window_Quete2 < Window_Base
def initialize
super(0, 0, 544-200, 416-56)
refresh
end
def set_action(num)
@action = num
refresh
end
def refresh
if $game_variables[BI::Quete::Quete[@action.to_i + 1][1]] == 0
if Input.trigger?(BI::Quete::TOUCHE)
self.contents.clear
@des1 = nil
@des2 = nil
@des3 = nil
@des4 = nil
@des5 = nil
@text = nil
end
elsif $game_variables[BI::Quete::Quete[@action.to_i + 1][1]] == 1
if Input.trigger?(BI::Quete::TOUCHE)
self.contents.clear
@text = BI::Quete::TEXT_DES
@des1 = BI::Quete::Description[@action.to_i + 1][0]
@des2 = BI::Quete::Description[@action.to_i + 1][1]
@des3 = BI::Quete::Description[@action.to_i + 1][2]
@des4 = BI::Quete::Description[@action.to_i + 1][3]
@des5 = BI::Quete::Description[@action.to_i + 1][4]
self.contents.font.color = Color.new(100, 100, 100, 255)
self.contents.draw_text(0, -195, 544, 416, @text, 0)
self.contents.font.color = Color.new(255, 255, 255, 255)
self.contents.draw_text(0, -165, 544, 416, @des1, 0)
self.contents.draw_text(0, -140, 544, 416, @des2, 0)
self.contents.draw_text(0, -115, 544, 416, @des3, 0)
self.contents.draw_text(0, -90, 544, 416, @des4, 0)
self.contents.draw_text(0, -65, 544, 416, @des5, 0)
@text2 = BI::Quete::TEXT_REC
self.contents.font.color = Color.new(100, 100, 0, 255)
self.contents.draw_text(0, -25, 544, 416, @text2, 0)
self.contents.font.color = Color.new(255, 255, 255, 255)
@rec1 = BI::Quete::Recompense[@action.to_i + 1][0]
@rec2 = BI::Quete::Recompense[@action.to_i + 1][1]
@rec3 = BI::Quete::Recompense[@action.to_i + 1][2]
self.contents.draw_text(0, 0, 544, 416, @rec1, 0)
self.contents.draw_text(0, 25, 544, 416, @rec2, 0)
self.contents.draw_text(0, 50, 544, 416, @rec3, 0)
if BI::Quete::Quete[@action.to_i + 1][3] != nil
@text3 = BI::Quete::TEXT_DON + " " + BI::Quete::Quete[@action.to_i + 1][3]
else
@text3 = BI::Quete::TEXT_DON + " Aucun"
end
self.contents.draw_text(0, 85, 544, 416, @text3, 0)
end
else
if Input.trigger?(BI::Quete::TOUCHE)
self.contents.clear
@text = BI::Quete::TEXT_DES
@des1 = BI::Quete::Description[@action.to_i + 1][0]
@des2 = BI::Quete::Description[@action.to_i + 1][1]
@des3 = BI::Quete::Description[@action.to_i + 1][2]
@des4 = BI::Quete::Description[@action.to_i + 1][3]
@des5 = BI::Quete::Description[@action.to_i + 1][4]
self.contents.font.color = Color.new(100, 100, 100, 255)
self.contents.draw_text(0, -195, 544, 416, @text, 0)
self.contents.font.color = Color.new(255, 255, 255, 255)
self.contents.draw_text(0, -165, 544, 416, @des1, 0)
self.contents.draw_text(0, -140, 544, 416, @des2, 0)
self.contents.draw_text(0, -115, 544, 416, @des3, 0)
self.contents.draw_text(0, -90, 544, 416, @des4, 0)
self.contents.draw_text(0, -65, 544, 416, @des5, 0)
@text2 = BI::Quete::TEXT_END
self.contents.font.color = Color.new(255, 0, 0, 255)
self.contents.draw_text(0, -25, 544, 416, @text2, 0)
self.contents.font.color = Color.new(255, 255, 255, 255)
if BI::Quete::Quete[@action.to_i + 1][3] != nil
@text3 = BI::Quete::TEXT_DON + " " + BI::Quete::Quete[@action.to_i + 1][3]
else
@text3 = BI::Quete::TEXT_DON + " Aucun"
end
self.contents.draw_text(0, 10, 544, 416, @text3, 0)
end # If
end
end # Refresh
end # Window_Quete2
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base
def create_command_window
s1 = Vocab::item
s2 = Vocab::skill
s3 = Vocab::equip
s4 = Vocab::status
s5 = Vocab::save
s6 = Vocab::game_end
s7 = "Quete"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
@command_window.index = @menu_index
if $game_party.members.size == 0 # If number of party members is 0
@command_window.draw_item(0, false) # Disable item
@command_window.draw_item(1, false) # Disable skill
@command_window.draw_item(2, false) # Disable equipment
@command_window.draw_item(3, false) # Disable status
end
if $game_system.save_disabled # If save is forbidden
@command_window.draw_item(4, false) # Disable save
end
end
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if $game_party.members.size == 0 and @command_window.index < 4
Sound.play_buzzer
return
elsif $game_system.save_disabled and @command_window.index == 4
Sound.play_buzzer
return
end
Sound.play_decision
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
when 6
$scene = Quete.new
end
end
end
end
[code]