Pis non j'efface pas par entry ... car tu peut avoir 3 même npc mais pas au même endroit [/quote]
D'ou justement l'utilisation de l'option LIMIT qui efface le nombre d'enregistrement que tu désires. Exemple LIMIT 1 effacera un seul enregistrement.
Et si justement tu as plus de 2 entrées, tu utilises justement la deuxième requête c'est a dire :
DELETE FROM creature_spawns WHERE entry = iddunpc AND position_x BETWEEN valeura valeurb ; -> cette requête s'applique que pour les NPCs devant être spawné qu'une seule fois sur toute la map. C'est le cas de beuacoup de vendeurs par exemple.
Cependant, et la tu as raison, il faut au moins laisser une entrée, et ceux dans tout les cas. Comme tu ne sais pas par avance, le nombre d'enregistrement en doublons, il te faut utiliser une variable incrémentielle. Le principe est simple. A chaque qu'un enregistrement, si un doublon est trouvé, la valeur 1 est ajouté à la variable qu'on appellera i, et dont sa valeur est égal à 1 par défaut. Ainsi, si il trouve trois enregistrements sur la même position, la valeur de i sera égale à 3.
Pour effacer les enregistrement en doublon, il te suffira d'appliquer la requête suivante
DELETE FROM creature_spawns WHERE entry = iddunpc LIMIT i-1 ;Le même principe est a utilisé pour la deuxième requête.
En conclusion,
Effacer par entry est le seul moyen pour que ton patch soit universel.
