• 05 Juin 2026, 18:55:10


Auteur Sujet: [Demande Aide] SSCANF  (Lu 1770 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
[Demande Aide] SSCANF
« le: 02 Novembre 2010, 12:51:57 »
Bonjour,
J'utilise le script de monsieur Fredo pour son système de voiture. Qui marche parfaitement bien :)
J'ai passer depuis peu mes commandes en sscanf, et
1) J'aimerais qu'on puisse utiliser soit l'id ou soit le nom de la voiture,
2) Puis les couleurs par défauts les mettres à 0

J'ai regarder j'ai vu comme paramètres '' z " qui est optionnel mais c'est un string, donc que des lettres ?
Pour ma première question, je sais comment faire aprés le check de la commande, mais c'est quel lettre mettre pour checké des  caractères en tout genre ?
if (sscanf(params, "ddd", id, col1, col2))
{
SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /veh <nom> <col1> <col2>");
return 1;
}

Merci,
Sam.  :cheers

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : [Demande Aide] SSCANF
« Réponse #1 le: 02 Novembre 2010, 13:15:29 »
je suis pas fort avec sscanf, mais sa devrai pas etre sa :

Code: (pawn) [Sélectionner]
if (sscanf(params, "sdd", id, col1, col2))
pour le nom puisque tu dit: USAGE: /veh <nom> <col1> <col2>
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : [Demande Aide] SSCANF
« Réponse #2 le: 02 Novembre 2010, 13:34:59 »
Salut, oui, mais j'ai marquer <nom> mais c'est faux x') ce que je veux c'est qu'on tape soit le nom soit l'id et que les couleurs soit optionnel ^^

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [Demande Aide] SSCANF
« Réponse #3 le: 02 Novembre 2010, 14:56:49 »
Salut,

déjà, pour qu'un paramètre soit optionnel il faut le mettre en majuscule avec une valeur par défaut entre ()

exemple:

if ( sscanf ( params, "dD(-1)D(-1)", id, col1, col2 ) )
ce qu'il te faudrait ensuite ce serait d'ajouter un test si celui ci ne fonctionne pas qui récupérerait le texte et qui récupérerait l'ID grâce au texte en question.

bref, un truc de ce genre:

if ( sscanf ( params, "dD(-1)D(-1)", id, col1, col2 ) )
{
    if ( sscanf ( params, "s[32]D(-1)D(-1)", string, col1, col2 ) )
    {
          //message d'erreur
    }
    else
    {
        //récupération du ID
    }
}

bonne chance

++Sim++





Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : [Demande Aide] SSCANF
« Réponse #4 le: 02 Novembre 2010, 15:01:31 »
Pourquoi tu as mis de test de sscanf ?

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [Demande Aide] SSCANF
« Réponse #5 le: 02 Novembre 2010, 15:07:19 »
Salut,

sscanf retourne 0 si la récupération a été effectuée correctement et une autre valeur (qui varie selon l'erreur rencontré si je me rappelle bien). Ainsi, on peut savoir s'il y a eu un problème à trouver l'id du véhicule dans la première expression et tenter le coup avec un string.

++Sim++





Anonyme

  • Invité
Re : [Demande Aide] SSCANF
« Réponse #6 le: 02 Novembre 2010, 16:05:06 »
Désolé la question à l'air un peu bete mais je profite qu'il y a un sujet dessus pour la poser  :happy

Est ce que le sscanf est plus ou moins l'équivalent du scanf en C ?

Vu que je vois le C en cours, j'vais peut etre me remetre au pawn alors autant demander cette question qui me turlupine (Way mot d'Belge) l'esprit  :P

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Re : [Demande Aide] SSCANF
« Réponse #7 le: 02 Novembre 2010, 16:39:58 »
Désolé la question à l'air un peu bete mais je profite qu'il y a un sujet dessus pour la poser  :happy

Est ce que le sscanf est plus ou moins l'équivalent du scanf en C ?

Vu que je vois le C en cours, j'vais peut etre me remetre au pawn alors autant demander cette question qui me turlupine (Way mot d'Belge) l'esprit  :P

non pas vraiment scanf permet de faire la même chose, mais sur un flux, que ce soit un fichier, ou bien sur le stdin/stdout, mais c'est l'équivalent du sscanf en C ^^



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

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [Demande Aide] SSCANF
« Réponse #8 le: 02 Novembre 2010, 17:15:25 »
non en C aussi c'est sscanf ^^


Comme je disais sscanf c'est le même qu'en pawn, et scanf ça permet de faire la même chose mais sur des flux ^^



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

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : [Demande Aide] SSCANF
« Réponse #9 le: 02 Novembre 2010, 18:06:33 »
J'ai fait ça :

CMD:veh(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 1337)
    {
        if(IsPlayerConnected(playerid))
    {
        new
            id,
            col1,
            col2,
            string[128];
if (sscanf(params, "dD(0)D(0)", id, col1, col2))
{
SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /veh <nom> <col1> <col2>");
return 1;
}


Ça fonctionne.. Pour le premier paramètre j'vien de comprendre x) Je dirais des nouvelles, je vais aller chez mon père là.. :)
« Modifié: 02 Novembre 2010, 18:16:53 par chneubeul »