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

[ROZWIĄZANE] Czytanie danych z pliku.


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 Black004

    Wszechpomocny

  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 15.02.2020 22:37

Cześć, wie ktoś może jak zrobić, aby dane które wyczytuje z pliku w taki sposób:

	for(new i=0;read_file(szFile, i, szLine, 149, iLen);i++){
		trim(szLine);
		if(szLine[0]=='^0' || szLine[0]==';') continue;
		

		parse(szLine, szRare, 15,szSrc, 64, szName, 32, szChance, 7);
				SkinWeaponId[gun_num] = str_to_num(szRare);
				copy(SkinSrc[SkinWeaponId[gun_num]][gun_num], 63, szSrc);
				copy(SkinName[SkinWeaponId[gun_num]][gun_num], 32, szName);
				SkinChance[SkinWeaponId[gun_num]][gun_num] = str_to_float(szChance);
			gun_num++;
	}

Były segregowane id danego skina? Czyli:

 

W pliku mam np:

"1 (id broni)" "sciezka123" "nazwa123" "4.24" //skin 1
"1" "sciezka123" "nazwa123" "4.24" //skin 2
"2" "sciezka321" "nazwa321" "2.56" //skin 1
"1" "sciezka123" "nazwa123" "4.24" //skin 3
"2" "sciezka321" "nazwa321" "1.84" //skin 2
"1" "sciezka321" "nazwa321" "5.16" //skin 4

I chce żeby zmienna np. SkinChance wyglądała tak:

SkinChance[1 (id broni)][1(od 1 numeruje skiny)] = 4.24
SkinChance[1][2] = 4.24
SkinChance[2][1] = 2.56
SkinChance[1][3] = 4.24
SkinChance[2][2] = 4.24
SkinChance[1][4] = 5.16

Po prostu nie chce, aby wyszła taka sytuacja:

SkinChance[1][1] = 4.24
SkinChance[1][2] = 4.24
SkinChance[2][3] = 2.56
SkinChance[1][4] = 4.24
SkinChance[2][5] = 4.24
SkinChance[1][6] = 5.16

Jak zaczyna jest nowe id skina ma ta 2 tablice zaczynac się od nowa lub tylu ilu wcześniej się skończyła. Nie wiem jak to mam zrobić ktoś pomoże? :/

 

 

 

 

 

 

 

 


Użytkownik Black004 edytował ten post 15.02.2020 22:39

  • +
  • -
  • 0

#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 16.02.2020 00:32

Nie rozumiem problemu. Być może to przez sposób w jaki to wszystko opisałeś, ciężko się połapać o co chodzi. Wyjaśnij lepiej, a najlepiej daj jakiś przykład.

 

Dodatkowo, tak z góry rzucę pomysłem dynamicznych tablic. Mogą się przydać do takiego zadania.


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 16.02.2020 08:03

Spróbuje jeszcze raz :P

 

Kod (troche ulepszony):

	new szLine[150], iLen=0, szName[33], szChance[8],szRare[16],szSrc[64], SkinWeaponId;
	log_amx("|=============================================|");
	for(new i=0;read_file(szFile, i, szLine, 149, iLen);i++){
		trim(szLine);
		if(szLine[0]=='^0' || szLine[0]==';') continue;
		
				parse(szLine, szRare, 15,szSrc, 64, szName, 32, szChance, 7);
				SkinWeaponId = str_to_num(szRare);
				copy(SkinSrc[SkinWeaponId][gun_num], 63, szSrc);
				copy(SkinName[SkinWeaponId][gun_num], 32, szName);
				SkinChance[SkinWeaponId][gun_num] = str_to_float(szChance);
			gun_num++;
	}

Więc tak teraz jak dane będą czytane z pliku będzie to wyglądać np:

SkinWeaponId = 1 (numer broni, jak akurat wybrałem, że będę zaczynać od 1, żeby później z menu i innymi rzeczami nie mieć problemów przez 0)
SkinSrc[1][1 (gun_num - numer skina)] = (sciezka do skina)
SkinName[1][1]  = (nazwa skina)
SkinChance[1][1] = (szansa na drop skina)

No i będzie tak dalej:

gun_num = 1

SkinWeaponId = 1
SkinSrc[SkinWeaponId][gun_num]
SkinName[SkinWeaponId][gun_num] 
SkinChance[SkinWeaponId][gun_num] 
gun_num = 2


SkinWeaponId = 1 (tu znowu pobiera jakie jest wpisane id skina)
SkinSrc[SkinWeaponId][gun_num]
SkinName[SkinWeaponId][gun_num] 
SkinChance[SkinWeaponId][gun_num] 

Tu podam przykład jak nie chce, żeby było:

gun_num = 3

SkinWeaponId = a tutaj będzie się równać już 2.
SkinSrc[SkinWeaponId][gun_num]
SkinName[SkinWeaponId][gun_num] 
SkinChance[SkinWeaponId][gun_num] 

i w 2 tablicy są same trojki, a ja chce żeby jak jest nowy numer broni to zaczynało się znowu od 1, czyli:

gun_num = 1

SkinWeaponId = 2
SkinSrc[SkinWeaponId][gun_num]
SkinName[SkinWeaponId][gun_num] 
SkinChance[SkinWeaponId][gun_num] 

A jak znów SkinWeaponid pobierze 1, to ma się zacząć na tylu ilu wcześniej się skończyło, czyli:

gun_num = 3

SkinWeaponId = 1
SkinSrc[SkinWeaponId][gun_num]
SkinName[SkinWeaponId][gun_num] 
SkinChance[SkinWeaponId][gun_num] 

Bo teraz jest, że wartość gun_num będzie rosła, a ja ustawiłem limit skinów na numer broni 8, więc teraz wychodzi poza zakres tablicy, mam nadzieję, że już lepiej wytłumaczyłem nie wiem jak to moge zrobić lepiej xD

 

 


Użytkownik Black004 edytował ten post 16.02.2020 08:18

  • +
  • -
  • 0

#4 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:367
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 16.02.2020 17:28

Dobra chyba dałem sobie rade, można zamykać xD
  • +
  • -
  • 0

#5 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 16.02.2020 20:51

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0




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

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