08-09-2007, 02:35 PM
Je te propose d'utiliser trois tables : Pnj, Objets, Pnj_objet.
Dans la table Pnj, tu stockes tes Pnj, qu'ils soient vendeurs, donneurs de quêtes, ou que sais-je d'autre.
Dans la table Objets, tu places tous les objets de ton jeu.
Dans la table Pnj_objet, tu crées les liens entre les pnj et les objets qu'ils proposent. Tu peux également définir le coût auquel le Pnj vend ledit objet.
Exemple d'entrée de table Pnj_objet :
PO_id_pnj, PO_id_objet, PO_prix
4, 27, 1000
4, 38, 20
8, 13, 81
62, 13, 90
Cela signifie (que tu vives ta vie, sans aucun souci, philosophie, akuna matata !) que le Pnj d'id 4 vend l'objet d'id 27 à 1000€ (selon ton unité monétaire), mais qu'il vend aussi l'objet d'id 38 à 20€. Le Pnj d'id 8 vend l'objet d'id 13 pour 81€ (seulement !) alors que l'un de ses confrère vendeur propose ce même objet (d'id 13) à 90€.
Cela te permet même de faire des stock limités, en ajoutant un champ indiquant la quantité actuelle et un champ quantité maximale, voir même un champ qui précise le temps de réapprovisionnement dudit objet.
Voila ce que je ferais (et que je fais déjà actuellement en fait).
Sephi-Chan
Dans la table Pnj, tu stockes tes Pnj, qu'ils soient vendeurs, donneurs de quêtes, ou que sais-je d'autre.
Dans la table Objets, tu places tous les objets de ton jeu.
Dans la table Pnj_objet, tu crées les liens entre les pnj et les objets qu'ils proposent. Tu peux également définir le coût auquel le Pnj vend ledit objet.
Exemple d'entrée de table Pnj_objet :
PO_id_pnj, PO_id_objet, PO_prix
4, 27, 1000
4, 38, 20
8, 13, 81
62, 13, 90
Cela signifie (que tu vives ta vie, sans aucun souci, philosophie, akuna matata !) que le Pnj d'id 4 vend l'objet d'id 27 à 1000€ (selon ton unité monétaire), mais qu'il vend aussi l'objet d'id 38 à 20€. Le Pnj d'id 8 vend l'objet d'id 13 pour 81€ (seulement !) alors que l'un de ses confrère vendeur propose ce même objet (d'id 13) à 90€.
Cela te permet même de faire des stock limités, en ajoutant un champ indiquant la quantité actuelle et un champ quantité maximale, voir même un champ qui précise le temps de réapprovisionnement dudit objet.
Voila ce que je ferais (et que je fais déjà actuellement en fait).
Sephi-Chan