Oko y_dialog


Započeo ivanboskic, Avgust 30, 2023, 20:00:52 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Pitanje/savjet: Zanima me kako da prebacim ona čuda iz easydialoga npr Dialog:dialog_login u taj y_dialog
Opširnije: /
Dodatno: /




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

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").

Ajoj kako je tako težak ovaj y_dialog jebo te