[2 Pamoka] Pažintis su pagrindiniais dalykais

Š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:

[2 Pamoka] Pažintis su pagrindiniais dalykais

Post by aaarnas »

Šioje pamokoje susipažinsime su pawn kalbos pagrindais.

Plugino pagrindas susideda iš įterpiamų bibliotekų, kintamųjų, natives, forwards, funkcijų, ciklų, sąlygų ir sąrašas tuom nesibaigia. Pradėsime viską nuo pradžių.

Bibliotekų pridėjimas:

Code: Select all

#include <biblioteka>
Include mes naudojame nurodyti pluginams kuri biblioteka jiems bus reikalingą. Kiekviena biblioteka turi skirtingas galimybes, tad jas renkamės pagal tai kokios galimybės mums bus reikalingos. Vienu metu galima pridėti daug bibliotekų.

Kintamųjų kūrimas:

Kintamieji tai yra speciali informacijos talpykla darbinėje atmintyje, kuriuose saugoma įvairūs duomenys kurios naudojame plugine. Tad štai jų naudojimo pavyzdys:

Code: Select all

new kintamasiskintamasis = 5
Šiame veiksme mes sukuriame kintamąjį ir priskiriame jam reikšmę. Kintamuosius vienus nuo kitų skiria jų pavadinimai. Pavadinimai gali būti bet kokie, bet rašykite tokius, kurie apibūdintų juose laikomus duomenis, taip daug lengviau orientuotis plugine.
Su žodeliu new mes parodome kompiuteriui, kad kursime naują kintamąjį. Po šio žodelio rašome kintamojo pavadinimą. Su ženklu '=' parodome kompiuteriui, kad bus nustatoma kažkokia tai reikšmė. Kairėje pusėje tas kuriam nustatinėjame, dešinėje tas ką nustatinėjame. Galima kurti ir daug kintamųjų vienu metu ir priskirti jiems reikšmes. Pvz:

Code: Select all

new kintamasis, jonuko_kintamasis = 2, petriuko_kintamasis, kintamaskintamasis = 5petriuko_kintamasis = 100
Visa tai bus teisinga. Kintamųjų reikmės bus tokios:
kintamasis - 5
jonuko_kintamasis - 2
petriuko_kintamasis - 100
kintamas - 0

Kodėl kintamas yra 0? Naujai sukurti kintamieji visada turi 0 reikšmę.
Labai svarbu! Programavime skaičiavimas prasideda ne nuo 1, o nuo 0 (0, 1, 2, 3...), tad 0 taip pat yra skaičius.

Skliausteliai:

Dažnai kokiai nors sąlygai ar funkcijai mes norime priskirti daugiau nei vieną eilutę. Tam yra naudojami skliausteliai { }. Jų užduotis yra aprėpti kažkokią kodo dalį ir sujungti į vieną funkciją ar sąlygą. Pvz:

Code: Select all

public funkcija(){čiayrakodasišdaugiaunei1eilutės}
Kaip matome čia yra funkcija su daug kodo joje. Skliaustelius reikės naudoti visada, bet nėra būtina, jei yra tik 1 kodo eilutė. Dėsite ar ne nėra svarbu, čia yra Jūsų asmeninis programavimo stilius. Pavyzdžiai:

Code: Select all

