Rodzaje funkcji w Pawnie
pod AMXX
Funkcja może być:
1. Funkcja wewnętrzna
Funkcja dostępna tylko dla innych funkcji w pluginie
Przeznaczenie:
- podział kodu na podprogramy
Uwagi:
- powinna zostać wywołana, inaczej powoduje ostrzeżenie (ale nieszkodliwe) podczas kompilacji
Przykład
funkcja(parametry, danej, funkcji) { }
2. Funkcja stock`owa
Jest to generalnie funkcja wewnętrzna. Różni się od niej tym, że nieużyta nie powoduje ostrzeżeń.
Przeznaczenie:
- tworzenie zestawów funkcji do wielokrotnego użytku (np. w pliku .inc)
stock funkcja(parametry, danej, funkcji) { }
3. Funkcja publiczna
Funkcja szeroko dostępna, dla samego pluginu oraz na zewnątrz niego. Oznacza to, że może zostać wywołana przez AMXX lub któryś z jego modułów. Pośrednio także przez inny plugin: callfunc_begin .. callfunc_end albo jako forward.
Przeznaczenie:
- callbacki, czyli funkcje przypisywanie do zdarzeń, jak register_event("EVENT", "FUNKCJA")
- udostępnianie funkcji innym pluginom
Uwagi:
- jako jedyna nie może przyjmować wartości domyślnych dla parametrów
- nie musi zostać jawnie wywołana
- słowo kluczowe public może zostać zastąpione @
Przykład
public funkcja(parametry, danej, funkcji) { }
@funkcja(parametry, danej, funkcji) { }
4. Funkcja natywna
Jest to funkcja, której ciało nie jest znane w czasie kompilacji, dlatego określona jest wyłącznie jako nagłówek. To odniesienie do funkcji zapisanej gdzieś w module lub innym pluginie. Opisuje składnię dostępnych funkcji do wykonania.
Przeznaczenie:
- biblioteki (pliki .inc)
Uwagi:
- możemy udostępniać własne funkcje natywne: Natywy - AMXX.pl: Support AMX Mod X
Przykład
native register_event(const event[],const function[],const flags[],const cond[]="", ... );
5. Forward
Określona jest wyłącznie jako nagłówek. Jest to zapowiedź funkcji, informuje o jej parametrach. Często opisuje składnię dostępnych funkcji publicznych reagujących na zdarzenia.
Przeznaczenie:
- biblioteki (pliki .inc)
Uwagi:
- możemy udostępniać własne forwardy: Forwardy - AMXX.pl: Support AMX Mod X
Przykład
forward plugin_init();