Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

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


  • Zamknięty Temat jest zamknięty
5 odpowiedzi w tym temacie

#1 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 27.07.2019 20:54

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)));

  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 27.07.2019 22:48

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

  • +
  • -
  • 1

#3 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 27.07.2019 23:27

Chcę wiedzieć ile elementów ma enum

 

W przypadku pierwszego posta będzie to 4.

 


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#4 tytusek

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:822
Offline

Napisano 27.07.2019 23:30

sizeof ?


  • +
  • -
  • 2

#5 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 28.07.2019 02:07

Nie działa na enuma


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#6 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 28.07.2019 09:27   Najlepsza odpowiedź

#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

  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych