• 05 Juin 2026, 10:54:59


Auteur Sujet: Flood en /nomoff  (Lu 1567 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne jeje29140

  • *
  • Tueur
  • Messages: 67
    • Voir le profil
Flood en /nomoff
« le: 29 Mai 2012, 21:06:46 »
Bonjour à tous,

J'ai fait un /nomoff pour cacher les nom au dessus de nos têtes, en reprenant des bouts de codes par ci par là, mais lorsque je tape la commande, ça me flood la phrase "Votre nom est maintenant caché."





if(strcmp(cmd, "/nomoff", true) == 0) // by LordMan
{
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMaskuse] == 0)
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    ShowPlayerNameTagForPlayer(i, playerid, 0);
        SendClientMessage(playerid, COLOR_GRAD1, "   Votre nom est maintenant caché.");
        PlayerInfo[playerid][pMaskuse] = 1;
    }
    else if(PlayerInfo[playerid][pMaskuse] == 1)
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    ShowPlayerNameTagForPlayer(i, playerid, 1);
SendClientMessage(playerid, COLOR_GRAD1, "   Votre nom est maintenant visible");
        PlayerInfo[playerid][pMaskuse] = 0;
    }
    }
    return 1;
}





Pour certain l'erreur sera flagrante, mais moi je vois pas du tout.

merci.

vincentdu90

  • Invité
Re : Flood en /nomoff
« Réponse #1 le: 29 Mai 2012, 23:05:57 »
D'après le Wiki les paramètres de la commande sont :

Citer
(playerid, showplayerid, show)

playerid   Player who will see the results of this function // Joueur qui verra les résultats de la fonction. Dans ton cas tous les joueurs.

showplayerid   Player whose name tag will be shown or hidden // Le joueur pour qui le "Name Tag" sera caché . Dans ton cas tous les joueurs.

show           1-show name tag, 0-hide name tag

Donc normalement dans ta commande vu que tu veux que chaque joueur soit incapable de voir le Pseudo des autres joueurs et si tu veux que cette commande s'applique à tout les joueurs présents il faudrait remplacer les deux paramètres de cette fonction par " i " .

ShowPlayerNameTagForPlayer(i, i, 0); // remplacé le dernier paramètre par 1 dans l'autre boucle

En effet car la boucle suivante va donner ,à chaque "tour" qu'elle va faire, à "i" toutes les valeurs comprises entre 0 et MAX_PLAYERS (le nombre maximum de joueur possible sur le serveur) et donc la fonction s'appliquera à tous les joueurs.

for(new i = 0; i < MAX_PLAYERS; i++)
    {

                }

J'espère avoir été assez clair et de ne pas me tromper  :)
« Modifié: 29 Mai 2012, 23:10:29 par vincentdu90 »

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Flood en /nomoff
« Réponse #2 le: 29 Mai 2012, 23:11:02 »
C'est surtout parceque tu as mis ton SendClientMessage dans une boucle lol



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

vincentdu90

  • Invité
Re : Flood en /nomoff
« Réponse #3 le: 29 Mai 2012, 23:12:38 »
Oui mais je pense qu'à l'avenir il souhaite l'utiliser à plus grande échelle que sur lui-même , donc une boucle est nécessaire.

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Flood en /nomoff
« Réponse #4 le: 29 Mai 2012, 23:28:03 »
Dans tous les cas sont problèmes est dû au faite que son SendClientMessage qui d'ailleurs envoi un message au joueur qui a tapé la commande est dans une boucle ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

vincentdu90

  • Invité
Re : Flood en /nomoff
« Réponse #5 le: 30 Mai 2012, 09:46:11 »
Oui j'ai omis ça dans ma réponse, j'ai dérivé du problème initial, mais il suffit de remplacer " playerid " par " i " dans " SendClientMessage ".

Hors ligne jeje29140

  • *
  • Tueur
  • Messages: 67
    • Voir le profil
Re : Flood en /nomoff
« Réponse #6 le: 30 Mai 2012, 13:53:30 »
C'est bon ça fonctionne, merci beaucoup à vous deux!!!!