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

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4855 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!

Recommended Posts

(redaguota)

Taigi turiu apie 30pamokų kurios tinka naujokamas (kurtos ne mano) taigi su laiku vis po kelias įdėsiu. Gal pirmosios ir neįdomios bus, na bet gal naujokams prireiks.

Callbackų bendri paaiškinimai.

Callback‘as – kas tai yra ?

Callback‘as - tai vieta po kuria reikia rašyti bet kokias funkcijas.

Tačiau, yra daugėlis callbackų, ir jų paskirtys skiriasi.

Pvz.:

public OnPlayerCommandText

Šiame callbacke galima rašyti, kurti tik komandas žaidėjo, admino, vipo, kažkokio darbuotojo, ar dar kažkokios kitos paskirties žaidėjo.

Taipogi, tikrinimai ar žaidėjas turi pakankamai pinigų, ar žaidėjas yra mašinoje, ar žaidėjas yra ieškomas galimi yra visuose callbackuose.

Tačiau negalima sumaišyti callbackų paskirčių.

Komandas rašyti galima tik po šiuo callbacku.

Kitas callbackas pvz. Būtų :

 public OnPlayerConnect

Šis callbackas yra skirtas tam, kad kai žaidėjas tik prisijungia prie serverio.

Tarkim reikia kad pirmiausia prisijungtų žaidėjas arba užsiregistruotų, tam kad galėtų žaisti ir naudotis visomis komandomis skirtomis jo privilegijoms.

Tai rašyti reikėtų :

public OnPlayerConnect(playerid)

ShowPlayerDialog(playerid,dialogid,DIALOG_STYLE_PASSWORD,“Prisijunk“,“Turi prisijungti arba užsiregistruoti“,“Patvirtinti“,“Išeiti“);

Štai išmes kai tik jungsites į serverį GUI langą, ir prašys, kad prisijungtum arba užsiregistruotum.

Apie GUI savybes dabar neaiškinsiu apie jas aiškinęs esu 4-oje pamokoje.

Kitas pavyzdys su callbacku pvz public OnPlayerDeath

Šis callbackas funkcionuoja tik tada, kai žaidėjas miršta.

Dabar pavyzdys:

