GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Kevin_Carter le 01 Mai 2013, 05:37:23
-
Bonjour à tous, alors voilà, mon problème est que les textes de mes /me, /do, /o, /n, /rapport etc sont trop courts...
J'ai augmenté la capacité de mes variables mais sans résultat... Je sais qu'un topic du genre à déjà été créer mais ça ne fonctionne pas avec moi.
Voilà le script du /me :
CMD:me(playerid, params[])
{
new pName[26], Float:x, Float:y, Float:z,string[250], message[126];
GetPlayerName(playerid, pName, 26);
GetPlayerPos(playerid, x,y,z);
if(!sscanf(params,"s", message))
{
for(new i = 0;i<MAX_PLAYERS; i++)
{
format(string, sizeof(string),"%s %s", pName, message);
if(IsPlayerInRangeOfPoint(i, 10, x,y,z))
{
SendClientMessage(i, violet, string);
}
}
}
else return SendClientMessage(playerid, gris ,"USAGE: /me <message>");
return 1;
}
Je vous remercie d'avance. ++Kevin
-
Si je ne dit pas de bétise.
Il faut pour bien faire il faut éclater ton texte par tranche de 144 caractère(limite de la commande SendClientMessage) puis l'afficher en plusieurs fois avec une boucle.
-
Bonjour,
Il faut remplacer la ligne :
if(!sscanf(params,"s", message))
Par :
if(!sscanf(params,"s[126]", message))
Tu fais ensuite la même chose avec les autres commandes qui ont ce même problème, en remplaçant 126 par la taille des tableaux qui recevront la chaîne de caractère.
J'avais le même problème et je l'ai résolu en parcourant les explications de Y_Less sur sscanf. C'est une petite spécificité de ce dernier.
-
Par contre, pour un /me, tu t'embrouilles un peu là. ^^
CMD:me(playerid, text[])
{
if(isnull(text)) SendClientMessage(playerid, 0xFFFFFFFF, "Usage /me <action>");
new pname[MAX_PLAYER_NAME], str[128];
GetPlayerName(playerid, pname, sizeof(pname));
format(str, 128, "* %s %s", pname, text);
SendClientMessageToAll(0xFFFFFFFF, str);
return 1;
}
Je trouve ça plus simple. A toi de le modifier ou de le laisser tel qu'elle. (J'ai pas fait ton IsRangOfPoint, manque de temps, mais le principe est là ;) )
-
Merci à vous deux ! :)
Résolu.
-
@Infu.
C'est pour RP je pense donc la boucle est nécessaire, donc ton code est presque équivalent.
Cependant, il est vrai que le format de Kevin pourrait être mis en dehors de la boucle.
PS : <3 ta signature :laugh: