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

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

Sveik.

Taigi pamokysiu kaip daryti gui letelias.

Jų yra 3 tipai 

DIALOG_STYLE_MSGBOX====tai paprastas gui langas kuriame jums rodys tik tekstą.

DIALOG_STYLE_INPUT====tai gui langas su teksto įvedimo laukeliu.

DIALOG_STYLE_LIST====tai gun langas su pasirinkimu.

Paprastas gui langas.

Taigi aš šįkart paprastą gui langą panaudosiu iškart žaidėjui prisijungus.
šis gui langas paklaus ar sutinka su taisyklėmis.

Taigi po 
public OnPlayerConnect(playerid)
{

dedame 

public OnPlayerConnect(playerid)
{
   ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Serverio taisyklės","Nesukčiauk ir būsi nenubaustas!","Sutinku","Nesutinku");
   return 1;
}

Dabar reikia parašyti funkciją kuri suveiks kai žaidėjas ką nors pasirinks.

Po 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{

Dedame

if(dialogid == 0) //Jūsų prieš tai sukurto dialog id
   {
       if(!response) //Jei paspaudė mygtuką "Nesutinku"
       {
           Kick(playerid);
       }
       return 1;
   }
   return 0;
}

ši funkcija išmes žaidėja iš serverio jeigu jis nesutiko su taisyklėmis.

Taigi paprastą gui langą jau mokame padaryti.

Dabar imsimės gui lango su ivedimo laukeliu.

Taigi dabar vėl ta patį darysiu prisijungimu.

Taigi po 
public OnPlayerConnect(playerid)
{

Dedame

 ShowPlayerDialog(playerid,0,DIALOG_STYLE_INPUT,"Serverio taisyklės","Nesukčiauk ir būsi nenubaustas!","Sutinku","Nesutinku");
   return 1;
}

Dabar vėl reikia padaryti funkcija, kad šis dialog'as veiktų.

Taigo po
public OnPlayerDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{

Dedame

 if(dialogid == 0) //Prieš tai sukurto dialog id.
   {
       if(response) //Jei paspaudė mygtuką "Sutinku"
       {
           new string[128]; //Sukuriame string'ą
           format(string, 128, "Tu įvedei: %s", inputtext); //Formatuojame string'ą
           SendClientMessage(playerid, GREEN, string); //Nusiunčiame string'ą žinutės pavidalu. Vietoj to string galima idėti savo tekstą
       }
       return 1;
   }
   return 0;
}

Na va DIALOG_STYLE_INPUT pabaigtas.

Na va liko paskutinis ir tikriausiai visų mėgstamiausias DIALOG_STYLE_LIST

Dabar pradėsime, vėl darysiu tą pačią funkcija kaip ir prieš tai.

Bet pradžiai biškį teorijos.

/n reiškia naują eilutę

pvz:ShowPlayerDialog(playerid,0,"Ginklai","Pistoletai/nAutomatai/nGranatos","Rinktis","išeiti");

na va paaiškinau pradėkime.

Po 
public OnPlayerConnect(playerid)
{

Dedame

ShowPlayerDialog(playerid,0,DIALOG_STYLE_LIST,"Serverio taisyklės","Nesukčiausiu\nSukčiausiu","Rinktis","Atgal");
   return 1;
}

Dabar reikia padaryti, kad viskas veiktų(funkcijas).

Po 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{

Dedame

if(dialogid == 0) //Jūsų prieš tai sukurto dialog id.
   {
       if(response) //Jei paspaudė mygtuką "Sutinku"
       {
           if(listitem == 0) //Jei pirmas pasirinkimas
           {
               SendClientMessage(playerid, GREEN, "Gero žaidimo!" );
           }
           else if(listitem == 1) //Jei antras pasirinkimas
           {
               Kick(playerid);
           }
       }
       return 1;
   }
   return 0;
}

Na štai. Jeigu žaidėjas pasirinks sukčiauti, jis bus išmestas iš serverio.

Tikiuosi supratote.

Jei kas nepavyksta rašykite šitoje temoje.

Jei padėjau nepagailėkite +rep

banner9.gif

Paspausk ir užsidirbk.

:)

Tavo pamoka tinka tik MSGBOX... O LIST'ui netiks jei zmogus nores padaryti papildomu funkciju... :angry:

Pvz:

if(strcmp(cmdtext, "/opn", true)==0)
  {
ShowPlayerDialog(playerid, 10420,DIALOG_STYLE_LIST,"Atidaryti\nUzdaryti","Rinktis","Atgal");
return 1;
  }

Dabar pagal tavo pamoka butu tik uzrasai o kur efektas paspaudus ant "Atidaryti" ?

asd1.gif

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