Bonjour voilà cela faisait longtemps que je n'avais pas poster ici, et donc là j'ai deux gros problème.
Le 1er : Dini fout des "ÿ" à la 1ère ligne de chaque fichier qu'il crée/modifie et donc c'est assez entravant pour les statistiques, j'ai cherché toute trace de "ÿ" dans mon gm et dans dini.inc, nada, niet.
J'ai aussi ré-installer dini, toujours le même problème
Le deuxième problème :
J'ai crée une commande /report. Elle fonctionne parfaitement mais j'ai le message de commande éronée classique, j'ai cherché partout, aucune trâce de return 0; .
if(strcmp(cmd,"/report",true)==0)
{
tmp=strtok(cmdtext, idx);
new reason[128];
reason=strrest(cmdtext, idx);
if(strlen(tmp)==0||strlen(reason)==0) return SendClientMessage(playerid, ROUGE, "Usage : /report <ID> <RAISON>");
if(!IsPlayerConnected(strval(tmp))) return SendClientMessage(playerid, ROUGE, "Erreur : Le joueur n'est pas connecté");
new msg[128], reportmsg[128], jailmsg[128], name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
GetPlayerName(strval(tmp), name2, sizeof(name2));
format(msg, 128, "Vous avez bien reporté %s(%d) pour %s", name2, strval(tmp), reason);
SendClientMessage(playerid, VERT, msg);
if(strcmp(reason, "dm", true)!=0) format(reportmsg, 128, "[REPORT] %s(%d) à reporté %s(%d) pour : %s", name, playerid, name2, strval(tmp), reason);
if(strcmp(reason, "dm", true)==0) format(reportmsg, 128, "[REPORT] %s(%d) à reporté %s(%d) pour : DeathMatching", name, playerid, name2, strval(tmp));
{
if(psInfo[playerid][strval(tmp)][CANREPORT]==1)
{
if(pJail[strval(tmp)]==1) {
KillTimer(pJTimer[strval(tmp)]);
pJailTime[strval(tmp)]=pJailTime[strval(tmp)]+psInfo[playerid][strval(tmp)][REPORTSECOND];
format(jailmsg, 128, "%d secondes on été ajoutée a ta peine actuelle !", pJailTime[strval(tmp)]);
pJTimer[strval(tmp)]=SetTimerEx("JAILTIMER", 1000, true, "i", strval(tmp)); }
else {
format(jailmsg, 128, "%s(%d) a été emprisonné pour DeathMatch", name2, strval(tmp));
pJailTime[strval(tmp)]=psInfo[playerid][strval(tmp)][REPORTSECOND];
pJail[strval(tmp)]=1;
pJTimer[strval(tmp)]=SetTimerEx("JAILTIMER", 1000, true, "i", strval(tmp));
new cellule = randomEx(1, 4);
SetPlayerInterior(strval(tmp), 10);
if(cellule==1) SetPlayerPos(strval(tmp), 227.6383, 109.0363, 999.0156);
if(cellule==2)SetPlayerPos(strval(tmp), 223.3031, 108.6042, 999.0156);
if(cellule==3) SetPlayerPos(strval(tmp), 219.8017, 108.6047, 999.0156);
if(cellule==4) SetPlayerPos(strval(tmp), 215.4143, 108.4035, 999.0156); }
SendClientMessageToAll(VERT, jailmsg);
}
}
for(new i; i <= MAX_PLAYERS; i++) if(pAdminLevel[i]>0) SendClientMessage(i, VERT, reportmsg);
return 1;
}
Cela me fait aussi ça sur une commande ou il ya aussi une boucle pour vérifier si le joueur est administrateur...
if(strcmp(cmd,"/adchat",true)==0)
{
if(pAdminLevel[playerid]<1) return SendClientMessage(playerid, ROUGE, "Erreur : Cette commande n'existe pas.");
tmp=strrest(cmdtext, idx);
if(strlen(tmp)==0) return SendClientMessage(playerid, ROUGE, "Usage : /adchat <MESSAGE>");
new msg[128], name[MAX_PLAYER_NAME+1];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(msg, 128, "[ADMIN CHAT] %s(%d) : %s", name, playerid, tmp);
for(new i; i <= MAX_PLAYERS; i++)
{
if(pAdminLevel[i]>0) SendClientMessage(i, BLEU, msg);
}
return 1;
}
Autre problème :
Je veux essayer d'utiliser le GetPlayerColor pour faire une commande qui permet de parler à la place d'un joueur, sauf que il y a un truc dans le format qui foire...
format(msg, 128,"{%06x}%s{ffffff}: %s", GetPlayerColor(strval(tmp)), name, text);
Resultat en local :

En haut c'est moi qui parle, en bas c'est le SendClientMessage
Quelqu'un a une solution ?