Znajdź zawartość
Wyświetlanie wyników dla tagów 'csweaponid' .
Znaleziono 2 wyniki
-
Korzystanie z enum 1. Uproszczone wprowadzenie "enum" jest to struktura przez którą możemy zamiast surowych liczb wprowadzać nazwy i dzięki temu jest nam łatwiej z nich korzystać. Najprostszym przykładem będzie tutaj zbiór broni w sourcemodzie, gdzie każda broń ma swój numer i swoją enumową nazwę (zobacz też pełny temat dotyczący spisu broni): enum CSWeaponID { CSWeapon_NONE = 0, CSWeapon_P228, CSWeapon_GLOCK, CSWeapon_SCOUT, CSWeapon_HEGRENADE //(..) }; Powyższy kod jest deklaracją enuma o nazwie CSWeaponID, gdzie jego zawartością są kolejno CSWeapon_NONE, CSWeapon_P228 i tak dalej. Można zauważyć, że do pierwszej nazwy przypisane jest 0, i taką będzie przyjmować wartość CSWeapon_NONE = 0. Następne nazwy mają domyślnie wartość o jedną więcej, czyli jest to ciąg liczb naturalnych (0, 1, 2, 3, 4 i tak dalej). W taki sposób możemy korzystać z funkcji takich jak CS_GetWeaponPrice bez zapamiętywania poszczególnych numerów broni. Przykładowo osobiście nie mam pojęcia który numer w enumie ma broń AWP, ale mogę po prostu posłużyć się tym: CSWeapon_AWP. 2. Numeracja i licznik Jak już zostało wspomniane, domyślnie licznik enuma działa jak ciąg liczb naturalnych. Każda następna wartość jest większa od poprzedniej o jeden. Dlatego w tym przypadku: enum { wartosc1 = 0, wartosc2 = 10, wartosc3, wartosc4 = 30 } wartosc3 będzie równa 11. Dzieje się tak, ponieważ nawet jeśli manualnie "ustawimy" liczenie na co 10, kompilator nie będzie wiedział co mamy na myśli. Musimy użyć następującego sposobu: enum (+=10) { wartosc1 = 0, wartosc2, wartosc3 } W takim wypadku wartosc2 jest równa 10, a wartosc3 20. Możemy tak również zrobić w przypadku mnożenia na przykład: (*=2) Bibliografia https://amxx.pl/topic/1699-troche-o-enum/ https://forums.alliedmods.net/showthread.php?t=140103 i własne doświadczenie
- 3 odpowiedzi
-
- 5
-
-
Nazwy enumów broni wyciągnięte z cstrike.inc. Co ciekawe, jeśli prześledzimy wszystkie te enumy kodem poniżej, nie wykryje nam wszystkich broni. Zapewne jest to spowodowane tym, że niektóre bronie są dostępne w danej grze a niektóre nie. Wynik kodu: Być może są to wszystkie bronie dostępne w CS:GO gdyż lista zgadza się do 53 indeksu WeaponID z tematem https://forums.alliedmods.net/showthread.php?t=300360