GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Komolos le 04 Septembre 2010, 23:40:15

Titre: problème /n
Posté par: Komolos le 04 Septembre 2010, 23:40:15
Bonsoir/bonjour,
J'ai un problème avec mon /n, J'aimerai que mes membre du staff peuvent même si il ont un level plus haut que 3 voici mon code :

if(strcmp(cmd, "/n", true) == 0 || strcmp(cmd, "/nouveau", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
        if(gPlayerLogged[playerid] == 0)
        {
            SendClientMessage(playerid, COLOR_GREY, "   Vous devez d'abord vous identifiez !");
            return 1;
        }
if(PlayerInfo[playerid][pLevel] > 2)
{
SendClientMessage(playerid, COLOR_LIGHTRED, " Chat réservé au nouveau joueur qui ont un niveau infèrieur à 3  !");
return 1;
}
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, TEAM_CYAN_COLOR, "   Vous ne pouvez plus parler, Vous avez était silencez !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
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: (/n)ouveau [Chat des Nouveau]");
return 1;
}
format(string, sizeof(string), "[NEWS Joueur] %s: %s " , sendername, result);
OOCOff(COLOR_YELLOW,string);
printf("%s", string);
}
return 1;
}
Titre: Re : problème /n
Posté par: Nesik le 04 Septembre 2010, 23:44:29
Essaye comme ça
if(strcmp(cmd, "/n", true) == 0 || strcmp(cmd, "/nouveau", true) == 0)
{
   if(IsPlayerConnected(playerid))
   {
              if(PlayerInfo[playerid][pAdmin] == 1)
               {
        if(gPlayerLogged[playerid] == 0)
        {
           SendClientMessage(playerid, COLOR_GREY, "   Vous devez d'abord vous identifiez !");
           return 1;
       }
if(PlayerInfo[playerid][pLevel] > 2)
{
SendClientMessage(playerid, COLOR_LIGHTRED, " Chat réservé au nouveau joueur qui ont un niveau infèrieur à 3  !");
return 1;
}
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, TEAM_CYAN_COLOR, "   Vous ne pouvez plus parler, Vous avez était silencez !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
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: (/n)ouveau [Chat des Nouveau]");
return 1;
}
format(string, sizeof(string), "[NEWS Joueur] %s: %s " , sendername, result);
OOCOff(COLOR_YELLOW,string);
printf("%s", string);
}
                }
return 1;
}
Titre: Re : problème /n
Posté par: Komolos le 05 Septembre 2010, 00:06:08
C:\Users\Administrateur\Desktop\Street City 0.3b\gamemodes\sf-ulrp.pwn(19169) : error 033: array must be indexed (variable "PlayerInfo")
Titre: Re : problème /n
Posté par: Nesik le 05 Septembre 2010, 00:19:48
J'ai edit mon post,normalement ça marche
EDIT:tient encore un serveur avec UL
Titre: Re : problème /n
Posté par: Komolos le 05 Septembre 2010, 00:27:18
marche pas même avec :              
if(PlayerInfo[playerid][pAdmin] == 1)
plus d'erreur mais IG sa m'arche pas
Titre: Re : problème /n
Posté par: rapido le 05 Septembre 2010, 02:24:26
Un peu normal que sa fonctionne pas IG si tu a des erreur , mais sa serrai ptete bien de les montrer les erreur   ;)
Titre: Re : Re : problème /n
Posté par: Nesik le 05 Septembre 2010, 09:24:39
Un peu normal que sa fonctionne pas IG si tu a des erreur , mais sa serrai ptete bien de les montrer les erreur   ;)
Non il dit qu'il n'a pas d'erreur
Titre: Re : problème /n
Posté par: vincentdu90 le 05 Septembre 2010, 11:10:52
Normal que ça marche pas parce que tu as rajouter une condition if(PlayerInfo[playerid][pAdmin] == 1 et là tu le verra seulement si tu es admin (si je ne me trompe pas) .
Il faudrait effacer ceci et mettre plutôt au début


if(IsPlayerConnected(playerid) || PlayerInfo[playerid][pAdmin] == 1)
{
//suite du code

Titre: Re : problème /n
Posté par: Nesik le 05 Septembre 2010, 11:13:48
Tu as pas tord  ;)
Titre: Re : problème /n
Posté par: vincentdu90 le 05 Septembre 2010, 11:17:29
EDIT: Je refait completement le bout de code à ma façon parce que il faut que le joueur soit logged et qu'il soit admin , ce que j'ai donné ne fonctionne que si le joueur est admin mais en RCON et avec une autre fonction .

Voici le code , je n'ai pas pu le tester .

if(strcmp(cmd, "/n", true) == 0 || strcmp(cmd, "/nouveau", true) == 0)
{
   if(IsPlayerConnected(playerid))
   {
if(gPlayerLogged[playerid] == 1)
{
   if(PlayerInfo[playerid][pMuted] == 0)
   {
        if(PlayerInfo[playerid][pLevel] > 2) || PlayerInfo[playerid][pAdmin] == 1)
        {
        GetPlayerName(playerid, sendername, sizeof(sendername));
        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: (/n)ouveau [Chat des Nouveau]");
return 1;
}

format(string, sizeof(string), "[NEWS Joueur] %s: %s " , sendername, result);
OOCOff(COLOR_YELLOW,string);
printf("%s", string);

}
    }
}

else if(gPlayerLogged[playerid] == 0)
        {
        SendClientMessage(playerid, COLOR_GREY, "   Vous devez d'abord vous identifiez !");
        return 1;
        }

else if(PlayerInfo[playerid][pMuted] == 0)
{
SendClientMessage(playerid, TEAM_CYAN_COLOR, "   Vous ne pouvez plus parler, Vous avez était silencez !");
return 1;
}

return 1;
}
}
Titre: Re : problème /n
Posté par: Komolos le 05 Septembre 2010, 11:35:54
pas d'erreur marche pas non plus, je pence qu'il faut une variable pour que la personnes du staff peuvent parlé.
Titre: Re : problème /n
Posté par: vincentdu90 le 05 Septembre 2010, 11:36:45
J'ai éditer mon dernier post essaye avec ce que je t'ai donné
Titre: Re : problème /n
Posté par: Komolos le 05 Septembre 2010, 11:39:35
Je vais essaillé mais j'essaille quelque que choses moi aussi j'ai testé :             if(PlayerInfo[playerid][pAdmin] == 1338)
            {
            format(string, sizeof(string), "fondateur: %s",result);
            OOCOff(COLOR_YELLOW, string);
            printf("%s", string);
            }
