• 18 Avril 2025, 10:27:38


Auteur Sujet: [ZCMD]: Commande qui ne fonctionne pas!  (Lu 2172 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Eclips

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
[ZCMD]: Commande qui ne fonctionne pas!
« le: 25 Juin 2014, 19:53:13 »
Salut,
Je viens à vous pour vous demander de l'aide, n'ayant toujours pas trouvé de solutions à mon problème, je commence à désespéré :)
Bien, je m'explique, tout d'abord, sachez que j'utilise ZCMD et SSCANF. La commande que je veux faire (/vehicule) prendre d'abord un paramètre, qui est l'action. Donc par exemple : /vehicule moteur (éteindra le moteur, et l'allumera). Maintenant, j'aimerai que pour le plein, ça fasse : /vehicule [Plein] [Litres], hors ma commande ne fonctionne pas.
La voici pour que vous voyez à quoi elle ressemble :)

Code: (pawn) [Sélectionner]
if(!strcmp(action, "plein", true))
{
    new montant;
    if(sscanf(params, "s[25]d", params[0], montant)) return SCM(playerid, COLOR_BLUE2, "[Astuce]: /v plein [Litre]");
    if(IsPlayerInRangeOfPoint(playerid, 2.0, 2271.4924,-2353.4355,13.2526))
    {
    if (montant > 100 || montant < 1) return SCM(playerid, COLOR_RED, "[Erreur]: Le montant du plein doit être compris entre 1 et 100!");
    if(VehicleInfo[vehicleid][Essence] < 98) return SCM(playerid, COLOR_RED, "[Erreur]: Le moteur doit être éteind !");
if(moteur[vehicleid] == 0)
{
new Total = PrixEssence * montant;
if(InfosJoueurs[playerid][Argent] > Total) return SCM(playerid, COLOR_RED, "[Erreur]: Vous n'avez pas assez d'argent !");
    GivePlayerMoney(playerid, - Total);
    InfosJoueurs[playerid][Argent] = InfosJoueurs[playerid][Argent] - Total;
    VehicleInfo[vehicleid][Essence] = montant;
    return 1;
}
else return SCM(playerid, COLOR_RED, "[Erreur]: Votre véhicule a le réservoir plein!");
}
}

Si vous pourriez m'aider, ça serait sympa car j'ai chercher maintes et maintes fois sans succès..
Bonne soirée, et je remercie d'avance les personnes qui m'aideront!

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [ZCMD]: Commande qui ne fonctionne pas!
« Réponse #1 le: 25 Juin 2014, 23:16:39 »
Salut, tu pourrai nous montrer le premier sscanf qui te permet de récupérer le contenu de la variable 'action' ?
Merci.



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

Hors ligne Eclips

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : [ZCMD]: Commande qui ne fonctionne pas!
« Réponse #2 le: 26 Juin 2014, 10:52:00 »
Salut,
Ouaip pas de soucis :)

Code: (pawn) [Sélectionner]
if(sscanf(params, "s[12]", action))
{
    SCM(playerid, -1, "[Astuce]: /v [action]");
    SCM(playerid, COLOR_BLUE2, "[Action]: infos moteur, garer, capot, coffre, phares, (de)verrouiller radio");
}

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [ZCMD]: Commande qui ne fonctionne pas!
« Réponse #3 le: 26 Juin 2014, 14:50:50 »
Le soucis vient d'ici

Code: (pawn) [Sélectionner]
sscanf(params, "s[25]d", params[0], montant)

Tu écrase la variable params, donc il ne peut pas récupérer la valeur de montant.

Pour éviter ça, tu dois passer le ton s[25] (qui te permet de récupérer l'action) en quiet, c'est à dire de ne pas le prendre en compte.

Pour cela tu dois faire ça :

Code: (pawn) [Sélectionner]
sscanf(params, "{s[25]}d", montant)



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

Hors ligne Eclips

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : [ZCMD]: Commande qui ne fonctionne pas!
« Réponse #4 le: 26 Juin 2014, 15:38:26 »
Salut, je connais pas cette forme de "quiet".
Cependant mon problème n'est pas résolu, rien ne se passe :S

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [ZCMD]: Commande qui ne fonctionne pas!
« Réponse #5 le: 26 Juin 2014, 15:57:50 »
Essaies avec ce code et dit moi ce qu'il s'affiche.

Code: (pawn) [Sélectionner]
    if(!strcmp(action, "plein", true))
    {
        new montant;

SCM(playerid, -1, "Etape 1");

        if(sscanf(params, "s[25]d", params[0], montant))
{
return SCM(playerid, COLOR_BLUE2, "[Astuce]: /v plein [Litre]");
}
        if(IsPlayerInRangeOfPoint(playerid, 2.0, 2271.4924,-2353.4355,13.2526))
        {
SCM(playerid, -1, "Etape 2");
if (montant > 100 || montant < 1) return SCM(playerid, COLOR_RED, "[Erreur]: Le montant du plein doit être compris entre 1 et 100!");
if(VehicleInfo[vehicleid][Essence] < 98) return SCM(playerid, COLOR_RED, "[Erreur]: Le moteur doit être éteind !");
if(moteur[vehicleid] == 0)
{
new Total = PrixEssence * montant;
if(InfosJoueurs[playerid][Argent] > Total) return SCM(playerid, COLOR_RED, "[Erreur]: Vous n'avez pas assez d'argent !");
GivePlayerMoney(playerid, - Total);
InfosJoueurs[playerid][Argent] = InfosJoueurs[playerid][Argent] - Total;
VehicleInfo[vehicleid][Essence] = montant;
return 1;
}
else return SCM(playerid, COLOR_RED, "[Erreur]: Votre véhicule a le réservoir plein!");
}
    }     



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

Hors ligne Eclips

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
Re : [ZCMD]: Commande qui ne fonctionne pas!
« Réponse #6 le: 26 Juin 2014, 16:35:19 »
ça m'affiche l'étape 1 quand je fais /v plein, quand je fais /v plein 1, eh bien rien ne se passe.. ça ne m'affiche aucun message
« Modifié: 26 Juin 2014, 17:51:58 par Eclips »

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [ZCMD]: Commande qui ne fonctionne pas!
« Réponse #7 le: 26 Juin 2014, 20:17:21 »
Ton

Code: (pawn) [Sélectionner]
    if(sscanf(params, "s[12]", action))
    {
        SCM(playerid, -1, "[Astuce]: /v [action]");
        SCM(playerid, COLOR_BLUE2, "[Action]: infos moteur, garer, capot, coffre, phares, (de)verrouiller radio");
    }

Change le en

Code: (pawn) [Sélectionner]
    if(sscanf(params, "s[12]{s}", action))
    {
        SCM(playerid, -1, "[Astuce]: /v [action]");
        SCM(playerid, COLOR_BLUE2, "[Action]: infos moteur, garer, capot, coffre, phares, (de)verrouiller radio");
    }



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

Hors ligne Eclips

  • *
  • Nouveau
  • Messages: 5
    • Voir le profil
[Résolu]: [ZCMD]: Commande qui ne fonctionne pas!
« Réponse #8 le: 26 Juin 2014, 21:20:12 »
Cela fonctionne ! Merci à toi SSK :D