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

Wynik z głosowania


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

#1 Andrzejek

    Ucze się :]

  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 16.07.2014 20:56

Witam, mam taki problem, nie chce robić kodu na 1000 linijek, mam np. 10 opcji w głosowaniu do wyboru i jak byście zrobili sprawdzenie wyników?

if(glosowanie[0] > glosowanie[1] && glosowanie[0] > glosowanie[2]) // wygrywa opcja 0
{
}
else if(glosowanie[1] > glosowanie[0] && glosowanie[1] > glosowanie[2]) // wygrywa opcja 1
{
}
else if(glosowanie[2] > glosowanie[0] && glosowanie[2] > glosowanie[1]) // wygrywa opcja 2
{
}
else if(glosowanie_zabawy[0] == glosowanie_zabawy[1] || glosowanie_zabawy[0] == glosowanie_zabawy[2] || glosowanie_zabawy[1] == glosowanie_zabawy[2]) // głosowanie nie udane
{
}

To co wyżej dałem, może działa, ale jest tylko na 3 opcje, a ja potrzebuje na 10, a nie chce dużego kodu pisać.

 

Pozdrawiam


  • +
  • -
  • 0

Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...

 

Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104


#2 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 16.07.2014 21:16

Petla, jedna zmienna i porownywanie, az znajdzie sie najwieksza wartosc w tablicy
  • +
  • -
  • 1

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#3 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 16.07.2014 21:59

Dodatkowo pamiętaj aby głosowanie było nie udane tylko w jednej możliwości tzn. jak nikt nie odda głosu. Jeśli opcje beda mieć tą samą ilośc głosów to rób losowanie pomiędzy wszystkimi opcjami o tej samej wadze:
public VoteEnd()
{
	//Robie potrzebne zmienne
	new vote,z,y
	//Lece po wszystkich opcjach
	for(new i;i<10;++i)
	{
		//Jeśli głosy na daną opcję to liczba inna niż zero i jest większ/równa niż największa do tej pory opcja
		if(glosowanie[i] && glosowanie[i] >= vote)
		{
			//To warunek się wykona
			
			//Jeśli liczba głosów jest taka sama to robię pseudo losowania
			// Lecz takie by dla każdej (o tej samej wadze) było równe
			if(glosowanie[i] == vote)
			{
				if(!y)	for(new j;j<10;++j)	if(glosowanie[i] == glosowanie[j]) y++
				
				if(random(y))	continue
			}
			else y = 0
			z = i
			vote = glosowanie[i]
		}
	}
	if(!z)
	{
		//Nikt nie oddał głosu
		//Mozesz ludzi powiadomić
		return
	}
	//Brawo xD
	//Została wybrana opcja w zmiennej "z"
}

Użytkownik BlackPerfum edytował ten post 16.07.2014 22:00

  • +
  • -
  • 0
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#4 Andrzejek

    Ucze się :]

  • Autor tematu
  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 16.07.2014 22:05

Dodatkowo pamiętaj aby głosowanie było nie udane tylko w jednej możliwości tzn. jak nikt nie odda głosu. Jeśli opcje beda mieć tą samą ilośc głosów to rób losowanie pomiędzy wszystkimi opcjami o tej samej wadze:

public VoteEnd()
{
	//Robie potrzebne zmienne
	new vote,z,y
	//Lece po wszystkich opcjach
	for(new i;i<10;++i)
	{
		//Jeśli głosy na daną opcję to liczba inna niż zero i jest większ/równa niż największa do tej pory opcja
		if(glosowanie[i] && glosowanie[i] >= vote)
		{
			//To warunek się wykona
			
			//Jeśli liczba głosów jest taka sama to robię pseudo losowania
			// Lecz takie by dla każdej (o tej samej wadze) było równe
			if(glosowanie[i] == vote)
			{
				if(!y)	for(new j;j<10;++j)	if(glosowanie[i] == glosowanie[j]) y++
				
				if(random(y))	continue
			}
			else y = 0
			z = i
			vote = glosowanie[i]
		}
	}
	if(!z)
	{
		//Nikt nie oddał głosu
		//Mozesz ludzi powiadomić
		return
	}
	//Brawo xD
	//Została wybrana opcja w zmiennej "z"
}

 

Dobrze rozumiem? zmienna vote zawiera wyniki(ID) głosowania wygranej opcji, zmienna y zawiera id losowej zabawy, z nikt nie brał udziału ?


  • +
  • -
  • 0

Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...

 

Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104


#5 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 16.07.2014 22:09

Dobrze rozumiem? zmienna vote zawiera wyniki(ID) głosowania wygranej opcji, zmienna y zawiera id losowej zabawy, z nikt nie brał udziału ?

Niee. Vote to ilość głosów które ma opcja która wygrała,y służy do losowania (nie ruszaj tego) i mówi nam ile opcji miało tę samą ilośc głosów co opcja która wygrała, z - id opcji która wygrała jeśli == -1 to nie oddano żadnego głosu ale błęda zrobiłem sory kod poprawiony:
public VoteEnd()
{
	//Robie potrzebne zmienne
	new vote,z = -1,y
	//Lece po wszystkich opcjach
	for(new i;i<10;++i)
	{
		//Jeśli głosy na daną opcję to liczba inna niż zero i jest większ/równa niż największa do tej pory opcja
		if(glosowanie[i] && glosowanie[i] >= vote)
		{
			//To warunek się wykona
			
			//Jeśli liczba głosów jest taka sama to robię pseudo losowania
			// Lecz takie by dla każdej (o tej samej wadze) było równe
			if(glosowanie[i] == vote)
			{
				if(!y)	for(new j;j<10;++j)	if(glosowanie[i] == glosowanie[j]) y++
				
				if(random(y))	continue
			}
			else y = 0
			z = i
			vote = glosowanie[i]
		}
	}
	if(z == -1)
	{
		//Nikt nie oddał głosu
		//Mozesz ludzi powiadomić
		return
	}
	//Brawo xD
	//Została wybrana opcja w zmiennej "z"
}
O jakie zabawy ci chodzi??

Użytkownik BlackPerfum edytował ten post 16.07.2014 22:11

  • +
  • -
  • 1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#6 Andrzejek

    Ucze się :]

  • Autor tematu
  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 16.07.2014 22:44

Zrobiłem sobie w inny i łatwy sposób.

 

Close


  • +
  • -
  • 0

Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...

 

Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104


#7 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 17.07.2014 12:55

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


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

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark





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

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