[5 Pamoka] Funkcijos

Šiame forume galima rasti pamokas, patarimus, skriptus ir kitą naudingą informciją.
Post Reply
User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

[5 Pamoka] Funkcijos

Post by aaarnas »

Funkcijos yra kodo blokai, kurie paleidžiami kai yra iškviečiami. Visas pawn programavimas yra jais paremtas. Funkcijose rašomi algoritmai, o per vienas funkcijas iškviečiamos kitos ir tokiu būdu veikia programa.

Aprašymas būtų toks:

Code: Select all

funkcija() {server_cmd("echo labas")}
Čia yra pačios elementariausios funkcijos pavyzdys. Kur nors savo programoje parašydami funkcija() iškviesime šią funkciją ir ivykdysime joje nurodytą komandą.
Dabar žvilgtelėkim į kiek sudėtingesnį dalyką. Funkcijos ypatingos ne tik tuo, kad įvykdo nurodytą algoritmą, bet ir gali gauti ir perduoti duomenis:

Code: Select all

funkcija(id, kiekis) {set_user_health(id, kiekis)return 1}
Taigi panagrinėkime sintaksę:
funkcija(id, kiekis) - funkcijos pavadinimas. Jis gali būti bet koks (tik iš skaičių ir raidžių ir kai kurių simbolių (paprastai _)), svarbu, kad perskaičius jo pavadinimą būtų suprantama, kas toje funkcijoje bus darome, nes taip lengviau programuoti ir skaityti kodą.
funkcija(id, kiekis) - čia aprašome funkcijos gaunamus duomenis. Šioje vietoje yra sukuriami įprasti kintamieji į kuriuos yra irašomi duomenys kai funkcija iškviečiama. Šioje vietoje taip pat galima sukurti masyvą, Float kintamąjį ar nustatyti reikšmę, pvz:

Code: Select all

funkcija(Float:koordinate[3], tekstas[], kintamasis=1)
Esmė tame, kad sukuriama įprastą kintamąjį kaip ir su new ar static, tik iškviečiant funkciją reikės į ją įrašyti šiuos duomenis. Pagal pavyzdį, pirmoje vietoje turės būti Float masyvas su 3 elementais, antroje vietoje masyvas su tekstu ar kita informacija (jo dydis nėra apibrėžtas, nes tarp [] nieko nerašėme), ir skaičiaus kintamasis. Paskutinis argumentas (taip vadinami funkcijos kintamieji) gali būti ir neįrašytas, nes jo reikšmė nustatoma į 1. Jei kviesdami funkciją įrašysime jo reikšmę, tai reikšmės nustatymas į 1 bus ignoruojamas ir paimama reikšmė iš funkcijos iškvietimo informacijos.

Na kadangi jau išsiaiškinome, kaip gauname duomenis į funckiją, sužinokime kaip juos išsiųsti iš funkcijos.

Tam naudojame žodelį return. Jei iškviečiamas return, funkcija iš karto yra stabdoma skaityti ir gražinama reikšmė, kuri yra įrašyti prie return. Visa kita kas yra po iškviesto return bus ignoruota.

Code: Select all

public plugin_init()new a, ba=10b=test(a)} test(sk) {return sk*2}
Čia turime funkciją plugin_init. Ji visada iškviečiama, kai paleidžiamas pluginas.
Į a kintamąjį įrašome reikšmę 10 ir perduodame į funkciją test. Funkcijoje paimamas skaičius 10 ir padauginus iš 2 gražinamas atgal, tad į b kintamąjį bus įrašyta reikšmė 20. Pati funkcija veikia kaip kintamasis kai naudojame return.

Dar yra naudojami žodžiai prieš funkcijas:

jokio žodžio - sukuriama paprasta funkcija vidiniame programos naudojime. Galima iškviesti tik per plugine esančias funkcijas.
public - sukuriama globali funkcija. Ja galima iškviesti ir iš kitų pluginų. Būtina naudoti, kai į tas funkcijas kreipiamasi iš modulių.
stock - tai reiškia, kad tai yra kažkoks skriptas, algoritmas, kuris tiesiog atlieka kažkokią. Skirtumas tik tas, kad jei funkcija su priežodžiu stock nė karto nėra iškviečiama plugine, tai klaida nebus rodoma. Su bet kuria kita funkcija kompiliatorius rodys klaidą.

Šis gidas priklauso Amxmodx.lt forumui.
Bet koks šios informacijos platinimas be autoriaus sutikimo yra griežtai draudžiamas.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests