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

Indexy graczy i zmienne

zmienne index id gracz

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 KRAKOW

    Zaawansowany

  • Użytkownik

Reputacja: 26
Życzliwy

  • Postów:83
  • Lokalizacja:Kraków
Offline

Napisano 08.02.2017 16:32

Witam.

Piszę plugin na FFa i mam zagwozdkę z indexami i zmiennymi. Dla każdego gracza wywołującego komendę przypisywana jest zmienna (zwykle 1 lub 0 oznaczająca stan danej rzeczy) i tu pojawia się pytanie.

Tworzę jedną zmienną w pluginie - czy dla każdego gracza będzie się tworzyć osobna czy np. jeden gracz ustawi dla siebie 1, drugi 0 i dla pierwszego też wtedy będzie 0?

No i też indexy - czy serwer będzie rozpoznawał indexy graczy wywołujących komendę czy przy każdym wywołaniu będzie się on zmieniał?

 

Ogólnie rzecz ujmując - czy to co się dzieje w pluginie dzieje się niezależnie dla wielu graczy?

 

Mam nadzieję, że wiecie o co mi chodzi :)

Pozdrawiam


  • +
  • -
  • 0

#2 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 08.02.2017 17:48

Jest to zależne od samego typu zmiennej (zmienna, czy tablica zmiennych) oraz sposobu jej modyfikacji.

Najlepiej będzie, jak przedstawisz przykładowy kod ilustrujący Twój problem.


  • +
  • -
  • 1

#3 Robiin

    Godlike

  • Support Team

Reputacja: 1 106
Super Hero

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

Napisano 08.02.2017 17:51

Index gracza wpisujacego komende bedzie za kazdym razem inny.
Mozesz ustawic/pokazac cos wszystkim graczom, kiedy jeden z nich wpisuje komende.

To,co komenda wywoluje mozesz ustawic sam, albo dla wszystkich np. Pętlą for lub indexem 0.
  • +
  • -
  • 0

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


#4 KRAKOW

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 26
Życzliwy

  • Postów:83
  • Lokalizacja:Kraków
Offline

Napisano 08.02.2017 18:26

public zaczep1(index,menuh,item){
	switch(item){
		case 0:{
			id=index;
			if(m1==0){
				m1=1;
				set_hudmessage(0, 255, 0, 0.1, 0.1, 0, 0.0, 3600.0, 0.0, 0.0, 3);
				show_hudmessage(id,"m1 jest aktywne")
			}
		}
...
}
public newRound(){
	if(m1==1){
		set_hudmessage(0, 255, 0, 0.1, 0.1, 0, 0.0, 3600.0, 0.0, 0.0, 3);
		show_hudmessage(id,"m1 jest aktywne");
	}
	else
	{
		set_hudmessage(0, 255, 0, 0.1, 0.1, 0, 0.0, 3600.0, 0.0, 0.0, 3);
		show_hudmessage(id,"m1 nie aktywne");
	}
}

Mam takie coś i tu pytanie : czy to będzie działać tak jak powinno? Czyli jeśli dany gracz wybierze pierwszą opcję z danego menu to tylko wtedy mu pokaże "m1 jest aktywne", czy wystarczy, że jeden gracz ją wybierze a wszyscy z serwera będą mieli "m1 jest aktywne"?


Użytkownik KRAKOW edytował ten post 08.02.2017 18:27

  • +
  • -
  • 0

#5 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 08.02.2017 18:35

new bool:m1[33]; //bool: oszczędność pamięci - zmienna tak/nie. Domyślnie jest 0 = nie.

public zaczep1(id,menuh,item)
{
	switch(item)
	{
		case 0:
		{
			if(m1[id]==0){
				m1[id]=1;
				set_hudmessage(0, 255, 0, 0.1, 0.1, 0, 0.0, 3600.0, 0.0, 0.0, 3);
				show_hudmessage(id,"m1 jest aktywne")
			}
			
		}
		...
	}
}

public newRound()
{
	new maxP = get_maxplayers();
	for(new i = 1; i<=maxP; i++)
	{
		if(m1[i]==1)
		{
			set_hudmessage(0, 255, 0, 0.1, 0.1, 0, 0.0, 3600.0, 0.0, 0.0, 3);
			show_hudmessage(i,"m1 jest aktywne");
		}
		else
		{
			set_hudmessage(0, 255, 0, 0.1, 0.1, 0, 0.0, 3600.0, 0.0, 0.0, 3);
			show_hudmessage(i,"m1 nieaktywne");
		}
	}
}

Powyższy kod modyfikuje zmienną osobno dla każdego gracza.

Należy pamiętać o zerowaniu stanu zmiennej przy wyjściu danego gracza z serwera ;)


Użytkownik _McHappy edytował ten post 08.02.2017 18:37

  • +
  • -
  • 1

#6 KRAKOW

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 26
Życzliwy

  • Postów:83
  • Lokalizacja:Kraków
Offline

Napisano 08.02.2017 18:40

Dzięki, nigdzie nie mogłem doczytać, jak to jest :)

Do zamknięcia


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: zmienne, index, id, gracz

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

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