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
-
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;
}
-
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;
}
-
C:\Users\Administrateur\Desktop\Street City 0.3b\gamemodes\sf-ulrp.pwn(19169) : error 033: array must be indexed (variable "PlayerInfo")
-
J'ai edit mon post,normalement ça marche
EDIT:tient encore un serveur avec UL
-
marche pas même avec :
if(PlayerInfo[playerid][pAdmin] == 1)
plus d'erreur mais IG sa m'arche pas
-
Un peu normal que sa fonctionne pas IG si tu a des erreur , mais sa serrai ptete bien de les montrer les erreur ;)
-
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
-
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
-
Tu as pas tord ;)
-
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;
}
}
-
pas d'erreur marche pas non plus, je pence qu'il faut une variable pour que la personnes du staff peuvent parlé.
-
J'ai éditer mon dernier post essaye avec ce que je t'ai donné
-
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);
}
-
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 .
-
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
-
Tu as essayé mon code ? Parce que je l'ai ReEdité pour éviter les erreurs d'identitation (ré-essaye le)
-
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
-
Montre la ligne .
-
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
-
j'ai corriger marche toujours pas :'(
Double post
aucune idée pourquoi ça marche pas ?
-
Eu tu m'as pas donné la ligne de l'erreur avec le code que je t'ai passé ....
-
if(PlayerInfo[playerid][pLevel] > 2) || PlayerInfo[playerid][pAdmin] == 1);
-
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)
-
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 ?
-
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 .
-
Bin la quand je fait la commande il ce passe rien, aucune erreur a la compilation...
Je comprends pas !
-
Et en remettant if normalement essaye .