GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Drawkk le 03 Juin 2011, 11:23:31
-
Bonjour,
J'ai un petit soucis, je n'arrive pas à récupèrer l'heure. Je vais pas essayé de vous expliqué, je vous montre mon bout de code..
new heure;
new minute,seconde; // Je définie l'heure les minutes et les secondes
gettime(heure, minute, seconde); // je récupère le temps
if(IsPlayerInAnyVehicle(playerid)) // je vérifie si le joueur est dans un véhicule
{
new vid = GetPlayerVehicleID(playerid); // je récupère l'id du vehicule dnas lequel le joueur ce trouve
if(heure >= 20 && heure <= 8) // Si l'heure est égal et supérieur à 20h et egal ou inférieur a 8h alors
{
TextDrawShowForPlayer(playerid, Tphares); // on montre le filtre nocturne
GetVehicleParamsEx(vid,engine,phares,alarm,doors,bonnet,boot,objective); // on récupère les paramètres du véhicule
if(phares == VEHICLE_PARAMS_ON) // si les phares sont allumé
{
TextDrawHideForPlayer(playerid, Tphares); // on cache le filtre
return 1;
}
else // si ils sont éteint
{
SendClientMessage(playerid, COLOR_GREEN, "[Info:] Vous devriez allumer vos phares ! ((/phares))"); // on dit d'allumer
TextDrawShowForPlayer(playerid, Tphares); // et on applique le filtre
return 1;
}
}
else // si l'heure n'est pas entre 20h et 8h
{
TextDrawHideForPlayer(playerid, Tphares); // on cache le filtre
return 1;
}
}
Plus clairement, lorsque il est entre 20h et 8h le filtre doit se mettre en place si le joueur est dans un véhicule. Si le joueur allume ses phares, le filtre ce cache..
-
L'erreur vient de là :
if(heure >= 20 && heure <= 8)
Un nombre quelconque ne peut pas être à la fois supérieur à 20 et inférieur à 8 !! (pour des raisons évidentes de logique)
Ce test n'est donc jamais vrai et le script croit que c'est le jour en permanence.
Pour que ça fonctionne, il faut utiliser un ou dans ton test :
if(heure >= 20 || heure <= 8)
C'est à dire, si l'heure est supérieure à 20 (soir et nuit) ou inférieure à 8 (nuit et matin).
++
Syg