Partagez
Aller en bas
avatar
Byakuya
Membre

Nombre de messages : 156
Age : 23
Localisation : Où tu ne cherchera pas
Distinction : aucune
Date d'inscription : 04/03/2009

problème script de quette [résolu]

le Ven 18 Fév 2011 - 20:03
Bonjour/bonsoir, alors voila mon problème j'utilise un script de quette que voici:
Spoiler:
=begin
########################## Breadlord's Quets Script modifié par Skillo ############################
Ceci est un script pour quête vous permettant d'avoir une large description des quêtes et de multiples tâches
(entend par là plusieurs à truc à faire pour la même quête hein).
Tu met les quêtes sous forme d'evenement c'est à dire sous ce format :

$quests['nom de la quête'] = Quest.new([' ligne de description 1', 'ligne de description 2, ...],
['tâche 1 description', 'tâche 2 description',...])

Dans ce format 'nom de la quête' correspond au nom de la quête,
'ligne de description N' est la N ème ligne de la description de la quête et
'tâche N description' est la description de la N eme tâche

Pour completer une tâche dans un evenement utilisez $quests['nom de la quête'].complete_sub('tâche description'),
et pour échouer une tâche utilisez $quests['nom de la quête'].fail_sub('tâche description').
Si toutes les tâches sont complétées/échouées alors le status de la quête deviendra complétée/échouée.
Pour mettre une quête en complétée utilisez $quests['nom de la quête'].complete_all,
et échouée utilisez $quests['nom de la quête'].fail_all

Pour vérifier si une quête est complétée utilisez $quests['nom de la quête'].complete?,
et pour vérifier si elle est échouée utilisez $quests['nom de la quête'].failed?.
Pour vérifier si une tâche est complétée utilisez $quests['nom de la quête'].sub_complete?('tâche description')
et pour vérifier si elle est échouée utilisez $quests['nom de la quête'].sub_failed?('tâche description')

Pour definir une quete secondaire il suffit de rajouter true après les taches :
$quests['nom de la quête'] = Quest.new([' ligne de description 1', 'ligne de description 2, ...],
['tâche 1 description', 'tâche 2 description',...], true)

Enfin pour vérifier que la quête existe utilisez $quests['nom de la quête'] != nil
Pour appeler le menu de quête utilisez $scene = Scene_Quest.new
Et pour lancer le menu quête sur un onglet précis il suffit de $scene = Scene_Quest.new(index de l'onglet)
0<= index de l'onglet <= 3



################################################################################
################################################################################
=end

module QUEST_CONFIG

# Ici seront defini les 3 icones correspondant aux tri des quêtes
# QUEST_ICONS = [icone des quetes en cours, icone des quetes complétées, icone des quete echouées]
QUEST_ICONS = [188, 179, 150, 112]

# Ici sera defini l'image apparaissant dans le menu
# QUEST_PICTURE = "nom de l'image"
QUEST_PICTURE = "Quest"

# Ici sera defini la hauteur des fenêtre et par consequence la place laisser à l'image
# QUEST_WINDOWHEIGHT = hauteur
QUEST_WINDOWHEIGHT = 293 # 293

# Ici sera defini l'image apparaissant lorsqu'une quête est completée
# QUEST_COMPLETE = "nom de l'image"
QUEST_COMPLETE = "Complete"

# Ici sera defini l'image apparaissant lorsqu'une quête est échouée
# QUEST_FAILED = "nom de l'image"
QUEST_FAILED = "Failed"

# Ici sera defini le message apparaissant dans la fenetre de description lors d'une quête secondaire
# QUEST_SECOND = "message"
QUEST_SECOND = "Quête secondaire"
# Ici seront defini les 3 icones correspondant aux états des quêtes et des tâches principales
# VALIDATEICONS = [icone des taches en cours, icone des taches complétées, icone des taches echouées]
VALIDATEICONS = [99, 101, 97]

# Ici seront defini les 3 icones correspondant aux états des quêtes et des tâches secondaires
# VALIDATEICONS = [icone des taches en cours, icone des taches complétées, icone des taches echouées]
VALIDATESECONDICONS = [100, 102, 96]

#Ici sera defini le nom apparaissant dans le menu de base
# MENUNAME = nom du menu
MENUNAME = 'Quêtes'

#Ici sera defini le nom apparaissant dans la description de l'onglet des quêtes principales
# QUEST_NAMEPRINCIP = nom
QUEST_NAMEPRINCIP = "Quêtes Principales"

#Ici sera defini le nom apparaissant dans la description de l'onglet des quêtes secondaires
# QUEST_NAMESECOND = nom
QUEST_NAMESECOND = "Quêtes Secondaires"

#Ici sera defini le nom apparaissant dans la description de l'onglet des quêtes réussies
# QUEST_NAMECOMP = nom
QUEST_NAMECOMP = "Quêtes Réussies"

#Ici sera defini le nom apparaissant dans la description de l'onglet des quêtes échouées
# QUEST_NAMEFAIL = nom
QUEST_NAMEFAIL = "Quêtes Ratés"

# Ici sera defini à titre indicatif le numero du menu quête dans le menu de base (comptez à partir de 0)
# cela n'aura aucune influance sur sa position.
# MENU_NUMBER = umero du menu quête dans le menu de base
MENU_NUMBER = 4

# Ici sera defini l'interrupteur definissant si un tache échoué fais echoué la quête ou non.
# FAILSUB_FAILCOMPLETE = true/false
FAILSUB_FAILCOMPLETE = true

end

#==============================================================================
# ** Quest
#------------------------------------------------------------------------------
# Cette classe permet de definir des quêtes
# Elle est appelée par $quests
#==============================================================================
class Quest

attr_accessor :desc, :sub, :comp, :sub_text, :pic

#--------------------------------------------------------------------------
# * Quête Initialization
# desc : tableau des descriptions
# sub : tableau des tâches
# pic : window width
#--------------------------------------------------------------------------
def initialize(desc = [''], sub = [''], second = false)
@desc = desc
@sub = {}
@second = second
for i in 0..sub.size - 1 # pour chaque tache
@sub[sub[i]] = 'prog' #construit une clef du nom de la tache avec la valeur prog
end
@comp = 'prog'
@sub_text = []
for i in 0..sub.size - 1
@sub_text.push(sub[i]) # pour chaque tache
end
end

#--------------------------------------------------------------------------
# * Completer une Tâche
# sub : tâche
#--------------------------------------------------------------------------
def second?
return @second
end
#--------------------------------------------------------------------------
# * Completer une Tâche
# sub : tâche
#--------------------------------------------------------------------------
def complete_sub(sub)
@sub[sub] = 'comp'
test_complete
end
#--------------------------------------------------------------------------
# * Tester si la Quête est devenue complete
# sub : tâche
#--------------------------------------------------------------------------
def test_complete
@a = true
for i in 0..@sub.keys.size - 1
if @sub[@sub.keys[i]] == 'comp'
@a = (@a and true)
else
@a = (@a and false)
end
end
if @a == true
complete_all
end
end
#--------------------------------------------------------------------------
# * Echouer une Tâche
# sub : tâche
#--------------------------------------------------------------------------
def fail_sub(sub)
if QUEST_CONFIG::FAILSUB_FAILCOMPLETE
fail_all
else
@sub[sub] = 'fail'
end
end


#--------------------------------------------------------------------------
# *Compeleter toutes les Tâches
#--------------------------------------------------------------------------
def complete_all
@comp = 'comp'
for i in @sub.keys
@sub[i] = 'comp'
end
end

#--------------------------------------------------------------------------
# *Echouer à toutes les Tâches
#--------------------------------------------------------------------------
def fail_all
@comp = 'fail'
for i in @sub.keys
@sub[i] = 'fail'
end
end

#--------------------------------------------------------------------------
# *Tester si une Tâches est complete
#--------------------------------------------------------------------------
def sub_complete?(sub)
return @sub[sub] == 'comp'? true : false
end

#--------------------------------------------------------------------------
# *Tester si une Quête est complete
#--------------------------------------------------------------------------
def complete?
return @comp == 'comp'? true : false
end

#--------------------------------------------------------------------------
# *Tester si une Tâches est échouée
#--------------------------------------------------------------------------
def sub_failed?(sub)
return @sub[sub] == 'fail'? true : false
end

#--------------------------------------------------------------------------
# *Tester si une Quête est échouée
#--------------------------------------------------------------------------
def failed?
return @comp == 'fail'? true : false
end
end


#==============================================================================
# ** Window_Quest_Type
#------------------------------------------------------------------------------
# Cette fenetre affiche les differents états des quêtes.
#==============================================================================
class Window_Quest_Type < Window_Selectable

attr_accessor :active, :index
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(0,352 - QUEST_CONFIG::QUEST_WINDOWHEIGHT,160,64)
@column_max = 4
@index = 0
@icons = QUEST_CONFIG::QUEST_ICONS
@spacing = 14
refresh
end

#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
create_contents
@item_max = @icons.size
for i in 0...@item_max
rect = item_rect(i)
rect.x -= 2
icon = @icons[i]
draw_icon(icon, rect.x, rect.y)
end
end
end

#==============================================================================
# ** Window_Quest_Title
#------------------------------------------------------------------------------
# Cette fenetre affiche les descriptions des quêtes.
#==============================================================================
class Window_Quest_Title < Window_Base

#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(index = QUEST_CONFIG::MENUNAME)
super( 160, 352 - QUEST_CONFIG::QUEST_WINDOWHEIGHT, 384, 64)
@pic_title = Sprite.new
@pic_title.bitmap = Cache.picture(QUEST_CONFIG::QUEST_PICTURE)
self.contents.draw_text(0, 0, self.width - 40, WLH, index, 1)
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
super
@pic_title.dispose
end
end

#==============================================================================
# ** Window_Quest_Desc
#------------------------------------------------------------------------------
# Cette fenetre affiche lee contenue des quêtes.
#==============================================================================
class Window_Quest_Desc < Window_Base

#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(index = nil)
super( 160, 416 - QUEST_CONFIG::QUEST_WINDOWHEIGHT, 384, QUEST_CONFIG::QUEST_WINDOWHEIGHT)
@status = Sprite.new
if index != nil
if $quests[index].complete?
@status.bitmap = Cache.picture(QUEST_CONFIG::QUEST_COMPLETE)
elsif $quests[index].failed?
@status.bitmap = Cache.picture(QUEST_CONFIG::QUEST_FAILED)
end
@status.z = 201
for i in 0..$quests[index].desc.size - 1
a = $quests[index].desc[i]
self.contents.draw_text(0, WLH*i, self.width - 40, WLH, a, 1)
end
a = $quests[index].sub_text
for i in 0..a.size - 1
b = a[i]
if $quests[index].sub[b] == 'prog'
if $quests[index].second?
ic = QUEST_CONFIG::VALIDATESECONDICONS[0]
else
ic = QUEST_CONFIG::VALIDATEICONS[0]
end
elsif $quests[index].sub[b] == 'comp'
if $quests[index].second?
ic = QUEST_CONFIG::VALIDATESECONDICONS[1]
else
ic = QUEST_CONFIG::VALIDATEICONS[1]
end
else
if $quests[index].second?
ic = QUEST_CONFIG::VALIDATESECONDICONS[2]
else
ic = QUEST_CONFIG::VALIDATEICONS[2]
end
end
draw_icon(ic, 4, WLH*(i + $quests[index].desc.size + 1))
self.contents.draw_text(0, WLH*(i + $quests[index].desc.size + 1), self.width - 40, WLH, b, 1)
end
if $quests[index].second?
self.contents.draw_text(0, QUEST_CONFIG::QUEST_WINDOWHEIGHT - 3*WLH, self.width - 40, WLH, QUEST_CONFIG::QUEST_SECOND, 1)
end
end
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
super
@status.dispose
end
end

#==============================================================================
# ** Window_Quest_Type
#------------------------------------------------------------------------------
# Cette fenetre affiche lee contenue des quêtes.
#==============================================================================
class Window_Select_Quest < Window_Selectable

attr_accessor :c_items

#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(type = 1)
super(0, 416 - QUEST_CONFIG::QUEST_WINDOWHEIGHT, 160, QUEST_CONFIG::QUEST_WINDOWHEIGHT)
@type = type
self.index = 0
self.active = false
@items = $quests.keys
a = @items
@c_items = []
for it in 0...@items.size
if include?(a[it])
@c_items.push(a[it])
end
end
@column_max = 1
@commands = @c_items
@item_max = @commands.size
create_contents
refresh
end

#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for it in 0...@item_max
draw_opt(it)
end
end

#--------------------------------------------------------------------------
# * Include ?
# key : nom d'une quête
#--------------------------------------------------------------------------
def include?(key)
case @type
when 1
if !$quests[key].complete? and !$quests[key].failed? and !$quests[key].second?
return true
end
when 2
unless $quests[key].complete? or $quests[key].failed?
return $quests[key].second?
end
when 3
return $quests[key].complete?
when 4
return $quests[key].failed?
end
end

#--------------------------------------------------------------------------
# * Draw Opt
# itemm : quête
#--------------------------------------------------------------------------
def draw_opt(itemm)
a = @c_items
rect = item_rect(itemm)
self.contents.clear_rect(rect)
if $quests[@c_items[itemm]].complete?
if $quests[@c_items[itemm]].second?
draw_icon(QUEST_CONFIG::VALIDATESECONDICONS[1],rect.x, rect.y)
else
draw_icon(QUEST_CONFIG::VALIDATEICONS[1],rect.x, rect.y)
end
elsif $quests[@c_items[itemm]].failed?
if $quests[@c_items[itemm]].second?
draw_icon(QUEST_CONFIG::VALIDATESECONDICONS[2],rect.x, rect.y)
else
draw_icon(QUEST_CONFIG::VALIDATEICONS[2],rect.x, rect.y)
end
else
if $quests[@c_items[itemm]].second?
draw_icon(QUEST_CONFIG::VALIDATESECONDICONS[0],rect.x, rect.y)
else
draw_icon(QUEST_CONFIG::VALIDATEICONS[0],rect.x , rect.y)
end
end
string = @c_items[itemm]
rect.width -= 4
self.contents.draw_text(rect.x, rect.y, rect.width, WLH, string, 2)
end
end


#==============================================================================
# ** Scene_Quest
#------------------------------------------------------------------------------
# Cette classe fere le menu de quêtes
#==============================================================================
class Scene_Quest < Scene_Base

#--------------------------------------------------------------------------
# * Object Initialization
#
#--------------------------------------------------------------------------
def initialize(index = 0, menu = false)
@menu = menu
@index = index
end

#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
def start
super
create_menu_background
@type = Window_Quest_Type.new
@type.visible = true
@type.active = true
@type.index = @index
@quests = Window_Select_Quest.new(@index +1)
@quests.active = false
@quests.index = -1
@desc_window = Window_Quest_Desc.new
@title = Window_Quest_Title.new
update_desc
end

#--------------------------------------------------------------------------
# * Return to Original Screen
#--------------------------------------------------------------------------
def return_scene
if @menu
$scene = Scene_Menu.new(QUEST_CONFIG::MENU_NUMBER)
else
$scene = Scene_Map.new
end
end

#--------------------------------------------------------------------------
# * Terminate
#--------------------------------------------------------------------------
def terminate
dispose_menu_background
@type.dispose
@quests.dispose
@title.dispose
@desc_window.dispose
end

#--------------------------------------------------------------------------
# * Update Frame
#--------------------------------------------------------------------------
def update
super
update_menu_background
@type.update
@quests.update
if @type.active
update_type_selection
elsif @quests.active
update_quests_selection
else
update_desc_selection
end
if Input.trigger?(Input::A)
Sound.play_cancel
return_scene
end
end

#--------------------------------------------------------------------------
# * Update Type Selection
#--------------------------------------------------------------------------
def update_type_selection
if Input.trigger?(Input::B)
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::C)
a = @type.index
Sound.play_cursor
@type.active = false
@quests.dispose
@quests = Window_Select_Quest.new(a + 1)
@quests.active = true
@quests.index = 0
elsif Input.trigger?(Input::LEFT) or Input.trigger?(Input::RIGHT)
a = @type.index
@quests.dispose
@quests = Window_Select_Quest.new(a + 1)
@quests.index = -1
update_desc
end
end

#--------------------------------------------------------------------------
# * Update Quests Decription
#--------------------------------------------------------------------------
def update_desc
case @type.index
when 0
@title.dispose
@title = Window_Quest_Title.new(QUEST_CONFIG::QUEST_NAMEPRINCIP)
when 1
@title.dispose
@title = Window_Quest_Title.new(QUEST_CONFIG::QUEST_NAMESECOND)
when 2
@title.dispose
@title = Window_Quest_Title.new(QUEST_CONFIG::QUEST_NAMECOMP)
when 3
@title.dispose
@title = Window_Quest_Title.new(QUEST_CONFIG::QUEST_NAMEFAIL)
end
end
#--------------------------------------------------------------------------
# * Update Quests Selection
#--------------------------------------------------------------------------
def update_quests_selection
if Input.trigger?(Input::B)
Sound.play_cancel
Sound.play_cursor
@type.active = true
@quests.active = false
@quests.index = -1
update_desc
@desc_window.dispose
@desc_window = Window_Quest_Desc.new
elsif Input.trigger?(Input::C)
if @quests.c_items[@quests.index] == nil
Sound.play_buzzer
else
Sound.play_decision
@desc_window.dispose
@desc_window = Window_Quest_Desc.new(@quests.c_items[@quests.index])
@title.dispose
@title = Window_Quest_Title.new(@quests.c_items[@quests.index])
@quests.active = false
@type.active = false
end
end
end

#--------------------------------------------------------------------------
# * Update Desc Selection
#--------------------------------------------------------------------------
def update_desc_selection
if Input.trigger?(Input::B)
Sound.play_cancel
Sound.play_cursor
@quests.active = true
update_desc
@desc_window.dispose
@desc_window = Window_Quest_Desc.new
end
end
end



#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
# This class performs the title screen processing.
#==============================================================================
class Scene_Title < Scene_Base

alias startupquest command_new_game
#--------------------------------------------------------------------------
# * Command: New Game
#--------------------------------------------------------------------------
def command_new_game
startupquest
$quests = {}
end
end

#==============================================================================
# ** Scene_File
#------------------------------------------------------------------------------
# This class performs the save and load screen processing.
#==============================================================================
class Scene_File < Scene_Base

alias savequest write_save_data
#--------------------------------------------------------------------------
# * Write Save Data
# file : write file object (opened)
#--------------------------------------------------------------------------
def write_save_data(file)
savequest(file)
Marshal.dump($quests, file)
end

alias loadquest read_save_data
#--------------------------------------------------------------------------
# * Read Save Data
# file : file object for reading (opened)
#--------------------------------------------------------------------------
def read_save_data(file)
loadquest(file)
$quests = Marshal.load(file)
end
end
première partie
Spoiler:
## All this does is make the quest menu be accessible from the menu, you ##
## have to use this ##

#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# This class performs the menu screen processing.
#==============================================================================
class Scene_Menu < Scene_Base

#--------------------------------------------------------------------------
# * Create Command Window
#--------------------------------------------------------------------------
def create_command_window
s1 = Vocab::item
s2 = Vocab::skill
s3 = Vocab::equip
s4 = Vocab::status
s5 = QUEST_CONFIG::MENUNAME
s6 = Vocab::save
s7 = Vocab::game_end
@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(5, false) # Disable save
end
end

#--------------------------------------------------------------------------
# * Update Command Selection
#--------------------------------------------------------------------------
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 == save_index
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 # Quetes
$scene = Scene_Quest.new
when 5 # Save
$scene = Scene_File.new(true, false, false)
when 6 # End Game
$scene = Scene_End.new
end
end
end
end
deuxième partie.
donc il marchait très bien j'usquau jour ou il me mit un message d'érreur (qu'il me met à chaque fois sinon c'est pas drôle) que voici:
SyntaxeError occurred while running script

Voila ce que je met pour la quette:
Spoiler:
$quests['Lessivé'] = Quest.new(
['Corvée de nettoyage'],
['Trouver de l'eau en ville',
'Retourner voir le soldat'])
Si quelqu’un peut me dire ce qu'il ne va pas se serait cool merci.


Dernière édition par Byakuya le Ven 18 Fév 2011 - 22:59, édité 2 fois
avatar
Elisa'
Administrateur

Nombre de messages : 2923
Age : 20
Localisation : Par là-bas !
Distinction : Mon héritière que je chéris
[Coco' Smile]
Plus que 2 ans avant d'épouser Coco' ! Compte à rebours lancé !
[Auto-distinction]

Adepte du "Je le savais" alors qu'elle le savait pas.
Date d'inscription : 30/05/2009

Re: problème script de quette [résolu]

le Ven 18 Fév 2011 - 21:33
Tu es sûr qu'il y a un crochet après "corvée de nettoyage" ?

_________________


Cliquez ici pour voter pour la commu'
avatar
Byakuya
Membre

Nombre de messages : 156
Age : 23
Localisation : Où tu ne cherchera pas
Distinction : aucune
Date d'inscription : 04/03/2009

Re: problème script de quette [résolu]

le Ven 18 Fév 2011 - 22:32
eh bien j'ai pris exactement la même presentation que dans le script le plus etrange c'est que cette quette-ci marche:
Spoiler:
$quests['Premiers pas'] = Quest.new(
['Initiation aux quettes'],
['Aller prendre une quette',
'Retourner voir la fille'])
en fait j'ai pris cette quette et j'ai juste changé dans les '' (mais le pire c'est qu'il y à une semaine sa marchait Sad )
avatar
TheGadouify
Membre

Nombre de messages : 100
Age : 21
Localisation : A la buvette.
Distinction : aucune
Date d'inscription : 20/08/2009

Re: problème script de quette [résolu]

le Ven 18 Fév 2011 - 22:46
OK, j'ai compris le problème : à la ligne :
Code:
['Trouver de l'eau en ville',
Dans ton énoncé, il y a une apostrophe : l'eau
Ce qui fait que le script va considérer que c'est à cet endroit que la tâche se finit, du coup, il considère tout ce qui suit comme une erreur.
Pour corriger ça, au lieu d'encadrer la tâche par des apostrophes :
Code:
['Trouver de l'eau en ville',
, il faut les encadrer par des guillemets :
Code:
["Trouver de l'eau en ville",
. Et normalement ça marche.

PS : Quête, pas quette x)
avatar
Byakuya
Membre

Nombre de messages : 156
Age : 23
Localisation : Où tu ne cherchera pas
Distinction : aucune
Date d'inscription : 04/03/2009

Re: problème script de quette [résolu]

le Ven 18 Fév 2011 - 22:54
ok je test et j'édite
EDIT: super ça marche. Merci beaucoup parce que j'en avait vraiment besoin de ce script (bon aller je met mon premier résolu quelle émotion)
Contenu sponsorisé

Re: problème script de quette [résolu]

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum