• 04 Juillet 2025, 07:35:50


Auteur Sujet: Petit problème avec vie infinie !  (Lu 1565 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Blaster

  • *
  • Nouveau
  • Messages: 14
    • Voir le profil
Petit problème avec vie infinie !
« le: 01 Avril 2008, 20:01:47 »
Donc, on m'avais expliquer ici comment faire un timer pour avoir une vie infinie de que l'on se connecte au server.

Mais en faites, en ce moments je suis en train de faire un petit mod de dm et en faite on peut jamais mourrir avec le timer de vie infinie (normale en même temps :laugh). Et je ne voie pas comment résoudre mon problème.

Merci d'avance pour votre aides :)

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : Petit problème avec vie infinie !
« Réponse #1 le: 01 Avril 2008, 20:21:37 »
Tu fait un KillTimer dans ta commande pour rentréer dans le DM et tu relance de Timer quand tu sort !

NV.



Tu vois avant? Bah j'étais là encore avant!

Hors ligne Blaster

  • *
  • Nouveau
  • Messages: 14
    • Voir le profil
Re : Petit problème avec vie infinie !
« Réponse #2 le: 01 Avril 2008, 20:32:27 »
Ok, donc je fait

KillTimer(playerid);

et quand on veut sortir ou on meur je met

SetTimer(playerid);

J'en est pas franchement idée

Sa change quelque chose si mon DM est un filtrescript et dans mon gamemode il y a le timer pour la vie ?

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : Petit problème avec vie infinie !
« Réponse #3 le: 01 Avril 2008, 21:16:13 »
KillTimer(playerid); et SetTimer(playerid); :blink
Pour le kill timer faut mettre le nom du timer, donc ce que tu dois faire c'est mettre " new nomdutimer; " en haut du script avant main, puis là où tu utilises le timer tu mets " nomdutimer=SetTimer("ce que sa doit executer",1,1000); " (le 1 veux dire que le timer se répète et le 1000 c'est le temps en ms). Pour utiliser le kill timer tu le mets là où t'as besoin de le mettre et tu fais " KillTimer(nomdutimer) " ;) j'espère que sa t'aide  :)

++
R@f

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Petit problème avec vie infinie !
« Réponse #4 le: 01 Avril 2008, 22:53:02 »
Ce n'est pas du tout une bonne idée d'utiliser un KillTimer.
Tout d'abord, je ne suis pas sûr que la fonction KillTimer fonctionne très bien.
Mais surtout, le timer de vie infinie sert pour TOUS les joueurs, il serait dommage de l'arréter pour tout le monde parce qu'un seul joueur est en DM.
Ensuite, ton DM est dans un filterscript, tu ne pourras pas y arrêter un timer que tu as démarré dans le gamemode

La solution est beaucoup plus simple, il suffit d'utiliser une variable qui indique si le joueur est en DM ou pas. Et dans le timer, si le joueur est en DM, on ne lui remet pas sa vie.
Pour la variable, c'est un tableau, il suffit de mettre l'élément correpondant au joueur à 1 quand le joueur entre dans le DM et de le remettre à 0 quand il en sort. Dans le timer, si l'élément corespondant au joueur est ègal à 0, on remet la vie du joueur.

Soit :
/* En haut du script, en dehors de toute fonction */
new JoueurEnDM[MAX_PLAYERS];

/* Dans la commande qui fait entrer dans le DM */
JoueurEnDM[playerid] = 1;

/* Dans la commande qui fait sortir du DM */
JoueurEnDM[playerid] = 0;

/* Dans le timer pour la vie infinie */
for (new j=0 ; j<MAX_PLAYERS ; j++)
{
    /* Si le joueur est connecté */
    if (IsPlayerConnected (j))
    {
        /* Si le joueur n'est pas en DM */
        if (JoueurEnDM[j] == 0)
        {
            /* On remet la vie du joueur au max */
        }
    }
}

Maintenant, si ton DM est dans un filterscript, tu vas avoir des problèmes car PAWN ne permet pas de voir et d'utiliser les données du gamemode dans les filterscripts et vice versa.
Le mieux, c'est soit de mettre le timer pour la vie infinie dans le filterscript ou le DM dans ton gamemode. (j'ai une préférence pour la deuxième solution).

++
Syg
Courtesy of GtaManiac

Hors ligne Blaster

  • *
  • Nouveau
  • Messages: 14
    • Voir le profil
Re : Petit problème avec vie infinie !
« Réponse #5 le: 02 Avril 2008, 15:40:39 »
D'abord merci de m'aider :)

J'ai suivi tous ce que vous m'avez dit de faire, sa se compile bien. Mais quand je tappe /dm-1, je ne peut pas mourrir ...

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : Petit problème avec vie infinie !
« Réponse #6 le: 02 Avril 2008, 16:32:34 »
Fait voir ton code stp  :happy
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|