• 30 Juin 2025, 12:35:57


Auteur Sujet: Variable s'incrémente mal, et ne se décrémente pas  (Lu 1625 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Salif

  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Variable s'incrémente mal, et ne se décrémente pas
« le: 04 Juillet 2013, 12:17:27 »
Bonjour à tous,

Je vous expose mon soucis en espérant que vous puissiez m'aider. Je fais un event sur mon serveur en local pour apprendre le pawn, dans cet event je veux faire en sorte que le nombre de joueurs de chaque team soit compté. Prenons l'exemple de la team BALLAS.
J'ai donc initialisé la variable BallasInEvent à 0 tout en haut de mon GM
- à chaque fois qu'un BALLAS rejoint l'event, je met dans la commande pour rejoindre l'event :
BallasInEvent++;- à chaque fois qu'un Ballas meurt ou se déconnecte, je met dans OnPlayerDeath et OnPlayerDisconnect :
if(IsInEvent[playerid] == 1 && gTeam[playerid] == BALLAS)
{
BallasInEvent--; // Décrémentation de la variable
                new phrase[256];
        format(phrase,sizeof(phrase),"BallasInEvent : %d" ,BallasInEvent);
SendClientMessageToAll(VERT,phrase); // Permet de m'afficher la valeur de la variable juste pour voir si mon script fonctionne bien.
}

Avec ce code, j'ai le résultat suivant :
- Quand le premier joueur rejoint l'event, la variable passe à 0, alors qu'elle est déjà initialisé à 0. Puis ensuite elle s'incrémente bien et passe à 1 puis à 2 etc. Pourquoi ?
- Quand un joueur meurt, la variable s'actualise et affiche toujours la même valeur du nombre de Ballas présent dans l'event, elle ne se décrémente pas de 1. Pourquoi ?
Je tiens à préciser que j'ai bien vérifier si la variable s'incrémentais autre part en même temps qu'elle se décrémentais, ce qui expliquerais qu'elle ne se décrémente pas de 1, et la réponse est non. Merci de m'éclairer...

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : Variable s'incrémente mal, et ne se décrémente pas
« Réponse #1 le: 04 Juillet 2013, 12:36:32 »
Salut,

Remplaces ton premier

Code: (pawn) [Sélectionner]
BallasInEvent++;
par

Code: (pawn) [Sélectionner]
printf("\n[DEBUG] BallasInEvent: %d", BallasInEvent);
BallasInEvent++;
printf("\n[DEBUG] Variable incrementation");
printf("\n[DEBUG] BallasInEvent: %d\n", BallasInEvent);

afin de voir ce qu'elle contient avant et après l'incrémentation. Tu peux faire pareil pour la décrémentation, et nous dire ce que ça affiche.

Ensuite, est-ce que tu utilises un textdraw pour l'affichage du nombre de Ballas ? Si c'est le cas, tu es certain de le mettre à jour quand il faut ?

Bonne journée,
Gzsume.

Hors ligne Salif

  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Variable s'incrémente mal, et ne se décrémente pas
« Réponse #2 le: 04 Juillet 2013, 12:47:06 »
Bonjour Gzsume, tout d'abord merci pour ton aide.
J'ai fait ce que tu m'as dis, et vraiment je suis étonné, la console affiche que la variable passe bien à 1 directement, tandis que le SendClientMessage affiche 0, la prochaine fois je tacherai d'utiliser la fonction printf... Je suppose que c'est pareil pour la décrémentation lors de la mort. La question est maintenant : Pourquoi la fonction SendClientMessage n'affiche pas le même contenu que la fonction printf..?

Citation de: Gzsume
Ensuite, est-ce que tu utilises un textdraw pour l'affichage du nombre de Ballas ? Si c'est le cas, tu es certain de le mettre à jour quand il faut ?
Aucun TextDraw non, je n'ai pas besoin de ça.

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : Variable s'incrémente mal, et ne se décrémente pas
« Réponse #3 le: 04 Juillet 2013, 12:50:29 »
Montres le SendClientMessage de l'incrémentation ?
De ce que tu m'expliques, on dirait que tu l'as placé avant l'incrémentation elle-même. Je me trompe ? :rolleyes:

Hors ligne Salif

  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Variable s'incrémente mal, et ne se décrémente pas
« Réponse #4 le: 04 Juillet 2013, 14:17:47 »
Lol exactement... Les erreurs bête qu'on peut faire quand même, c'est fou. A moi d'être moins pressé maintenant. Merci beaucoup tout est ok Gzsume. Pour finir je voudrais juste te demander personnellement : as-tu encore l'intention de mettre à jour ton blog sur le pawn ?

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : Variable s'incrémente mal, et ne se décrémente pas
« Réponse #5 le: 04 Juillet 2013, 14:33:07 »
Parfois, les erreurs les plus stupides sont également les plus enrichissantes. À l'avenir, tu te souviendras de ce moment et tu ne feras plus la même erreur. :-)

En ce qui concerne mon blog :
  • Il subira des modifications autant internes qu'externes (parseur markdown, nouveau design plus lisible et agréable, système de connexion OpenID pour les commentaires, nouvelles sections...) après les résultats du bac (demain) ou dans le pire des cas, après les sessions de rattrapage de lundi/mardi (je ne le souhaite pas, mais on ne sait jamais) ;
  • Je reprendrais la rédaction du cours de Pawn pour le finir avant ma rentrée (le 23 septembre), j'ai déjà un plan avancé chez moi en local, il ne me reste qu'à formuler ça correctement, à me relire, à illustrer, et toutes ces choses ;
  • Je pense proposer le cours intégralement en vidéo, en supplément du texte. Ça me demande beaucoup de travail (autant dans la réalisation que dans l'intégration des technologies de streaming, etc) et je ne le ferai qu'après un rapide sondage visant à savoir si ça en vaut la peine (si les gens sont intéressés par ce format vidéo) ;

En tout cas, merci de poser la question, ça me montre qu'il n'est pas totalement tombé aux oubliettes, et c'est motivant. :-)

PS - C'est pas vraiment un "blog sur le Pawn", c'est carrément mon blog personnel, et en plus du cours de Pawn, on pourra y trouver des articles/projets et même d'autres cours, je pense (C, C++ lorsque je m'y mettrai, bibliothèques telles que SFML, Ogre, UDK...), en texte et peut-être aussi en vidéo. Si cela t'intéresse et que tu veux être tenu au courant, tu peux me suivre sur Twitter, en plus, tu seras mon premier follower. :-D
« Modifié: 04 Juillet 2013, 14:38:09 par Gzsume »

Hors ligne Salif

  • *
  • Tueur
  • Messages: 52
    • Voir le profil
Re : Variable s'incrémente mal, et ne se décrémente pas
« Réponse #6 le: 04 Juillet 2013, 14:57:15 »
Parfait c'est bien. Alors bon courage, c'est pas ce qu'il y a de plus facile à faire, ton blog est dans mes favoris depuis un bout de temps et j'avais peur qu'il ai été abandonné lol. Merci pour toute ton aide Gzsume.