hlmod.hu
https://hlmod.hu/

Enum az enumban [MEGOLDVA]
https://hlmod.hu/viewtopic.php?f=9&t=24640
Oldal: 1 / 1

Szerző:  LyleChriss [ 2016.04.16. 21:09 ]
Hozzászólás témája:  Enum az enumban [MEGOLDVA]

Megoldva


Hellóka :hi:

Ez így korrekt, skacok?:
  1. enum _:ValamiEnum
  2. {
  3.     Enumeralok=0,
  4.     Enumeralok2,
  5.     Enumeralok3
  6. }
  7.  
  8. enum _: Enum2
  9. {
  10.     Valami[ValamiEnum]=0,
  11.     Valami2,
  12.     Valami3,
  13. }
  14.  
  15. new const egy_tomb[][Enum2] =
  16. {
  17.     {Enumeralok, Enumeralok2, Enumeralok3, Valami2, Valami3}
  18. }


Vagy inkább így a helyes?:
  1. enum _:ValamiEnum
  2. {
  3.     Enumeralok=0,
  4.     Enumeralok2,
  5.     Enumeralok3
  6. }
  7.  
  8. enum _: Enum2
  9. {
  10.     Valami[ValamiEnum]=0,
  11.     Valami2,
  12.     Valami3,
  13. }
  14.  
  15. new const egy_tomb[][Enum2] =
  16. {
  17.     {{Enumeralok, Enumeralok2, Enumeralok3}, Valami2, Valami3}
  18. }


Mind2 kód sz@r, csak a példa kedvéért írtam le. Úgysem fog lefordulni.

Szerző:  mforce [ 2016.04.17. 08:03 ]
Hozzászólás témája:  Re: Enum az enumban [MEGOLDVA]

Megoldást ecseteljük. Az egy dolog, hogy én meg te tudjuk.

Szerző:  LyleChriss [ 2016.04.17. 09:38 ]
Hozzászólás témája:  Re: Enum az enumban [MEGOLDVA]

Ha géphez jutok, kifejtem a dolgot. :)
[Edit] Itt a kifejtés:
Ugyebár amikor létrehozunk egy const-os tömböt, "több dimenzió" eléréséhez enumerálhatunk. Ez valahogy így néz ki:
  1. #define MAX 3
  2. enum _:ADAT
  3. {
  4.     Name[32],
  5.     Cost,
  6.     Model[64]
  7. }
  8. new const VALAMI[MAX][ADAT] = {
  9.     {"Név1", 129, "models/modell.mdl"},
  10.     {"Név2", 130, "models/modell2.mdl"},
  11.     {"Név3", 131, "model/modell3.mdl"}
  12. }


És így kérjük le (itt PL az első sor adatait):
  1. client_print(id, print_chat, "Név: %s, Ára: %d, Modell: %s", VALAMI[0][Name], VALAMI[0][Cost], VALAMI[0][Model])


Azonban lehet enumon belül is enumerálni (tökéletes magyarázat).
Jelzem, csak számokkal próbáltam, stringgel nem!:
  1. #define MAX 3
  2. enum _:ARAK
  3. {
  4.     Arany = 0, //Auto növekszik majd, így könnyű rá hivatkozni
  5.     Ezust, //1
  6.     Bronz //2
  7. }
  8. enum _:ADAT
  9. {
  10.     Name[32],
  11.     Cost[ARAK],
  12.     Model[64]
  13. }
  14. new const VALAMI[MAX][ADAT] = {
  15.     {"Név1",{ 1, 2, 9 }, "models/modell.mdl"},
  16.     {"Név2",{ 1, 3, 0 }, "models/modell2.mdl"},
  17.     {"Név3",{ 1, 3, 1 }, "model/modell3.mdl"}
  18.     //Név, { Arany, Ezüst, Bronz }, modell
  19. }


Ezt pedig így kérjük le:
  1. client_print(id, print_chat, "Ára Aranyban: %d, Ezüstben: %d, Bronzban: %d", VALAMI[0][Cost][0], VALAMI[0][Cost][1], VALAMI[0][Cost][0])

Ezzel lekértük a const első sorában lévő tárgynak (vagy hívjuk aminek akarjuk) az árát.
  1. VALAMI[0][Cost][0]

Ebben az első ugye a const neve (VALAMI).
A másodikkal az jelöljük, hogy hanyadik sorra hivatkozunk a constban (VALAMI[0]).
A harmadik, hogy a soron belül melyik elemre hivatkozunk (VALAMI[0][Cost]).
A negyedik pedig, hogy a Cost enumon belül hanyadik elemre (VALAMI[0][Cost][0]).

Remélem elég közérthetőre sikerült.

Szerző:  mforce [ 2016.04.17. 14:03 ]
Hozzászólás témája:  Re: Enum az enumban [MEGOLDVA]

VALAMI[0][Cost][0]
VALAMI[0][Cost][Arany] is lehet és stringgel is megy, az már nem oszt nem szoroz.

Szerző:  LyleChriss [ 2016.04.17. 14:14 ]
Hozzászólás témája:  Re: Enum az enumban [MEGOLDVA]

Most már mindenre fény derült. :D :lol:

Szerző:  Pardon [ 2016.04.17. 16:24 ]
Hozzászólás témája:  Re: Enum az enumban [MEGOLDVA]

ez nagyon sokat fog segiteni :) koszonom :3

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/