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

Titre: [Problème] Script admin
Posté 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 :

Code: (pawn) [Sélectionner]
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)
Titre: Re : [Problème] Script admin
Posté par: Ssk le 21 Octobre 2012, 10:38:53
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 ;)
Titre: Re : Re : [Problème] Script admin
Posté par: JohnAnto le 21 Octobre 2012, 13:31:41
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 :


Code: (pawn) [Sélectionner]
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.
Titre: Re : [Problème] Script admin
Posté par: pa2m972 le 21 Octobre 2012, 14:31:22
ya 2 Return  ( 1 sur la ligne du MSG ) et l'autre en dessous, retire celui qui est DESSUS
Titre: Re : Re : [Problème] Script admin
Posté par: JohnAnto le 21 Octobre 2012, 14:47:29
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 ?
Titre: Re : [Problème] Script admin
Posté par: pa2m972 le 21 Octobre 2012, 22:11:03
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
Titre: Re : [Problème] Script admin
Posté par: Xartrick le 22 Octobre 2012, 19:40:32
J'ai indenté le code, voit maintenant ton erreur:

Code: (pawn) [Sélectionner]
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;
}
}
}