GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Kiloutre le 24 Août 2012, 03:09:38
-
Bonjour, j'ai recemment tenté de crée une fonction qui combinerai le format avec le sendclientmessage, mais deux erreurs se presente, et je ne comprend rien :
Ici l'erreur "error 035: argument type mismatch (argument 5)"
SendFormatedClientMessage(playerid, PMCOLOR, "PM a [%d]%s : %s", id, cibledplayername, cmdtext[8]);
Ma fonction :
Ici l'erreur "error 029: invalid expression, assumed zero" survient sur la ligne du "format", et je ne comprend pas :(
SendFormatedClientMessage(playerid, color, text[], variable1, variable2, variable3)
{
new message[128];
format(message, sizeof(message), text[], variable1, variable2, variable3);
SendClientMessage(playerid, color, message);
}
-
format(message, sizeof(message), text, variable1, variable2, variable3);
Tu ne dois pas mettre les crochets !
SendFormatedClientMessage(playerid, color, text[], variable1, cibledplayername, variable3)
{
new message[128];
format(message, sizeof(message), text, variable1, cibledplayername, variable3);
SendClientMessage(playerid, color, message);
return 1;
}
-
D'accord, mais l'erreur 35 survient toujours quand je l'utilise :
C:\Users\Killian\Desktop\Serveur SA-MP\filterscripts\PrivMsg.pwn(43) : error 035: argument type mismatch (argument 5)
SendFormatedClientMessage(playerid, PMCOLOR, "PM a [%d]%s : %s", id, cibledplayername, cmdtext[8]);
-
SendFormatedClientMessage(playerid, PMCOLOR, "PM a [%d]%s : %s", id, cibledplayername, cmdtext);
Essai ça
-
Le probleme reste le meme
-
Alors là ... Je ne vois pas trop dans ce cas ... :angelnot
-
Salut.
Personnellement j'ai déjà essayé de faire en sorte que le format soit intégré directement dans un SendClientMessage que j'aurais modifié, mais je n'ai jamais réussi. A chaque fois j'avais toujours une erreur du même type que ce que tu viens de donner :S
-
Salut,
désolé mais c'est pratiquement impossible à faire de cette façon (Mr Fredo l'a fait il y a environ 2 ans je crois)
Utilisez les commandes préprocesseurs...
#define SendFormatMsg(%0, %1, %2, %3) \
{
new st_string[128];
format(st_string, sizeof(st_string, %2, %3);
SendClientMessage(%0, %1, st_string);
}
Le code peut contenir des erreurs mais normalement l'idée y est
Bonne chance
ps. tu colle ce code en haut de ton script, et tu utilise ainsi par la suite:
SendFormatMsg(playerid, color, string[], params...);
++Sim++