GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Bankai_Rodriguez le 14 Mars 2010, 13:05:54

Titre: Commande ' /pm ' et ' /apm '
Posté par: Bankai_Rodriguez le 14 Mars 2010, 13:05:54
Bonjour à tous !

J'aimerais qu'on me donne le code du ' /pm ' (MP des joueurs) et ' /apm ' (MP des admins) pour mettre dans mon GM, le godfather.

Je le trouve pas

Merci  ;)

Double post
Code du PM :

Citer
//-------------------------------[ Message Personnel ]--------------------------------------------------------------------------

     if(strcmp("/pm", cmd, true) == 0)
     {
         tmp = strtok(cmdtext,idx);

         if(!strlen(tmp) || strlen(tmp) > 5) {
            SendClientMessage(playerid,COLOR_GRAD1,"USAGE : /pm [playerID/PartieduNom] [Message]");
            return 1;
         }

         new id = strval(tmp);
           gMessage = strrest(cmdtext,idx);

         if(!strlen(gMessage)) {
            SendClientMessage(playerid,COLOR_GRAD1,"USAGE : /pm [playerID/PartieduNom] [Message]");
            return 1;
         }

         if(!IsPlayerConnected(id)) {
            SendClientMessage(playerid,COLOR_GRAD1," Aucun joueur trouvé");
            return 1;
         }

         if(playerid != id) {
            if(PMToggled[id] == 0 && PlayerInfo[playerid][pAdmin] == 0 || PlayerInfo[playerid][pModerator] == 0)
             {
                 SendClientMessage(playerid,COLOR_GRAD1,"Ce joueur à bloqué sa messagerie personnel");
               return 1;
             }
            GetPlayerName(id,iName,sizeof(iName));
            GetPlayerName(playerid,pName,sizeof(pName));
            format(Message,sizeof(Message),"Message envoyé à - %s(%d): %s",iName,id,gMessage);
            SendClientMessage(playerid,PM_OUTGOING_COLOR,Message);
            format(Message,sizeof(Message),"Message reçu de - %s(%d): %s",pName,playerid,gMessage);
            SendClientMessage(id,PM_INCOMING_COLOR,Message);
            PlayerPlaySound(id,1085,0.0,0.0,0.0);

            printf("Message personnel : %s",Message);

         }
         else {
            SendClientMessage(playerid,COLOR_GRAD1,"Vous ne pouvez pas vous envoyer des messages personnels !");
         }
         return 1;
      }


Erreur à la compilation :

Citer
D:\Serveur local\gamemodes\Paradize.pwn(9307) : warning 217: loose indentation
D:\Serveur local\gamemodes\Paradize.pwn(9317) : error 017: undefined symbol "gMessage"
D:\Serveur local\gamemodes\Paradize.pwn(9317) : error 017: undefined symbol "strrest"
D:\Serveur local\gamemodes\Paradize.pwn(9319) : error 017: undefined symbol "gMessage"
D:\Serveur local\gamemodes\Paradize.pwn(9330) : error 017: undefined symbol "PMToggled"
D:\Serveur local\gamemodes\Paradize.pwn(9330) : warning 215: expression has no effect
D:\Serveur local\gamemodes\Paradize.pwn(9330) : error 001: expected token: ";", but found "]"
D:\Serveur local\gamemodes\Paradize.pwn(9330) : error 029: invalid expression, assumed zero
D:\Serveur local\gamemodes\Paradize.pwn(9330) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


7 Errors.
Titre: Re : Commande ' /pm ' et ' /apm '
Posté par: BuBuNo le 14 Mars 2010, 13:18:49
Il y a le FS base.pwn qui la regarde dans