if(kintamasis) {daryti_tądaryti_aną} if(kitas_kintamasis) daryti_tik_aną if(kintamasis) { daryti_tą; daryti_aną }
Kaip matote visi šie būdai yra teisingi. Trečiame pavyzdyje parodžiau kaip galima surašyti vienoje eilutėje, bet stenkimės to vengti, nes jei pridėsite labai daug kodo į vieną eilutę, bus sunku perskaityti kodą. Be to, pawn kalboje nėra skirtumo tarp tarpų skaičiaus, eilučių skaičiaus tarp simbolių/funkcijų. Tad jei skliaustelį ({) paliksite funkcijos eilutėje, ar nukelsite per 10 eilučių žemyn nėra skirtumo. Tai jau Jūsų programavimo stilius.

Funkcijos:

Funkcijos, tai yra specialūs algoritmo (kodo) blokai, kuriuose vyksta visi veiksmai. Tarkim:

Code: Select all

funkcija() {kodasčiayra}
jei dabar iškviesime šią funkciją, joje bus įvykdytas tas kodas. Visas algoritmų(kodų) kūrimas yra funkcijų viduje. Jų išorėje tik registruojami kintamieji.

Natives/Forwards:

Nežinau, kaip lietuviškai pavadinti, bet vadinsime taip. Pradžioje apie forwards:
Forwards, tai yra funkcijos, kurios yra iškviečiamos tam tikru žaidimo metu, tarkim kažkas mirštą, baigiasi raundas ir begalė kitų sudėtingų ir lengvesnių forwardų. Kai iškviečiamas atitinkamas forwardas, jame įvykdoma nurdyti algoritmo(kodo) dalis. Tarkim taip:

Code: Select all

public client_connect(id) {kažkoksmūsųserver_cmd("kick #%d", get_user_id(id))kodas}
Šis forward yra iškviečiamas, kai žaidėjas pradeda jungtis į serverį ir tuo tarpu įvykdomas šis kodas. Vienas iš jų (server_cmd) yra native, juo mes duodame komandą į serverio konsolę, kad išspirtų tą žaidėją lauk. Native ir yra
komanda, kurios pagalba atliekame, kažkokį tai veiksmą. Įvykdžius šią komandą ji siunčiama į moduliu, o ten ji tampa forwardu. Tad forwardai yra visi veiksmai, kuriuose mes gauname, native veiksmai, kuriuos mes siunčiame.

Sąlygos:

Sąlygos tai yra specialūs įrankiai kur kompiuteris pagal jam suteikiamą sąlygą nusprendžia ar paleisti kažkokio kodo dalį ar ne. Tai tarsi užduodame klausimą, kurio atsakymas gali būti tik tiesa arba netiesa (true:false).

Code: Select all

if(2==2) kodas
Čia mes duodame kompiuteriui uždavinį palyginti 2 skaičius ir pažiūrėti ar jie yra lygūs. == ženklas reiškia lygybę. Kadangi = ženklas naudojamas nustatyti reikšmei, tai jis šioje vietoje netinka.
Tada jei skaičius 2 yra tikrai lygus skaičiui 2, kodas bus paleistas, priešingu atveju kodas bus ignoruotas.

Code: Select all

new kintamasis = 1if(kintamasis) kodaskintamasis = 0if(kintamasis) kitas_kodeas
Čia sukuriame kintamąjį ir priskiriame jam reikšmę 1. Tada funkcija tikrina ar kitnamajeme esantis skaičius yra teigiamas. Visi skaičiai daugiau už 0 yra teigiami ir grąžins tiesą. 0 visada grąžins netiesą ir funkcija nebus vykdoma, tad šiuo atveju kitas_kodas iškviestas nebus.

Ciklai:

Ciklai tai yra specialūs įrankiai kaip ir sąlygos. Jų paskirtis yra kažkokį tai kodą atlikti keletą kartų. Pvz vienas iš ciklų while:

Code: Select all

new kintamasis = 20while(kintamasis > 1) {kintmasis = random_num(1, 20)}
Čia kaip jau žinote sukuriame kintamąjį, jam nustatome reikšmę ir pradedame ciklą. while ciklas kartoja skliausteliuose ({ }) esantį kodą tol, kol sąlyga ( () skliausteliuose ) Bus teisinga. T.y. Kol kintamasis daugiau už skaičių 1, tai sąlyga bus teisinga. random_num funkcija suranda atsitiktinį skaičių tarp mūsų nurodytų 1 ir 20 ir tą skaičių nustato kintamajam. Tada while ciklas vėl kartojasi ir tikrina ar kintamasis vis dar yra daugiau už 1. Jei random_num grąžins skaičių 1 ir nustatys tokią kintamojo reikšmę, tai ciklas sustos, kai jos vėl bus pradėtas tikrinti, nes 1 nėra daugiau už 1. Jis yra lygus vienam.

Tai buvo tik supažindinimas su pagrindiniais dalykais. Apie kiekvieną iš jų plačiau skaitykite kitose pamokose.

Š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 8 guests