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

Pobieranie graczy - pętla i pomijanie kilku


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

#1 ullL

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:9
  • Imię:Marcin
Offline

Napisano 30.12.2016 17:29

Mam pytanie i troche problem, mam taką pętle:

new pla=get_maxplayers();
    
    for(new j = 1;j<=pla;j++)

dalej sprawdzam czy gracze(bo broń ma być dla wszystkich) "j" są żywi i daje im broń, ale ciągle jest tak, że jest 2-3 graczy którzy tej broni nie otrzymują. Dlaczego ?


  • +
  • -
  • 0

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 983
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 30.12.2016 20:02

1. id zaczyna się od 0 nie od 1

2. Pokaż pełną pętle


  • +
  • -
  • 0

#3 ullL

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:9
  • Imię:Marcin
Offline

Napisano 30.12.2016 20:26

public run()
{
new pla=get_maxplayers();
    
    for(new j = 1;j<=pla;j++)
    
   
    if(is_user_alive(j))
    {
    give_item(j, "weapon_awp");
  
}
   
    

}

 

na razie tyle, id na 0 zalatwi sprawe?


  • +
  • -
  • 0

#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 983
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 30.12.2016 20:31

Na pewno nie zaszkodzi

public run(){
	for( new iPlayer = 0; iPlayer < 33; iPlayer++ ){
		if( !is_user_alive( iPlayer ) ){
			continue;
		}
		
		give_item( iPlayer , "weapon_awp" );
	}
}

  • +
  • -
  • 1

#5 ullL

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:9
  • Imię:Marcin
Offline

Napisano 31.12.2016 00:42

Działało, zobacze przy większej liczbie graczy, a tak z innej beczki - "continue" różni się czymś od return plugin_handled, plugin continue ?


  • +
  • -
  • 0

#6 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

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

Napisano 31.12.2016 01:01

Samego 'continue' używamy w pętlach (oznacza ono 'przeskok' do kolejnego kroku pętli).
'return' służy do zwracania wartości funkcji. W praktyce, może m.in. przerywać ciągłość działania funkcji np. gdy pewien warunek jest/nie jest spełniony.
  • +
  • -
  • 1

#7 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 31.12.2016 04:48

darkgl trzeciez twoj kod to jest to samo...

zamiast pobierac id graczy przez petle to lepiej zastosowac get_players


  • +
  • -
  • 1

#8 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 983
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 31.12.2016 10:45

darkgl trzeciez twoj kod to jest to samo...

zamiast pobierac id graczy przez petle to lepiej zastosowac get_players

a to czytelność kodu już nie jest ważna ? Nie nie lepiej get_players nigdy nie było dobrym rozwiązaniem.


  • +
  • -
  • 2

#9 Master Yoga

    Support Team | Mocarz

  • Support Team

Reputacja: 136
Zaawansowany

  • Postów:275
  • Lokalizacja:Magistrala Adresowa
Offline

Napisano 31.12.2016 22:50

Samego 'continue' używamy w pętlach (oznacza ono 'przeskok' do kolejnego kroku pętli).
'return' służy do zwracania wartości funkcji. W praktyce, może m.in. przerywać ciągłość działania funkcji np. gdy pewien warunek jest/nie jest spełniony.

 

Zwracać wartość możesz także przez referencje, instrukcja 'return' powoduje wyjście z funkcji.


  • +
  • -
  • 0

HTML ★ CSS ★ JAVASCRIPT ★ AJAX ★ JQUERY ★ PHP ★ C++ ★ PAWN ★ SQL ★ Objective-C++


MKW0tb8.pngMKW0tb8.pngMKW0tb8.png


#10 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

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

Napisano 31.12.2016 23:00

Samego 'continue' używamy w pętlach (oznacza ono 'przeskok' do kolejnego kroku pętli).
'return' służy do zwracania wartości funkcji. W praktyce, może m.in. przerywać ciągłość działania funkcji np. gdy pewien warunek jest/nie jest spełniony.

 
Zwracać wartość możesz także przez referencje, instrukcja 'return' powoduje wyjście z funkcji.

To oczywiste, dlatego nie ma w mojej wypowiedzi frazy 'tylko i wyłącznie'.
Co więcej, autor pyta o różnicę pomiędzy wspomnianymi instrukcjami, dlatego warto przytaczać praktycznie przykłady aniżeli drążyć - skomplikowane z punktu widzenia pytającego - terminy z zakresu programowania.
  • +
  • -
  • 0

#11 rzeznik9871

    Wszechwidzący

  • Użytkownik

Reputacja: 80
Zaawansowany

  • Postów:260
Offline

Napisano 31.12.2016 23:19

1. id zaczyna się od 0 nie od 1

2. Pokaż pełną pętle

Dlaczego od 0? przeciez nie jest to mozliwe aby gracz mial id 0 wiec na co je uwzgledniac w petli?

zawsze uzywalem petli for(id=1;id<=MaxPlayers;id++) i wszystko bylo ok nawet teraz sprawdzilem czy czasem nie popelniam bledu i czy czasem nie pomija mi 1 gracza w petli ale taki oto kod

public test()
{
	static id
	for(id=1;id<=MaxPlayers;id++)
		client_print(0,3,"Aktualnie id w petli wynosi: %i",id)
}

wyswietlil mi na czacie ladne liczby od 1 do 32

 

a co do get_players() to on chyba sam w sobie uzywa petli aby zwrocic graczy przy czym moze podac bledne wyniki wiec uzycie petli na swoja reke bedzie lepsze nie? czy sie myle?


  • +
  • -
  • 0

Cześć


#12 ullL

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:9
  • Imię:Marcin
Offline

Napisano 01.01.2017 23:55

Funkcja działa jak działała wcześniej tzn. pomija zawsze przy wiekszej ilości graczy, jednego lub dwóch. Przy get_players tego problemu nie ma, chyba nie będzie błędem jeśli tego użyje ?


  • +
  • -
  • 0




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

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