Bonjour,
Suite à une discussion sur le chan #webgames sur la façon d'implémenter un système de conditions à remplir pour valider une quête, voici la solution qui a été retenue.
N'hésitez pas à partager votre avis sur la méthode
La (bon ok, Ma) principale question était surtout: De quelle façon structurer les tables relatives aux quêtes.
Il s'est avéré que la division du système de quête en 3 tables semblait être la meilleure solution (encore une fois, donnez votre avis):
-Une table "quest":
regroupant les infos de la quête (description, titre, etc ...)
-une table "objectives" lié à la table "quest":
qui regroupe les différents objectifs de la quête.
Chaque type d'objectif représente une colonne dans cette table (monstreATuer, ObjetAPosseder, ...)
-une table "progressions" liée à la table quest et objectives:
Stocke la progression du joueur par rapport aux différents objectifs de la quête. Une entrée dans la table correspondra donc à une entrée dans la table "objectives" qui correspond elle à une entrée dans la table "quest".
Exemple de tables:
Suite à une discussion sur le chan #webgames sur la façon d'implémenter un système de conditions à remplir pour valider une quête, voici la solution qui a été retenue.
N'hésitez pas à partager votre avis sur la méthode
La (bon ok, Ma) principale question était surtout: De quelle façon structurer les tables relatives aux quêtes.
Il s'est avéré que la division du système de quête en 3 tables semblait être la meilleure solution (encore une fois, donnez votre avis):
-Une table "quest":
regroupant les infos de la quête (description, titre, etc ...)
-une table "objectives" lié à la table "quest":
qui regroupe les différents objectifs de la quête.
Chaque type d'objectif représente une colonne dans cette table (monstreATuer, ObjetAPosseder, ...)
-une table "progressions" liée à la table quest et objectives:
Stocke la progression du joueur par rapport aux différents objectifs de la quête. Une entrée dans la table correspondra donc à une entrée dans la table "objectives" qui correspond elle à une entrée dans la table "quest".
Exemple de tables:
Code PHP :
<?php
quest:
id
titre
description
objectives:
id
quest_id
type
id_monstre_a_tuer
nombre_monstre_a_tuer
id_objet_a_posseder
nombre_objets_a_posseder
niveau_requis
progressions:
objective_id // fait référence à une entrée dans la table 'objectives'
user_id //fait référence à un membre
count //compte la progression .ex: "5" (sur 10 monstres à tuer)
accompli // booléen. si cet objectif est rempli ou non
Voilà
Désolé si pour certains ce topic n'a pas lieu d'être. On ne sait jamais, peut-être existe-t-il des gens qui se posent les même questions stupides que moi :ninga:
Merci à Sephi-Chan, _who et Anthor (pour être passé (h)) pour vos conseils