Système d'objectifs à remplir pour les quêtes - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Système d'objectifs à remplir pour les quêtes (/showthread.php?tid=4861) |
RE: Système d'objectifs à remplir pour les quêtes - Sôbi - 15-04-2016 Bonjour, Désolé de ressortir un peu ce sujet. Mais je suis intéressé par le principe et je vais vouloir faire un principe de progression de quête dans mon jeu. Si je reprends l'exemple de Sephi-Cahn Code : quests : 1. Veuillez m'excuser de mon anglais pourris, mais où veux-tu/veut-il en venir en disant "building_to_own_building_type_id" ? 2. Ou veux-tu/veut-il en venir en disant "Type" dans quest également ? 3. Si je comprend bien je vais avoir une quête qui me demande de tuer : 5 loups et 5 poules. J'aurais donc : Code : quests : 4. Et si je veux que la quête te donne une arme/objet/level up à la fin de celle-ci, comment feriez-vous ? Merci d'avance ! RE: Système d'objectifs à remplir pour les quêtes - Thêta Tau Tau - 15-04-2016 1. "building_to_own" = bâtiment à avoir, "building_type_id" : id du type de bâtiment (il le précise pour que ce soit clair que ce n'est pas une id d'instance de bâtiment qu'on doit mettre ici). 2.Je suppose que "type" c'est type d'objectif, par exemple "monster_to_kill". Cette colonne ne me semble pas indispensable, mais peut être que ça simplifie les requête. 3. Oui c'est ça. 4.Il faut ajoutter une table, dans le même style que la table objectives, par exemple : rewards : id, quest_id, type, xp, gold, item_id, item_count... RE: Système d'objectifs à remplir pour les quêtes - Sôbi - 15-04-2016 (15-04-2016, 03:21 PM)Thêta Tau Tau a écrit : 1. "building_to_own" = bâtiment à avoir, "building_type_id" : id du type de bâtiment (il le précise pour que ce soit clair que ce n'est pas une id d'instance de bâtiment qu'on doit mettre ici). Et bien je te remercie pour cette réponse claire et rapide. Ça va m'avancer dans mes réflexions Edit : Youhou \o/ 100ième message RE: Système d'objectifs à remplir pour les quêtes - Sôbi - 24-06-2016 Bonjour, Désolé pour ce double post, ça vaut le coup pour moi là Si je reprends ceci : Code : quests : Maintenant ma question : Je veux faire des quêtes sous forme d'étape et les étapes sont une liste d'objectifs, comment feriez-vous vous ? Exemple : Quêtes de découvertes. Etape 1 à 2 objectifs : - Tuer 5 loups - Tuer 5 poules Etape 2 à 1 objectif : - Parler à quelqu'un ... Etc... J'imaginais moi du coup ceci: Quests <--> Steps <--> Objectives <--> Progressions ==> Mais je me demande comment faire la jointure des 4 quetes Egalement, si je veux savoir la progression de la quête de base, il faudrait que j'ai une table genre "progession_quest" pour dire si la quête est fini ou en cours, etc ... ? Not Idea ? RE: Système d'objectifs à remplir pour les quêtes - Xenos - 24-06-2016 Salut, Une table "quest" comme indiquée Une table "quest_step (id, id_quest, step_index, fullfilled [bool])" + foreign key id_quest -> quest.id et primary key [auto_increment] (id_quest, step_index) pour pouvoir ordonner les étapes de quêtes et fullfilled histoire de savoir où on en est (je n'ai pas mis de contrainte sur l'ordre des fullfill, on peut faire des "trous" donc: charge à ton système d'insert/update dans la BDD de faire les checks si tu veux, ou charge à toi de poser le TRIGGER adéquate) N tables d'objectifs, un par type (quest_objective_kill, quest_objective_find,...) car je suis contre les tables hyper-génériques avec des paquets de colonnes à NULL. Chacune de ces tables peut alors avoir une foreign key quest_objective_*.id_quest_step -> quest_step.id. Charge à toi là encore de voir si deux tables quest_objective_* peuvent référence le même quest_step (mais ce serait étrange), ou s'il te faut mettre des checks pour éviter cela. Perso, je ne ferai pas de "progression" qui traine: je pense qu'il vaut mieux avoir 6 entrées dans "quest_objective_kill" pour tuer 1 sanglier, puis 1 autre, puis 1 autre etc plutôt que des objectifs qui se remplissent partiellement (et charge à ton affichage de faire le grouping). Après, tu peux mettre du progress avec une colonne "objective_total_count" et "objective_achieved_count" dabs quest_step: le total indique combien de fois cet objectif (donné par le quest_objective_* correspondant) doit être rempli, et le achieved_count indique le nombre de fois où cet objectif a été rempli. Les deux structures se valent, mais j'aime mieux la 1ere car elle limite les types de données à traiter. |