[[http://www.siedler-games.de|{{:sg-link.jpg|}}]] ======Briefings mit Auswahlmöglichkeit ( Multiple Choice )====== [[http://www.siedler-portal.de/vb3/member.php?u=2109|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 [[briefings mit mehrfacher auswahlmöglichkeit|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== * [[reference:briefing]] * [[tutorials:kurzbriefings|Kurzbriefings]] * [[tutorials:normale_briefings]] * [[tutorials:vergleich_briefings]] * [[tutorials:briefings-erweiterungen]] * [[reference:createnpc|CreateNPC]] \\ FIXME \\ \\ [[:tutorials:index|Zur Tutorial-Übersicht]]