• 07 Mai 2025, 00:10:51


Auteur Sujet: Ma commande /b marche pas ...  (Lu 943 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne John_Montavedro

  • Création du serveur UVDV
  • *
  • Tueur en série
  • Position: GTAOnline Addict :p
  • Messages: 220
    • Voir le profil
Ma commande /b marche pas ...
« le: 03 Novembre 2010, 11:33:32 »
Bonjour, je m'amuse à faire de petits GM RP pour moi ^^
Et j'aimerais apprendre à faire des commandes RP donc ;)

J'ai tenté de faire une commande "/b"
Mais une fois sur le serveur, sa ne donne rien :o
if(!strcmp(cmdtext, "/b", true, 50))
    {
        if(!cmdtext[50])return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /b [text OOC]");
        new str[128];
        GetPlayerName(playerid, str, sizeof(str));
        format(str, sizeof(str), "(( %s : %s ))", str, cmdtext[50]);
        SendClientMessageToAll(COLOR_GREEN, str);
        return 1;
    }

Merci ;)

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Ma commande /b marche pas ...
« Réponse #1 le: 03 Novembre 2010, 12:43:18 »
Salut :)


if(!strcmp(cmdtext, "/b", true, 50))
    {
        if(!cmdtext[50])return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /b [text OOC]");
        new str[128];
        GetPlayerName(playerid, str, sizeof(str));
        format(str, sizeof(str), "(( %s : %s ))", str, cmdtext[50]);
        SendClientMessageToAll(COLOR_GREEN, str);
        return 1;
    }


Déjà le 50 aprés le true determine le nombre de caractères qu'il y a dans ta commande, là on peut en distinguer 2... le true si j'me souviens bien c'est pour la sensibilité à la case.

Ensuite il faut que tu prenne le texte aprés le /b donc il faut que tu utilise strtok. Regarde un petit tuto sur wiki, je l'utilisais avant de passer au zcmd + sccanf qui est BEAUCOUP plus simple d'utilisation. ^^ Le strtok je l'utiliser en copiant et en collant les partis que je voulais mais bon je savais que ça aller fonctionner, à force d'utiliser :)

A+ Sam.


Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Ma commande /b marche pas ...
« Réponse #2 le: 03 Novembre 2010, 12:55:17 »
J'avais déjà résolut ce problème sur un autre topic ...



if( strcmp(cmdtext, "/b", true, 2) == 0 )
{
if( strlen( cmdtext[3] ) == 0 )
{
return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /b [text OOC]");
}
new str[128] = "";
GetPlayerName( playerid, str, sizeof( str ) );
format( str, sizeof(str), "(( %s : %s ))", str, cmdtext[ 3 ] );
SendClientMessageToAll( COLOR_GREEN, str );
return 1;
}



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

Hors ligne John_Montavedro

  • Création du serveur UVDV
  • *
  • Tueur en série
  • Position: GTAOnline Addict :p
  • Messages: 220
    • Voir le profil
Re : Ma commande /b marche pas ...
« Réponse #3 le: 03 Novembre 2010, 13:03:23 »
Grand merci à vous deux :) Je vais essayer de faire le "/crier" tout seul xD

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Ma commande /b marche pas ...
« Réponse #4 le: 03 Novembre 2010, 13:06:56 »
Sasuke j'ai une petite question :

new str[128] = "";

L'autre coup tu disais qu'il fallait pas oublier '' d'initialiser" mais à quoi ça sert ? Dans ce cas on devrais fixé tout nos variable par exemple

new var = 0;

Ou bien c'est juste dans un cas ?

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Ma commande /b marche pas ...
« Réponse #5 le: 03 Novembre 2010, 14:24:29 »
pas en faite je sais pas si c'est le cas en pawn, mais quelques fois il reste des choses dans la mémoire laissé par d'autre variable.

Donc si tu créer une variable, comme cela:

new str[128];
ça peut prendre la valeur qui reste en mémoire, et au lieu d'avoir une chaine de caractère vide tu as un truc bizarre de ce genre ↔6æ│Í@, et je pense que ça peut avoir de mauvais effet sur le fonctionnement de ton code ^^


Sinon, pour vous dire qu'en C, quand on initialise pas un pointeur on à un warning et des fois ça conduit même au crash du soft, donc il faut toujours prendre l'habitude d'initialiser ses variables ^^



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 : Ma commande /b marche pas ...
« Réponse #6 le: 03 Novembre 2010, 14:43:17 »
Dans ce cas on met on met new var = 0; ? :)

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Ma commande /b marche pas ...
« Réponse #7 le: 03 Novembre 2010, 14:49:55 »
Oui, mais c'est juste un conseil tu n'es pas obligé de le suivre ^^



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