Logo AeK Script-Wiki Logo AeK Script-Wiki Logo AeK Script-Wiki

Briefings

In DEdK wurden Briefings zur Einführung in die Handlung verwendet. Um diese Möglichkeit der Einführung weiterhin zu ermöglichen und weil bisher kein Briefing-Skript von BB entwickelt wurde, wurde diese Implementierung entwickelt. Sie orientiert sich am Aufbau der DEdK-Briefings.

Zunächst werden die folgenden Skripte benötigt. Sie müssen mit Hilfe des Editors im Experten-Modus in die entsprechenden Teil-Skripte mit dem eigentlichen Karten-Skript importiert werden.

In das normale (=„globale“) Karten-Skript muss der folgende Code: Globales Skript (243)

In das lokale Karten-Skript muss entsprechend: Lokales Skript (179)

Wie funktioniert nun dieses Skript? Wie schon oben geschrieben, orientiert es sich am DEdK-Briefing - wer schon mit DEdK Briefings erstellt hat, wird auch mit der Erstellung von S6-Briefings keine Probleme haben.

Briefings müssen generell global erstellt werden.

Normalerweise bietet es sich an, für jedes Briefing eine eigene Funktion zu erstellen: In diesem Beispiel CreatePreludeBriefing(). Diese wird zum Beispiel in der Funktion Mission_FirstMapAction() aufgerufen.

Das Briefing-Table wird normalerweise in der Funktion lokal deklariert. Zum Einfügen von Briefing-Seiten wird die Funktion AP definiert.

function CreatePreludeBriefing()
 
	local briefing = {}
	local AP = function(_page) table.insert(briefing, _page) return _page end

In das Briefing-Table können auch weitere Informationen, die das ganze Briefing betreffen. Beispiel: Soll während des Briefings der „Nebel des Krieges“ nicht dargestellt werden, so sieht die Definition entsprechend so aus:

	local briefing = { hideFoW = true }

Alle möglichen Werte

Die einzelnen Briefing-Seiten werden nun erstellt. Dazu bedient man sich nun der Hilfe der vorher definierten Funktion AP().

	AP{
		title = "Willkommen", -- Überschrift
		text = "Dies ist der Willkommensbildschirm", -- Text
		position = "Marcus" -- Position der Kamera; in diesem Fall: Position der Kamera zur Einheit "Marcus" setzen
	}
 
	AP
	{
		title = "Marcus",
		text = "Auf in die Schlacht",
		followEntity = "Marcus", -- Die Einheit "Marcus" wird von der Kamera verfolgt
		dialogCamera = true, -- Es wird näher an die Einheit herangezoomt
		action = function() Move("Marcus", "posPreludeBriefingMarcus"); end -- Funktion, die zu Beginn der Briefingsseite aufgerufen wird. In diesem Fall: Bewege "Marcus" zu einer definierten Position.
	}
 
	AP
	{
		title = "Marcus",
		text = "Elias hat uns hereingelegt. Wir müssen uns verteidigen.",
		objectives = "Wir müssen die Stadt Darsiosburg zurückerobern", -- dieses Feld dient der Anzeige von Missionszielen
		position = "Marcus"
	}

Alle möglichen Werte

Schließlich kann noch eine Funktion definiert werden, die nach Beendigung des Briefings aufgerufen wird und der weiteren Abhandlung dient:

	briefing.finished = function()
		StartEliasAttack()
	end

Das Briefing muss schließlich noch gestartet werden. Dies erfolgt mit der Funktion StartBriefing(). Die Deklaration der Funktion CreatePreludeBriefing() muss dann noch mit einem „end“ abgeschlossen werden.

	StartBriefing(briefing)
end

Das Briefing-System übernimmt nach dem Start die Darstellung des Briefings. Hier sollte noch beachtet werden, dass, wenn mehrere Briefings gestartet werden, diese nacheinander dargestellt werden. Entweder, man verhindert, dass mehrere gleichzeitig gestartet werden, oder man muss diese zeitliche Verzögerung beachten.

Mit der Funktion IsBriefingActive() kann sowohl im globalen als auch im lokalen Skript überprüft werden, ob ein Briefing aktuell läuft.

Seite als PDF-Datei herunterladen (Stand: 28.11.08)

Briefing - Demo-Map (Stand: 13.04.09)

1) evtl. folgende Aktionen während des Briefings werden nicht ausgeführt

Anmeldung/ Registrierung

Passwort vergessen? Kein Problem: Sende neues Passwort

· Zuletzt geändert: 20/07/2009 19:22 von old_mcdonald (2103 views)