Salut,
[StAfF]mAn a simplement commi une petite erreur, par contre il a la bonne solution, car la tienne assignait la même variable à tous les joueurs, donc si un premier joueur tape /afk on enregistre sa position, lorsqu'un second le fait et que le premier est toujours AFK, on enregistre par dessus l'ancienne position et les deux joueurs iront à la même position
new Float:X[MAX_PLAYERS];
new Float:Y[MAX_PLAYERS];
new Float:Z[MAX_PLAYERS];
Et maintenant les commandes
if(strcmp(cmdtext, "/afk", true) == 0)
{
new pName[MAX_PLAYER_NAME];
new string[48];//très bien d'avoir compris le principe de prendre un string le plus petit possible
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "%s est ABSENT.", pName);
GetPlayerPos(playerid,X[playerid], Y[playerid], Z[playerid]);
SetPlayerPos(playerid,2265.9468,1620.0013,99.0233);
SCMTA(COLOR_RED, string);
SetPlayerFacingAngle(playerid,89.9107);
TogglePlayerControllable(playerid, 0);
SetPlayerName(playerid,"[AFK]%s");
return 1;
}
if(strcmp(cmdtext, "/back", true) == 0)
{
new pName[MAX_PLAYER_NAME];
new string[48];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "%s est de retour dans le jeu.", pName);
SCMTA(COLOR_GREEN, string);
SetPlayerFacingAngle(playerid, 0);
TogglePlayerControllable(playerid, 1);
SetPlayerPos(playerid, X[playerid], Y[playerid], Z[playerid]);
return 1;
}
Et voilà qui devrait être numéro 1
++Sim++