←  Tutoriale

AMXX.pl: Support AMX Mod X i SourceMod

»

Niektóre funkcje

  • +
  • -
kaszewczyk - zdjęcie kaszewczyk 30.01.2009

Witam, postanowiłem się zaznajomić z pawn'em i pisaniem pluginów pod amx chciałem podzielić się z wami moimi doświadczeniami jak dotąd (jeszcze są nie wielkie) ;) może się komuś przydadzą.

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
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 30.01.2009

client_score
Z tego co widze to nie jest funkcja dla modu counter-strikie (wypada to dopowiedziec - dodx).

Po prostu moze podaj z jakiej biblioteki pochodza dane funkce bo i tak trzeba to wiedziec zanim sie uzyje.

PS. z takim podejsciem do pawna wroze ci wiele sukcesow.
Odpowiedz

  • +
  • -
darkman - zdjęcie darkman 30.01.2009

wszystko dobrze, ale takie pojedyńcze tutoriale nikomu nic nie dają. każdy woli zajrzeć do funcwiki, bo jest to tam lepiej opisane. btw. w swoim czasie będzie dokumentacja po polsku, więc jak na razie nie widze innej możliwości jak kosz?
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 30.01.2009

Puki nie ma wiki PL, to zignoruj darkman
Odpowiedz

  • +
  • -
darkman - zdjęcie darkman 30.01.2009

na następny raz jak robisz to jakoś podziel tematycznie, bo teraz to takie ni z gruchy ni z pietruchy
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 30.01.2009

Faktycznie, alfabet niewiele pomaga w pawnie ^^
Odpowiedz

  • +
  • -
kaszewczyk - zdjęcie kaszewczyk 30.01.2009

Poprawione, czy tak może być? Wcześniej nigdy nie pisałem tutoriali więc trochę wyrozumiałości ;)

a co do wiki to nawet nie ma porządnego tutoriala o pawnie w języku polskim a co dopiero o funkcjach amx mod x ;)

more 2 come...
Odpowiedz

  • +
  • -
JEF - zdjęcie JEF 14.02.2009

1) abs() to zapewne wartość bezwględna
2) wspominacie o jakimś Wiki z funkcjami. Gdzie link?
3) czemu by nie skopiować wpisów z tego Wiki
3.1) przetłumaczyć na polski przynajmniej kilka najważniejszych funkcji
3.2) funkcja po funkcji i kiedyś bedziemy mieć wszystko
Odpowiedz

  • +
  • -
darkman - zdjęcie darkman 14.02.2009

1) abs() to zapewne wartość bezwględna
2) wspominacie o jakimś Wiki z funkcjami. Gdzie link?
3) czemu by nie skopiować wpisów z tego Wiki
3.1) przetłumaczyć na polski przynajmniej kilka najważniejszych funkcji
3.2) funkcja po funkcji i kiedyś bedziemy mieć wszystko


nasze forum w niedługim okresie czasu wyda funcwiki PL
Odpowiedz