• 02 Mai 2025, 23:32:36


Auteur Sujet: zcmd en strcmp , Comment faire?  (Lu 3700 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
zcmd en strcmp , Comment faire?
« le: 17 Mai 2013, 17:43:49 »
Bonjour tout le monde.

Hier j'ai voulue intégré le FS Boombox de D_Malfoy dans mon GM mais le soucis est que ce FS utilise zcmd.
Comment faire pour que je 'convertisse' en strcmp.
J'ai recherché un peu partout et notamment sur le forum sa-mp et je suis tombé sur cela

http://forum.sa-mp.com/showthread.php?t=231496

et dans son post il dit :
Citer
So, you need to replace all your "cmdtext" to "params". Example:
Moi je veux faire l'opération inverse donc j'ai remplacé tout les 'params' par 'cmdtext' et quand je compile je me retrouve avec 21erreurs.

Code: (pawn) [Sélectionner]
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(57) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(60) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(62) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(63) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(65) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(67) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(70) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(76) : error 021: symbol already defined: "GetPlayerPos"
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(82) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(84) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(91) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(96) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(98) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(100) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(110) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(114) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(116) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(117) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(119) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(121) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(127) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(166) : warning 203: symbol is never used: "Boombox"
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(166) : warning 203: symbol is never used: "a"
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(166) : warning 203: symbol is never used: "string"
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(166) : warning 203: symbol is never used: "x"
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(166) : warning 203: symbol is never used: "y"
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(166) : warning 203: symbol is never used: "z"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


21 Errors.

Comment faire?
Merci d'avance
Madinina972



Hors ligne Infu

  • *
  • Modo LS - Admin FnF
  • Messages: 3551
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #1 le: 17 Mai 2013, 17:54:28 »
La meilleure façon, c'est que tu installes ZCMD, ça coûte rien, c'est plus rapide et moins de lignes de code  :thumbup:


Adju ♥
(-_-)



Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #2 le: 17 Mai 2013, 17:58:49 »
le problème c'est que si je met zcmd, il faut que je refasse toutes les commandes avecc zcmd non ?
Et si c'est le cas, il y aura une multitude de commande à refaire..
Madinina972



Hors ligne Infu

  • *
  • Modo LS - Admin FnF
  • Messages: 3551
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #3 le: 17 Mai 2013, 18:09:48 »
Moi il me semble qu'il ne faut pas faire de commandes type CMD:macommande(playerid, params[]) dans OnPlayerCommandText c'est tout... Après je sais pas faut voir sur le post de ZCMD


Adju ♥
(-_-)



Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #4 le: 17 Mai 2013, 18:18:52 »
en meme temps nous ne connaissons pas forcement ton code donc nous ne savons pas a quoi coorespondent les erreures
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #5 le: 17 Mai 2013, 23:38:27 »
Salut,

si mes souvenirs sont bons, tu peut mettre zcmd dans un de tes scripts et laisser les autres normal....

++Sim++





Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #6 le: 19 Mai 2013, 12:28:53 »
Bah le soucis est que justement j'ai essayé de laisser en zcmd alors que toutes mes autres commandes sont en strcmp mais lorsque j'ai compilé,le compilateur a crash..  :laugh:
Madinina972



Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #7 le: 20 Mai 2013, 03:04:28 »
Salut,

ah j'avais pas vu que tu l'intégrais dans ton gm, je te confirme: dans un même script c'est un ou c'est l'autre!

le mieux c'est de passer tes commandes en zcmd, c'est plus rapide et plus facile à gérer.
et puis, passer
if(strcmp(cmdtext, "/blabla", true) == 0)
en
CMD:blabla(playerid, params[])

c'est moins difficile que l'inverse.

++Sim++





Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #8 le: 20 Mai 2013, 11:18:59 »
Je suis d'accord, mais il y a une multitude de commandes .. donc pour tous les passé en zcmd ça va être long..
Et comme le FS du Boombox est en zcmd je me demandais juste comment faire pour le passer en strcmp. Car vaut mieux passer 1commande zcmd en strcmp que 100 commandes strcmp en zcmd, non ?
Madinina972



Hors ligne Infu

  • *
  • Modo LS - Admin FnF
  • Messages: 3551
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #9 le: 20 Mai 2013, 11:41:16 »
Bah s'il n'y en a qu'une c'est simple....


Code: (pawn) [Sélectionner]
// ZCMD, Commande KICK tirée de mon GM //
CMD:kick(playerid, params[])
{
new id, raison[MAX_TEXT], str[MAX_TEXT], str2[MAX_TEXT];
if(sscanf(params, "is", id, raison)) SendClientMessage(playerid, COLOR_RED, "Usage: /kick <id> <raison>");
else
{
    format(str2, MAX_TEXT, "~w~Vous avez ete kick du serveur ! (~r~Raison: %s~w~)", raison);
    GameTextForPlayer(id, str2, 3000, 4);
    format(str, MAX_TEXT, "* ID %i a été kické du serveur. (Raison: %s)", id, raison);
    SendClientMessageToAll(COLOR_RED, str);
    printf(str);
SetTimerEx("kick1", 1000, false, "d", id);
}
return 1;
}
public kick1(id)
{
Kick(id);
return 1;
}
/////////////////////En STRCMP, ça devient....

if(!strcmp(cmdtext, "kick", true) == 0)
{
    new id, raison[MAX_TEXT], str[MAX_TEXT], str2[MAX_TEXT];
    if(sscanf(cmdtext, "is", id, raison)) SendClientMessage(playerid, COLOR_RED, "Usage: /kick <id> <raison>");
    else
    {
format(str2, MAX_TEXT, "~w~Vous avez ete kick du serveur ! (~r~Raison: %s~w~)", raison);
GameTextForPlayer(id, str2, 3000, 4);
format(str, MAX_TEXT, "* ID %i a été kické du serveur. (Raison: %s)", id, raison);
SendClientMessageToAll(COLOR_RED, str);
printf(str);
SetTimerEx("kick1", 1000, false, "d", id);
    }
    return 1;
}
public kick1(id)
{
Kick(id);
return 1;
}

J'ai juste changé:

Code: (pawn) [Sélectionner]
CMD:kick(playerid, params[])
/* par */
if(!strcmp(cmdtext, "kick", true) == 0)

/* et */
if(sscanf(params, "is", id, raison))

/* par */
if(sscanf(cmdtext, "is", id, raison))

Et pour ceux qui se posent la question "Pourquoi il utilise un timer pour kick la personne"? Car quand on kick une personne, la personne kické ne voit pas la raison. Alors que là, je lance le timer de 1 seconde et bim, kick.


Adju ♥
(-_-)



Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #10 le: 20 Mai 2013, 16:41:28 »
Juste une petite précision :

Code: (pawn) [Sélectionner]
if(!strcmp(cmdtext, "kick", true) == 0)
Dans cette portion,

Code: (pawn) [Sélectionner]
if(!strcmp(cmdtext, "kick", true))
va te renvoyer 0, or

Code: (pawn) [Sélectionner]
if(0 == 0)
renvoi 1, et le script ne fait plus ce que tu veux. Donc soit tu fais

Code: (pawn) [Sélectionner]
if(!strcmp(cmdtext, "kick", true))
ou

Code: (pawn) [Sélectionner]
if(strcmp(cmdtext, "kick", true) == 0)
mais pas les deux à la fois. ;)

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #11 le: 20 Mai 2013, 16:44:41 »
Salut,

