27-05-2009, 03:42 PM
Je peux te proposer une solution purement SQL si tu veux.
Il te faut créer une nouvelle table :
et les besoins des PNJ seront stockés dans la table suivante :
En gros la table "besoin" va te contenir par race et par besoin 100 lignes correspondant chacune aux résultats de chaque tirage possible.
Donc tu as recensé 4 races et 6 besoins avec 100 valeurs possibles de tirage ce qui te donne une table avec 2400 lignes au total (4x6x100)
Pour connaître la valeur d'un tirage aléatoire d'un besoin d'une race, il suffit d'exécuter la requête :
Et pour mettre le tout à jour, tu as besoin d'une seule requête :
Il te faut créer une nouvelle table :
Code :
besoin
=====================
race_id
besoin_id
tirage
valeur
et les besoins des PNJ seront stockés dans la table suivante :
Code :
besoin_pnj
======================
pnj_id
race_id
besoin_id
valeur
En gros la table "besoin" va te contenir par race et par besoin 100 lignes correspondant chacune aux résultats de chaque tirage possible.
Donc tu as recensé 4 races et 6 besoins avec 100 valeurs possibles de tirage ce qui te donne une table avec 2400 lignes au total (4x6x100)
Pour connaître la valeur d'un tirage aléatoire d'un besoin d'une race, il suffit d'exécuter la requête :
Code :
select valeur from besoin where race_id=<race> and besoin_id=<besoin> order by rand() limit 1
Et pour mettre le tout à jour, tu as besoin d'une seule requête :
Code :
update besoin_pnj a set a.valeur = a.valeur+(select b.valeur from besoin b where b.race_id=a.race_id and b.besoin_id=a.besoin_id order by rand() limit 1)