[ROZWIĄZANE] Return PLUGIN_CONTINUE, co da...
MrBombastic
09.02.2013
Witam,
Mam pytanie, otóż od zawsze mnie zastanawiało, co robi się po tym jak w publicu daje się return plugin_handled, continue
dzięki
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
glut
09.02.2013
Opcja szukaj nie boli 
Proszę tutaj masz np. jak benio101 opisał to

Proszę tutaj masz np. jak benio101 opisał to
Spoiler
MrBombastic
09.02.2013
No dobra, ale teraz pytanie, skoro po dopisaniu return PLUGIN_CONTINUE muszę zwrócić wartość, to jaką i gdzie?
Gość_21977_* 09.02.2013
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.
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.
MrBombastic
09.02.2013
Czyli dając return PLUGIN_HANDLED warning może wyskakiwać, że powinno to zwracać określoną wartość?
Gość_21977_* 09.02.2013
Kod za returnem nie zostanie wykonany, a debugger będzie na tyle łaskawy poinformować Cię o tym.
W Twoim kodzie fragment
Debugger po prostu Cię o tym poinformuje w postaci ostrzeżenia.
@edit. Oczywiście zakładając, że na końcu linijki
Użytkownik benio101 edytował ten post 09.02.2013 18:35
lit.
W Twoim kodzie fragment
if(read_data(2)==CSW_AWP)nie zostanie NIGDY wykonany, gdyż znajduje się za instrukcją return, która przerwie wywołanie funkcji.
set_pev(id, pev_viewmodel2, "ścieżka do awp")
if(read_data(2)==CSW_DEAGLE)
set_pev(id, pev_viewmodel2, "scieżka do dgl")
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.
Jak się nazwać
09.02.2013
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.
Gość_21977_* 09.02.2013
Wiadomość wygenerowana automatycznie
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
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz,

Z pozdrowieniami,
Zespół AMXX.PL