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

Titre: Récupèrer l'heure
Posté 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..

               
Code: (pawn) [Sélectionner]
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..
Titre: Re : Récupèrer l'heure
Posté par: Syg le 04 Juin 2011, 15:36:15
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