GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Yornays le 06 Février 2012, 23:15:15
-
Yo !
C'est la première fois que je galère autant sur une seul erreur et un seul warning..
Mais j'ai beau chercher, je trouve pas...
Pourtant, je suis sur que c'est tout con.. ^^
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
if(!strcmp(cmdtext, "/crédits", true))
{
SendClientMessage(playerid, 0xDAA520ff, "~~~~~//////Crédits\\\\\\~~~~~");
SendClientMessage(playerid, 0xFFFFFFFF, "~~~Fondateur : Dosdini");
SendClientMessage(playerid, 0xFFFFFFFF, "~~~Scripteur : Dosdini");
SendClientMessage(playerid, 0xFFFFFFFF, "~~~Mappeur : Dosdini");
SendClientMessage(playerid, 0xDAA520ff, "~~~~~//Fin Des Crédits\\~~~~~");
}
if(!strcmp(cmd, "/dieu", true))
{
SetPlayerHealth(playerid,99999);
SetPlayerArmour(playerid,99999);
SendClientMessage(playerid, 0xFF0000FF, "Vous êtes maintenant invincible.");
}
//aide
if(!strcmp(cmdtext, "/cmds", true)) //(207) : warning 217: loose indentation
{
SendClientMessage(playerid, 0xFFFFFFFF, "Aide : /dieu ; /crédits ; /rep ; ");
}
//je sais plus
if(!strcmp(cmd, "/rep", true))
{
new Vehiculeid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, Vehiculeid))
{
RepairVehicle(Vehiculeid);
SendClientMessage(playerid, Noir, "Véhicule réparé.");
}
else
{
SendClientMessage(playerid, Gris, "Tu n'es pas dans un véhicule.");
}
}
return 1; // (228) : error 010: invalid function or declaration
}
return 0;
}
J'ai mit en commentaire *//* où se trouve l'erreur et le warning, si on pourrais m'aider à les résoudre :).
Merci, et bonne nuit :D !
EDIT : Je suis un boulet :).. Le warning, c'est bon, mais l'erreur non...
EDIT2 : J'ai Réussi.. Sujet à effacé, à moins que je mette comment j'ai régler l'erreur et le warning si sa peut aider d'autres personnes ?
-
Cas typique d'une mauvaise indentation !
Pastebin GTAOnline.fr - Outil de collaboration dans le développement (http://pastebin.gtaonline.fr/pastebin.php?show=1202)
-
Heu.. J'ai copier/coller le Pastebin, et depuis j'ai une erreur.
C:\Users\Dosdini\Desktop\serveur stunt\gamemodes\Dos-Stunt.pwn(230) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
L'erreur se trouve au return 0;
-
C'est bien le copier/coller, mais quand le code est laissé à son état originel, c'est normal que l'erreur est toujours présente ?
Tu ne vois dont pas qu'il y a du code hors d'une fonction ?
-
Si c'étais résolus depuis un moment, désolé, merci quand même.
-
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
if(!strcmp(cmdtext, "/credits", true))
{
SendClientMessage(playerid, 0xDAA520ff, "~~~~~//////Crédits\\\\\\~~~~~");
SendClientMessage(playerid, 0xFFFFFFFF, "~~~Fondateur : Dosdini");
SendClientMessage(playerid, 0xFFFFFFFF, "~~~Scripteur : Dosdini");
SendClientMessage(playerid, 0xFFFFFFFF, "~~~Mappeur : Dosdini");
SendClientMessage(playerid, 0xDAA520ff, "~~~~~//Fin Des Crédits\\~~~~~");
return 1;
}
if(!strcmp(cmd, "/dieu", true))
{
SetPlayerHealth(playerid,99999);
SetPlayerArmour(playerid,99999);
SendClientMessage(playerid, 0xFF0000FF, "Vous êtes maintenant invincible.");
return 1;
}
//Aide
if(!strcmp(cmdtext, "/cmds", true))
{
SendClientMessage(playerid, 0xFFFFFFFF, "Commandes : /dieu ; /crédits ; /rep ; ");
return 1;
}
if(!strcmp(cmd, "/rep", true))
{
new Vehiculeid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, Vehiculeid))
{
RepairVehicle(Vehiculeid);
SendClientMessage(playerid, Noir, "Véhicule réparé.");
}
else
{
SendClientMessage(playerid, Gris, "Tu n'es pas dans un véhicule.");
return 1;
}
return 0;
}
Essaye ça , t'avait oublié plein de return 1;
-
Oui, je sais merci ^^.
Et encore, il a fallut enlever new cmd , et remplacer les cmd par cmdtext car sinon quand je faisais '/' ; /ffdsfsfdsf , sa réparer le véhicule x).
Merci quand même :)
-
À quoi sert de mettre tout pleins de return alors que toutes les fonctions y passe déjà à part rendre le code plus lourd ?
-
Quand y'avais pas de return, sa faisais toutes les commandes en même temps, et quand je faisais '/' sans rien écrire après pareil, même genre '/fzfsdffefs' sa faisais toutes les commandes...
-
C'est simplement que tes conditions ne sont pas correct.
Quand une condition est fausse, elle n'est pas exécuté, cela ne fonctionne pas comme les switch.