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

Titre: Fonction
Posté 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)"
Code: (PAWN) [Sélectionner]
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  :(
Code: (PAWN) [Sélectionner]
SendFormatedClientMessage(playerid, color, text[], variable1, variable2, variable3)
{
new message[128];
format(message, sizeof(message), text[], variable1, variable2, variable3);
SendClientMessage(playerid, color, message);
}
Titre: Re : Fonction
Posté par: Kevin_Carter le 24 Août 2012, 06:32:57
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;
}
Titre: Re : Fonction
Posté par: Kiloutre le 24 Août 2012, 14:49:45
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)

Code: (PAWN) [Sélectionner]
SendFormatedClientMessage(playerid, PMCOLOR, "PM a [%d]%s : %s", id, cibledplayername, cmdtext[8]);
Titre: Re : Fonction
Posté par: Kevin_Carter le 24 Août 2012, 17:57:17
SendFormatedClientMessage(playerid, PMCOLOR, "PM a [%d]%s : %s", id, cibledplayername, cmdtext);
Essai ça
Titre: Re : Fonction
Posté par: Kiloutre le 24 Août 2012, 18:17:43
Le probleme reste le meme
Titre: Re : Fonction
Posté par: Kevin_Carter le 24 Août 2012, 18:47:39
Alors là ... Je ne vois pas trop dans ce cas ... :angelnot
Titre: Re : Fonction
Posté par: Diablo62 le 25 Août 2012, 14:56:30
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
Titre: Re : Fonction
Posté par: S!m le 26 Août 2012, 01:05:28
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++