GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Kevin_Carter le 23 Août 2012, 16:58:39

Titre: Demande d'aide /report
Posté par: Kevin_Carter le 23 Août 2012, 16:58:39
Bonjour je voudrais savoir approximativement comment faire pour la commande /report.
Je ne veux pas de code tout fais mais juste savoir si je dois faire des boucle sur tout les joueurs etc ... Car je ne vois vraiment pas ...

Merci d'avance
++
Kevin_Carter
Titre: Re : Demande d'aide /report
Posté par: Xolokos le 23 Août 2012, 17:39:49
if(!strcmp(Cmd, "/report", true))
{
        new Tmp[256];
        Tmp = strtok(cmdtext, Idx);
if(!strlen(Tmp))
{
SendClientMessage(playerid, -1,"USAGE: /rappor [TEXTE]");
return 1;
}
new Nom[27],Texte[125];
GetPlayerName(playerid, Nom, sizeof(Nom));//On prend le nom dans Nom.
format(Texte, sizeof(Texte), "((Rapport de [ID:%d]%s : %s))", playerid, Nom, cmdtext[8]);//On format le texte pour reçevoir l'ID le nom et le texte que le joueur envoie.
        SendClientMessage(playerid, BLANCHE, Texte);//On envoie le message au joueur avec le format plus haut.
SendAdminMessage(-1, Texte);//On utilise la nouvelle fonction plus bas.
return 1;
}

stock SendAdminMessage(color, text[])//Pour envoyer des message uniquement au administrateur plus pratique que de remettre tout le scripte.
{/Vous avez donc 2 variable color pour la couleur et le text[] pour le texte qu'on utiliseras plus bas.
for(new i = 0; i < MAX_PLAYERS; i ++)//Boucle pour passer sur tout les joueurs ici la variable i est un nombre donc l'ID du joueur qui est i
{
if(IsPlayerConnected(i))// Si i (ID du joueur) est connecté.
{
if (Levels[i] >= 1)//Si la variables Levels a la case i est supérieur ou égal a 1
{
              SendClientMessage(i, color, text); // On envoie au joueur i un message avec la couleur color et le texte text.
    }
}
}
}
Titre: Re : Demande d'aide /report
Posté par: Kevin_Carter le 23 Août 2012, 17:50:53
Merci. Je me suis aidé du problème d'une autre personne pour faire ma commande ! Et réussi du premier coup et j'ai seulement oublié de mettre [RESOLU]. Mais ton code ma bien aidé aussi Xolokos Merci à toi

Double post
Autre problème:

J'ai créer une commande /jail mais quand je tape /jail Kevin_Carter Test 1
je respawn directement devant le commico.
Voici le code :
CMD:jail(playerid, params[])
{
new pId;
new pName[MAX_PLAYER_NAME];
GetPlayerName(pId, pName, sizeof(pName));
new temps;
new message[120];
new raison[50];
if(!sscanf(params,"usi[200]", pId, raison,temps))
{
   if(pRang[playerid] == USER_ADMINISTRATOR || pRang[playerid] == USER_ADMINISTRATOR)
   {
       if(IsPlayerConnected(pId))
       {
           SetPlayerPos(pId, 2648.87383,78,1001);
format(message, sizeof(message), "[JAIL]%s a été jail %i minutes, pour : %s ", pName, temps, raison);
SendClientMessageToAll(orange, message);
SetTimer("jail", temps, false);
       }
       else SendClientMessage(playerid, gris,"Le joueur n'est pas connecté.");
   }
   else SendClientMessage(playerid, gris, "Vous devez être administrateur/modérateur de ce serveur.");
}
else SendClientMessage(playerid, orange,"USAGE:/jail <PlayerId/PlayerName> <Raison> <temps>");
return 1;
}

public jail(playerid)
{
SetPlayerPos(playerid, 1555.3046,-1675.9924,16.1953);
SendClientMessage(playerid, gris, "Temps de prison éffectué, soyez meilleur joueur dorénavant.");
return 1;
}
Merci d'avance