Invalid cellvector handle - Błąd w arrayu
Najlepsza odpowiedź Rivit 01.06.2018 13:24
A spróbuj w register native dodać
:
ArrayPushCell(g_ZombieClassAccess, ACCESSS_TYPES:ACCESS_ALL);
Zrobi ci to jakby default ustawianie access + zrobi komorke w tablicy, jak przyjdzie natyw od rejestracji access dla klasy to ArraySetCell zmieni go poprawnie.
Przejdź do postu
Robiin
01.06.2018
Błąd z deklaracją (?) lub odczytywaniem arraya w menu klas zombie.
Rivit
01.06.2018
Dziwne. Sprawdziłeś poprawność zmiennej index w menu?
+
ArraySetCell nie dodaje samo z siebie elementu. Nie wiem czy robisz wcześniej jakiś ArrayPush albo ArrayInsert, ale to moze byc przyczyną.
https://amxx.pl/doku...88/arraysetcell
Rzuć okiem
Robiin
01.06.2018
Dziwne. Sprawdziłeś poprawność zmiennej index w menu?
+
ArraySetCell nie dodaje samo z siebie elementu. Nie wiem czy robisz wcześniej jakiś ArrayPush albo ArrayInsert, ale to moze byc przyczyną.
https://amxx.pl/doku...88/arraysetcell
Rzuć okiem
Nie robię. Nie jestem pewny jak i gdzie - analogicznie do reszty wypadałoby w gdzieś w okolicach 581-583 w native_class_zombie_register, ale problemem dla mnie będzie index klasy (lub też element arraya, jak kto woli), żeby pushować arraya.
Rivit
01.06.2018
Hmm, może zagadnę od innej strony. Czemu nie chcesz access przekazywać też w natywie od rejestracji klasy? Kompatybilność?
+
jak wygląda przykładowa klasa?
Musisz w niej zrobić dwa natywy - jeden register class drugi access inaczej sie indexy rozjadą.
Also, można by uzywac ArrayPushArray robiąc prostą strukturkę danych na enumach, ale to tak poza tematem
Robiin
01.06.2018
Jaka jest różnica? To przecież tylko osobny natyw, a wolę mieć to rozbite na wiele natywów, z domyślną wartością, jeśli w którymś z *.sma nie pojawi się rejestracja (przykładowo) właśnie dostępu. W dodatku; pomaga mi to zrozumieć do końca array'e i w przyszłości mam zamiar rozbudować to na wiele innych sposobów, do których tez nie użyje niczego innego niż arraye - a rozumiejąc ten jeden, zrozumiem resztę.
Najlepsza odpowiedź
Rivit
01.06.2018
A spróbuj w register native dodać
:
ArrayPushCell(g_ZombieClassAccess, ACCESSS_TYPES:ACCESS_ALL);
Zrobi ci to jakby default ustawianie access + zrobi komorke w tablicy, jak przyjdzie natyw od rejestracji access dla klasy to ArraySetCell zmieni go poprawnie.
Robiin
01.06.2018
Register native? W sensie register zombie class?
Dodałem
ArrayPushCell(g_ZombieClassAccess, ACCESS_TYPES:ACCESS_ALL);
Teraz wszystkie klasy po ich zarejestrowaniu w ten sposób;
ClassIndex = zp_class_zombie_register(zombieclass_supervip_name, zombieclass_supervip_info, zombieclass_supervip_health, zombieclass_supervip_speed, zombieclass_supervip_gravity)
powinny otrzymać domyslnie ACCESS_ALL, a potem już używając ClassIndex jako element Arraya zmienię dostęp do klasy na taki, jaki będzie trzeba. Zaraz sprawdzam.
Rivit
01.06.2018
Dokładnie tak sobie to wymyśliłem
//register native - class registration miałem na myśli
@down
Powiedzialem to w pierwszym poście tu
Robiin
01.06.2018
Wszystko działa pięknie ładnie. Czyli generalnie błąd był w tym, że nigdzie nie pushowałem wartości go g_ZombieClassAccess, a potem probowałem zmienić wartość w komórce, która nie istnieje. Wielki plus dla Ciebie