←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Ilość wartości enuma


Najlepsza odpowiedź Rivit 28.07.2019 09:27

#include <amxmodx>

#define stepSize 2

enum _:someName (+= stepSize)
{
	someValue,
	someOtherValue,
	biggerValue
};

public plugin_init(){


	log_amx("%i | %i", someName/stepSize, someName)

}

someName będzie ilością elementów, a jak masz stepsize inny to trzeba podzielić.

 

Czyli log powinien dać 3 | 6

Przejdź do postu
Zablokowany

  • +
  • -
Robiin - zdjęcie Robiin 27.07.2019

Można jakoś wykryć ilośc wartości, jaką przechowuje enum?

Wiem, że w pythonie mogę użyć metody len a w C# użyć Count z pomocą wielu innych metod.

Poradziłem sobie z samym wyliczaniem ilości elementów, ale zastanawiam się czy jest jakaś wbudowana funkcja albo inny sposób (najlepiej bez dodawania kolejnego elementu).

 

Na ten moment przychodzi mi na myśl tylko tworzenie dodatkowego elementu i obliczanie wartości:

#define stepSize 1

enum _:someName (+= stepSize)
{
	someValue,
	someOtherValue,
	biggerValue,
	lastElementOfEnumerator 
};

log_amx("Enum's highest value: %i (items count: %i)", lastElementOfEnumerator - stepSize, floatround(float((lastElementOfEnumerator - stepSize) / stepSize)));
Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 27.07.2019

enum _:g_iStartDay
{
	DAY_NONE, DAY_GRAVITY, DAY_FREEDAY,
	DAY_ZOMBIE, DAY_LAVA, DAY_SHARK
};

new const g_iStartDayNames[g_iStartDay][] =
{
	"", "JB_DAYNAME_GRAVITY", "JB_DAYNAME_FREEDAY",
	"JB_DAYNAME_ZOMBIE", "JB_DAYNAME_LAVA", "JB_DAYNAME_SHARK"
};

Chyba, że coś źle rozumiem to o co pytasz.

Czy u Ciebie wartością będzie: someName ?

 

 


Użytkownik TibacK edytował ten post 27.07.2019 22:52
Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 27.07.2019

Chcę wiedzieć ile elementów ma enum

 

W przypadku pierwszego posta będzie to 4.

 

Odpowiedz

  • +
  • -
tytusek - zdjęcie tytusek 27.07.2019

sizeof ?

Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 28.07.2019

Nie działa na enuma

Odpowiedz

  • +
  • -
Najlepsza odpowiedź Rivit - zdjęcie Rivit 28.07.2019

#include <amxmodx>

#define stepSize 2

enum _:someName (+= stepSize)
{
	someValue,
	someOtherValue,
	biggerValue
};

public plugin_init(){


	log_amx("%i | %i", someName/stepSize, someName)

}

someName będzie ilością elementów, a jak masz stepsize inny to trzeba podzielić.

 

Czyli log powinien dać 3 | 6


Robiin (28.07.2019 09:42):
Tak oczywiste, że aż boli. Dzięki :)
Rivit (28.07.2019 09:45):
Toć Ci mówił ja wcześniej :D

Użytkownik TibacK edytował ten post 28.07.2019 09:27
Odpowiedz
Zablokowany