Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: ivanboskic poslato Avgust 30, 2023, 20:00:52 POSLE PODNE

Naslov: Oko y_dialog
Poruka od: ivanboskic poslato Avgust 30, 2023, 20:00:52 POSLE PODNE
Pitanje/savjet: Zanima me kako da prebacim ona čuda iz easydialoga npr Dialog:dialog_login u taj y_dialog
Opširnije: /
Dodatno: /
Naslov: Odg: Oko y_dialog
Poruka od: devster poslato Avgust 31, 2023, 09:19:38 PRE PODNE
Procitaj docs
Naslov: Odg: Oko y_dialog
Poruka od: ivanboskic poslato Avgust 31, 2023, 10:11:19 PRE PODNE
Citat: realnaith poslato Avgust 31, 2023, 09:19:38 PRE PODNE
Procitaj docs
Pa jesam, ali ne znam kako se koristi u tome je stvar
Naslov: Odg: Oko y_dialog
Poruka od: devster poslato Avgust 31, 2023, 10:27:15 PRE PODNE
https://balkan-samp.com/forum/index.php?topic=130564.0
Naslov: Odg: Oko y_dialog
Poruka od: ivanboskic poslato Avgust 31, 2023, 10:44:16 PRE PODNE
Citat: realnaith poslato Avgust 31, 2023, 10:27:15 PRE PODNE
https://balkan-samp.com/forum/index.php?topic=130564.0
Gledao sam i to, al ja tražim login/register system sa y_dialog i bcrypt.Ima neki od Frostya što je objavljen al taj nema pola stvari
Naslov: Odg: Oko y_dialog
Poruka od: // xunder poslato Avgust 31, 2023, 10:48:07 PRE PODNE
Preporucujem ti da svaki inline dialog izoliras u posebnu funkciju pogotovo ako ces ih nestovati.

Primjer bez posebnih funkcija:

CMD:testdialog(playerid, params[]) {
inline const Response(response, listitem, string:inputtext[]) {
#pragma unused listitem, inputtext

if (!response) {
return 1;
}

inline const Response2(response2, listitem2, string:inputtext2[]) {
#pragma unused listitem2, inputtext2

if (!response2) {
return 1;
}

SendClientMessage(playerid, -1, "Poruka");
}
Dialog_ShowCallback(playerid, using inline Response2, DIALOG_STYLE_MSGBOX, "Dialog 2", "Test dialog 2", "Poruka", "Izlaz");
}
Dialog_ShowCallback(playerid, using inline Response, DIALOG_STYLE_MSGBOX, "Dialog 1", "Test dialog 1", "Dalje", "Izlaz");
return 1;
}


Vec vidis kako bi ovo lose uticalo na preglednost koda.

Primjer sa funkcijama:


CMD:testdialog(playerid, params[]) {
Dialog_One(playerid);
return 1;
}

static Dialog_One(playerid) {
inline const Response(response, listitem, string:inputtext[]) {
#pragma unused listitem, inputtext

if (!response) {
return 1;
}

Dialog_Two(playerid);
}
Dialog_ShowCallback(playerid, using inline Response, DIALOG_STYLE_MSGBOX, "Dialog 1", "Test dialog 1", "Dalje", "Izlaz");
return 1;
}

static Dialog_Two(playerid) {
inline const Response(response, listitem, string:inputtext[]) {
#pragma unused listitem, inputtext

if (!response) {
return Dialog_One(playerid);
}

SendClientMessage(playerid, -1, "Poruka");
}
Dialog_ShowCallback(playerid, using inline Response, DIALOG_STYLE_MSGBOX, "Dialog 2", "Test dialog 2", "Poruka", "Nazad");
return 1;
}


U ovom primjeru sam ostavio takodje primjer kako mozes pritiskom na "Nazad" u "Dialog 2" otvoriti ponovo "Dialog 1".

U tutorialu iznad takodje nije naznaceno da nisu potrebni svi parametri iz OnDialogResponse ("id" i "dialogid").
Naslov: Odg: Oko y_dialog
Poruka od: ivanboskic poslato Avgust 31, 2023, 10:51:34 PRE PODNE
Ajoj kako je tako težak ovaj y_dialog jebo te
Naslov: Odg: Oko y_dialog
Poruka od: ivanboskic poslato Avgust 31, 2023, 11:01:12 PRE PODNE
Ostajem na easyDialog, lock!