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] poruwnywanie zmiennych miedzy graczami


Najlepsza odpowiedź d0naciak, 17.04.2016 15:05

-a co jeśli dwie osoby mają ten sam wynik punktowy?

-a gdzie drugie i trzecie miejsce?

Skopiowałem kod, co do tych samych zdobyczy punktowych to decyduje random niestety, a drugiego i trzeciego nie robiłem bo tak jak mówiłem, skopiowałem kod.

A więc się poprawię poniekąd :D 

 

Co do kodu to trzeba uwzględnić jeszcze, że np. nowy najlepszy musi zepchnąć starego najlepszego na 2gie miejsce, i jak będzie trzeba to 2giego starego na 3cie miejsce.

{
   new najlepszy_wynik; //tutaj bedzie przechowywany najlepszy wynik w celu porownania
   new najlepszy_id; //tutaj bedzie index najlepszego gracza
   static ilosc_slotow; //ilosc slotow - potrzebna w petli
   
   new najlepszy_wynik2;
   new najlepszy_id2;
   
   new najlepszy_wynik3;
   new najlepszy_id3;
   if(!ilosc_slotow) //nie ma pobranej ilosci slotow?
      ilosc_slotow = get_maxplayers(); //pobieram ilosc slotow
   
   for(new id = 1; id <= ilosc_slotow; id++) //tworze petle, sprawdzam id kazdego gracza
   {
      if(!is_user_connected(id)) //gracz o podanym indexie nie jest polaczony
         continue; //pomijam gracza
      
      if(zmienna[id] >= najlepszy_wynik) //jezeli zmienna[id], czyli zmienna tego gracza jest wieksza od najlepszego wyniku
      {
         if(najlepszy_id) //jezeli jest najlepszy 1
         {
            if(najlepszy_id2) //i jezeli jest najlepszy 2
            { //to
               najlepszy_id3 = najlepszy_id2; //drugiego spycha na trzecie miejsce
               najlepszy_wynik3 = najlepszy_wynik2; //-||-
            }
            
            najlepszy_id2 = najlepszy_id; //pierwszego spycha na drugie miejsce
            najlepszy_wynik2 = najlepszy_wynik; //-||-
            
         }
         
         najlepszy_id = id; //najlepszy_id to index od teraz rowny id
         najlepszy_wynik = zmienna[id]; //najlepszy wynik jest rowny wartosci tablicy zmienna danego id
         continue; //ide do nastepnego gracza pomijajac reszte funkcji
      }
      if(zmienna[id] >= nalepszy_wynik2) //
      {
         if(najlepszy_id2)//jezeli jest najlepszy 2
         {
            najlepszy_id3 = najlepszy_id2; //drugiego spycha na trzecie miejsce
            najlepszy_wynik3 = najlepszy_wynik2; //-||-
         }
         
         najlepszy_id2 = id; //ustawia dane drugiego
         najlepszy_wynik2 = zmienna[id]; //-||-
         continue; //ide do nastepnego gracza pomijajac reszte funkcji
         
      }
      if(zmienna[id] >= nalepszy_wynik3)
      {
         najlepszy_id3 = id; //ustawia dane trzeciego
         najlepszy_wynik3 = zmienna[id]; //-||-
         
      }   
   }
   
}
Przejdź do postu


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

#1 MrBully

    Wszechwidzący

  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:233
  • Imię:Mateusz
  • Lokalizacja:Nieznana
Offline

Napisano 14.04.2016 19:35

tak jak w temacie

  chcę się dowiedzieć  jak porównać    dajmy na to jest sobie zmienna  test

 

no i chciałbym aby plugin sprawdził  kto ma ile i nadał miejsca

jest 3 graczy a b c i każdy ma tyle :

a - test =  20 1 miejsce

b - test = 10 2 miejsce

c - test = 5 3 miejsce


Użytkownik TheMarkerxD edytował ten post 14.04.2016 19:36

  • +
  • -
  • 0

#2 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 14.04.2016 21:28

Zamiast test podałem zmienna, mysle ze sie polapiesz ;)

stock get_best_player()
{
   new najlepszy_wynik; //tutaj bedzie przechowywany najlepszy wynik w celu porownania
   new najlepszy_id; //tutaj bedzie index najlepszego gracza
   static ilosc_slotow; //ilosc slotow - potrzebna w petli
   if(!ilosc_slotow) //nie ma pobranej ilosci slotow?
      ilosc_slotow = get_maxplayers(); //pobieram ilosc slotow
 
   for(new id = 1; id <= ilosc_slotow; id++) //tworze petle, sprawdzam id kazdego gracza
   {
      if(!is_user_connected(id)) //gracz o podanym indexie nie jest polaczony
         continue; //pomijam gracza
   
      if(zmienna[id] >= najlepszy_wynik) //jezeli zmienna[id], czyli zmienna tego gracza jest wieksza od najlepszego wyniku
      {
         najlepszy_id = id; //najlepszy_id to index od teraz rowny id
         najlepszy_wynik = zmienna[id]; //najlepszy wynik jest rowny wartosci tablicy zmienna danego id
      }
   }
   
   return najlepszy_id; //zwracam index najlepszego gracza
}

  • +
  • -
  • 1

#3 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 15.04.2016 01:38

-a co jeśli dwie osoby mają ten sam wynik punktowy?

-a gdzie drugie i trzecie miejsce?


  • +
  • -
  • 1

#4 MrBully

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:233
  • Imię:Mateusz
  • Lokalizacja:Nieznana
Offline

Napisano 15.04.2016 16:05

Spoiler

 troche zboczyłeś z kursu ale nakierowałeś mnei za to chwała ci :plus: :woohoo:

 

