Publicité
+ Répondre à la discussion
Page 1 sur 3 123 DernièreDernière
Affichage des résultats 1 à 20 sur 41
  1. #1
    Membre du Club Avatar de Sytten
    Homme Profil pro Émile
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Nom : Homme Émile
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 70
    Points : 50
    Points
    50

    Par défaut MineDeeper, un jeu de creusage

    Bonjour,

    Voici mon tout premier jeu!

    Dans MineDeeper vous contrôlez un petit robot foreur qui doit creuser une planète inconnue afin de trouver 3 artéfacts qui pourraient prouver qu'il y a eu présence de vie extraterrestre sur cette planète. En creusant vous devez aussi récolter des minerais que vous pouvez(devez) vendre afin de pouvoir acheter du carburant pour votre robot et des améliorations (du genre un plus grand réservoir de carburant). Lorsque vous n'avez plus de carburant ou que vous n'avez plus de vie, vous explosez et devez recommencer.

    Pourquoi faire ce jeu?
    C'est un projet pour l'école (je suis en 5e secondaire au Québec pour ceux que ça intéresse): on doit faire un projet de minimum 40h et j'ai décidé de faire un jeu afin d'améliorer mes connaissances, car je dois dire que je suis débutant...

    Bibliothèques et outils
    Le jeu sera codé en c++ à l'aide de la SFML, peut-être que je modifierai le jeu afin de pouvoir utiliser également la SDL, mais ça restera à voir en fonction du temps que j'aurai. Je développe avec CodeBlocks et je ne sais pas encore si je ferai une documentation puisque le projet est relativement petit.

    Autres informations
    Le code est ouvert complètement, sous licence GPL et sera disponible sur Github.

    Premières Idées
    Je suis pas mal perdu faut dire, donc je suis pleinement ouvert aux idées
    En me basant sur certains autres jeux (Merci LittleWhite) je crois que j'aurai les classes suivantes:
    -Window (ouvrir ma fenêtre)
    -Caméra (puisque le monde sera plus grand que ce la taille de la plupart des écrans on doit donc déplacer la vue)
    -Sprite (pour gérer mon robot)

    -Map (pour d'abord charger une map et plus tard générer une map aléatoire, gèrera aussi les collisions avec le décors)
    -Tile (classe qui défini les caractéristiques des tuiles, une instance sera crée pour chaque tuile différente et elles seront conservées dans la classe Map)

    -ImageManager (pour charger les images en mémoire)
    -SoundManager (pour charger les sons en mémoire)

    Donc voilà, comme je l'ai dit plus tôt, je vous encourage à me donner vos suggestions dont j'ai grandement besoin (j'ai aussi besoin de ressources sur le tiles mapping, le scrolling, etc. si vous souhaitez m'aider encore plus )

    Cordialement,
    Sytten

    P.S.: J'aimerais savoir si je devrais suivre ce tutoriel...

    EDIT 1: Ajout des classes Collisions et Artifacts, suppression des classes ImageManager et SoundManager (conseil de Emmanuel Deloget).

  2. #2
    Membre habitué
    Inscrit en
    octobre 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 132
    Points : 138
    Points
    138

    Par défaut

    Beau projet.

    Les 40h tu va les dépasser largement selon moi.

    Mes conseils si jamais ça peut aider :

    - Tu peux séparer ta Map en deux parties. Une partie graphique et une partie physique (pour les collisions). Ça t'éviteras de tout confondre quand tu devra gérer la caméra et les collisions.
    - Il va te manquer une classe pour la gestion de tes artefacts. Savoir par exemple combien tu en possèdes à l'instant x.
    - Il te manque aussi une classe pour l'interface utilisateur pour te permettre de savoir sur quelle touche appui le joueur.


    Sinon le principe est sympa. Je vais suivre le cours de ce périple.

  3. #3
    Membre du Club Avatar de Sytten
    Homme Profil pro Émile
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Nom : Homme Émile
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 70
    Points : 50
    Points
    50

    Par défaut

    Citation Envoyé par Fax37 Voir le message
    Beau projet.

    Les 40h tu va les dépasser largement selon moi.
    Merci, oui ça je commençais à le savoir

    Citation Envoyé par Fax37 Voir le message
    Mes conseils si jamais ça peut aider :

    - Tu peux séparer ta Map en deux parties. Une partie graphique et une partie physique (pour les collisions). Ça t'éviteras de tout confondre quand tu devra gérer la caméra et les collisions.
    - Il va te manquer une classe pour la gestion de tes artefacts. Savoir par exemple combien tu en possèdes à l'instant x.
    - Il te manque aussi une classe pour l'interface utilisateur pour te permettre de savoir sur quelle touche appui le joueur.

    Pour les deux première classes je suis entièrement d'accord et je prend tout ça en note, pour l'autre j'ai le choix de faire ma boucle de jeu dans le main et d'utiliser les fonctions des objets direct à l'intérieur ou de passé par un objet... selon toi le mieux serait sûrement de passer par un objet non? pourtant je n'arrive pas saisir ce que ça m'apporte de plus sinon que je crée une seule instance qui contiendra tout mes autres instances...

    Merci de ton intérêt, je vais faire de mon mieux pour poster mes updates de façon régulière.

    EDIT: Voir message plus bas, il faut que je choisisse le type que je vais utiliser, à voir...

    Cordialement,
    Sytten

  4. #4
    Expert Confirmé Sénior

    Avatar de germinolegrand
    Homme Profil pro Germino Legrand
    Développeur de jeux vidéo
    Inscrit en
    octobre 2010
    Messages
    731
    Détails du profil
    Informations personnelles :
    Nom : Homme Germino Legrand
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : octobre 2010
    Messages : 731
    Points : 4 115
    Points
    4 115

    Par défaut

    [germinolegrand]: y'a 3 façons de faire un draw : window.draw(object); draw(window, object); object.drawTo(window);
    Choisis un travail que tu aimes et tu n'auras pas à travailler un seul jour de ta vie.

    N'oubliez pas de marquer votre sujet comme et de mettre des aux messages apportant un plus à votre discussion.

    Si vous souhaitez participer à la rubrique C++, ne me contactez plus !

  5. #5
    Membre habitué
    Inscrit en
    octobre 2009
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 132
    Points : 138
    Points
    138

    Par défaut

    Le fait de diviser ton code en classes te permet de mieux séparer tes fonctions et de rendre ton code plus lisible.
    Tu pourrais tout à fait tout mettre directement dans ton Main...mais c'est déconseillé car peu lisible.
    Créer une classe pour les interactions avec clavier/souris te permettra de les gérer "séparément" de ta classe Main.

    Ce n'est que mon avis perso.

  6. #6
    Membre du Club Avatar de Sytten
    Homme Profil pro Émile
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Nom : Homme Émile
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 70
    Points : 50
    Points
    50

    Par défaut

    Oui certainement, je vais y réfléchir, parce que si j'enlève cette partie du main, il me reste une fonction dans mon main

    J'ai fais la toute première version qui ne fait qu'afficher une map fixe, je m'attaque maintenant aux déplacements basiques d'un sprite...
    J'utilise des carrés de couleur, car mon ami n'a pas encore fini de faire les vrais sprites...

    Je commence aussi à penser à une bande sonore pour le jeu, mais comme l'ambiance n'est pas encore bien cernée je préfère attendre un peu...

    EDIT : J'ai pas mal remanié mon début de code avec germinolegrand, c'est bien meilleur niveau structure. Demain je m'attaque aux mouvements avec CharacterMover...

  7. #7
    Expert Confirmé Sénior


    Homme Profil pro Denis
    Étudiant
    Inscrit en
    décembre 2011
    Messages
    5 005
    Détails du profil
    Informations personnelles :
    Nom : Homme Denis
    Âge : 21
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2011
    Messages : 5 005
    Points : 14 903
    Points
    14 903

    Par défaut

    Bonjour,
    Citation Envoyé par Fax37 Voir le message
    Créer une classe pour les interactions avec clavier/souris te permettra de les gérer "séparément" de ta classe Main.
    Son projet est en C++ pas en Java (?), il n'a pas de classe Main mais une fonction main.

    @Sytten : pense aussi à documenter ton code (au moins doxygen et si possible diagrammes de classes ) si tu souhaites que des personnes externes à ton projet puisse apporter leur contribution (remarques sur le code, corrections de bugs, ajout de fonctionnalité) ou si tu souhaiteras recruter par la suite (je suppose qu'une fois le devoir rendu/présenté, tu continueras ?).

  8. #8
    Membre du Club Avatar de Sytten
    Homme Profil pro Émile
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Nom : Homme Émile
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 70
    Points : 50
    Points
    50

    Par défaut

    Citation Envoyé par Neckara Voir le message
    @Sytten : pense aussi à documenter ton code (au moins doxygen et si possible diagrammes de classes ) si tu souhaites que des personnes externes à ton projet puisse apporter leur contribution (remarques sur le code, corrections de bugs, ajout de fonctionnalité) ou si tu souhaiteras recruter par la suite (je suppose qu'une fois le devoir rendu/présenté, tu continueras ?).
    Humm, je vais faire quelques recherches, je ne connais pas doxygen et pour un diagramme faudrait que j'apprenne à en faire, mais je vais essayer. ¨ca serait en effet une bonne idée

    Oui c'est certain que je vais continuer, j'apprend énormément avec ce projet même en faisant la base

  9. #9
    Membre du Club Avatar de Sytten
    Homme Profil pro Émile
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Nom : Homme Émile
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 70
    Points : 50
    Points
    50

    Par défaut

    Bon nouvelle mise à jour, j,ai enfin eu le temps d'ajouter les mouvements de base...
    Encore aucune gestion des collisions pour l'instant, je vais commencer demain à en faire une.
    Le jeu est fluide, mais consomme beaucoup de ressources du processeur, donc j'aimerais trouver une façon de réduire ça.
    Le est disponible sur github si vous voulez aller y jeter un coup d’œil.

    Cordialement,
    Sytten

  10. #10
    Membre du Club Avatar de Sytten
    Homme Profil pro Émile
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Nom : Homme Émile
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 70
    Points : 50
    Points
    50

    Par défaut

    Bonjour!

    Nouvelle version encore, le principal ajout est un menu de base lorsque l'on ouvre le jeu. J'ai aussi modifié ma structure pour mettre ma boucle principale dans ma classe Game, ainsi mon main est très petit. Ça me facilite la vie puisque je n'ai pas à faire des accesseurs pour mes objets.

    J'aimerais avoir vos avis sur mon jeu jusqu'à maintenant, donc je vais vous résumez en gros comment il fonctionne:

    main : très simple, on définit les constantes de mon jeu (je vais peut-être les mettre dans un fichier à part plus tard), on crée un objet game et on commence le jeu.

    Game : dans le constructeur on crée les objets nécessaires au fonctionnement du jeu et on les supprime dans le destructeur. La fonction start regarde d'abord si on n'est pas déjà en train de jouer, si non, elle crée la fenêtre, la map (futur génération aléatoire) et fixe l'état du jeu à showingMenu. Ensuite on entre dans la boucle de jeu, selon l'état du jeu soit on affiche le menu (et on attend un click du joueur) ou on joue au jeu. Je vais rajouter très bientôt aussi Paused pour mettre mon jeu en pause. Quand on joue, si le joueur enfonce aswd ou une flèche, on le dit à CharacterMover qui va se charger de faire bouger notre personnage. Même chose quand aswd ou une flèche est relâchée. Ensuite, on regarde le temps entre la dernière fois qu'on a bougé le personne et si c'est plus grand que 6 millisecondes, on bouge le personnage. Ensuite j'ai fait une fonction draw qui me permet de dessiner tous les objets de ma fenêtre facilement (les fonctions draw sont amis des classes qu'elles dessinent).

    MainMenu : dans le constructeur on charge l'image qui sera affichée et on crée les rectangles dans lesquels le joueur peut cliquer. On les met dans une list pour pouvoir facilement y avoir accès plus tard. HandleClick permet de déterminer si le click du joueur est dans un des rectangles, si oui il retourne l'action de ce rectangle.

    Character : Ma classe character contient pour l'instant seulement la texture du personnage, sa position (à changer pour un rect plus tard) et sa vitesse.

    CharacterMover : Cette classe reçoit les changements dans les directions (ajout ou suppression), elle contient également une fonction move amie de ma classe Character qui va changer la position du personnage.

    Map : Dans le constructeur on charge les textures (qui vont être changé en un tileset plus tard). La fonction create crée la map (ensemble de 0 et 1 dans un vector), mais plus tard c'est dans cette fonction que je génèrerai une map aléatoire.

    Draw : Ensemble de fonctions amies des classes qu'elles dessinent, je trouve cela plus pratique que d'avoir une fonction draw dans chacune de mes classes (et ça respecte plus le principe de responsabilité unique). Quand je dessine ma map, pour l'instant je parcours mon vector et je dessine du ciel quand je vois un 0 et de la terre quand je vois un 1. Avec l'ajout de la caméra cette fonction va changer.

    Je crois que j'ai tout dit, vos questions/commentaires/avis me sont très utiles

    Cordialement,
    Sytten

  11. #11
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    septembre 2009
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2009
    Messages : 538
    Points : 418
    Points
    418

    Par défaut

    Va falloir apprendre à implémenter un Finite State Machine si tu veux avancer sans tout refaire plus tard... j'ose meme pas mettre les mains dans ton gameLoop...

  12. #12
    Membre du Club Avatar de Sytten
    Homme Profil pro Émile
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Nom : Homme Émile
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 70
    Points : 50
    Points
    50

    Par défaut

    Je suis pas certain de savoir qu'est-ce qu'une finite state machine et en quoi ça va pouvoir m'aider...

    Je vais donc devoir fractionner ma boucle pour qu'elle soit plus simple à comprendre... en ajoutant showMenu() et en faisant des fonctions intermédiaires pour tester les touches pressées et ou relâchées ça devrait être plus clair et simple déjà.

  13. #13
    Expert Confirmé Sénior

    Avatar de germinolegrand
    Homme Profil pro Germino Legrand
    Développeur de jeux vidéo
    Inscrit en
    octobre 2010
    Messages
    731
    Détails du profil
    Informations personnelles :
    Nom : Homme Germino Legrand
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : octobre 2010
    Messages : 731
    Points : 4 115
    Points
    4 115

    Par défaut

    @lagswag: sans blague faudrait peut-être prendre le temps de lire la fonction en question avant de la critiquer non ? Sa gameLoop est très évolutive, il peut en mettre quand il veut un morceau dans une fonction indépendante.

    Faudrait pas me dire que ça c'est pas clair comme code (c'est la partie intéressante de cette fonction :
    Code :
    1
    2
    3
    4
     
    m_mainWindow.clear();
    draw(m_mainWindow, *this);
    m_mainWindow.display();
    Choisis un travail que tu aimes et tu n'auras pas à travailler un seul jour de ta vie.

    N'oubliez pas de marquer votre sujet comme et de mettre des aux messages apportant un plus à votre discussion.

    Si vous souhaitez participer à la rubrique C++, ne me contactez plus !

  14. #14
    Membre du Club Avatar de Sytten
    Homme Profil pro Émile
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Nom : Homme Émile
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 70
    Points : 50
    Points
    50

    Par défaut

    Bonjour, désolé de ne pas avoir poster avant, je n'ai pas eu beaucoup de temps à moi cette semaine...

    J'ai fait quelques petites modifications, je vais commit le code demain puisque je vais faire un plus grand ajout que je veux faire depuis un bout de temps (collisions).

    Déjà avec des sprites qui sont de plus en plus ce à quoi je m'attend à avoir dans mon jeu final ça rend mieux.

    J'ai décidé de ne pas perdre mon temps à faire une documentation Doxygene puisque je ne réutiliserai probablement jamais ce code (je suis pas rendu au stade d'écrire du code réutilisable). Par contre, je vais faire un schéma de mes classes et de leurs interactions (en gros) sans que ça soit de l'UML (pas le temps de l'apprendre, peut-être après la remise de ce projet). Vous pourrez ainsi mieux visualiser mon jeu et les possibilités qui offrira (et vous serez plus en mesure de m'aide aussi si je suis bloqué^^)

    Cordialement,

    Sytten

  15. #15
    Responsable 2D/3D/Jeux

    Avatar de LittleWhite
    Homme Profil pro Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    16 724
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Laurent
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 16 724
    Points : 86 232
    Points
    86 232

    Par défaut

    Bonjour,

    Pourtant, il faut apprendre à écrire la documentation au plus tot. Si possible, tout en programmant (et quelque fois, même avant d'écrire la fonction ...).
    Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  16. #16
    Expert Confirmé Sénior

    Avatar de germinolegrand
    Homme Profil pro Germino Legrand
    Développeur de jeux vidéo
    Inscrit en
    octobre 2010
    Messages
    731
    Détails du profil
    Informations personnelles :
    Nom : Homme Germino Legrand
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : octobre 2010
    Messages : 731
    Points : 4 115
    Points
    4 115

    Par défaut

    Le plus important dans une documentation, c'est une nomenclature précise.
    Choisis un travail que tu aimes et tu n'auras pas à travailler un seul jour de ta vie.

    N'oubliez pas de marquer votre sujet comme et de mettre des aux messages apportant un plus à votre discussion.

    Si vous souhaitez participer à la rubrique C++, ne me contactez plus !

  17. #17
    Membre Expert Avatar de Djakisback
    Inscrit en
    février 2005
    Messages
    1 974
    Détails du profil
    Informations forums :
    Inscription : février 2005
    Messages : 1 974
    Points : 2 106
    Points
    2 106

    Par défaut

    Salut,
    bravo pour ton projet ça a l'air sympa et le résultat m'intéresse ^^
    Un mot pour plussoyer lagwag, tu pourrais/devrais jeter un coup d'oeil du côté des state pattern, perso je trouve que ça simplifie pas mal le truc ; dur de s'en passer une fois utilisés, à tester/connaître en tout cas
    Vive les roues en pierre

  18. #18
    Membre du Club Avatar de Sytten
    Homme Profil pro Émile
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Nom : Homme Émile
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 70
    Points : 50
    Points
    50

    Par défaut

    Bonjour,

    @Djakisback merci pour le résultat ça risque de pas être tout de suite, j'avance à pas de tortues comme je suis débutant et j'essaye différentes techniques (juste pour ajouter mes collisions, j'ai essayé 2 méthodes différentes avant d'arriver à celle que j'utilise). Je vais aller jeter un coup d’œil, mais j'aime beaucoup la façon dont j'ai fait ça. C'est super simple et ça me permet d'ajouter tous les menus que je veux très facilement.

    Donc voilà nouvelle update, voici les changements:
    -Map se nomme maintenant TilesMap pour éviter les confusions
    -Les collisions sont maintenant parfaitement gérées
    -Le véhicule a une vélocité
    -Suppression des pointers (remplacés par des références)
    -Utilisation d'un tileset pour les tiles de mon jeu à la place d'images distinctes
    -Les tiles sont reliées à des structures qui contiennent leurs propriétés (pour l'instant seulement un rectangle pour spécifier où aller chercher la texture dans le tileset et un booléen pour indiquer si on peut passer par dessus)

    Finalement, je vais faire une documentation, mais pas tout de suite puisque je change trop mon code (et c'est pas parce que je sais pas où je m'en vais, c'est juste que je veux avoir des versions jouables donc parfois j'écris du code que je sais que je vais changer. C'est contre-productif, mais moi ça me motive de voir que ça fonctionne ce que je fais...)

    Cordialement,
    Sytten

  19. #19
    Membre du Club Avatar de Sytten
    Homme Profil pro Émile
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Nom : Homme Émile
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 70
    Points : 50
    Points
    50

    Par défaut

    Bonjour,

    Voilà un peu petit bout de temps que je n'ai pas posté...
    Entre temps, j'ai fait les diagrammes UML des classes de mon jeu.

    Encore une fois, j'aimerais vous dire que vos commentaires me sont très utiles.
    Merci,
    Sytten

    P.S.: Les diagrammes sont en pièces jointes...
    Images attachées Images attachées

  20. #20
    Membre du Club Avatar de Sytten
    Homme Profil pro Émile
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Nom : Homme Émile
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 70
    Points : 50
    Points
    50

    Par défaut

    Voici la suite...

    (max de 5 par message...)
    Images attachées Images attachées

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •