Jump to content
  • 0

Ajutor Dialog


CriatixX

Question

Problema intalnita (descriere): Am incercat sa fac un dialog cu comanda /help sa fie din dialog lista si apoi msgbox, dar apare doar lista apoi nu functioneaza OnDialogResponse, nu apare celalalt dialog dupa ce selectez ceva din lista.
Ero(area / rile) / warning-(ul / urile): Nu imi da nici o eroare
Liniile de cod / sursa / script-ul(obligatoriu):
Imagini / Video (optional):
Ati incercat sa rezolvati singur?: Da, mai am dialog-uri in server si merg, dar nu le-am facut eu, daca puteti spuneti-mi exact cum fac un dialog cu comanda /help (doar 1-2 comenzi sau text ceva sa inteleg) din lista si msgbox.

Link to comment
Share on other sites

22 answers to this question

Recommended Posts

  • 0

​Nu merge :))

​Imposibil, poate nu ai pus tu cum trebuia, in fine, iti dau alta solutie. Revin in 2 sec cu edit.

Am revenit:

//=====================================//
#include                     <a_samp>
#include                     <zcmd>
//=====================================//
#define        DIALOG_HELP0  0
#define        DIALOG_HELP   1
#define        DIALOG_HELP1  2
#define        DIALOG_HELP2  3
//=====================================//

public OnFilterScriptInit()
{
   
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_HELP0)
    {
        ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_LIST, "Help", "Varianta1\nVarianta2\nVarianta3", "Ok", "Exit");
    }
    if(dialogid == DIALOG_HELP)
    {
        ShowPlayerDialog(playerid, DIALOG_HELP1, DIALOG_STYLE_LIST, "Help", "Test1\nTEST2\nTest3", "Ok", "Exit");
    }
    if(dialogid == DIALOG_HELP1)
    {
        ShowPlayerDialog(playerid, DIALOG_HELP2, DIALOG_STYLE_LIST, "Help", "Dialog\nDialog1\nDialog3", "Ok", "Exit");
    }
    if(dialogid == DIALOG_HELP2)
    {
        //Continuare...
    }
    return 1;
}


CMD:he(playerid, params[])
{
    ShowPlayerDialog(playerid, DIALOG_HELP0, DIALOG_STYLE_LIST, "Help", "TEST1\nTest2\nTest3", "Select", "Exit");
    return 1;
}

 

Edited by KnowN

242086.png

Link to comment
Share on other sites

  • 0

//=====================================//
#include                     <a_samp>
#include                     <zcmd>
//=====================================//
#define        DIALOG_HELP   01
#define        DIALOG_HELP1   02
#define        DIALOG_HELP2   03
//=====================================//

public OnFilterScriptInit()
{
   
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(response)
  {
   if(listitem == 0)
   {
    ShowPlayerDialog(playerid, 01, DIALOG_STYLE_MSGBOX, "Help", "Varianta1\nVarianta2\nVarianta3", "Ok", "Exit");
   }
   if(listitem == 1)
   {
     ShowPlayerDialog(playerid, 02, DIALOG_STYLE_MSGBOX, "Help", "Test1\nTEST2\nTest3", "Ok", "Exit");
   }
   if(listitem == 2)
   {
     ShowPlayerDialog(playerid, 03, DIALOG_STYLE_MSGBOX, "Help", "Dialog\nDialog1\nDialog3", "Ok", "Exit");
   }
  }
  else
  {
    SendClientMessage(playerid, 0x21DD00FF, "Ai apasat pe butonul Iesire");
  }
  return 1;
}

CMD:he(playerid, params[])
{
    ShowPlayerDialog(playerid, 01, DIALOG_STYLE_LIST, "Help", "TEST1\nTest2\nTest3", "Select", "Exit");
    return 1;
}

 

Edited by CriatixX
Adaugat codul intre tag-urile [code].
Link to comment
Share on other sites

  • 0

Mai intai modifica la ShowPlayerDialog parametrul numarul 2 in DIALOG_HELP, de ce? Pentru ca tu ai pus ID-ul dialogului 0, iar daca tu modifici numarul retinut in DIALOG_HELP n-o sa-ti mai mearga.

Acum la OnDialogResponse ai aceasta verificare

if(response)
{
    switch(listitem)
    {
                 
    }
}

care este bine, numai ca in acel switch trebuie sa ai si cazurile, adica

switch(listitem)
{
        case 0: // Pentru comanda /stats
        {
            // Afisezi / executi ce vrei tu.
        }
        case 1: // Pentru comanda /buylevel
        {
            // Afisezi / executi ce vrei tu.
        }
}

pui atatea cazuri cate comenzi ai in lista ta.

P.S: Te rog adauga codul folosind BBCod-ul special pentru asta!

Link to comment
Share on other sites

  • 0

@CriatixX facusei bine inainte, de ce ai editat?

​Nu stiu.... am incercat asa dar  nu inteleg de ce nu merge ........

//=====================================//
#include                     <a_samp>
#include                     <zcmd>
//=====================================//
#define        DIALOG_HELP0  0
#define        DIALOG_HELP   1
#define        DIALOG_HELP1  2
#define        DIALOG_HELP2  3
//=====================================//

public OnFilterScriptInit()
{
   
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(response)
  {
	switch(listitem)
	{
		case 0:
		{
			ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_MSGBOX, "Help", "Varianta1\nVarianta2\nVarianta3", "Ok", "Exit");
		}
		case 1:
		{
			ShowPlayerDialog(playerid, DIALOG_HELP1, DIALOG_STYLE_MSGBOX, "Help", "Test1\nTEST2\nTest3", "Ok", "Exit");
		}
		case 2:
		{
			ShowPlayerDialog(playerid, DIALOG_HELP2, DIALOG_STYLE_MSGBOX, "Help", "Dialog\nDialog1\nDialog3", "Ok", "Exit");
		}
	}
		return 1;
	
	
   }
}


CMD:he(playerid, params[])
{
    ShowPlayerDialog(playerid, DIALOG_HELP0, DIALOG_STYLE_LIST, "Help", "TEST1\nTest2\nTest3", "Select", "Exit");
    return 1;
}

 

 

Link to comment
Share on other sites

  • 0
//=====================================//
#include                     <a_samp>
#include                     <zcmd>
//=====================================//
#define        DIALOG_HELP     2012
//=====================================//

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print(" Radio Filterscript v1.0 loaded!");
    print("--------------------------------------\n");
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_HELP)
    {
        if(response)
        {
            switch(listitem)
            {
                 
            }
           }
        return 1;
    }
     return 0;
}

CMD:he(playerid, params[])
{
    new long_string[1486];
        strcat(long_string, "{FF0000}General{0080C0}\n/stats - Vezi detaliile despre contul tau\n/buylevel - Cumperi un nivel\n/leaders - Vezi toti liderii conectati pe server\n/helpers - Vezi toti helperii conectati\n/admins - Vezi toti adminii conectati\n/skill - Vezi ce skill-uri ai la job-uri\n/pay - Dai bani unui jucator\n/charity - Donezi bani primariei\n/time - Vezi ora exacta\n/buy - Cumperi ceva dintr-un 24/7\n/id - Vezi cateva detalii despr");
        strcat(long_string, "e un player\n/drink - Bei o bautura dintr-un bar\n/showlicenses - Arati cuiva licentele\n/givekey - Imprumuti cheia masinii tale cuiva\n/rob - Jefuiesti banca\n/ticketlist - \n/heal - Iei viata\n/info - Vezi detaliile despre server\n/coin - Arunci o moneda in aer\n/buygun - Cumperi o arma din GunShop\n/licenses - Vezi ce licente ai\n/lotto - Te inscrii cu un numar la lotto\n/contract - Ceri asasin");
        strcat(long_string, "area unui player\n/factions - Vezi toate factiuniile de pe server\n/jobs - Vezi lista cu toate job-urile\n/rentcar - Inchiriezi o masina\n/unrentvehicle - Renunti la vehiculul inchiriat\n/w - Ii soptesti cuiva ceva la ureche\n/s - Strigi tare\n/sms - Trimiti cuiva un sms\n/n - Vorbesti pe un chat cu toti playerii de pe server\n/b - Vorbesti pe o raza mai mare\n/ad - Publici un anunt la CNN\n/mutet");
        strcat(long_string, "ime - Vezi cat timp mai ai mute\n/nmutetime - Vezi cat timp mai ai mute pe chat-ul /n\n/togwhisper - Nimeni nu mai poate sa iti sopteasca ceva\n/togphone - Inchizi telefonul\n/tognewbie - Inchizi chat-ul /n\n/bankhelp - Vezi comenziile banci\n/animlist - Vezi lista cu toate anim-urile");
        ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Help", long_string, "NextPage", "Exit");
        return 1;
}

Asa aveai inainte sa dai edit.

Link to comment
Share on other sites

  • 0
//=====================================//
#include                     <a_samp>
#include                     <zcmd>
//=====================================//
#define        DIALOG_HELP     2012
//=====================================//

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print(" Radio Filterscript v1.0 loaded!");
    print("--------------------------------------\n");
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_HELP)
    {
        if(response)
        {
            switch(listitem)
            {
                 
            }
           }
        return 1;
    }
     return 0;
}

CMD:he(playerid, params[])
{
    new long_string[1486];
        strcat(long_string, "{FF0000}General{0080C0}\n/stats - Vezi detaliile despre contul tau\n/buylevel - Cumperi un nivel\n/leaders - Vezi toti liderii conectati pe server\n/helpers - Vezi toti helperii conectati\n/admins - Vezi toti adminii conectati\n/skill - Vezi ce skill-uri ai la job-uri\n/pay - Dai bani unui jucator\n/charity - Donezi bani primariei\n/time - Vezi ora exacta\n/buy - Cumperi ceva dintr-un 24/7\n/id - Vezi cateva detalii despr");
        strcat(long_string, "e un player\n/drink - Bei o bautura dintr-un bar\n/showlicenses - Arati cuiva licentele\n/givekey - Imprumuti cheia masinii tale cuiva\n/rob - Jefuiesti banca\n/ticketlist - \n/heal - Iei viata\n/info - Vezi detaliile despre server\n/coin - Arunci o moneda in aer\n/buygun - Cumperi o arma din GunShop\n/licenses - Vezi ce licente ai\n/lotto - Te inscrii cu un numar la lotto\n/contract - Ceri asasin");
        strcat(long_string, "area unui player\n/factions - Vezi toate factiuniile de pe server\n/jobs - Vezi lista cu toate job-urile\n/rentcar - Inchiriezi o masina\n/unrentvehicle - Renunti la vehiculul inchiriat\n/w - Ii soptesti cuiva ceva la ureche\n/s - Strigi tare\n/sms - Trimiti cuiva un sms\n/n - Vorbesti pe un chat cu toti playerii de pe server\n/b - Vorbesti pe o raza mai mare\n/ad - Publici un anunt la CNN\n/mutet");
        strcat(long_string, "ime - Vezi cat timp mai ai mute\n/nmutetime - Vezi cat timp mai ai mute pe chat-ul /n\n/togwhisper - Nimeni nu mai poate sa iti sopteasca ceva\n/togphone - Inchizi telefonul\n/tognewbie - Inchizi chat-ul /n\n/bankhelp - Vezi comenziile banci\n/animlist - Vezi lista cu toate anim-urile");
        ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Help", long_string, "NextPage", "Exit");
        return 1;
}

Asa aveai inainte sa dai edit.

​Da dar asta nu este si din list si din msgbox cum vroiam pe categorii. la asta nu stiu cum sa fac Next Page daca tot l-am facut. . Nu inteleg de ce nu merge celalalalt.

Edited by CriatixX
Link to comment
Share on other sites

  • 0

Ah, scuze. Am inteles gresit.

 

Trebuie sa ai asa:

if(dialogid == DIALOG_HELP) // ID-ul dialogului.
{
    if(response) // Inseamna ca da pe "Next page".
    {
        // Aici afisezi urmatorul dialog (pagina) cum faci la comanda /he.
    }
    else // Aici inchizi daca nu ai pagina precedenta. Nu iti mai trebuie acest "else" daca nu ai pagina precedenta.
     {
        
    }
}

 

Link to comment
Share on other sites

  • 0
//=====================================//
#include                     <a_samp>
#include                     <zcmd>
//=====================================//
#define        DIALOG_HELP0  0
#define        DIALOG_HELP   1
#define        DIALOG_HELP1  2
#define        DIALOG_HELP2  3
//=====================================//

public OnFilterScriptInit()
{
   
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   switch(dialogid)
   {
	    case DIALOG_HELP0:
	    {
		    ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_MSGBOX, "Help", "Varianta1\nVarianta2\nVarianta3", "Ok", "Exit");
	    }
	    case DIALOG_HELP:
	    {
		    ShowPlayerDialog(playerid, DIALOG_HELP1, DIALOG_STYLE_MSGBOX, "Help", "Test1\nTEST2\nTest3", "Ok", "Exit");
	    }
	    case DIALOG_HELP1:
	    {
		    ShowPlayerDialog(playerid, DIALOG_HELP2, DIALOG_STYLE_MSGBOX, "Help", "Dialog\nDialog1\nDialog3", "Ok", "Exit");
	    }
	    case DIALOG_HELP2:
	    {
		    //Continuare...
	    }
    }
    return 1;
}


CMD:he(playerid, params[])
{
    ShowPlayerDialog(playerid, DIALOG_HELP0, DIALOG_STYLE_LIST, "Help", "TEST1\nTest2\nTest3", "Select", "Exit");
    return 1;
}

Faci cinste cu o bere.

Edited by KnowN

242086.png

Link to comment
Share on other sites

  • 0

Ah, scuze. Am inteles gresit.

 

Trebuie sa ai asa:

if(dialogid == DIALOG_HELP) // ID-ul dialogului.
{
    if(response) // Inseamna ca da pe "Next page".
    {
        // Aici afisezi urmatorul dialog (pagina) cum faci la comanda /he.
    }
    else // Aici inchizi daca nu ai pagina precedenta. Nu iti mai trebuie acest "else" daca nu ai pagina precedenta.
     {
        
    }
}

 

​Am facut asa dar tot nu merge, am incercat in mai multe metode...

//=====================================//
#include                     <a_samp>
#include                     <zcmd>
//=====================================//
#define        DIALOG_HELP     2012
#define        DIALOG_PAGE     2012
//=====================================//

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print(" Radio Filterscript v1.0 loaded!");
    print("--------------------------------------\n");
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == DIALOG_HELP) // ID-ul dialogului.
	{
		if(response) // Inseamna ca da pe "Next page".
		{
         ShowPlayerDialog(playerid, DIALOG_PAGE, DIALOG_STYLE_MSGBOX, "Help", "test\nTEST", "Next", "Exit");
		}
		else // Aici inchizi daca nu ai pagina precedenta. Nu iti mai trebuie acest "else" daca nu ai pagina precedenta.
		{
        
		}
    }
}

CMD:he(playerid, params[])
{
		new long_string[1486];
        strcat(long_string, "{FF0000}General{0080C0}\n/stats - Vezi detaliile despre contul tau\n/buylevel - Cumperi un nivel\n/leaders - Vezi toti liderii conectati pe server\n/helpers - Vezi toti helperii conectati\n/admins - Vezi toti adminii conectati\n/skill - Vezi ce skill-uri ai la job-uri\n/pay - Dai bani unui jucator\n/charity - Donezi bani primariei\n/time - Vezi ora exacta\n/buy - Cumperi ceva dintr-un 24/7\n/id - Vezi cateva detalii despr");
        strcat(long_string, "e un player\n/drink - Bei o bautura dintr-un bar\n/showlicenses - Arati cuiva licentele\n/givekey - Imprumuti cheia masinii tale cuiva\n/rob - Jefuiesti banca\n/ticketlist - \n/heal - Iei viata\n/info - Vezi detaliile despre server\n/coin - Arunci o moneda in aer\n/buygun - Cumperi o arma din GunShop\n/licenses - Vezi ce licente ai\n/lotto - Te inscrii cu un numar la lotto\n/contract - Ceri asasin");
        strcat(long_string, "area unui player\n/factions - Vezi toate factiuniile de pe server\n/jobs - Vezi lista cu toate job-urile\n/rentcar - Inchiriezi o masina\n/unrentvehicle - Renunti la vehiculul inchiriat\n/w - Ii soptesti cuiva ceva la ureche\n/s - Strigi tare\n/sms - Trimiti cuiva un sms\n/n - Vorbesti pe un chat cu toti playerii de pe server\n/b - Vorbesti pe o raza mai mare\n/ad - Publici un anunt la CNN\n/mutet");
        strcat(long_string, "ime - Vezi cat timp mai ai mute\n/nmutetime - Vezi cat timp mai ai mute pe chat-ul /n\n/togwhisper - Nimeni nu mai poate sa iti sopteasca ceva\n/togphone - Inchizi telefonul\n/tognewbie - Inchizi chat-ul /n\n/bankhelp - Vezi comenziile banci\n/animlist - Vezi lista cu toate anim-urile");
        ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_MSGBOX, "Help", long_string, "Next", "Exit");
        return 1;
}

 

Edited by CriatixX
Link to comment
Share on other sites

  • 0

Am rezolvat, am facut comanda din Textdraw-uri. Este facuta dintr-o lista cu butoane pentru fiecare factiune si alte chestii cu botoanele exit si back. Cand apas pe exit dispar toate textdraw-urile dar ramane sageata si nu pot sa ma misc. Este din TextDrawShowForPlayer si TextDrawHideForPlayer si din OnPlayerConnect si OnPlayerClickTextDraw, cred ca trebuie ceva la OnPlayerDisconnect.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • 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.