Funkcje z czym to się je?
Pawn umożliwia używania funkcji bibliotecznych jak i zarówno pozwala na tworzenie własnych funkcji, funkcje powinny zwracać jakąś wartość, aby funkcja zwracała wartość należy użyć słowa return które natychmiast zatrzymuje funkcje i zwraca wartość wyrażoną zaraz po tym słowie np. return 1; czyli po uruchomieniu funkcji będzie zwracana jedynka. Uwaga! w funkcji po słowie return nie powinniśmy zawierać żadnego dalszego kodu ponieważ nie będzie on wykonany. Funkcje są używane po to aby nie powielać tego samego kodu wiele razy, co oszczędza nam wiele czasu i trudu jak i znacznie skraca pisane przez nas programy.
Oto przykład funkcji pokazująca napis "witam w konsoli" i zwróci jedynkę
pokaz_w_konsoli() { console_print(id,"witam w konsoli"); return 1; }
aby uruchomić funkcję:
pokaz_w_konsoli();
oto przykład funkcji przyjmującej parametry
suma(liczba_a,liczba_<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cool.gif' class='bbc_emoticon' alt='B)' /> { new sum = liczba_a + liczba_b; return sum; // lub po prostu można zrobić tak aby skrócić kod return liczba_a + liczba_b; }
aby uruchomić funkcję:
new a,b; a=4; b=5; new c; c = suma(a,<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cool.gif' class='bbc_emoticon' alt='B)' /> //c równa się 9
można także nadać funkcji typ który będzie ograniczał argumenty jakie będzie mogła przyjąć funkcja do określonego typu, użyjemy tej samej funkcji tylko dla liczb zmiennoprzecinkowych
Float:suma_float(liczba_a,liczba_<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cool.gif' class='bbc_emoticon' alt='B)' /> { new Float:sum = liczba_a + liczba_b; return sum; }
aby uruchomić funkcję:
Float:new a,b; a=4.0; b=5.5; new Float:c; c = suma_float(a,<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cool.gif' class='bbc_emoticon' alt='B)' /> //c równa się 9.5
poniżej opis niektórych funkcji bibliotecznych:
Core
Funkcja: abs
abs(x);Opis:
funkcja jednoparametrowa zwracająca całkowitą wartość intigera
Funkcja: access
access(id_gracza,flaga_admina)Opis:
funkcja dwuparametrowa sprawdzająca gracza czy ma odpowiednią flagę administratora serwera np: ADMIN_KICK
Funkcja: add
add ( string_pierwszy[], dlugosc, const string_drugi[], [ max ] )Opis:
funkcja 3 parametowa ponieważ ostatni parametr jest nie wymagany. Funkcja dodaje do siebie dwa stringi i zwraca ilość znaków połączonych, jeżeli ostatni parametr jest podany wyznacza on ile znaków ma dodać funkcja
Funkcja: arrayset
arrayset ( tablica[], wartosc, rozmiar)Opis:
funkcja trójparametrowa ustawiająca całą tablice do wybranej wartości w szybki sposób.
Funkcja: get_user_frags
get_user_frags ( id_gracza )Opis:
funkcja jednoparametrowa zwracajaca ilość punktów (fragów)
Funkcja: isalpha
isalpha ( ch )Opis:
funkcja zwraca prawde jezeli parametr to litera
Funkcja: isdigit
isdigit ( ch )Opis:
funkcja zwraca prawde jezeli parametr to liczba
Funkcja: make_deathmsg
make_deathmsg ( zabojca, ofiara, headshot, bron[] )Opis:
funkcja czteroparametrowa tworząca wiadomość o śmierci gracza
Funkcja: random_num
random_num ( a,b )Opis:
funkcja przyjmuje dwa parametry które są minimalną i maxymalną granicą przedziału a funkcja zwraca losową liczbę całkowitą z tego przedziału
Funkcja: random
random ( max )Opis:
funkcja przyjmuje jeden parametr który wyznacza górną granice przedziału ze wzoru max-1 dolna granica to 0, funkcja zwraca pseudo-losową liczbę z tego przedziału
Funkcja: random_float
Float: random_float ( Float:a,Float:b )Opis:
funkcja przyjmuje dwa parametry które są minimalną i maxymalną granicą przedziału a funkcja zwraca losową liczbę zmiennoprzecinkową z tego przedziału
Funkcja: date
date ( [ &rok, &miesiac, &dzien ] )Opis:
Funkcja przywraca date poprzez parametry podane przez referencje, które będą przekazywać części daty zapisanej wewnątrz funkcji.
Funkcja: funcidx
funcidx ( const nazwa[] )Opis:
funkcja zwraca jako index publiczne funkcje, jeżeli nie ma takich zwracane jest -1
Funkcja:
getarg ( argument, [ index_argumentów ] )Opis:
funkcja przywraca argument z listy argumentów, jeżeli argument to tablica musimy sprecyzwować także pierwszy element tablicy.
Funkcja: heapspace
heapspace ( )Opis:
funkcja bezparametrowa zwracająca ilość wolnego miejsca na stosie, przydaje się do znajdywania jakichkolwiek przecieków pamięci stosu.
Funkcja: max
max ( wartosc1, wartosc2 )Opis:
funkcja zwraca parametr który ma większą wartość
Funkcja: min
max ( wartosc1, wartosc2 )Opis:
funkcja zwraca parametr który ma miejszą wartość
Funkcja: numargs
numargs ( )Opis:
funkcja zwraca ilość parametrów przekazanych do aktualnej funkcji
Funkcja: power
power ( wartosc1, wartosc2 )Opis:
funkcja dwuparametrowa zwiększająca wartość 1 do wartości2
Funkcja: setarg
setarg ( argument, index=0, nowa_wartosc_argumentu )Opis:
funkcja ustawia nową wartość dla pdanego argumentu z listy argumentów
Funkcja: strlen
strlen ( const string[] )Opis:
funkcja zwraca długość podanego stringa
Cstrike
Funkcja: cs_get_user_team
cs_get_user_team(id_gracza)Opis:
funkcja przyjmuje jako parametr id gracza i zwraca jedna z 3 wartości: CS_TEAM_T, CS_TEAM_CT, CS_TEAM_SPECTATOR.
Funkcja: cs_get_hostage_foll
cs_get_hostage_foll ( nr )Opis:
funkcja zwraca index jednostkowy zakładników którzy podążają za anty-terrystą, nr to index zakładników, jeżeli nr = 0 żaden z zakładników nie podąża za nami
Funkcja: cs_get_hostage_id
cs_get_hostage_id ( nr)Opis:
funkcja zwraca unkatowy numer idetyfikujący zakładnika
Funkcja: cs_get_no_knives
cs_get_no_knives ( )Opis:
funkcja zwraca 1 kiedy tryb nożowy jest włączony, a 0 jeśli nie jest aktywny
add:
będę się starał w miarę możliwości dodawać więcej opisów funkcji, mam nadzieję że to komuś pomoże, jeżeli uznacie ten post za mało pożyteczny to po prostu usuńcie go
~pozdrawiam