←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] poruwnywanie zmiennych miedzy...


Best Answer 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]; //-||-
         
      }   
   }
   
}
Go to the full post
Locked

  • +
  • -
MrBully's Photo MrBully 14.04.2016

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


Edited by TheMarkerxD, 14.04.2016 19:36.
Quote

  • +
  • -
d0naciak's Photo d0naciak 14.04.2016

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
}
Quote

  • +
  • -
grankee's Photo grankee 15.04.2016

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

-a gdzie drugie i trzecie miejsce?

Quote

  • +
  • -
MrBully's Photo MrBully 15.04.2016

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

Quote

  • +
  • -
Best Answer d0naciak's Photo d0naciak 17.04.2016

-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]; //-||-
         
      }   
   }
   
}
Quote

  • +
  • -
grankee's Photo grankee 18.04.2016

Lol 

TheMarkerxD.

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

Quote

  • +
  • -
MrBully's Photo MrBully 04.05.2016

cls
Quote

  • +
  • -
radim's Photo radim 08.06.2016

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
Quote
Locked