Code corrigé, merci à vous tous :)
<?php // Ne mettez surtout pas ça, c'est juste pour que le code soit en couleur ;)
new Float:vie; // Definissez ces news tout en haut de votre script, en haut de " if desfined filterscript "
new bool:IsPlayerAfk;
// là y'a tout votre code
/* Mettez les commandes suivante dans
public OnPlayerCommandText(playerid, cmdtext[]) */
if (strcmp("/afk", cmdtext, true, 4) == 0)
{
new name[MAX_PLAYER_NAME], string[35+MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name)); // On prend le nom du joueur
GetPlayerHealth(playerid,vie); // On prend la vie actuelle du joueur ( avant qu'il fasse /afk )
TogglePlayerControllable(playerid,0); // Le joueur ne peut plus bouger
format(string, sizeof(string), "%s est maintenant AFK !", name); // On dit à tout le monde que le joueur se met AFK
SendClientMessageToAll(VERT, string);
AFK = Create3DTextLabel("Mode AFK", VERT, 30.0, 40.0, 50.0, 40.0, 0); // Ici le joueur a sur sa tête :
Attach3DTextLabelToPlayer(AFK, playerid, 0.0, 0.0, 0.7); // " Mode AFK "
GameTextForPlayer(playerid, " Vous etes maintenant AFK, tapez /back pour revenir au jeu.",6000, 5);
SetPlayerHealth(playerid,9999.999); // On lui met la vie infinie pour qu'on ne puisse pas le tuer pendant son absence
IsPlayerAfk = true; // On passe IsPlayerAfk a true pour permettre le joueur de passer en /back plus tard
return 1;
}
if (strcmp("/back", cmdtext, true, 10) == 0)
{
if (IsPlayerAfk == true)
{
new name[MAX_PLAYER_NAME], string[35+MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name)); // On prend le nom du joueur
TogglePlayerControllable(playerid,1); // Le joueur peut bouger à nouveau
format(string, sizeof(string), "%s est de retour sur son ordinateur !", name); // On dit à tout le monde que le joueur est revenu
SendClientMessageToAll(VERT, string);
Delete3DTextLabel(Text3D:AFK); // On enleve le "Mode AFK de la tête du joueur "
GameTextForPlayer(playerid, " Vous etes maintenant de retour, bon jeu sur [VotreServeurIci] !.",6000, 5);
SetPlayerHealth(playerid, vie); // On remet au joueur la vie qu'il avait avant de faire /afk ( pour pas qu'il se heal en utilisant ces commandes )
IsPlayerAfk = false; // On remet IsPlayerAfk false sinon la commande /back pourra s'executer même en n'étant pas AFK
return 1;
}
else
{
SendClientMessage(playerid, ROUGE_CLAIR, " Vous ne pouvez pas être de retour si vous n'êtes pas afk...");
return 1;
}
}
Et voilà :) Je viens de tester le code, il marche très bien ! ;)