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

Rozpisanie linii


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 misio3210

    Życzliwy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:29
Offline

Napisano 26.11.2016 01:02

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

  • +
  • -
  • 0

#2 Albertd

    Zaawansowany

  • Użytkownik

Reputacja: 34
Życzliwy

  • Postów:138
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 26.11.2016 19:57

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"

 


  • +
  • -
  • 1




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

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