En premier lieur, remplace
if((DM[playerid] = 1) && (!IsPlayerInArea(playerid,3515.041, 864.1628, 3269.805, 607.495)))par
if((DM[playerid] == 1) && (!IsPlayerInArea(playerid,3515.041, 864.1628, 3269.805, 607.495)))Double signe égal (=) dans le test.
Mais cette correction ne résoudra pas ton problème.
Explication :
Pour déterminer si un test est vérifié ou pas, chaque élément du test est remplacé par 0 ou 1 puis tous les 0 et 1 sont comparés selon les règles de logiques.
Pour ton test, (DM[playerid] = 1) est systématiquement remplacé par la valeur 1 ce qui fait que cet élément du test ne sert à rien.
Bref, revenons à nos moutons.
Cette fonction doit être appelée dans une boucle elle même contenue dans un timer (car bien évidement, si elle n'est pas appelée, elle ne fera rien).
Voici les questions qu'il faut que tu te poses :
- Lors de l'appel à cette fonction, quelle est la valeur de playerid est correcte ?
- Est-ce que la valeur de DM[playerid] a été renseignée correctement quand le joueur est entré dans le DM ?
- Est-ce que les coordonnées de la zone sont correctes et est-ce qu'elles sont placées dans le bon ordre ?
++
Syg