Titre: Re : problème /n
Posté par: vincentdu90 le 05 Septembre 2010, 11:41:27
ok si tu as des erreurs : Loose identitation ou que tu en a plein c'est qu'il doit manquer une accolade dans mon code ou qu'elles ne sont pas bien alignés .

EDIT : Je l'ai ReEdit normalement tu devrais pas avoir d'erreur .
Titre: Re : problème /n
Posté par: Komolos le 05 Septembre 2010, 12:13:09
if(strcmp(cmd, "/n", true) == 0 || strcmp(cmd, "/nouveau", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
           if(IsPlayerConnected(playerid) || PlayerInfo[playerid][pAdmin] == 1338)
               {
         if(gPlayerLogged[playerid] == 0)
         {
            SendClientMessage(playerid, COLOR_GREY, "   Vous devez d'abord vous identifiez !");
            return 1;
        }
if(PlayerInfo[playerid][pLevel] > 2 || PlayerInfo[playerid][pAdmin] == 1338)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Chat réservé au nouveau joueur qui ont un niveau infèrieur à 3  !");
return 1;
}
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, TEAM_CYAN_COLOR, "   Vous ne pouvez plus parler, Vous avez était silencez !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
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: (/n)ouveau [Chat des Nouveau]");
return 1;
}
            if(PlayerInfo[playerid][pAdmin] == 1338)
            {
            format(string, sizeof(string), "fondateur: %s",result);
            OOCOff(COLOR_YELLOW, string);
            printf("%s", string);
            }
format(string, sizeof(string), "Debutant %s: %s *" , sendername, result);
OOCOff(COLOR_GREEN,string);
printf("%s", string);
            }
                }
return 1;
}
marche toujours pas bizzard
Titre: Re : problème /n
Posté par: vincentdu90 le 05 Septembre 2010, 12:18:11
Tu as essayé mon code ? Parce que je l'ai ReEdité pour éviter les erreurs d'identitation (ré-essaye le)
Titre: Re : problème /n
Posté par: Komolos le 05 Septembre 2010, 12:24:00
C:\Users\Administrateur\Desktop\Street City 0.3b\gamemodes\sf-ulrp.pwn(18801) : error 029: invalid expression, assumed zero
C:\Users\Administrateur\Desktop\Street City 0.3b\gamemodes\sf-ulrp.pwn(18801) : warning 215: expression has no effect
C:\Users\Administrateur\Desktop\Street City 0.3b\gamemodes\sf-ulrp.pwn(18801) : error 001: expected token: ";", but found ")"
C:\Users\Administrateur\Desktop\Street City 0.3b\gamemodes\sf-ulrp.pwn(18801) : error 029: invalid expression, assumed zero
C:\Users\Administrateur\Desktop\Street City 0.3b\gamemodes\sf-ulrp.pwn(18801) : fatal error 107: too many error messages on one line
Si je mais ton code
Titre: Re : problème /n
Posté par: vincentdu90 le 05 Septembre 2010, 12:25:35
Montre la ligne .
Titre: Re : problème /n
Posté par: Nesik le 05 Septembre 2010, 12:25:48
Dans ton code tu mets:
if(PlayerInfo[playerid][pLevel] > 2 || PlayerInfo[playerid][pAdmin] == 1338)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Chat réservé au nouveau joueur qui ont un niveau infèrieur à 3  !");
return 1;
}
Donc les admin lvl 1338 vont recevoir ce message
Titre: Re : problème /n
Posté par: Komolos le 05 Septembre 2010, 12:59:34
j'ai corriger marche toujours pas :'(

Double post
aucune idée pourquoi ça marche pas ?
Titre: Re : problème /n
Posté par: vincentdu90 le 05 Septembre 2010, 14:03:24
Eu tu m'as pas donné la ligne de l'erreur avec le code que je t'ai passé ....
Titre: Re : problème /n
Posté par: Komolos le 05 Septembre 2010, 14:09:39
if(PlayerInfo[playerid][pLevel] > 2) || PlayerInfo[playerid][pAdmin] == 1);
Titre: Re : problème /n
Posté par: vincentdu90 le 05 Septembre 2010, 14:50:24
Faut enlever le ")" après le 2 et le ";" à la fin .

