Błąd w opisie klas.
csMaster
01.06.2018
Dodałem do silnika cod moda frakcje sczytywane z pliku cod_frakcje.ini, przy tym też do opisów klas.
Jeśli chce zobaczyć opis klasy, wybieram frakcje i ostatnią klase z byle jakiej frakcji, serwer pokazuje błąd "index out of bounds" w tej linijce:
if((1<<i) & bronie_klasy[idclass])
Gdzie w tym kodzie jest błąd ?
Opisy klas ogólnie działają. Nie działają tylko te opisy, jeśli wybiorę ostatnią klasę z jakiejś frakcji.
Tablica bronie_klasy ma wielkosc "[MAX_ILOSC_KLAS+1]" czyli "[101]", więc już sam nie wiem co tu jest żle. Klas jest 13 a frakcji 3 a nie przekracza to limitu 100 klas
AwIlL^^
01.06.2018
całkiem normalne, że tak się dzieje
załóżmy, że masz w menu 7 opcji
siódma opcja ma item = 6
zwiększasz item o 1 i wychodzi 7, po czym pobierasz dane opcji, która nie istnieje, więc idclass przyjmuje wartość 0
potem odejmujesz 1 i masz wartość -1
potem próbujesz pobrać dane z tablicy pod indeksem -1 kiedy indeksowanie zaczyna się od 0
i tak właśnie powstaje przekroczenie tablicy
usuń te dwa plusiki po item:
if(item++ == MENU_EXIT)
tam jest pierwszy błąd
drugi błąd jest tutaj:
idclass--;
usuń tą całą linijkę
jak zrobisz dokładnie tak jak napisałem to gwarantuję ci poprawne działanie