• 04 Juin 2026, 23:28:56


Auteur Sujet: enum  (Lu 2118 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne ghettoman94

  • *
  • Tueur en série
  • Messages: 158
    • Voir le profil
enum
« le: 20 Janvier 2008, 20:43:16 »
Bonjour dans un script j ai vue des ligne avec marquer
enum xxxxx
{
xxxxx;
xxxxx;
xxxx;
xxxx;
xxxxx;
xxxx;
ect ...
}
Quelqu un pourrait me dire exactement a quoi sa sert parceque j en ai aucune idée.
Merci d' avance.


[TUTO POUR INSTALLER MTA]http://ghmsoftware.e3b.org/tutoriel.php?id=2

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : enum
« Réponse #1 le: 20 Janvier 2008, 20:47:34 »
Que signifie les "xxxxxx"

Des code ou les "xxxx" ??

NV.



Tu vois avant? Bah j'étais là encore avant!

Hors ligne ghettoman94

  • *
  • Tueur en série
  • Messages: 158
    • Voir le profil
Re : enum
« Réponse #2 le: 20 Janvier 2008, 21:12:23 »
Sé des variable mais je te montre une partie du script :

Citer
enum pInfo
{
   pKey[128],
   pLevel,
   pAdmin,
   pDonateRank,
   gPupgrade,
   pConnectTime,
   pReg,
   pSex,
}


[TUTO POUR INSTALLER MTA]http://ghmsoftware.e3b.org/tutoriel.php?id=2

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : enum
« Réponse #3 le: 20 Janvier 2008, 21:14:07 »
Perso je n'est pas ca dans mon GM !

Sa doit etre surment plusiuer "new" assembler ensemble !

NV.



Tu vois avant? Bah j'étais là encore avant!

Hors ligne UrbanGhetto

  • *
  • Grand Banditisme
  • I PWN You !
  • Messages: 948
    • Voir le profil
    • http://h2oteam.roxorgamers.com/
Re : Re : enum
« Réponse #4 le: 20 Janvier 2008, 21:30:03 »
Que signifie les "xxxxxx"

Des code ou les "xxxx" ??

NV.



C'est soit de la biére soit des trucs porno  :)

 :dejadehors

˙·٠•● Je dis, mieux vaut toucher à un clavier qu'a de la drogue | Le meilleur topic du forum | Ce que j'ai fait a fait de moi ce que je suis ●•٠·˙

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : enum
« Réponse #5 le: 20 Janvier 2008, 22:06:17 »
A ba je comprend mieu  :laugh  :laugh

NV.



Tu vois avant? Bah j'étais là encore avant!

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : enum
« Réponse #6 le: 21 Janvier 2008, 11:57:04 »
Note préliminaire : PAWN travaille en terme de cellule (cell) et les nombres donnes ci dessus sont des nombres de cellules, pas des octets.
Pour info, sur une machine 32 bits, une cellule = 4 octets.

Le mot clé enum permet de faire une énumération de constantes, comme en C/C++.
Dans un énumération, chaque élément à une valeur de +1 par rapport à l'élément suivant.
Le premier élément à toujours la valeur 0.
Exemple :
enum MyEnum
{
   Premier,
   Deuxieme,
   Troisieme
}
Dans cet exemple, Premier=0, Deuxieme=1 (Premier+1) et Troisieme=2 (Deuxieme+1).
Note : Il n'y a pas de ; (point-virgule) après l'accolade fermante d'un enum mais si on en mais un, le compilo ne mettra pas d'erreur.

Par contre, en PAWN, il existe un particularité, il est possible de spécifier l'increment. C'est le cas de ton exemple :
enum pInfo
{
   pKey[128],
   pLevel,
   pAdmin,
   pDonateRank,
   gPupgrade,
   pConnectTime,
   pReg,
   pSex,
}

Ici, pKey=0 mais pLevel=0+128=128 puis pAdmin=129 (128+1), ....

Un énumération est donc une déclaration de constantes avec incrément automatique.

Ces énumérations peuvent être utilisé à la place des #define :
#define TEAM_NOTEAM    0
#define TEAM_GANGSTA   1
#define TEAM_FLIC      2
#define TEAM_CIVIL     3
#define TEAM_MEDIC     4
peut être remplacé par
enum Teams
{
TEAM_NOTEAM,
TEAM_GANGSTA,
TEAM_FLIC,
TEAM_CIVIL,
TEAM_MEDIC
}

Mais là où les enums sont le plus utiles, c'est dans les accès aux éléments des tableaux.
Exemple :
enum Infos
{
   Name[40],
   Color,
   Vehicle
}
new PlayerInfos[Infos];

Dans cet exemple, on défini un tableau (PlayerInfos) qui contient trois éléments (Name, Color et Vehicle).
Ces éléments sont accessibles comme suit :
PlayerInfos[Name], PlayerInfos[Color] et PlayerInfos[Vehicle].
Cette fonctionnalité de PAWN permet de palier l'impossibilité de créer des structures (comme en C).

Il est possible de créer des tableaux à double entrées beaucoup plus utiles :
new PlayerInfos[MAX_PLAYERS][Infos];Exemple d'utilisation :
/* Si c'est JimmyJim et qu'il est en rouge */
if (strcmp (PlayerInfos[playerid][Name], "JimmyJim", true) == 0 && PlayerInfos[playerid][Color]==0xFF0000AA)
{
   /* Faire des trucs */
}


On trouve des exemples d'utilisation concrets dans les scripts fournis avec le serveur SAMP (minigunmadness.pwn, sniper.pwn) et dans des modes comme The GodFather, etc ...

++
Syg
Courtesy of GtaManiac

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : enum
« Réponse #7 le: 21 Janvier 2008, 17:00:31 »
c'est tellement bien expliquer  :) tu devrais écrire un livre sur le pawno en français xD après j'aurais de la concurance ^^

++
R@f