Ne prikazuje dialog

Započeo njoBe_, Septembar 16, 2021, 17:06:00 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Ne pokazuje mi dialog u bank sistemu..

Komanda:
[pawn]CMD:banka(playerid, params[])
{
   if(!IsPlayerInRangeOfPoint(playerid, 3, 319.3219,905.7609,-19.5035)) return SendClientMessage(playerid, -1, "{039DFC}[BC:RP]: {FFFFFF}Niste na salteru banke.");
   if(PlayerInfo [playerid] [pOtvorenRacun] < 1) return SendClientMessage(playerid, -1, "{039DFC}[BC:RP]: {FFFFFF}Nemas otvoren racun u banci. Otvori ga na salteru pored.");
   ShowPlayerDialog(playerid, DIALOG_BANKA, DIALOG_STYLE_LIST, "{FFFFFF}Banka.", "{039DFC}1. {FFFFFF}Ostavi novac\n{039DFC}2. {FFFFFF}Podigni novac\n{039DFC}3. {FFFFFF}Transfer", "Odaberi", "Odustani");
   return 1;
}[/pawn]

Dolazi problem kada odabere jednu od ponudjenih opcija ne prikaze mu drugi dialog, a trebalo bi..

[pawn]fDialog(DIALOG_BANKA)
{
   if (!response) return SendClientMessage(playerid, -1, "{009e32}Odustali ste.");
   if(listitem == 0)
   {
      ShowPlayerDialog(playerid, DIALOG_OSTAVI_NOVAC, DIALOG_STYLE_INPUT, "{FFFFFF}Banka", "{FFFFFF}Unesi koliko novca zelis ostaviti.", "Potvrdi", "Izadji");
   }
   if(listitem == 1)
   {
      ShowPlayerDialog(playerid, 9, DIALOG_STYLE_INPUT, "{FFFFFF}Banka", "{FFFFFF}Unesite koliko novca zelite ostaviti.", "Potvirdi", "Izadji");
   }
   if(listitem == 2)
   {
      ShowPlayerDialog(playerid, DIALOG_TRANSFER_ID, DIALOG_STYLE_INPUT, "{FFFFFF}Banka", "{FFFFFF}Unesite ID igraca.", "Potvrdi", "Odustani");
   }
   return 1;   
}[/pawn]
Poslednja Izmena: Septembar 23, 2021, 02:47:53 PRE PODNE od M Ө M Σ N Z I

Da li si ti ovo kompajlovao uopste ?

Koliko ja znam listitem se koristi samo u DIALOG_STYLE_LIST ako nisam u pravu neka me ispravi neko i mislim da bi trebao koristiti

switch(listitem)
{
   case 0:
   {
        //WORK
   }
}
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento

koristim fDialog

EDIT: Probao sam u ondialogresponse i isto, prikaze mi samo dialog koji se prikaze inace i u komandi

