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

Vartu kurimas.


teror

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

Sveiki taigi galais negalais išmokau kurti vartus su komandomis taigi galime pradėti:

1.Visų pirma mes turime gauti koordinates kur stovės vartai.

2.Tarkime kad turime koordinates... Toliau prasidės programavimas.

3.Atsidarome savo modą, ir jo viršuje įrašome includę a_objects.inc:

#include 

4.Poto einam į 'public OnPlayerCommandText(playerid, cmdtext[])' callback'ą ir rašom šias eilutes.

if(strcmp(cmd, "/vartai", true) == 0) {    // jai žmogus rašo komandą '/vartai' vygdom toliau
     new veiksmas[256];             // susikuriam kintamąjį papildomiems žodžiams gauti (close/open)
     veiksmas = strtok(cmdtext, idx); // sukurtam kintamąjam priskiriam papilodmą žodį

     if(!strlen(veiksmas)) {  // jai papildomas žodis parašytas blogai rašom teisingą komandos pavizdį
          SendClientMessage(playerid, COLOR_WHITE, "Bot: /vartai [open/close]");
          return 1;
       }

       if(IsPlayerInRangeOfPoint(playerid, 3, [kordinates x,y,z vartu valdymo vieta])) // jai žmogus vartų valdymo vietoj vygdom toliau
       {

             if(strcmp(veiksmas,"open",true) == 0)  // jai papildomas žodis 'open' vygdom toliau
             {

                   MoveObject(1, [x,y,z kordinates atsidariusiu vartu], 2); // kadangi papildomas žodis 'open' tai objektą stumiam į atsidariusių vartų koordinatę
             }

             else if(strcmp(veiksmas,"close",true) == 0) // jai papildomas žodis 'close' vygdom toliau
             {

                   MoveObject(1, [x,y,z kordinates uzdarytu vartu], 2); // kadangi papildomas žodis 'close' stumiam vartus į uždarytų vartų kordinatę.

             }
       }
       else // jai žmogus ne vartų valdymo koordinatėje rašo šią komanda vygdom sekančią eilutę
       {
             GameTextForPlayer(playerid, "~r~Vartus valdyti galima tik vartu valdymo vietoj",5000,1); // Parašome perspėjima kad ši komanda veikia tik vartų valdymo vietoje
       }
       return 1;
}

5.Viskas lyg ir padaryta, tik viena smulkmena, mums dar reikia susikurti vartų objektą.

6.Tai padarysime

'public OnGameModeInit()' callback'e

parašę tokią komandą:

CreateObject(objecto_modelis, [x,y,z uzdarytų vartu kordinates],[x,y,z rotation kordinates]);

objecto_modelis >>> Objecto modelid kuriuos rasite wiki sa-mp puslapyje.

x,y,z kordinatės >>> tai pirmi 3 float tipo skaičiai (per kablelį) gavus pilnas objecto koordinates.

x,y,z rotation >>> tai sekantys 3 float tipo skaičiai gavus pilnas objecto koordinates.

Jai kam padėjau negailėk +r3p :)

Nuoroda į komentarą
Dalintis per kitą puslapį

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