Donc remplace cette ligne par ça : if(PlayerInfo[playerid][pLevel] > 2 || PlayerInfo[playerid][pAdmin] == 1)
Titre: Re : problème /n
Posté par: Komolos le 05 Septembre 2010, 15:45:28
EDIT : sa m'afiche 2 fois ce que je dit, et les level 1 peuvent pas parlé j'ai bien fait toutes les variable :s :

if(strcmp(cmd, "/n", true) == 0 || strcmp(cmd, "/nouveau", true) == 0)
{
   if(IsPlayerConnected(playerid))
   {
if(gPlayerLogged[playerid] == 1)
{
   if(PlayerInfo[playerid][pMuted] == 0)
   {
        if(PlayerInfo[playerid][pLevel] > 2 || PlayerInfo[playerid][pAdmin] == 1)
        {
        GetPlayerName(playerid, sendername, sizeof(sendername));
        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: (/n)ouveau [Chat des Nouveau]");
return 1;
}
                    if(PlayerInfo[playerid][pAdmin] == 1338)
                    {
                    format(string, sizeof(string), "Fondateur %s: %s *", sendername, result);
                    OOCOff(COLOR_GREEN, string);
                    printf("%s", string);
                    }
                    else if(PlayerInfo[playerid][pAdmin] == 1)
                    {
                    format(string, sizeof(string), "Membre de confiance %s: %s *", sendername, result);
                    OOCOff(COLOR_GREEN, string);
                    printf("%s", string);
                    }
                    else if(PlayerInfo[playerid][pAdmin] == 2)
                    {
                    format(string, sizeof(string), "Modérateur %s: %s *", sendername, result);
                    OOCOff(COLOR_GREEN, string);
                    printf("%s", string);
                    }
                    else if(PlayerInfo[playerid][pAdmin] == 3)
                    {
                    format(string, sizeof(string), "Modérateur %s: %s *", sendername, result);
                    OOCOff(COLOR_GREEN, string);
                    printf("%s", string);
                    }
                    else if(PlayerInfo[playerid][pAdmin] == 4)
                    {
                    format(string, sizeof(string), "Administrateur %s: %s *", sendername, result);
                    OOCOff(COLOR_GREEN, string);
                    printf("%s", string);
                    }
                    else if(PlayerInfo[playerid][pAdmin] == 1337)
                    {
                    format(string, sizeof(string), "Super-Admin %s: %s *", sendername, result);
                    OOCOff(COLOR_GREEN, string);
                    printf("%s", string);
                    }
                    else if(PlayerInfo[playerid][pLevel] == 2)
                    {
                    format(string, sizeof(string), "Aprentie %s: %s *", sendername, result);
                    OOCOff(COLOR_GREEN, string);
                    printf("%s", string);
                    }
                    else if(PlayerInfo[playerid][pLevel] == 1)
format(string, sizeof(string), "Debutant %s: %s *" , sendername, result);
OOCOff(COLOR_GREEN,string);
printf("%s", string);

}
    }
}

else if(gPlayerLogged[playerid] == 0)
        {
        SendClientMessage(playerid, COLOR_GREY, "   Vous devez d'abord vous identifiez !");
        return 1;
        }
        else if(PlayerInfo[playerid][pLevel] > 3)
    {
SendClientMessage(playerid, COLOR_LIGHTRED, " Chat réservé au nouveau joueur qui ont un niveau infèrieur à 3  !");
return 1;
    }
else if(PlayerInfo[playerid][pMuted] == 0)
    {
SendClientMessage(playerid, TEAM_CYAN_COLOR, "   Vous ne pouvez plus parler, Vous avez était silencez !");
return 1;
}

return 1;
}
}

Double post
Personnes à une idée pourquoi ça ne marche pas ?
Titre: Re : problème /n
Posté par: vincentdu90 le 06 Septembre 2010, 21:11:01
A la ligne if(PlayerInfo[playerid][pLevel] > 2 || PlayerInfo[playerid][pAdmin] == 1) a la place du signe ">" tu met "<=" et normalement les levels 2 ou moins pourront l'utiliser .
Sinon pour ton deuxième problème essaye de remplace if à cette ligne if(PlayerInfo[playerid][pAdmin] == 1338) par un else if .
Titre: Re : problème /n
Posté par: Komolos le 06 Septembre 2010, 21:35:28
Bin la quand je fait la commande il ce passe rien, aucune erreur a la compilation...
Je comprends pas !
Titre: Re : problème /n
Posté par: vincentdu90 le 06 Septembre 2010, 21:51:58
Et en remettant if normalement essaye .