pour le kick avec délai, tu serais mieux d'utiliser une fonction qui fait elle le timer, ça évitera que tu fasse une erreur dans le timer puisque ça ne marchera jamais si ce n'est pas correct.

stock KickEx(playerid, time)
{
SetTimerEx("Kick1", time*1000, false, "i", playerid);
return 1;
}

tu peut même ajouter un test si le joueur est connecté et la raison:

stock KickEx(playerid, time, reason[])
{
new return_val = 0;
if(IsPlayerConnected(playerid))
{
SendClientMessageToAll(0xFF0000FF, reason); // en rouge
SetTimerEx("Kick1", time*1000, false, "i", playerid);
return_val = 1;
}
return return_val;
}

Voilà, bonne chance

++Sim++





Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #12 le: 20 Mai 2013, 19:08:09 »
J'ai suivis ta méthode Infu et lorsque je compile, ça me sort 21Erreurs..

Code: (pawn) [Sélectionner]
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(45) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(48) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(50) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(51) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(53) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(55) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(58) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(64) : error 021: symbol already defined: "GetPlayerPos"
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(70) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(72) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(79) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(84) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(86) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(88) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(98) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(102) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(106) : error 021: symbol already defined: "SendClientMessage"
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(107) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(109) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(111) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(117) : error 010: invalid function or declaration
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(156) : warning 203: symbol is never used: "a"
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(156) : warning 203: symbol is never used: "string"
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(156) : warning 203: symbol is never used: "x"
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(156) : warning 203: symbol is never used: "y"
C:\Users\Clément\Desktop\samp serv\filterscripts\UBB.pwn(156) : warning 203: symbol is never used: "z"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


21 Errors.
Madinina972



Hors ligne Infu

  • *
  • Modo LS - Admin FnF
  • Messages: 3551
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #13 le: 20 Mai 2013, 19:50:18 »
Tu n'as pas SSCANF, installes-le  et appel le en haut du script :smile:


Adju ♥
(-_-)



Hors ligne madinina972

  • *
  • Grand Banditisme
  • Debutant dans le pawn
  • Messages: 517
    • Voir le profil
Re : zcmd en strcmp , Comment faire?
« Réponse #14 le: 21 Mai 2013, 11:28:25 »
J'ai sscanf2 et je l'ai bien mis en haut du script..
Madinina972