Jump to content
  • SA:MP
    SA:MP
    Only Launcher

    Owner

    GreenStone Community

[TUTORIAL] Cum faci un dialog?


Recommended Posts

Multi nu stiu sa faca un dialog.Asa ca am facut un mic tutorial 

 

In primul rand trebuie sa avem:

 

Code:

#include <a_samp>

 

#define Dialogulmeu 0 //in loc de 0 puteti pune ce numar vreti(dar sa nu puneti unul folosit la alt dialog)

               // Dialogulmeu este o scurtatura

 

Apoi facem o comanda:

 

Code:

public OnPlayerCommandText(playerid, cmdtext[])

{

  if(strcmp("/dialog", cmdtext, true) == 0)

  {

   ShowPlayerDialog(playerid, Dialogulmeu, DIALOG_STYLE_LIST, "Dialogul meu", "Varianta1\nVarianta2\nVarianta3", "Ok", "Iesire");

   return 1;

  }

  return 0;

}

 

playerid - Cui sa-i arate dialogul

Dialogulmeu - Numarul dialogului(in cazul nostru este 0, asa cum am scris mai sus).Este doar o scurtatura.In loc sa scriem "Dialogulmeu" putem pune direct 0(sau alt numar).

 

DIALOG_STYLE_LIST - Stilul dialogului.Sunt 3 stiluri:

 

Code:

DIALOG_STYLE_MSGBOX - arata doar un mesaj. //ca sa fim rapizi putem scrie direct 0

DIALOG_STYLE_INPUT - arata un mesaj si poti scrie ceva. //ca sa fim rapizi putem scrie direct 1

DIALOG_STYLE_LIST - este o lista de unde alegi ce vrei. //ca sa fim rapizi putem scrie direct 2

 

Dialogul meu - Este titlul dialogului

Varianta1\nVarianta2\nVarianta3 - Sunt variantele pe care le putem alege.

 

\n inseamna un rand nou.Daca nu puneam \n variantele nu erau una sub alta.Daca vrem sa lasam un mic spatiu(sa scriem ceva pe acelasi rand dar un pic mai la dreapta) punem \t

 

Ok - Este primul buton.

Iesire - Este al 2-lea buton.

 

Acum trebuie sa adaugam:

 

Code:

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

{

  if(response)//daca apasam pe primul buton, adica Ok

  {

   if(listitem == 0)//daca dam click pe prima varianta, in cazul nostru Varianta1

   {

     SendClientMessage(playerid, 0x21DD00FF, "Ai selectat varianta 1");//asta se intampla cand selectam Varianta1

   }

   if(listitem == 1)//daca dam click pe a 2-a varianta, adica Varianta2

   {

     SendClientMessage(playerid, 0x21DD00FF, "Ai selectat varianta 2");

   }

   if(listitem == 2)//daca dam click pe a 3-a varianta, adica Varianta3

   {

     SendClientMessage(playerid, 0x21DD00FF, "Ai selectat varianta 3");

   }

  }

  else//daca dam click pe al 2-lea buton, adica Iesire

  {

    SendClientMessage(playerid, 0x21DD00FF, "Ai apasat pe butonul Iesire");

  }

  return 1;

}

 

 

Cum punem intr-un dialog foarte multe cuvinte fara sa ne dea eroare ca e linia prea lunga?(LaZ m-a invatat :P)

 

Sus dupa #include <a_samp> punem:

 

Code:

#define Dialogulmeu 0

 

new string[] = "Ai scriem ceva lung.\nEtc...",

   string2[] = "Scriem si aici ceva lung.",

   string3[] = "Si mai scriem si aici ceva."; // in loc de string, string2,etc punem ce nume vrem.Putem pune cate stringuri vrem.

 

Apoi comanda:

 

Code:

public OnPlayerCommandText(playerid, cmdtext[])

{

  if(strcmp("/dialog", cmdtext, true) == 0)

  {

   new DialogString[512];//512 e numarul de caracterele care va aparea.Daca aveti peste 512 caractere(litere) puneti un numar mai mare de 512

   format(DialogString, sizeof DialogString, "%s%s%s", string, string2, string3 );//cate stringuri avem atatea %s punem

   ShowPlayerDialog(playerid, Dialogulmeu, DIALOG_STYLE_MSGBOX, "Titlul dialogului", DialogString, "Ok", "Iesire" );

   return 1;

  }

  return 0;

}

 

 

Tutorial realizat de catre Thunder.1337  // A mai fost postat si pe www.sa-mp.com

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...