Jump to content

Question

Posted

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.

22 answers to this question

Recommended Posts

  • 0
Posted (edited)

​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

  • 0
Posted (edited)

//=====================================//
#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].
  • 0
  • Administrator
Posted

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!

  • 0
Posted

Pai , tu nu ai adaugat nimic la OnDialogResponse. Foloseste-te de datele din GameMode-ul tau si aplica in acest FileScript. Succes!

j3V8Znq.png

5IGyOAw.png

  • 0
Posted

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

 

 

  • 0
  • Administrator
Posted
//=====================================//
#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.

  • 0
Posted (edited)
//=====================================//
#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
  • 0
  • Administrator
Posted

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.
     {
        
    }
}

 

  • 0
Posted (edited)
//=====================================//
#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

  • 0
  • Administrator
Posted

@KnowN ai greșit... De ce ai făcut acel switch cu list item?!

 

 

 

  • 0
Posted

@KnowN ai greșit... De ce ai făcut acel switch cu list item?!

 

 

 

​Scuze, am gresit din graba :))

Este:

switch(dialogid)

Am editat :D

242086.png

  • 0
  • Administrator
Posted

Arătă-ne ce ai făcut după, nu putem sa știm ce ai modificat tu.

  • 0
Posted (edited)

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
  • 0
  • Administrator
Posted

Mai intai DIALOG_PAGE trebuie sa aiba alt ID.

Si poti sa-mi spui cum mai exact nu iti merge?

  • 0
Posted

Mai intai DIALOG_PAGE trebuie sa aiba alt ID.

Si poti sa-mi spui cum mai exact nu iti merge?

​Apare dialog-ul list selectez ceva de acolo si nu apare msgbox

  • 0
  • Administrator
Posted

​Apare dialog-ul list selectez ceva de acolo si nu apare msgbox

​Tu nu ai dialogul de tip lista ...

  • 0
Posted

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.

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.