Briefings mit Auswahlmöglichkeit ( Multiple Choice )

Tenji\\

Mit der Multiple Choice kann man direkt in einem Briefing eine Abfrage mit zwei Auswahlmöglichkeit festlegen, welche den
weiteren Verlauf des Briefings steuert.
Darüber hinaus kann man in der „finished“-Funktion des Briefings die Antwort nochmals abfragen, um so weiterführende Ereignisse starten zu lassen.
Das kann alles mögliche sein, z.B.: weitere Briefings(auch mit Npc), jegliche Arten von Quests, …
Also im Grunde das gleiche wie in der „FirstMapAction“ auch. \\

Hier wird zunächst ein einfaches Beispiel von Chromix vorgestellt, welches die Grundfunktion der Multiple Choice verdeutlicht.
Ein komplexeres Beispiel von Ritter Lanzelot, mit mehreren Abfragen in einem Briefing gibt es hier.
\\

Um eine Multiple Choice-Abfrage in einem Briefing einzubauen benötigt man drei Dinge: \\


1. Die MC-Briefingseite, mit Titel, Text, und den zwei Auswahlmöglichkeiten mit weiterführender Seitenangabe:

	-- Seite 1
	local choicePage = AP{             -- Auswahlseite für die Auswertung merken
		mc 	 = {                       -- Multiple Choice
			title	= "Wetterfee",     -- Titel und Text wie im normalen Briefing
			text 	= "Welches Wetter solls denn heute sein?",
			firstText   = "Regen",     -- Auswahlfeld 1 - Text
			secondText  = "Schnee",    -- Auswahlfeld 2 - Text
			firstSelected  = 2,        -- Auswahlfeld 1 geklickt -> Briefing springt zu Seite 2
			secondSelected = 4,        -- Auswahlfeld 2 geklickt -> Briefing springt zu Seite 4
		},
		dialogCamera	=	true,      -- normale Briefingsseiten-funktion ( Nahsicht )
	}

2. Eine Leerseite, welche die beiden FolgeBriefing-Stränge voneinander trennt:

	-- Seite 3
	AP()	-- Zwischen beiden Folgebriefings muss mindestens eine "Leerseite" liegen.

Die Leerseite ist dazu da, um dem Briefing zu sagen, dass es hier schon zu Ende ist. Ansonsten würde es ja bis zum Schluss alle Seiten zeigen.
Man könnte die Leerseite auch so schreiben:

	-- Seite 3
	AP( nil )	-- Leerseite

Ändert allerdings nichts an ihrer Funktion!


3. Die if-else-Abfrage, in der „finished“-Funktion des Briefings, um die Folgeaktionen des Briefings aufzurufen:

	-- Die finished Funktion:
	briefing.finished =
		function()
			if GetSelectedBriefingMCButton( choicePage ) == 1 then -- Erste Antwort gewählt?
				StartRain( 60 )    -- dann lass es regnen
			else 	-- zweite Antwort gewählt?
				StartWinter( 60 )  -- dann lass es schneien
			end
		end

Hier kann man beliebig viele Aktionen aufrufen, so wie in einem normalen Briefing-Finished auch. \\


Natürlich ist das jetzt noch kein komplettes Briefing, es fehlen noch die Folge-Seiten und ein Aufruf, um das Briefing zu starten.
Das geht, wie beim normalen Briefing, sowohl mit einem „NPC“, als auch mit der Funktion „StartBriefing“.

Dies ist das komplette Briefing mit Multiple Choice:


function BriefingWeather()
	-- Das lokale Briefing
	local briefing = {}
	-- AddPage Funktion
	local AP = function( _page ) table.insert( briefing, _page ); return _page; end
 
	-- Seite 1
	local choicePage = AP{ 			-- Auswahlseite für die Auswertung merken
		mc 	 = {					-- Multiple Choice
			title	= "Wetterfee",
			text 	= "Welches Wetter solls denn heute sein?",
			firstText   = "Regen",
			secondText  = "Schnee",
			firstSelected  = 2,   -- Regen   -> Seite 2
			secondSelected = 4,   -- Schnee -> Seite 4
		},
		dialogCamera	=	true,
	}
 
	-- Seite 2
	AP{ 
		text = "Plitsch platsch...",
	}
 
	-- Seite 3
	AP()	-- Zwischen beiden Folgebriefings muss mindestens eine "Leerseite" liegen.
 
	-- Seite 4
	AP{ 
		text = "Schneefloeckchen Weissroeckchen...",
	}
 
	-- Die finished Funktion:
	briefing.finished =
		function()
			if GetSelectedBriefingMCButton( choicePage ) == 1 then -- Erste Antwort gewählt?
				StartRain( 60 )
			else 	-- zweite Antwort gewählt?
				StartWinter( 60 )
			end
		end
 
	-- Und los...
	StartBriefing( briefing)
	-- soll dieses Briefing nicht aus einer anderen Funktion heraus aufgerufen werden,
	-- kann hier statt StartBriefing auch ein NPC erzeugt werden
 
end
Siehe auch


FIXME

Zur Tutorial-Übersicht