public OnPlayerDeath
{
SendClientMessage(playerid,RAUDONA,“Tu numirei, už tai tavo spalva pasikeičia į raudoną spalvą.“);
SetPlayerColor(playerid,RAUDONA);

Štai, ir pasikeis žaidėjo spalva į raudoną.

Iš pradžių informuojame, apie paruoštą veiksmą, o po informavimo atliekame veiksmą.

2 pamoka

Stockų kurimas, paskirtis, greitesnis naudojimas.

Kas yra stockas ?

Stockas, tai panašus dalykas kaip ir callbackas, tačiau, stockas yra labai pravartus dalykas norint pakartoti tą patį veiksmą daugelį kartų.

O stocke surašytos funkcijos visos, gali būti naudojamos daug kartų, ir daug kuriose vietose.

Iš pradžių: Kurimas stocko -

stock Stocko_Pavadinimas(playerid)
{
funkcijos atliekamos
}

Stockai nerašomi callbackuose. Jei callbackuose sukursi stocką, tai tą stocką galėsi naudot tik tam callbacke.

Jei nori, kad galėtum naudot stocką visame gamemode, rašyk arba po visais callbackais, arba prieš visus callbackus.

* Stocko pavadinime negali būti tarpų. Visada pavadinime turi būti jungiamasis ženklas, jeigu pavadinimą darai iš dviejų ar daugiau žodžių.

* (playerid) šiuose skliaustuose rašoma tada, kai stockas bus naudojamas žaidėjui. Pvz.: saugot žaidėjo informaciją, arba baninti žaidėją.

* (vehicleid) šiuose skliaustuose rašoma vehicleid todėl, nes stocas su tokiais skliaustais arba kitaip sakant parametru, pritaikomas ir galimas naudoti tik mašinoms. Pvz.: Išsaugot mašinas, nudažyt mašinas, ar sprogdint mašinų padangas

* () tušti skliaustai paliekami tada, kai stockas naudojamas serveriui.

Tarkim norint serveryje pakeisti laiką, orą ar išjungti serverį.

  • taipogi, visada stock žodis turi prasidėti mažąja raide.
  • Po pavadinimo, parametro stocko, kitoje eilutėje turi,
    atidaryt galimas f-jas su tokiu skliaustu {
  • Kai parašai visas f-jas, turi uždaryti stocką su } skliaustu.
    Jokiu būdu negalima rašyti stocke return 1; užbaigimo f-jos.

Dabar parodysiu pavyzdį:

stock Apdovanojimas(playerid)
- atidarome.

GivePlayerScore(playerid,500);- Duodam žaidėjui 500 XP.
GivePlayerMoney(playerid,5000); - Duodam žaidėjui 5000 LT.[/b]
SetPlayerSkin(playerid,200); - Nustatom žaidėjo 200 skiną pagal ID.
SendClientMessage(playerid,ZALIA,“Sveikinu, tu buvai apdovanotas“); - Pranešame už ką gavo.
– uždarome.

Naudojimas stocko yra paprastas.

Pvz kaip esu sukūręs stocką Apdovanojimas, tai bet kur galiu panaudot šitą.

Pvz.:

public OnPlayerUpdate(playerid) – Kai žaidėjas atlieka veiksmą bet kokį.

if(GetPlayerScore(playerid) > 50) – Jei žaidėjas turi 50 XP ar daugiau, tai naudojame stocką.

Apdovanojimas(playerid);[/i] - Stocko pavadinimas, ir nurodymas kam pritaikomas.
return 1; - f-jos uždarymas.


3 pamoka

Forward‘ų, define‘ų naudojimas.

Forwardai, tai reikalingi tam, kai sukuri naują callbacką, pvz.:

public Callbackas(playerid)
{
čia kažkokios f-jos
return 1;
}

Tai tikrinant ar nėra klaidų, jums išmes klaidą, kad trūksta forwardo šiam callbackui.

Tai tada kur nors viršui pačiam gamemodo, parašyti reikia :

forward Callbackas(playerid);

* forward žodis prasideda iš mažosios raidės, visada.

Stockams forwardų nereikia, su jais yra paprasčiau, nei su callbackais.

O tiek callbackų, tiek stockų atliekami veiksmai yra tokie patys.

Define‘ų naudojimai :

Kas yra define ?

Tai tokia funkcija, kurios dėka galima vieną parašytą žodį parametre, atlikti tam tikrą funkciją.

Tarkim spalvą :

#define RAUDONA 0xFF5588

tada rašai :

SendClientMessage(playerid,RAUDONA,“...“);

Ir teksto spalva bus raudona.

Kadangi, kai GUI dialogus kursi, tai reikės visą laiką keist GUI ID skaičius.

Kartais būna taip, kad pasimeti skaičiuose, ir su jais nepatogu.

Galimas kitas variantas.

#define PRISIJUNGIMO_GUI (1)

Štai, specialiai uždefininom GUI Dialogui id’ą.

Naudojimas būtų toks :

ShowPlayerDialog(playerid,PRISIJUNGIMO_GUI,…..);

Ir nereikės toi vietoj rašyti 1,2,3 ir t.t.

Tokiu atvėju ir išvengsi skaičių ID bugų, kad kartais įrašai net ą skaičių ir pradeda bugintis sistemos.

Kaip viršui pavyzdys yra PISIJUNGIMO_GUI (1), tai kam tas 1 reikalingas ?

Tam, kad sunumeruoti defines. Jeigu reikėtų atsirinkti tau kuris yra kuris, pagal numeraciją greičiau atsirinksi, ir išvengsi sisteminių bugų ar nesusipratimų, kurie dažnai įvyksta editinant kokius nors gamemodus.

Pvz.: GRP 4 ar kažkokius panašius.

Nori gauti visas pamokas iškarto ? Užmesk +R3P pakviesk mane į skype: TLSG-sa ir turėsi visas pamokas :)

Redaguota , nario elidijus
163b02b8612930f38507da70d5a5cbc8917.png

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4855 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!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

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

Skelbimai


×
×
  • Sukurti naują...