GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: DexX le 10 Juillet 2011, 11:46:29

Titre: Mes Timers ne réagissent plus ...
Posté par: DexX le 10 Juillet 2011, 11:46:29
Bonjour  ;),

J'ai problème avec mes timers. Plus aucun ne fonctionnent et je ne sais pas de quoi sa peut venir.

Ce problème est-il déjà arrivé à quelqu'un ?

Merci d'avance de votre aide.

Cordialement,
DexX
Titre: Re : Mes Timers ne réagissent plus ...
Posté par: scott1 le 10 Juillet 2011, 11:46:56
Fait des print dedans pour savoir ou ça merde
Titre: Re : Mes Timers ne réagissent plus ...
Posté par: DexX le 10 Juillet 2011, 11:50:47
Dans OnGameModeInit oui. Pas bête.
Titre: Re : Mes Timers ne réagissent plus ...
Posté par: Gilux le 10 Juillet 2011, 12:35:51
Ca m'est arrivé il y a pas longtemps, essaye de mettre tes Timers au début de OnGameModeInit. (Avant toutes les autres fonctions)
++
Titre: Re : Mes Timers ne réagissent plus ...
Posté par: DexX le 10 Juillet 2011, 15:39:53
Donc j'ai des Timers qui marchent et d'autres non ...

J'ai mis des print pour tester.

Par exemple, je ne touche plus ma paye mais le print s'affiche bien dans la console...Je ne comprend pas..

Merci de votre aide.
Titre: Re : Mes Timers ne réagissent plus ...
Posté par: S!m le 10 Juillet 2011, 15:46:04
Salut,

ajoute plus de print afin de trouver l'endroit exact du code qui bloque.

++Sim++
Titre: Re : Mes Timers ne réagissent plus ...
Posté par: DexX le 10 Juillet 2011, 15:57:04
Bon apparemment, sa sera mon Public Payday qui poserait problème..

http://pastebin.com/6CwrJanH (http://pastebin.com/6CwrJanH)

Pendant que j'y suis, comment procéder pour que au lieu que le joueur touche sa paye toute les heures, il la touche après une heure de jeu. C'est à dire que si il se connecte et joue 10 min. Ces 10 minutes sont enregistré et dès qu'il arrive à 60 min de jeu, il touche sa paye ?

Merci de votre aide ;).
Titre: Re : Mes Timers ne réagissent plus ...
Posté par: S!m le 10 Juillet 2011, 16:19:56
Salut,

tu peut ajouter une info pour tous les joueurs qui serait leur temps de jeu. Bref, une variable de plus.

Ensuite, tu crée un timer relativement court (genre une minute, ou ptet quelques secondes) dans lequel tu incrémente cette variable de temps de jeu.

Ensuite tu test la valeur pour savoir si le joueur est rendu à une heure juste de jeu.

(j'aime bien compter le temps de jeu en seconde, un timer de 5 secondes devrait donner une précision suffisante selon moi... (donc tempsJeu[playerid] +=5 et if(tempsJeu[playerid] % 3600 < 5 alors payday))

++Sim++
Titre: Re : Mes Timers ne réagissent plus ...
Posté par: DexX le 10 Juillet 2011, 16:25:27
Voilà comment j'ai procédé :

Dans OnGameModeInit :

TimerTempsJeu = SetTimer("TempsJeu", 60000, 1);
Ensuite :

forward TempsJeu(playerid);
public TempsJeu(playerid)
{
for(new i; i < MAX_PLAYERS; i++)
{
    PlayerInfo[playerid][pTempsJeu] = PlayerInfo[playerid][pTempsJeu]+1;
    OnPlayerUpdate(playerid);
    if(PlayerInfo[playerid][pTempsJeu] >= 60)
    {
        PayDay(playerid);
      }
  }
  return 1;
}