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

[ROZWIĄZANE] Return PLUGIN_CONTINUE, co dalej?


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

#1 MrBombastic

    Banned

  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:94
  • Imię:Kazimierz
  • Lokalizacja:Internet
Offline

Napisano 09.02.2013 15:32

Witam,

Mam pytanie, otóż od zawsze mnie zastanawiało, co robi się po tym jak w publicu daje się return plugin_handled, continue
public Bron(id){
    if(get_user_flags(id) & FLAGA)
        return PLUGIN_CONTINUE
        
        if(read_data(2)==CSW_AWP)
        set_pev(id, pev_viewmodel2, "ścieżka do awp")
        
    
        if(read_data(2)==CSW_DEAGLE)
        set_pev(id, pev_viewmodel2, "scieżka do dgl")
    }

}
Jest napisane, że powinno to zwrócić value w warningu, ale nie wiem w jaki sposób i gdzie to umieścić ( przypuszczam jedynie, że to jest return 1, return 0 ale nie jestem pewien. Mógłby mi to ktoś dokładnie wytłumaczyć?
dzięki
Posiadam unikalną paczkę PB - więcej informacji na PW
Dołączona grafika

#2 glut

    Godlike

  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 09.02.2013 15:51

Opcja szukaj nie boli :)

Proszę tutaj masz np. jak benio101 opisał to

Spoiler

  • +
  • -
  • 1

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#3 MrBombastic

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:94
  • Imię:Kazimierz
  • Lokalizacja:Internet
Offline

Napisano 09.02.2013 16:24

No dobra, ale teraz pytanie, skoro po dopisaniu return PLUGIN_CONTINUE muszę zwrócić wartość, to jaką i gdzie?
Posiadam unikalną paczkę PB - więcej informacji na PW
Dołączona grafika

#4 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 09.02.2013 18:14

To, co zrobisz po returnie, nie ma absolutnie znaczenia, gdyż instrukcja return przerywa dalsze wywołanie funkcji.
Co zresztą zakończy się zapewne otrzymaniem ostrzeżenia od debuggera o nieosiągalnym kodzie,

Instrukcja return zarazem zwraca określoną wartość, w tym przypadku PLUGIN_CONTINUE, którego znaczenie poznałeś z poprzedniego postu.
Podsumowując, return zwraca pewną wartość, zarazem przerywając dalsze wywołanie funkcji, także po niej można dodać co najwyżej komentarz.

#5 MrBombastic

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:94
  • Imię:Kazimierz
  • Lokalizacja:Internet
Offline

Napisano 09.02.2013 18:24

Czyli dając return PLUGIN_HANDLED warning może wyskakiwać, że powinno to zwracać określoną wartość?
Posiadam unikalną paczkę PB - więcej informacji na PW
Dołączona grafika

#6 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 09.02.2013 18:29

Kod za returnem nie zostanie wykonany, a debugger będzie na tyle łaskawy poinformować Cię o tym.
W Twoim kodzie fragment
				if(read_data(2)==CSW_AWP)
set_pev(id, pev_viewmodel2, "ścieżka do awp")


if(read_data(2)==CSW_DEAGLE)
set_pev(id, pev_viewmodel2, "scieżka do dgl")
nie zostanie NIGDY wykonany, gdyż znajduje się za instrukcją return, która przerwie wywołanie funkcji.
Debugger po prostu Cię o tym poinformuje w postaci ostrzeżenia.

@edit. Oczywiście zakładając, że na końcu linijki
if(get_user_flags(id) & FLAGA)
jest klamra, bo najwyraźniej jej brakuje.

Użytkownik benio101 edytował ten post 09.02.2013 18:35
lit.


#7 Jak się nazwać

    Wszechmogący

  • Power User

Reputacja: 169
Profesjonalista

  • Postów:617
  • Imię:a
  • Lokalizacja:a
Offline

Napisano 09.02.2013 18:44

Dodam że warning występuje ponieważ gdy zwracasz jakąś wartość w danym momencie funkcji, pawn wymaga aby także zwrócić wartość domyślną na samym końcu funkcji, czyli przed ostatnią klamrą daj: return PLUGIN_CONTINUE i będzie ok.
  • +
  • -
  • 1
Pisze na zamówienie statystyki pod nvault. GG: 15600964

#8 MrBombastic

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:94
  • Imię:Kazimierz
  • Lokalizacja:Internet
Offline

Napisano 09.02.2013 22:37

Dzięki, rozumiem wszystko, pozdrawiam
Posiadam unikalną paczkę PB - więcej informacji na PW
Dołączona grafika

#9 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 09.02.2013 22:48

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL




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

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