• 24 Avril 2025, 03:59:05


Auteur Sujet: Problème avec un Timer.  (Lu 1228 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne thomasleroi

  • *
  • Tueur
  • Messages: 70
    • Voir le profil
Problème avec un Timer.
« le: 08 Août 2008, 11:26:54 »
J'ai un problèmes avec des timers... J'ai placé des KillTimer mais il ne marchent pas. Voilà les lignes :

new C1, C2, C3, C4;
forward c1();
forward c2();
forward c3();
forward c4();

public c1 ()
{
new playerid;
KillTimer(C1);
C2 = SetTimer("c2", 5000, true);
SetPlayerCameraPos(playerid,119.0221,1931.9307,22.7578);
SetPlayerCameraLookAt(playerid,101.7801,1921.7246,18.3186);
}
public c2 ()
{
new playerid;
KillTimer(C2);
C3 = SetTimer("c3", 5000, true);
SetPlayerCameraPos(playerid,257.4085,1811.8822,23.7339);
SetPlayerCameraLookAt(playerid,217.4763,1809.9622,21.7578);
}
public c3 ()
{
new playerid;
KillTimer(C3);
C4 = SetTimer("c4", 5000, true);
SetPlayerCameraPos(playerid,277.8821,1831.4835,21.4697);
SetPlayerCameraLookAt(playerid,240.2167,1861.3423,20.6723);
}
public c4 ()
{
new playerid;
KillTimer(C4);
SpawnPlayer(playerid);
SetPlayerPos(playerid,242.2077,1861.7119,14.0840);
}


Je voudrais faire qu'il y est pendant 5 Secondes un lieu que l'on voit, puis que l'on passe à un autre et ainsi de suite.
Ce sont des Caméras de surveillance pour l'aéra 51.

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : Problème avec un Timer.
« Réponse #1 le: 08 Août 2008, 12:50:43 »
tiens je vais te filer une astuce pour éviter que tu fasses 35 timers ^^

En haut de ton script

new Timer;
new timer;
forward respawn(playerid);


Ensuite dans ta commande (je suppose que c'est avec une commande que tu active tes timers);

Timer=SetTimer("respawn", 1000, true); /Le timer sera égale a 1 seconde
timer= 15;  //et la on le force a 15 secondes, tu comprendre après pourquoi le timer se présente comme ça ;)

Voila pour ta commande c'est fini :p

Après tu fait le public comme il faut :
public respawn(playerid)
{
if(timer==0)
{
KillTimer(Timer);  // on tue le timer entier, comme il est fini :p
SpawnPlayer(playerid);
SetPlayerPos(playerid,242.2077,1861.7119,14.0840);
return 1;
}else if(timer==15)
{
SetPlayerCameraPos(playerid,119.0221,1931.9307,22.7578);
SetPlayerCameraLookAt(playerid,101.7801,1921.7246,18.3186);
GameTextForPlayer(playerid, "~w~Camera 1", 3000, 3);
return 1;
}
else if(timer==10)
{
SetPlayerCameraPos(playerid,257.4085,1811.8822,23.7339);
SetPlayerCameraLookAt(playerid,217.4763,1809.9622,21.7578);
GameTextForPlayer(playerid, "~w~Camera 2", 3000, 3);
return 1;
}
else if(timer==5)
{
SetPlayerCameraPos(playerid,277.8821,1831.4835,21.4697);
SetPlayerCameraLookAt(playerid,240.2167,1861.3423,20.6723);
GameTextForPlayer(playerid, "~w~Camera 3", 3000, 3);
return 1;
}
else
{
respawn--;
}
return 1;
}

voila ton timer est fini, je ne l'ai pas testé mais il devrait fonctionner ;)

COPIE COLLE PAS çA SERT A RIEN !!!!!

A++ ;)
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne thomasleroi

  • *
  • Tueur
  • Messages: 70
    • Voir le profil
Re : Problème avec un Timer.
« Réponse #2 le: 08 Août 2008, 13:27:06 »
Merci   :) . donc je viens d'essayer... Il y a une erreur :

public respawn(playerid)
{
if(timer==15)
{
SetPlayerCameraPos(playerid,119.0221,1931.9307,22.7578);
SetPlayerCameraLookAt(playerid,101.7801,1921.7246,18.3186);
return 1;
}
else if(timer==10)
{
SetPlayerCameraPos(playerid,257.4085,1811.8822,23.7339);
SetPlayerCameraLookAt(playerid,217.4763,1809.9622,21.7578);
return 1;
}
else if(timer==5)
{
SetPlayerCameraPos(playerid,277.8821,1831.4835,21.4697);
SetPlayerCameraLookAt(playerid,240.2167,1861.3423,20.6723);
return 1;
}
else if(timer==0)
{
KillTimer(Timer);
SpawnPlayer(playerid);
SetPlayerSkin(playerid, 287);
SetPlayerPos(playerid,242.2077,1861.7119,14.0840);
return 1;
}
else
{
respawn--;
}
return 1;
}

La voilà :  :snip

error 076: syntax error in the expression, or invalid function call : respawn--;
warning 215: expression has no effect


L'action ne se fait pas avec une commande mais un pickup.  ;)

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : Problème avec un Timer.
« Réponse #3 le: 08 Août 2008, 13:28:31 »
 :dry Désolé....


c'est

timer--;
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne thomasleroi

  • *
  • Tueur
  • Messages: 70
    • Voir le profil
Re : Problème avec un Timer.
« Réponse #4 le: 08 Août 2008, 13:35:29 »
Ah d'accord !!! Merci. Je crois que j'ai compris l'histoire des else.  :) :)

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : Problème avec un Timer.
« Réponse #5 le: 08 Août 2008, 13:45:26 »
Mais heu, tu t'es planté dans la présentation de ton timer, essaye quand même mais je ne pense pas qu'il va fonctionner ^^ regarde mon 1er post
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : Problème avec un Timer.
« Réponse #6 le: 09 Août 2008, 16:13:50 »
Bon alors, ton timer ne devait pas fonctionner comme il fallait alors voila je l'ai modifié et testé :

Donc en haut de ton script :

new Timer;
new timer;
forward respawn(playerid);

Je me suis fait une commande de test qui fonctionne donc je la met ici :

if(strcmp(cmdtext,"/cam", true)==0)
   {
   Timer=SetTimer("respawn", 1000, true);
   timer= 16;
   return 1;
   }

et plus bas dans ton script :

public respawn(playerid)
{
if(timer==0)
{
KillTimer(Timer);
SpawnPlayer(playerid);
SetPlayerSkin(playerid, 287);
SetPlayerPos(playerid,242.2077,1861.7119,14.0840);
return 1;
}
else
{
timer--;
switch (timer) {

case 5:{SetPlayerCameraPos(playerid,277.8821,1831.4835,21.4697);
        SetPlayerCameraLookAt(playerid,240.2167,1861.3423,20.6723);}

case 10:{SetPlayerCameraPos(playerid,257.4085,1811.8822,23.7339);
         SetPlayerCameraLookAt(playerid,217.4763,1809.9622,21.7578);}

case 15:{SetPlayerCameraPos(playerid,119.0221,1931.9307,22.7578);
         SetPlayerCameraLookAt(playerid,101.7801,1921.7246,18.3186);}

case 16: {SendClientMessage(playerid,COLOR_RED, "Initialisation"); }
}
return 1;
}
}

Voila pour moi ça fonctionne nickel ;)

++
« Modifié: 09 Août 2008, 16:16:08 par [StAfF]mAn »
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|