Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

[PAWN] Pagrindai - kintamieji


ArN01d

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2735 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Antra pamoka  

27 balsai

  1. 1. Ar sukūrti antrą pamoką?

    • Taip
      24
    • Ne
      3


Recommended Posts

Sveiki.
Ši pamoka skirta visiškai žaliems.

Taigi pradėkime nuo paprastų dalykų.

1. KINTAMIEJI

Yra 3 pagrindiniai kintamųjų tipai:
» Int (Integer) (Masyvai)
» Boolean

» Float

Yra dar Text3D kintamieji, kurie naudojami 3d labelių atpažinimui...

Integer - tai kintamasis, kurio reikšmė gali būti tik skaičius (1, 9, 787 ir t.t.)
Int tipo kintamasis aprašomas taip: 

new kintamojo_pavadinimas;

Priskirti reikšmę kintamajam galime taip:
 

kintamojo_pavadinimas = skaicius;

pvž.:

kintamojo_pavadinimas = 7;
kintamojo_pavadinimas = -1;

Bet taip pat priskirti reikšmę kintamajam galima ir sukūriant jį. Pvž.:
 

new kintamojo_pavadinimas = 5;
new kintamojo_pavadinimas = -5;

O pridėti kokį nors skaičių prie jūsų kintamojo galime taip:

kintamojo_pavadinimas = kintamojo_pavadinimas + 52;

Trumpesnis variantas:
kintamojo_pavadinimas += 52;

Su atėmimu yra taip pat.
Taigi dabar žinote kaip sukūrti INT tipo kintamąjį, kaip priskirti jam reikšmę, pridėti kokį nors skaičių prie jo.

O dabar pasiaškinkime kas yra BOOL.
Bool tipo kintamasis turi tik dvi reikšmės TRUE arba FALSE, tai tas pats kaip 1 ir 0 int kintamajame.
Tokie kintamieji naudojami su tokiomis komandos kaip pvž.: /dirzas.

Priskirt reikšmę bool tipo kintamajam yra taip pat lengva kaip ir integeriui, tiesiog vietoj skaičiaus turime įvest TRUE arba FALSE.

Pavyzdys:
 

new bool:kintamasis;

kintamasis = true;

kintamasis = false;

Tikrinti bool, bei int kintamųjų reikšmės galime taip:

Integeriai:

if(kintamojo_pavadinimas == 512) kintamojo_pavadinimas = 1;  // jei kintamojo reikšmė yra 512 mes nustatom kintamajui reikšmę '1'

Bool:
 

if(kintamasis == true) kintamasis = false; // jei kintamojo reikšmė yra TRUE, tada nustatom kintamojo reikšmę į FALSE

// Trumpesnis variantas tikrinimui:
if(kintamasis) // su šiuo kodu patikrinam ta patį ką ir su if(kintamasis == true), tai yra ar reikšmė yra TRUE

// Tikrinimas ar reikšmė yra FALSE:
if(!kintamasis) arba if(kintamasis == false)

Masyvai - naudojami tada, kai yra daug kintamųjų skirtų tam pačiam dalykui, nežinau ar aišku, tai tiesiog duosiu pavyzdį su pasiekimų sistema.

 

new bool:pasiekimas1;
new bool:pasiekimas2;
new bool:pasiekimas3;
new bool:pasiekimas4;

Štai taip daryti negalima, tam ir skirti MASYVAI.
Su masyvu šias keturias eilutės galime pakeist į vieną ir visa krovimą/saugojimą daug labiau supaprastint.
Štai kaip tai reikia padaryti:
 

new bool:pasiekimas[4];

Panaudoti šiuos kintamuosius galėsime taip:
 

pasiekimas[0] = true;
pasiekimas[1] = false;
pasiekimas[2] = false;
pasiekimas[3] = true;

Taip panaudojami masyvai.
Parašėmė skaičių '4' prie new bool:pasiekimas, todėl galime naudoti visus skaičius, kurie yra iki to visų pirma parašyto (4).

Masyvus aišku naudoti galime ne tik bool kintamiesiems, tai galit būti paprastas int, Text3D ir pnš.

Su masyvais sukūriamas tekstas.

new zinute[50];
zinute = "0123456789";


Į šį kintamajį galime įdėti 49 simbolius, jei parašysite daugiau, nei 49, jie tiesiog neprisiskirs kintamajam.

Išsiųsti šį tekstą galime su funkcija SendClientMessage();
SendClientMessage(playerid, -1, zinute);

playerid tai žaidėjo ID.
-1 tai spalva (Šiuo atveju tai balta spalva)
Na o zinute tai mūsų kintamasis, bet norint išsiųsti paprastą tekstą užtenka padaryti taip:
SendClientMessage(playerid, -1, "0123456789");

To masyvo išsiuntimas nėra reikalingas, nebent formatuojame jį t.y. į tą masyvą įrašome kokio nors kintamojo reikšmę, bet apie tai veliau.


