[ROZWIĄZANE] poruwnywanie zmiennych miedzy...
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
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
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
Użytkownik TheMarkerxD edytował ten post 14.04.2016 19:36
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 }
grankee
15.04.2016
-a co jeśli dwie osoby mają ten sam wynik punktowy?
-a gdzie drugie i trzecie miejsce?
MrBully
15.04.2016
troche zboczyłeś z kursu ale nakierowałeś mnei za to chwała ci
-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
Najlepsza odpowiedź
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
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]; //-||- } } }
grankee
18.04.2016
radim
08.06.2016
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL