Jump to content

[Tutorial] Cum creezi un DIALOG


AlexGX

Recommended Posts

In primul rand incepem cu definirea dialogului + include
#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

Facem o comanda random 

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 6 stiluri ,eu v-am pus doar 3

Pentru  a le vedea pe toate click aici : http://wiki.sa-mp.com/wiki/Dialog_Styles

 

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:

 

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:

 

#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.
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;
}

Sper ca v-am fost de folos :D

Edited by AlexGX
  • Upvote 1
Link to comment
Share on other sites

La 28.12.2017 la 12:03, AlexGX a spus:

In primul rand incepem cu definirea dialogului + include

#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

Facem o comanda random 


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:

 


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:

 


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:

 


#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.

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;
}

Sper ca v-am fost de folos :D

1. Sunt 6 tipuri(stiluri) de dialoguri nu 3 

Ai omis: DIALOG_STYLE_PASSWORD( cu id 3) Are aceeasi functie ca stilul cu id 1 doar ca afiseaza niste buline in loc de ce scrie jucatorul

DIALOG_STYLE_TABLIST(ID 4) Are aceasi functie ca stilul cu id 2 doar ca poti organiza dialogul pe maxim 4 coloane.

 

DIALOG_STYLE_TABLIST_HEADERS(ID 5)

Aceasi functie ca stilurile 2 si 4  doar ca se mai poage adauga un header care nu este selectabil. Sper ca m am facut inteles daca nu informatiile necesare le gasiti :

http://wiki.sa-mp.com/wiki/Dialog_Styles

Link to comment
Share on other sites

Just now, valivaly96 said:

1. Sunt 6 tipuri(stiluri) de dialoguri nu 3 

Ai omis: DIALOG_STYLE_PASSWORD( cu id 3) Are aceeasi functie ca stilul cu id 1 doar ca afiseaza niste buline in loc de ce scrie jucatorul

DIALOG_STYLE_TABLIST(ID 4) Are aceasi functie ca stilul cu id 2 doar ca poti organiza dialogul pe maxim 4 coloane.

 

DIALOG_STYLE_TABLIST_HEADERS(ID 5)

Aceasi functie ca stilurile 2 si 4  doar ca se mai poage adauga un header care nu este selectabil. Sper ca m am facut inteles daca nu informatiile necesare le gasiti :

http://wiki.sa-mp.com/wiki/Dialog_Styles

Eu le-am pus pe astea 3 pentru  ca le folosesc in gamemode-ul meu.

Era simplu sa caute si ei pe wiki.sa-mp.com , parerea mea.

Edited by AlexGX
Link to comment
Share on other sites

Acum 4 ore, AlexGX a spus:

Eu le-am pus pe astea 3 pentru  ca le folosesc in gamemode-ul meu.

Era simplu sa caute si ei pe wiki.sa-mp.com , parerea mea.

daca faci un tutorial despre crearea unui dialog normal e sa acoperi toate cele 6 cazuri ca altfel puteau sa caute direct pe wiki nu mai aveau nevoie de tutorial

Link to comment
Share on other sites

10 hours ago, valivaly96 said:

daca faci un tutorial despre crearea unui dialog normal e sa acoperi toate cele 6 cazuri ca altfel puteau sa caute direct pe wiki nu mai aveau nevoie de tutorial

Stiu dar macar am incercat, altceva?

Edited by AlexGX
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.