Tai tiek šioje pamokoje, jei turit klausimų rašykit į komentarus.
Pamoka nėra visiškai pabaigta, bet... sudalyvaukit apklausoj ir pamatysim ar bus pratėsimas XD
Jei norit pasileisti kokį šūdserveriuką nerašykit, nes nešvaistau laiko niekams.

Redaguota , nario ArN01d
Nuoroda į komentarą
Dalintis per kitą puslapį

Pradėk tu geriau nuo callback'u... Kas jie ? Kam jie skirti ? Kaip juos naudot ir pnš. o ne nuo kintamuojų. Po callbacku turėtų eit tokie dalykai kaip pagrindinės funckijos pvž: sendclientmessage ir pnš. Supažindint su tuo kas yra "playerid", kam jis reikalingas ir kaip jį naudot.

Nuoroda į komentarą
Dalintis per kitą puslapį

Pradėk tu geriau nuo callback'u... Kas jie ? Kam jie skirti ? Kaip juos naudot ir pnš. o ne nuo kintamuojų. Po callbacku turėtų eit tokie dalykai kaip pagrindinės funckijos pvž: sendclientmessage ir pnš. Supažindint su tuo kas yra "playerid", kam jis reikalingas ir kaip jį naudot.

Nu jei taip sakai, tai gal kitą kart sukūrsiu apie callbackus, tiesiog man pasirodė, kad nuo kintamųjų geriau pradėt, nes ką tu veiksi su callbackais, kai nemokesi tokių paprastų dalykų su kintamaisiais...

Nuoroda į komentarą
Dalintis per kitą puslapį

Nu jei taip sakai, tai gal kitą kart sukūrsiu apie callbackus, tiesiog man pasirodė, kad nuo kintamųjų geriau pradėt, nes ką tu veiksi su callbackais, kai nemokesi tokių paprastų dalykų su kintamaisiais...

Nu tai sakyčiau pradėk mokint su callback'ais pvž. Paaiškini ką reiškia OnPlayerConnect callback'as ir tada jau kitoi pamokoi apie pagrindinės funkcijas parodai pvž:

public OnPlayerConnect(playerid)

{

      SendClientMessage(playerid, -1,"Sveiki atvyke"); //(Paaiškini ką padarai)

      SetPlayerPos(playerid, x,y,z); //(Paaiškini ką padarai)

     return 1;

}

 

Nuoroda į komentarą
Dalintis per kitą puslapį

Naudinga pamoka. Tik keli pastebėjimai:

Neparašei, kad visi kintamieji sukuriami naudojant žodelį new. Parodei, kad jie taip sukuriami, bet nepasakei ką reiškia new.

 

Manau reikėjo paminėti, kad kintamajam galima priskirti pradinę reikšmę, kai jį sukuri. pvz: new kintamasis = 2; Tokiu būdų susitaupo vietos.

 

Neparašei nieko apie float. Parašei tik tai, kad toks kintamasis yra, o daugiau apie jį nieko nematau, gal pamiršai, tai papildyk :)

 

Taippat, galima būtų paminėti ir enum.

Nuoroda į komentarą
Dalintis per kitą puslapį

Tiesą sakant, Pawn yra betipė kalba. Yra tik vienas tipas: int. 32 bitų unsigned sveikieji skaičiai. "Float:", "Bool:", "Text3D:" ir kiti yra tag'ai(žymės).

 

Kodėl float veikia, t.y. leidžia rašyti realiuosius skaičus? Dauguma matematinių veiksmų aprašyti float.inc faile kurį includina a_samp.inc. Visos tos funkcijos yra implementuotos native kodu. 

 

 

Su masyvais sukūriamas tekstas.

new zinute[50];
zinute = "0123456789";


Į šį kintamajį galime įdėti 50 simbolių, jei parašysite daugiau, nei 50, jie tiesiog neprisiskirs kintamajam.

50 simbolių neįdėsi. Vėlgi, Pawn yra betipė kalba. Masyvo viduje yra saugomos simbolių ASCII vertės. Bet kažkaip reikia pažymėti kur tekstas baigiasi, tam naudojama NULL reikšmė kuri ASCII turi kodą 0. Į masyvą "zinute" galima sutalpinti 49 simbolius.

Redaguota , nario Bebras
Nuoroda į komentarą
Dalintis per kitą puslapį

Labai dėkingas žinok už pamoką, daryk toliau ir taip aiškiai aprašyk, nes aiškiai viską supratau ir būtų taip toliau gerai :)

 

Nu tai sakyčiau pradėk mokint su callback'ais pvž. Paaiškini ką reiškia OnPlayerConnect callback'as ir tada jau kitoi pamokoi apie pagrindinės funkcijas parodai pvž:
public OnPlayerConnect(playerid)
{
      SendClientMessage(playerid, -1,"Sveiki atvyke"); //(Paaiškini ką padarai)

      SetPlayerPos(playerid, x,y,z); //(Paaiškini ką padarai)
     return 1;
}

 

Šitas protingai sako, kaip pradedantis aš script dabar tai pritariu jam, tikrai padės.

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2735 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...