08-02-2010, 01:00 PM
(Modification du message : 08-02-2010, 01:22 PM par NicoMSEvent.)
@Ter Rowan -> j'ai mon "masque" dans une table (genre : 0,0 représente la case ou le personnage est, -1,0 une case a coté, 0,+1 une case en dessous, etc...)
je fais une jointure comme ceci :
Pour mes index, je n'en ai un que sur la coordonnée X de ma table "monde" (meilleur rapport performance/taille de la DB, j'ai fait plein de tests dessus, et je suis arrivé a cette conclusion étant donné que ma table contient plus de 500.000 lignes)
je fais une jointure comme ceci :
Code :
$req_constr_plt='SELECT m.id '.
'FROM monde m '. //les cases seront prises de cette table
'JOIN mask_perso_view mpv ON 1=1 '. //La table de masque (je prends tout le masque -> 30 cases)
'JOIN monde m_ori ON m_ori.id=\'%s\' '. //la case ou mon perso se trouve (je reprends les coordonnées en X et Y)
'WHERE m.x=m_ori.x+mpv.x AND m.y=m_ori.y+mpv.y;'; --j'applique le masque a partir de la position de mon perso, sur la table contenant mon monde
Je signale que je ne détiens pas la vérité unique et absolue, je peux me tromper. La critique peut aussi être constructive. Critiquez moi!
La quête d'Ewilan
http://easy2hack.ma-soiree.be
La quête d'Ewilan
http://easy2hack.ma-soiree.be