GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ApocKalipsS le 08 Avril 2009, 22:08:22
-
Bonjour,
J'ai un warning sur ce code là :
for (new i; i<=MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i) && BusrouteWest[i][0] == 0 && BusrouteEast[i][0] == 0)
{
SetPlayerWeather(i, weathertime);
}
}
Voici le warning :
C:\Documents and Settings\desktop\Mes documents\Serveur GTA 0.2x\gamemodes\drrp.pwn(11340) : warning 219: local variable "i" shadows a variable at a preceding level
Je voudrais enlever le warning, comment faire ?
Merci de votre réponse !
-
Essaye de remplacer ' i ' par ' playerid ' juste pour voir..
-
Merci à toi ! Erreur toute bête ;)
-
Derien.. ;)
-
Essaye de remplacer ' i ' par ' playerid ' juste pour voir..
C'est la pire de conneries à ne pas faire !!!!
Ça ne fonctionnera pas.
En script, il est très rare de tomber juste en remplaçant de bouts de code "juste pour voir".
Et ce n'est pas parce qu'un bout de code se compile qu'il va faire ce qu'on veut qu'il fasse.
Quand on a une erreur ou un warning, le première chose à faire c'est de le lire.
"local variable "i" shadows a variable at a preceding level" veut dire que la variable i définie dans ton for "fait de l'ombre" à une autre variable i définie avant dans ton code. Le compilo a donc deux variables avec le même nom. Dans le cas du PAWN, il prendra la dernière que tu as déclarée.
La solution dans ton cas :
for (new j; j<=MAX_PLAYERS; j++)
{
if (IsPlayerConnected(j) && BusrouteWest[j][0] == 0 && BusrouteEast[j][0] == 0)
{
SetPlayerWeather(j, weathertime);
}
}NB : J'ai remplacé la variable i par j dans ce bout de code. Si le warning persiste avec j, remplace tous les j par k ou un autre non.
++
Syg
-
J'ai rien dit...
Syg, la prochaine fois, je poste pas xD
-
MerSyg :D