Rozpisanie linii
misio3210
26.11.2016
Witam, czy mógłby ktoś rozpisać mi co oznacza poszczególna wartość w owej linii?
otóż z tego co widzę w tej kodzie poniżej jest błąd z "pojemnością" tablicy a dokładniej w precache_model(Data[3]);
new Line[128], Data[5][64], Len; AllWeapon++; for(new i; i < file_size(SkinFile, 1); i++) { read_file(SkinFile, i, Line, 127, Len); if(strlen(Line) < 5 || Line[0] == ';') continue; parse(Line, Data[0], 31, Data[1], 31, Data[3], 47, Data[4], 31); Weapons[AllWeapon] = str_to_num(Data[0]); copy(WeaponNames[AllWeapon], 31, Data[1]); if(ValidMdl(Data[3])) { precache_model(Data[3]); copy(WeaponMdls[AllWeapon], 47, Data[3]); } WeaponDrop[AllWeapon] = str_to_num(Data[4]); AllWeapon++; }
Użytkownik misio3210 edytował ten post 26.11.2016 01:03
Albertd
26.11.2016
Tworzysz tablice :
Data[5][64]
a pozniej wykorzystujesz tylko po 31 lub 47 elementow, gdzie tu sens?
parse(Line, Data[0], 31, Data[1], 31, Data[3], 47, Data[4], 31);
Zmien na:
parse(Line, Data[0], sizeof(Data[]), Data[1], sizeof(Data[]), Data[3], sizeof(Data[]), Data[4], sizeof(Data[]));
Pozatym ostatnii wczytywany argument to liczba
WeaponDrop[AllWeapon] = str_to_num(Data[4]);
A na wczytanie jego przeznaczasz tablice o dlugosci 64 znakow co jest bezsensu bo liczba nie moze byc na tyle dluga.
Proponuje to zmienic skoro nie wczytujesz stringu, czyli ciagu znakow, oczywiscie nie jest to blad.
W linijce ktorej napisales nie ma zadnego bledu z "pojemnoscia"