Titre: Re : Commande ' /pm ' et ' /apm '
Posté par: Bankai_Rodriguez le 14 Mars 2010, 13:21:16
J'aimerais le mettre dans le GM directement, je fais comment ?
Titre: Re : Commande ' /pm ' et ' /apm '
Posté par: cristab le 14 Mars 2010, 14:05:44
si tu look bien tout ce qui te manque et dans le fichier common.inc
Titre: Re : Commande ' /pm ' et ' /apm '
Posté par: Bankai_Rodriguez le 14 Mars 2010, 19:16:11
Citer
if(strcmp(cmd, "/apm", true) == 0)
   {
       if(IsPlayerConnected(playerid))
       {
           if (PlayerInfo[playerid][pAdmin] >= 1)
           {
              if(gPlayerLogged[playerid] == 0)
              {
                  SendClientMessage(playerid, COLOR_GREY, "Vous devez être connecté !");
                  return 1;
              }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
               SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /apm [playerID/PartieduNom] [Texte]");
               return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if (IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(HidePM[giveplayerid] > 0)
                    {
                        SendClientMessage(playerid, COLOR_GREY, "Ce joueur à bloqué les messages personnels");
                        return 1;
                    }
                  {
                     SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /apm [playerid/PartOfName] [text]");
                     return 1;
                  }
                  format(string, sizeof(string), "L'Admin %s mp: %s", sendername, (result));
                  SendClientMessage(giveplayerid, 0xBBA033AA, string);
                  format(string, sizeof(string), "Message privé envoié à [ID:%d]%s: %s", giveplayerid, giveplayer, (result));
                  SendClientMessage(playerid,  0xE5C43EAA, string);
                  return 1;
               }
            }
            else
            {
               format(string, sizeof(string), " L'ID %d n'est pas connecté.", giveplayerid);
               SendClientMessage(playerid, COLOR_GRAD1, string);
            }
         }
          else
          {
            SendClientMessage(playerid, COLOR_GRAD1, "Vous n'êtes pas autorisé a utiliser cette commande!");
          }
      }
      return 1;

Erreur :

Citer
veur local\gamemodes\Paradize.pwn(9339) : warning 225: unreachable code
D:\Serveur local\gamemodes\Paradize.pwn(9339) : error 017: undefined symbol "result"
D:\Serveur local\gamemodes\Paradize.pwn(9341) : error 017: undefined symbol "result"
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.

On peut m'aider ??  :-[
Titre: Re : Commande ' /pm ' et ' /apm '
Posté par: Jawitt le 14 Mars 2010, 21:33:42
Salut,

if(strcmp(cmd, "/apm", true) == 0 || strcmp(cmd, "/pma", true) == 0)
{
   if(IsPlayerConnected(playerid))
   {
       if(PlayerInfo[playerid][pAdmin] >= 1)
       {
           SendClientMessage(playerid, COLOR_GREY, "   Vous n'êtes pas un administrateur !");
           return 1;
       }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: (/p)me [playerid/PartOfName] [text]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if (IsPlayerConnected(giveplayerid))
{
   if(giveplayerid != INVALID_PLAYER_ID)
   {
       if(HidePM[giveplayerid] > 0)
       {
           SendClientMessage(playerid, COLOR_GREY, "   Le joueur à bloqué les PMs !");
           return 1;
       }
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /apm [playerid/PartOfName] [texte]");
return 1;
}
format(string, sizeof(string), "Message Privé de : Admin %s(ID:%d): %s", sendername, playerid, (result));
SendClientMessage(giveplayerid, 0xBBA033AA, string);
format(string, sizeof(string), "PM Envoyé à [ID:%d] %s: %s", giveplayerid, giveplayer, (result));
SendClientMessage(playerid,  0xE5C43EAA, string);
return 1;
}
}
else
{
format(string, sizeof(string), "   %d n'est pas un joueur actif.", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}

Je te l'ai même retouché un peu

Jawitt.
Titre: Re : Commande ' /pm ' et ' /apm '
Posté par: Bankai_Rodriguez le 17 Mars 2010, 17:04:37
Merci !

Mais si j'ai bien compris le code, les joueurs peuvent couper leurs messageries ?

Double post
Dans le jeu sa marche pas............Sa marque :

" Vous n'êtes pas administrateur "
Titre: Re : Commande ' /pm ' et ' /apm '
Posté par: Jawitt le 17 Mars 2010, 20:42:10
Salut,

Si tu n'essaye pas d'arranger le code, et donc de regarder ce qu'il pose problème, tu ne t'en sortiras pas.

( Oui tu as une fonction dans ton GM POUR )

Jawitt.