Premièrement, vérifie bien que ta fonction Level() est appelée quelque part dans ton script (dans un timer ou une callback par exemple).
Ensuite, la ligne
if (InfoJoueur["i"][aMoney] == 1000)
indique qu'il faut que le joueur est exactement 1000 pour monter d'un level.
De plus, si ta fonction est appelé dans un timer, le joueur montera d'un level à chaque appel si son score reste à 1000.
Le mieux serait de faire une fonction de ce genre appelée dans un timer :
public Level()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if (InfoJoueur["i"][aMoney] >= 1000)
{
InfoJoueur["i"][aLevel]++;
InfoJoueur["i"][aMoney] = 0; // Pour éviter que le joueur prenne plusieurs levels à la suite
SendClientMessage(i, WHITE, "Vous êtes monté d'un Level.");
}
}
}
Si tu ne veux pas que le joueur perde son argent, il faudra passer par un nouvelle variable (score par exemple) qui sera incrémenter en même temps que son argent mais remise à 0 lorsque le joueur change de level.
Ou alors, faire quelque chose de plus fastidieux du genre :
if (InfoJoueur["i"][aMoney] >= 1000 && InfoJoueur["i"][aMoney] < 2000)
{
InfoJoueur["i"][aLevel] = 1;
SendClientMessage(i, WHITE, "Vous êtes monté au niveau 1.");
}
else if (InfoJoueur["i"][aMoney] >= 2000 && InfoJoueur["i"][aMoney] < 3000)
{
InfoJoueur["i"][aLevel] = 2;
SendClientMessage(i, WHITE, "Vous êtes monté au niveau 2.");
}
...
++
Syg