[pawn]case DIALOG_BANKAMENU:
      {
         switch(listitem)
         {
            case 0:
            {
               SendClientMessage(playerid, -1, "Test");
            }
            case 1:
            {
               SendClientMessage(playerid, -1, "Test");

            }
            case 2:
            {
               SendClientMessage(playerid, -1, "Test");
            }

         }[/pawn]
Poslednja Izmena: Septembar 17, 2021, 12:10:57 POSLE PODNE od njoBe_

posalji mi private komandu i dialoge
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento

imas gore kako sam pokusao sa fDialog i kako sa ondialogresponse


[pawn]
CMD:banka(playerid)
ShowPlayerDialog(playerid, DIALOG_BANKA, DIALOG_STYLE_LIST, "{FFFFFF}Banka.", "{039DFC}1. {FFFFFF}Ostavi novac\n{039DFC}2. {FFFFFF}Podigni novac\n{039DFC}3. {FFFFFF}Transfer", "Odaberi", "Odustani");
[/pawn]

ovo ti je on dialog response
[pawn]case DIALOG_BANKAMENU:
{
switch(listitem)
{
case 0:
{
SendClientMessage(playerid, -1, "Test");
}
case 1:
{
SendClientMessage(playerid, -1, "Test");

}
case 2:
{
SendClientMessage(playerid, -1, "Test");
}

}[/pawn]

1. Neznam kako radi fDialog, ali sasvim je moguce da ako imas njega da ti se nece pozvati OnDialogResponse.
2. U OnDialogResponse koristis DIALOG_BANKAMENU dok prikazujes DIALOG_BANKA
3. Stavi debug u sam dialog da vidis da li ti se poziva dialog, i stavi u OnDialogResponse (ne u sami handle dialoga nego na vrh callback-a) cisto da vidis da li se public poziva.
4. Ako vec koristis dialog processor kao krstena osoba, onda preporucujem easyDialog (https://github.com/Awsomedude/easyDialog)

1. ne krstim se
2. da se on dialog response ne poziva ne bi se mogao logovati/kreirati acc
3. fdialog je slicno easydialogu, mozda malo starije, ugl probacu kada dodjem kuci. hvala

Citat: njoBe_ poslato Septembar 18, 2021, 23:07:01 POSLE PODNE
2. da se on dialog response ne poziva ne bi se mogao logovati/kreirati acc
Nije uvek sve isto u razlicitom trenutnku brate, proveri za svaki slucaj. Uvek se moze desiti nesto na runtime sto ce se promeniti i zaustaviti chain.

Totalno mi je nelogicno da mozes ovo da uradis
[pawn]

fDialog DIALOG_BANKAMENU:
{
switch(listitem)

[/pawn]
Kako listitem ne bude undefined, sta je on globalna varijabla? Uradi debug
[pawn]
fDialog DIALOG_BANKAMENU: {
                 printf("debug listitem - %i", listitem); // vidi sta ce vratiti ovdje
[/pawn]
Poslednja Izmena: Septembar 19, 2021, 14:44:34 POSLE PODNE od __vedran.xyz77

Citat: __vedran.xyz77 poslato Septembar 19, 2021, 14:42:52 POSLE PODNE
Totalno mi je nelogicno da mozes ovo da uradis
[pawn]

fDialog DIALOG_BANKAMENU:
{
switch(listitem)

[/pawn]
Kako listitem ne bude undefined, sta je on globalna varijabla? Uradi debug
[pawn]
fDialog DIALOG_BANKAMENU: {
                 printf("debug listitem - %i", listitem); // vidi sta ce vratiti ovdje
[/pawn]
Za debug se slazem, a ovo za define, fDialog je u stvari macro:
[pawn]
//Usage:: fDialog(dialogid)
#define fDialog(%1) \
   forward GDialog_%1(playerid,response,listitem,inputtext[]);\
   public GDialog_%1(playerid,response,listitem,inputtext[])
[/pawn]

Citat: Deleted User poslato Septembar 19, 2021, 15:33:56 POSLE PODNE
Za debug se slazem, a ovo za define, fDialog je u stvari macro:
[pawn]
//Usage:: fDialog(dialogid)
#define fDialog(%1) \
   forward GDialog_%1(playerid,response,listitem,inputtext[]);\
   public GDialog_%1(playerid,response,listitem,inputtext[])
[/pawn]
Nikad nisam radio sa njim pa ne znam, onda postoji mogucnost da je DIALOG_BANKA i neki drugi dialog isti id

*
[pawn]ShowPlayerDialog(playerid, DIALOG_BANKA, DIALOG_STYLE_LIST, "{FFFFFF}Banka.", "{039DFC}1. {FFFFFF}Ostavi novac\n{039DFC}2. {FFFFFF}Podigni novac\n{039DFC}3. {FFFFFF}Transfer", "Odaberi", "Odustani");[/pawn]

*
[pawn]ShowPlayerDialog(playerid, DIALOG_BANKAMENU, DIALOG_STYLE_LIST, "{FFFFFF}Banka.", "{039DFC}1. {FFFFFF}Ostavi novac\n{039DFC}2. {FFFFFF}Podigni novac\n{039DFC}3. {FFFFFF}Transfer", "Odaberi", "Odustani");[/pawn]

CMD:uzmigajbicu(playerid, params[]) {

   
   return 1;
}
Poslednja Izmena: Septembar 19, 2021, 19:10:21 POSLE PODNE od Grella™
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento

*
[pawn]ShowPlayerDialog(playerid, DIALOG_BANKA, DIALOG_STYLE_LIST, "{FFFFFF}Banka.", "{039DFC}1. {FFFFFF}Ostavi novac\n{039DFC}2. {FFFFFF}Podigni novac\n{039DFC}3. {FFFFFF}Transfer", "Odaberi", "Odustani");[/pawn]

*
[pawn]ShowPlayerDialog(playerid, DIALOG_BANKAMENU, DIALOG_STYLE_LIST, "{FFFFFF}Banka.", "{039DFC}1. {FFFFFF}Ostavi novac\n{039DFC}2. {FFFFFF}Podigni novac\n{039DFC}3. {FFFFFF}Transfer", "Odaberi", "Odustani");[/pawn]

[pawn]CMD:banka(playerid, params[]) {

        ShowPlayerDialog(playerid, DIALOG_BANKAMENU, DIALOG_STYLE_LIST, "{FFFFFF}Banka.", "{039DFC}1. {FFFFFF}Ostavi novac\n{039DFC}2. {FFFFFF}Podigni novac\n{039DFC}3. {FFFFFF}Transfer", "Odaberi", "Odustani");   
   return 1;
}[/pawn]


[pawn]case DIALOG_BANKAMENU:
{
if(response)
{
switch(listitem)
{
case 0:
{
print( "Test Ostavljam Novac");
}
case 1:
{
print( "Test PodizemNovac");

}
case 2:
{
print(  "Test Transfer");
}
}
}[/pawn]
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento

Nemoguce je koristiti OnDialogResponse pored fDialoga (( https://prnt.sc/1suu9rl )), on ce zaustaviti svaku OnDialogResponse funkciju i pozvati svoju