• 06 Juillet 2025, 13:44:54


Auteur Sujet: Problème avec strcat  (Lu 1762 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne falcko

  • *
  • Nouveau
  • Messages: 7
    • Voir le profil
Problème avec strcat
« le: 18 Juin 2013, 00:28:27 »
Salut,
J'utilise strcat pour que mes dialogues soient dynamiques mais ça ne marche pas !  :sad:

Voici mon code :
Code: (pawn) [Sélectionner]
stock GetZones(playerid)
{
new zonesa[1200], string[128];
for(new g; g<=NB_GANGZONES; g++)
{
    string = "";
        if(Zones[g][Team] == 1)
        {
format(string, sizeof(string), "{00FF00}%s\n", Zones[g][Nom]);
strcat(zonesa, string, sizeof(string));
}
        else if(Zones[g][Team] == 2)
        {
format(string, sizeof(string), "{800080}%s\n", Zones[g][Nom]);
strcat(zonesa, string, sizeof(string));
}
        else if(Zones[g][Team] == 3)
        {
format(string, sizeof(string), "{F4F400}%s\n", Zones[g][Nom]);
strcat(zonesa, string, sizeof(string));
}
        else if(Zones[g][Team] == 4)
        {
format(string, sizeof(string), "{00FFFF}%s\n", Zones[g][Nom]);
strcat(zonesa, string, sizeof(string));
}
}
ShowPlayerDialog(playerid, DIALOG_ZONES, DIALOG_STYLE_LIST, "Choix du spawn", zonesa, "Valider", "Annuler");
return 1;
}

Et la réponse du serveur IG quand je me fais "spawn" le dialogue avec une commande : "SERVER: Unknown command."

Ça fait plusieurs jours que je planche sur le problème sans trouver de solution...
Merci d'avance.
« Modifié: 18 Juin 2013, 07:28:19 par rafffel »

Hors ligne rafffel

  • *
  • Bandit
  • Messages: 493
    • Voir le profil
Re : Problème avec strcat
« Réponse #1 le: 18 Juin 2013, 07:33:34 »
T'as vérifié au niveau du code qui vérifie les commandes utilisateur?
Et aussi fait attention a l'utilisation des mots tels que string en tant que variable je ne sais pas en pawn mais sur certains langages ça peut poser problème (considéré comme un mot-clé qui permet de définir un type)


Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Problème avec strcat
« Réponse #2 le: 18 Juin 2013, 10:52:33 »
Salut, je vois qu'il ne faut absolument pas faire en programmation, c'est-à-dire utiliser des variables sans les initialiser.

Code: (pawn) [Sélectionner]
for(new g; g<=NB_GANGZONES; g++)Deviens.
Code: (pawn) [Sélectionner]
for(new g = 0; g<=NB_GANGZONES; g++)
Ton
Code: (pawn) [Sélectionner]
new zonesa[1200], string[128];Deviens

Code: (pawn) [Sélectionner]
new zonesa[1200], string[128];
zonesa[0] = 0;
string[0] = 0;



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

Hors ligne falcko

  • *
  • Nouveau
  • Messages: 7
    • Voir le profil
Re : Problème avec strcat
« Réponse #3 le: 18 Juin 2013, 14:19:06 »
Salut, merci de la réponse.

T'as vérifié au niveau du code qui vérifie les commandes utilisateur?
Et aussi fait attention a l'utilisation des mots tels que string en tant que variable je ne sais pas en pawn mais sur certains langages ça peut poser problème (considéré comme un mot-clé qui permet de définir un type)
J'utilise cette variable dans plusieurs de mes scripts qui fonctionnent bien, donc je ne pense pas que le problème vienne de là.

Salut, je vois qu'il ne faut absolument pas faire en programmation, c'est-à-dire utiliser des variables sans les initialiser.

Code: (pawn) [Sélectionner]
for(new g; g<=NB_GANGZONES; g++)Deviens.
Code: (pawn) [Sélectionner]
for(new g = 0; g<=NB_GANGZONES; g++)
Ton
Code: (pawn) [Sélectionner]
new zonesa[1200], string[128];Deviens

Code: (pawn) [Sélectionner]
new zonesa[1200], string[128];
zonesa[0] = 0;
string[0] = 0;

Comme ceci?
stock GetZones(playerid)
{
new zonesa[1200], string[128];
zonesa[0] = 0;
string[0] = 0;
        for(new g = 0; g<=NB_GANGZONES; g++)
        {
            string = "";
if(Zones[g][Team] == 1)
{
                        format(string, sizeof(string), "{00FF00}%s\n", Zones[g][Nom]);
                        strcat(zonesa, string, sizeof(string));
            }
else if(Zones[g][Team] == 2)
{
                        format(string, sizeof(string), "{800080}%s\n", Zones[g][Nom]);
                        strcat(zonesa, string, sizeof(string));
            }
else if(Zones[g][Team] == 3)
{
                        format(string, sizeof(string), "{F4F400}%s\n", Zones[g][Nom]);
                        strcat(zonesa, string, sizeof(string));
            }
else if(Zones[g][Team] == 4)
{
                        format(string, sizeof(string), "{00FFFF}%s\n", Zones[g][Nom]);
                        strcat(zonesa, string, sizeof(string));
            }
        }
        ShowPlayerDialog(playerid, DIALOG_ZONES, DIALOG_STYLE_LIST, "Choix du spawn", zonesa, "Valider", "Annuler");
        return 1;
}

J'ai essayé mais toujours le même problème.
Concernant la commande que j'utilise, je n'y vois pas de problème :
    if(strcmp(cmd, "/getzones", true) == 0)
    {
        if(UserStats[playerid][Admin] <= 1)
        {
            SendClientMessage(playerid, COLOR_RED, "Vous n'avez pas l'autorisation d'utiliser cette commande.");
            return 1;
        }
        GetZones(playerid);
        return 1;
    }

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Problème avec strcat
« Réponse #4 le: 18 Juin 2013, 18:17:11 »
Dans ce cas aucune des tes conditions n'est respectée.



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

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : Problème avec strcat
« Réponse #5 le: 01 Juillet 2013, 20:19:41 »
En clair fait des print/printf pour voir ou est le problème dans tes conditions, dans ton code et ensuite va voir ce qu'il se passe au niveau des conditions en les modifiants ou en modifiant la variable qui ne passe pas la condition.
Nippah !