Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: njoBe_ poslato Septembar 16, 2021, 17:06:00 POSLE PODNE

Naslov: Ne prikazuje dialog
Poruka od: njoBe_ poslato Septembar 16, 2021, 17:06:00 POSLE PODNE
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]
Naslov: Odg: Ne prikazuje dialog
Poruka od: __vedran.xyz77 poslato Septembar 17, 2021, 00:17:38 PRE PODNE
Da li si ti ovo kompajlovao uopste ?
Naslov: Odg: Ne prikazuje dialog
Poruka od: №Grella poslato Septembar 17, 2021, 00:34:55 PRE PODNE
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
   }
}
Naslov: Odg: Ne prikazuje dialog
Poruka od: njoBe_ poslato Septembar 17, 2021, 12:05:05 POSLE PODNE
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]
Naslov: Odg: Ne prikazuje dialog
Poruka od: №Grella poslato Septembar 17, 2021, 21:13:54 POSLE PODNE
posalji mi private komandu i dialoge
Naslov: Odg: Ne prikazuje dialog
Poruka od: njoBe_ poslato Septembar 18, 2021, 19:39:28 POSLE PODNE
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]
Naslov: Odg: Ne prikazuje dialog
Poruka od: Bit Frosty poslato Septembar 18, 2021, 19:49:44 POSLE PODNE
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)
Naslov: Odg: Ne prikazuje dialog
Poruka od: njoBe_ poslato Septembar 18, 2021, 23:07:01 POSLE PODNE
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
Naslov: Odg: Ne prikazuje dialog
Poruka od: Bit Frosty poslato Septembar 19, 2021, 10:53:10 PRE PODNE
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.
Naslov: Odg: Ne prikazuje dialog
Poruka od: __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]
Naslov: Odg: Ne prikazuje dialog
Poruka od: Bit Frosty poslato Septembar 19, 2021, 15:33:56 POSLE PODNE
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]
Naslov: Odg: Ne prikazuje dialog
Poruka od: __vedran.xyz77 poslato Septembar 19, 2021, 17:26:43 POSLE PODNE
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
Naslov: Odg: Ne prikazuje dialog
Poruka od: №Grella poslato Septembar 19, 2021, 19:06:50 POSLE PODNE
*
[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;
}
Naslov: Odg: Ne prikazuje dialog
Poruka od: №Grella poslato Septembar 19, 2021, 19:17:28 POSLE PODNE
*
[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]
Naslov: Odg: Ne prikazuje dialog
Poruka od: __vedran.xyz77 poslato Septembar 19, 2021, 20:13:40 POSLE PODNE
Nemoguce je koristiti OnDialogResponse pored fDialoga (( https://prnt.sc/1suu9rl )), on ce zaustaviti svaku OnDialogResponse funkciju i pozvati svoju
Naslov: Odg: Ne prikazuje dialog
Poruka od: Sage poslato Septembar 20, 2021, 00:54:17 PRE PODNE
Citat: __vedran.xyz77 poslato Septembar 19, 2021, 20:13:40 POSLE PODNE
Nemoguce je koristiti OnDialogResponse pored fDialoga (( https://prnt.sc/1suu9rl )), on ce zaustaviti svaku OnDialogResponse funkciju i pozvati svoju
[pawn]#define FDLG_NO_DISABLE_CALLBACK[/pawn]
slepac
Naslov: Odg: Ne prikazuje dialog
Poruka od: __vedran.xyz77 poslato Septembar 20, 2021, 12:22:21 POSLE PODNE
Kao sto vidis u default-u je komentarisan.

https://prnt.sc/1sy4rac


Btw u oba slucaja returna tako da ne znam sta pokusavas da kazes ?
Naslov: Odg: Ne prikazuje dialog
Poruka od: njoBe_ poslato Septembar 20, 2021, 14:22:20 POSLE PODNE
login/reg savrseno rade, ali ovaj dialog kao da se ne poziva jer sam napisao kao sto se dole u kodu moze vidjeti da ga kicka ako je !response medjutim kulira

[pawn]Dialog:DIALOG_BANKA(playerid, response, listitem, inputtext[])
{

   if(!response) return Kick(playerid);
   if(response)
   {
      //bla bla
   }
   return 1;

}[/pawn]
Naslov: Odg: Ne prikazuje dialog
Poruka od: __vedran.xyz77 poslato Septembar 20, 2021, 14:57:58 POSLE PODNE
Vjerovatno je DIALOG_BANKA isti id kao i neki drugi dialog
Naslov: Odg: Ne prikazuje dialog
Poruka od: njoBe_ poslato Septembar 20, 2021, 16:16:37 POSLE PODNE
defineo sam kao 250 ID i opet isto, nije mi jasno jedino kako pokrece ostale dialoge (login/reg) ovaj ne ucita ...
Naslov: Odg: Ne prikazuje dialog
Poruka od: njoBe_ poslato Septembar 20, 2021, 17:39:22 POSLE PODNE
[pawn]{
   if(dialogid == DIALOG_BANKA)
   {
      if(!response) return 1;
      if(response)
      {
         switch(listitem)
         {
            case 0:
            {
               SendClientMessage(playerid, -1, "govno");
            }
            case 1:
            {
               SendClientMessage(playerid, -1, "govno");
            }
            case 2:
            {
               SendClientMessage(playerid, -1, "govno");
            }
         }
      }
   }
   return 1;
}[/pawn]

jedini nacin na koji mi je radilo....
Naslov: Odg: Ne prikazuje dialog
Poruka od: Bit Frosty poslato Septembar 20, 2021, 18:43:21 POSLE PODNE
Nista idemo redom kad vec nista nije, i "nemozes" da debug.

Unload sve filterscripte
Vidi da ti je fDialog sto pre includovan (ali opet nakon a_samp)
Proveri sve includovane fajlove za OnDialogResponse
Proveri ID dialoga da nema neki konflikt posto koliko vidim fDialog ne generise ID nego samo pravi handle funkciju i poziva je za dati ID
Proveri da li prikazujes i handlujes isti dialog id (recimo DIALOG_BANKA i DIALOG_BANKAMENU su dve razlicite stvari)

Ako nista od toga nije, jedini nacin je da svugde dodas debug poruke i nadjes mesto gde ti se prekida kod. Takodje probaj da definises #define FDLG_NO_DISABLE_CALLBACK pre nego sto include fDialog
Naslov: Odg: Ne prikazuje dialog
Poruka od: №Grella poslato Septembar 21, 2021, 18:11:38 POSLE PODNE
Citat: njoBe_ poslato Septembar 20, 2021, 17:39:22 POSLE PODNE
[pawn]{
   if(dialogid == DIALOG_BANKA)
   {
      if(!response) return 1;
      if(response)
      {
         switch(listitem)
         {
            case 0:
            {
               SendClientMessage(playerid, -1, "govno");
            }
            case 1:
            {
               SendClientMessage(playerid, -1, "govno");
            }
            case 2:
            {
               SendClientMessage(playerid, -1, "govno");
            }
         }
      }
   }
   return 1;
}[/pawn]

jedini nacin na koji mi je radilo....


druze vrsis radnju u komandi koja poziva DIALOG_BANKAMENU, a ti si stavio radnju to jest test daljne radnje dialoga u DIALOG_BANKA koji se uopste ne poziva i desi ti se da na komandi samo prikaze dialog ali nema daljne radnje jer nema odakle da vrsi radnju ti si samo definisao jebemu kolaccc u picku šta petljate i pametujete ako vec rade ostali dialozi.
Gore ti je vec par reklo da nisi poklopio