-a co jeśli dwie osoby mają ten sam wynik punktowy?

-a gdzie drugie i trzecie miejsce?

 

 

 

 hmm  no prawda   tego nie przemyślał

 

te 2 i 3 sam zrobiłem na podstawie tego co napisał

{
	new najlepszy_wynik; //tutaj bedzie przechowywany najlepszy wynik w celu porownania
	new najlepszy_id; //tutaj bedzie index najlepszego gracza
	static ilosc_slotow; //ilosc slotow - potrzebna w petli
	
	new najlepszy_wynik2;
	new najlepszy_id2;
	
	new najlepszy_wynik3;
	new najlepszy_id3;
	if(!ilosc_slotow) //nie ma pobranej ilosci slotow?
		ilosc_slotow = get_maxplayers(); //pobieram ilosc slotow
	
	for(new id = 1; id <= ilosc_slotow; id++) //tworze petle, sprawdzam id kazdego gracza
	{
		if(!is_user_connected(id)) //gracz o podanym indexie nie jest polaczony
			continue; //pomijam gracza
		
		if(zmienna[id] >= najlepszy_wynik) //jezeli zmienna[id], czyli zmienna tego gracza jest wieksza od najlepszego wyniku
		{
			najlepszy_id = id; //najlepszy_id to index od teraz rowny id
			najlepszy_wynik = zmienna[id]; //najlepszy wynik jest rowny wartosci tablicy zmienna danego id
		}
		if(zmienna[id] < nalepszy_wynik)
		{
			najlepszy_id2 = id;
			najlepszy_wynik2 = zmienna[id]; 
			
		}
		if(zmienna[id] < nalepszy_wynik2)
		{
			najlepszy_id3 = id;
			najlepszy_wynik3 = zmienna[id]; 
			
		}	
	}
	
}

tak to na razie wygląda zrobie to  nie jako stock najprawdopodobniej


  • +
  • -
  • 0

#5 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 17.04.2016 15:05   Najlepsza odpowiedź

-a co jeśli dwie osoby mają ten sam wynik punktowy?

-a gdzie drugie i trzecie miejsce?

Skopiowałem kod, co do tych samych zdobyczy punktowych to decyduje random niestety, a drugiego i trzeciego nie robiłem bo tak jak mówiłem, skopiowałem kod.

A więc się poprawię poniekąd :D 

 

Co do kodu to trzeba uwzględnić jeszcze, że np. nowy najlepszy musi zepchnąć starego najlepszego na 2gie miejsce, i jak będzie trzeba to 2giego starego na 3cie miejsce.

{
   new najlepszy_wynik; //tutaj bedzie przechowywany najlepszy wynik w celu porownania
   new najlepszy_id; //tutaj bedzie index najlepszego gracza
   static ilosc_slotow; //ilosc slotow - potrzebna w petli
   
   new najlepszy_wynik2;
   new najlepszy_id2;
   
   new najlepszy_wynik3;
   new najlepszy_id3;
   if(!ilosc_slotow) //nie ma pobranej ilosci slotow?
      ilosc_slotow = get_maxplayers(); //pobieram ilosc slotow
   
   for(new id = 1; id <= ilosc_slotow; id++) //tworze petle, sprawdzam id kazdego gracza
   {
      if(!is_user_connected(id)) //gracz o podanym indexie nie jest polaczony
         continue; //pomijam gracza
      
      if(zmienna[id] >= najlepszy_wynik) //jezeli zmienna[id], czyli zmienna tego gracza jest wieksza od najlepszego wyniku
      {
         if(najlepszy_id) //jezeli jest najlepszy 1
         {
            if(najlepszy_id2) //i jezeli jest najlepszy 2
            { //to
               najlepszy_id3 = najlepszy_id2; //drugiego spycha na trzecie miejsce
               najlepszy_wynik3 = najlepszy_wynik2; //-||-
            }
            
            najlepszy_id2 = najlepszy_id; //pierwszego spycha na drugie miejsce
            najlepszy_wynik2 = najlepszy_wynik; //-||-
            
         }
         
         najlepszy_id = id; //najlepszy_id to index od teraz rowny id
         najlepszy_wynik = zmienna[id]; //najlepszy wynik jest rowny wartosci tablicy zmienna danego id
         continue; //ide do nastepnego gracza pomijajac reszte funkcji
      }
      if(zmienna[id] >= nalepszy_wynik2) //
      {
         if(najlepszy_id2)//jezeli jest najlepszy 2
         {
            najlepszy_id3 = najlepszy_id2; //drugiego spycha na trzecie miejsce
            najlepszy_wynik3 = najlepszy_wynik2; //-||-
         }
         
         najlepszy_id2 = id; //ustawia dane drugiego
         najlepszy_wynik2 = zmienna[id]; //-||-
         continue; //ide do nastepnego gracza pomijajac reszte funkcji
         
      }
      if(zmienna[id] >= nalepszy_wynik3)
      {
         najlepszy_id3 = id; //ustawia dane trzeciego
         najlepszy_wynik3 = zmienna[id]; //-||-
         
      }   
   }
   
}

  • +
  • -
  • 0

#6 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 18.04.2016 19:41

Lol 

TheMarkerxD.

Nie ma to jak zapytać, dostać wskazówki i oznaczyć swoją odpowiedź jako najlepszą :D


  • +
  • -
  • 1

#7 MrBully

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:233
  • Imię:Mateusz
  • Lokalizacja:Nieznana
Offline

Napisano 04.05.2016 07:13

cls
  • +
  • -
  • 0

#8 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 08.06.2016 08:57

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

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !





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

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