GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Micka le 07 Juillet 2007, 00:34:20
-
J'obtiens cette erreur :
F:\SERVEU~1\SAMP-S~1.1-W\GAMEMO~1\sftdm.pwn(644) : warning 235: public function lacks forward declaration (symbol "SetupPlayerForClassSelection")
F:\SERVEU~1\SAMP-S~1.1-W\GAMEMO~1\sftdm.pwn(786) : warning 235: public function lacks forward declaration (symbol "GameModeExitFunc")
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Warnings.
A la ligne 644 j'ai :
public SetupPlayerForClassSelection(playerid)
A la ligne 786 j'ai :
public GameModeExitFunc()
Merci.
-
Vires les mots clés public des lignes 664 et 786 devant les definitions de tes fonctions et les warnings vont disparaitre.
NB : Le mot clé public n'est utilisé qu'avec les call-back
Edit : Et avec les fonctions des timers qu'il faut alors déclarer avec un ligne du genre forward MonTimer(); au début de ton script
++
-
Pas bien compris, donc en faite j'ai enlevé les mots public, ça donne :
SetupPlayerForClassSelection(playerid)
public GameModeExitFunc()
Et le truc de la fonction des timers, faut faire quoi ? mettre forward MonTimer (); au début du script ?
-
Oui,
forward SetupPlayerForClassSelection(playerid);
Si c'est une 'public', mais les fonctions public doivent retourner 'true' ou 'false', et jamais un array. Si tu veux faire ça faut utiliser :
stock SetupPlayerForClassSelection(playerid);
Bref, va lire le manuel pawn,
++
-
Sinon ça change quoi de mettre 'public' ou 'stock' ?
Euh sinon pour le manuel de pawn c'est comme si quelqu'un demandait de l'aide au sujet de phpBB puis on lui disait "Va lire le manuel phpBB".
Plus trop d'intérêt si le manuel remplace le forum. :)
-
La solution dans ton cas c'est du virer les mots clés "public" aux lignes 664 et 786 .
Pour le cas des timers, c'est juste à titre indicatif.
Petit cours alors parce que meme spykerc8 n'a pas tout à fait compris on dirait :
Le mot clé "public" indique simplement qu'une fonction va être appelée par un élément EXTERNE au script.
C'est la cas des call-back et des fonctions de timers qui sont appelées par le moteur du serveur.
Pour toutes les autres fonctions internes au script, pas besoin de "public".
Un fonction "public" n'a pas obligation de retourner une valeur (fonction des timers par exemple ) et une fonction qui n'est pas "public" peut tout à fait retourner une valeur.
Par contre, toute fonction définie comme "public" DOIT faire l'objet d'une déclaration avec le mot clé "forward" en début de script.
NB : rien ne t'empèche d'aller lire le manuel PAWN.
++
-
Merci.
Réglé