GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Eloctro le 31 Janvier 2009, 19:10:24

Titre: Modiifier un define
Posté par: Eloctro le 31 Janvier 2009, 19:10:24
Bonjour ,
Je voudrais savoir si on peut modifier un define
Titre: Re : Modiifier un define
Posté par: S!m le 31 Janvier 2009, 20:31:27
Salut,


Dépendant de comment tu veut dire, oui et non,

tu peut modifier en modifiant directement ton define dans pawno (ce qui n'est surement pas ta question)

par contre, il est impossible de modifier un define au cours du script, ne pas oublier: il s'agit d'une directive de compilation, ainsi lorsque le code est compilé, toutes les expressions sont substitué:

exemple:

#define MIAM 2
#define MIAM 4//erreur, redéfinition d'une constante
if(MIAM == playerid)....//ce qui compilé comme étant: if(2 == playerid)....

voilà, en espérant te répondre

++Sim++
Titre: Re : Modiifier un define
Posté par: Eloctro le 31 Janvier 2009, 21:20:17
Ha oui sa parait logique  :lmao
De toute façon pour utiliser dans le script son jumeau c'est variable  :cheers
Titre: Re : Modiifier un define
Posté par: Syg le 01 Février 2009, 10:58:07
Si, c'est possible mais totalement déconseillé.
Tout d'abord, le compilateur n'indique pas une erreur mais un warning, ce qui n'empêche pas le mode de fonctionner correctement.

Et si l'on veut faire disparaître le warning, il suffit de "dédéfinir" la constante :
#define TOTO 2
printf ("Toto = %d", TOTO);

#undef TOTO
#define TOTO 4
printf ("Toto = %d", TOTO);
Mais je le répète encore une fois, il est déconseillé de le faire en cours de script.

Par contre, on peut tout à fait, pour un mode donné, changer certains defines comme MAX_PLAYERS par exemple :
#include <a_samp>
#undef MAX_PLAYERS
#define MAX_PLAYERS 50

Ceci évite d'aller modifier directement le fichier include.

++
Syg
Titre: Re : Modiifier un define
Posté par: S!m le 01 Février 2009, 21:06:30
Salut,

Syg, le roi du pawn....
j'avais jamais entendu parler de cette directive de compilation....
tu es trop fort :D

++Sim++