[[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]]