GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: JohnAnto le 21 Octobre 2012, 10:24:44
-
Bonjour,
Je fais un filterscript qui vas permettre aux admins, en faisant la commande /minigun pour avoir un minigun, commande /bazooka pour avoir un bazooka et la commande /rocket pour avoir un lance-rocket. Le problème c'est que,
Si je fais plusieurs if(strcmp(cmdtext, "/unecmd", true) == 0) sa m'affiche des erreurs. Voici un bout du script :
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/minigun", true) == 0) //1ère commande
{
if(IsPlayerAdmin(playerid))
{
GivePlayerWeapon(playerid,38,999);
SendClientMessage(playerid,COLOR_GREEN,"Vous venez de recevoir un Minigun");
return 1;
}
else
{
return SendClientMessage(playerid, COLOR_RED, "Arme réservée au Staff !");
return 1;
}
}
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/bazooka", true) == 0) //2ème commande
{
if(IsPlayerAdmin(playerid))
{
GivePlayerWeapon(playerid,36,999);
SendClientMessage(playerid,COLOR_GREEN,"Vous venez de recevoir un Bazooka");
return 1;
}
else
{
return SendClientMessage(playerid, COLOR_RED, "Arme réservée au Staff !");
return 1;
}
}
}
Et quand je compile, voici ce qui s'affiche :
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(57) : warning 225: unreachable code
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(60) : warning 209: function "OnPlayerCommandText" should return a value
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(64) : error 021: symbol already defined: "OnPlayerCommandText"
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(77) : warning 225: unreachable code
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(80) : warning 209: function "OnPlayerCommandText" should return a value
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Je ne vois pas ce qui ne vas pas. Sa dis que le GivePlayerWeapon est déjà définie, mais je suis obligé de le définir plusieurs fois, si je veut créer plusieurs commande !
Quel est le problème ?
Je vous remercie d'avance.
Toute réponse hors-sujet seras immédiatement signalée à l'administration. Le règlement du forum est disponible sur le lien suivant : http://www.gtaonline.fr/forums/index.php/topic,2.0.html (http://www.gtaonline.fr/forums/index.php/topic,2.0.html)
-
Deux fois la même callback OnPlayerText, deux return à la suite.
J'en dis pas plus sinon tu va jamais rien apprendre et tu va continuer à faire 5 postes par jour.
PS : Postes tes bouts code PAWN dans la balise de code PAWN.
PPS : On ne sait pas à quoi correspond les numéros de lignes ici ;)
-
Deux fois la même callback OnPlayerText, deux return à la suite.
J'en dis pas plus sinon tu va jamais rien apprendre et tu va continuer à faire 5 postes par jour.
PS : Postes tes bouts code PAWN dans la balise de code PAWN.
PPS : On ne sait pas à quoi correspond les numéros de lignes ici ;)
En effet, mais sa n'arrange toujours pas les choses. Regarde, j'ai fais ce que tu ma dis :
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/minigun", true) == 0) //1ère commande
{
if(IsPlayerAdmin(playerid))
{
GivePlayerWeapon(playerid,38,999);
SendClientMessage(playerid,COLOR_GREEN,"Vous venez de recevoir un Minigun");
return 1;
}
else
{
return SendClientMessage(playerid, COLOR_RED, "Arme réservée au Staff !");
return 1;
}
}
}
if(strcmp(cmdtext, "/bazooka", true) == 0) //2ème commande
{
if(IsPlayerAdmin(playerid))
{
GivePlayerWeapon(playerid,36,999);
SendClientMessage(playerid,COLOR_GREEN,"Vous venez de recevoir un Bazooka");
return 1;
}
else
{
return SendClientMessage(playerid, COLOR_RED, "Arme réservée au Staff !");
return 1;
}
}
}
Quand je compile voici les erreurs qui s'affichent :
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(57) : warning 225: unreachable code
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(60) : warning 209: function "OnPlayerCommandText" should return a value
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(66) : error 010: invalid function or declaration
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(68) : error 010: invalid function or declaration
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(71) : error 021: symbol already defined: "GivePlayerWeapon"
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(73) : error 010: invalid function or declaration
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(75) : error 010: invalid function or declaration
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(77) : error 010: invalid function or declaration
C:\Users\Anthony\Desktop\serveur samp\filterscripts\AdminCMD.pwn(78) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
7 Errors.
Comment faire pour résoudre ce problème ?
Je vous remercie d'avance.
-
ya 2 Return ( 1 sur la ligne du MSG ) et l'autre en dessous, retire celui qui est DESSUS
-
ya 2 Return ( 1 sur la ligne du MSG ) et l'autre en dessous, retire celui qui est DESSUS
De la 1ère ou 2ème commande ?
-
Peut importe look, tu as fais Return sur la ligne de la commande 2 jcrois
puis en dessous Return 1 , retire le Return sur la ligne de la commande 2
-
J'ai indenté le code, voit maintenant ton erreur:
public OnPlayerCommandText(playerid, cmdtext[]) {
if (strcmp(cmdtext, "/minigun", true) == 0) {
if (IsPlayerAdmin(playerid)) {
GivePlayerWeapon(playerid, 38, 999);
SendClientMessage(playerid, COLOR_GREEN, "Vous venez de recevoir un Minigun");
return 1;
}
else {
return SendClientMessage(playerid, COLOR_RED, "Arme réservée au Staff !");
return 1;
}
}
}
if (strcmp(cmdtext, "/bazooka", true) == 0) {
if (IsPlayerAdmin(playerid)) {
GivePlayerWeapon(playerid, 36, 999);
SendClientMessage(playerid, COLOR_GREEN, "Vous venez de recevoir un Bazooka");
return 1;
}
else {
return SendClientMessage(playerid, COLOR_RED, "Arme réservée au Staff !");
return 1;
}
}
}