Peršokti į turinį

[PAMOKA] Checkpoint'ų kūrimas su "enum'ais"


- Edvisz

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

veiki, matau, kad daugelis skundžiasi, kad nežino kaip padaryti normaliai veikiančius checkpoint'us ir taip kuriasi labai daug temų, todėl sukursiu pamoką, kaip kurti chechpoint'us su enum'ais. Šis būdas patikrintas ir jis tikrai veikiantis.

Su enum'ais galima sukurti daug dalykų, tačiau aš jų visų neaiškinsiu, nes galite pasižiūrėti wikyje.

Naudojamos funkcijos:

enums,

SetPlayerCheckpoint,

1 PUNKTAS

enum Pavyzdys

{

VMCP

}

Na, o dabar paaiškinsiu ką mes čia padarėme.

Sukūrėme enum'ą su pavadinimu "Pavyzdys", jį galite persivadinti kaip tik norite.

Enum'o eiliškumas:

enum Pavyzdys

{

Po štai šita vieta, kaip matote parašiau VMCP ir viskas. Jeigu norėsite pridėti daugiau funkcijų, turėsite atskirti visas kableliais [,]. Tai pvz:

enum Pavyzdys

{

MOTOCP,

VMCP

}

Paskutinė funkcija VISADA turi būti palikta be kablelio!

_____________________________________________

Dabar po mūsų sukurtu enum'u sukuriame kintamąjį:

new CP[MAX_PLAYERS][Pavyzdys];

Manau čia viskas aišku.

Vietoj šitos vietos įrašote savo sukurto enum'o pavadinimą, mano atveju tai bus "Pavyzdys".

2PUNKTAS

Dabar pradėsime kurti Chechpoint'us. Aš kursiu Vairavimo Mokyklos chechpoint'us.

Po OnPlayerEnterVehicle callbac'u sukuriu štai tokią eilutes:

new model = GetVehicleModel(vehicleid);

if(model == 589)

{

CP[playerid][VMCP] = 1;

SetPlayerCheckpoint(playerid,X,Y,Z,4);

return 1;

}

new model = GetVehicleModel(vehicleid);

Uždefin'u "model" funkciją, kad vėliau nemestų eror'ų.

if(model == 589)

Nustato ar modelio ID = 589 (Čia įrašysite savo transporto ID)

CP[playerid][VMCP] = 1;

Priskiriame žaidėjui teigiamą kintamąjį. Mano atveju iš enum'o VMCP bus priskirtas žaidėjui.

SetPlayerCheckpoint(playerid,X,Y,Z,4);

Nustatome Checkpointą(playerid, X,Y,Z koordinatės, Checkpoint'o dydis).

3 PUNKTAS

Dabar aktyvuosime Chechpoint'ą. Po OnPlayerEnterCheckpoint callback'u:

//VM

if(CP[playerid][VMCP] == 1){

CP[playerid][VMCP] = 2;

SetPlayerCheckpoint(playerid,X,Y,Z,4);

return 1;}

if(CP[playerid][VMCP] == 2){

VMteises[playerid]=true;

SendClientMessage(playerid,COLOR,"Islaiktete Vairavimo Egzamina");

return 1;}

if(CP[playerid][VMCP] == 1){

Jeigu žaidėjas atvažiavo į mūsų pirmąjį nustatytą kintamąjį, tai atliekam funkciją:

CP[playerid][VMCP] = 2;

SetPlayerCheckpoint(playerid,X,Y,Z,4);

Mano atveju nustatome dar vieną kintamąjį ir sukuriame kitą Checkpoint'ą.

if(CP[playerid][VMCP] == 2){

Jeigu žaidėjas atvažiavo į antrąjį mano nustatytą Checkpointą, atliekam funkciją:

VMteises[playerid]=true;

SendClientMessage(playerid,COLOR,"Islaiktete Vairavimo Egzamina");

Mano atveju duodame teises. (Teisių kintamąjį pasidarysite pagal save).

4PUNKTAS

Šiame punkte padarysime, kad žaidėjui, išlipusiam iš transporto dingtų mūsų sukurtas VM Checkpoint'as.

Po OnPlayerStateChange callback'u dedame:

if(newstate == PLAYER_STATE_ONFOOT)

{

CP[playerid][VMCP] = 0;

if(CP[playerid][VMCP] != 0){

CP[playerid][VMCP] = 0;

DisablePlayerCheckpoint(playerid);

return 1;}

return 1;

}

if(newstate == PLAYER_STATE_ONFOOT)

Jeigu žaidėjo naujoji vieta ant kojų, tai atliekame funkciją:

CP[playerid][VMCP] = 0;

if(CP[playerid][VMCP] != 0){

CP[playerid][VMCP] = 0;

DisablePlayerCheckpoint(playerid);

Mano atveju panaikinam žaidėjui kintamąjį "CP" ir panaikinam sukurtą Checkpointą.

Tai tiek šį kartą, tikiuosi, kad pamoka buvo aiški ir pilnai suprantama. Jeigu kyla klausimų ar pastebėjote klaidų, rašykite šioje temoje. Ačiū už dėmesį.

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 savaičių...

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