Inhaltsverzeichnis

Peermanent & Tenji

Kurzbriefings

Durch diese Kurzbriefings könnt ihr ohne viel Aufwand Seiten einem Briefing hinzufügen!
Um ein Kurzbriefing aufzurufen müssen eine Comfort Function im Script-Code eingebunden werden: Umlaute

Die KurzBriefing-Seite:

ASP( _entity, _title, _text);    -- oder:
ASP( _entity, _title, _text, _dialog);    -- die "Nahsicht" ist aktiviert, wenn für _dialog "true" eingesetzt wird

Hier werden die Parameter _entity, _titel, _text übergeben, und wenn bei _dialog „true“ steht, dann ist die „Nahsicht“(„DialogCamera“) für diese Seite aktiviert!

Erstellung eines Kurzbriefings durch eine AP-Funktion

function SpecialBriefing()
	-- Das lokale Briefing
	local briefing = {};
	-- AddPage / AddShortPage Funktion
	local AP, ASP = AddPages(briefing);
 
	-- ASP( _name, _title, _text, _dialog);     _dialog "true" -> Nahsicht  - ansonsten einfach weg lassen! 
	ASP("scout","Scout","Ich habe gehört das ihr den Turm zerstört habt?", true);
	ASP("erec","Erec","Aber sicher, das war so geplant.");
	ASP("scout","Scout","Na, dann ist´s ja gut!", true);
	-- .. hier könnt ihr beliebig viele Seiten hinzufügen!
 
	StartBriefing(briefing);
end

AP = AddPage: Fügt eine normale Briefingseite hinzu
ASP = AddShortPage: Fügt eine Kurzbriefingseite hinzu

Und, Dank der kleinen Zeile „local AP, ASP = AddPages(briefing);“ können wir im selben Briefing auch
normale Briefingseiten einbauen:

function SpecialBriefing()
	local briefing = {};
	local AP, ASP = AddPages(briefing);
 
	ASP("scout","Scout","Ich habe gehört das ihr den Turm zerstört habt?", true);
	ASP("erec","Erec","Aber sicher, das war so geplant.");
	AP{ 
		text = "Kuck mal da!",
		position =  GetPosition("Pos5"),
		explore	= 1500,
	};
	ASP("scout","Scout","Oh, wenn das so ist, ...", true);
 
	StartBriefing(briefing);
end


Damit das funktioniert, müsst ihr diese zwei Code nur in euer Skript einfügen:

1. wegen dem Aufruf oben „local AP, ABP = AddPages(briefing);“ diese kleine Funktion:

function AddPages( _briefing )
	local AP = function(_page) table.insert(_briefing, _page); return _page; end
	local ASP = function(_entity, _title, _text, _dialog) return AP(CreateShortPage(_entity, _title, _text, _dialog)); end
	return AP, ASP;
end

2. die zugehörige „CreatePage“-Funktion namens „CreateShortPage“ ebenfalls einfügen:

function CreateShortPage( _entity, _title, _text, _dialog) 
    local page = {
        title = _title,
        text = _text,
        position = GetPosition( _entity ),
        dialogCamera = _dialog
    };
    return page;
end


Beispiele

Beispiel: Aufruf eines Kurzbriefing über einem SimpleJob

function TurmDead() 
	if IsDead("turmOne") then
			local briefing = {};
			local AP, ASP = AddPages(briefing);
 
			ASP("scout","Scout","Ich habe gehört das ihr den Turm zerstört habt?", true);
			ASP("erec","Erec","Aber sicher, das war so geplant.");
 
			StartBriefing(briefing);
		return true
	end
end	



Eine weiter Möglichkeit wäre das Kurzbriefing über die Questhandling Funktion zu starten
(mehr über Questhandling Functionen siehe hier:Questhandling selbstgebaut)
Der Vorteil ist, das sie ohne SimpleJobs auskommen.

Beispiel: Aufruf eines Kurzbriefing über einen Quest-Callback:

function StarteErecScout()
    local quest = {
        EntityName = "erec",
        TargetName = "scout",
		Distance = 500,
        Callback = Callback_QuestExploreScout
		};
    SetupExpedition( _quest )
end
------------------------------------
function Callback_QuestExploreScout( _quest )
	local briefing = {};
	local AP, ASP = AddPages(briefing);
 
	ASP("scout","Scout","Ich habe gehört das ihr den Turm zerstört habt?", true);
	ASP("erec","Erec","Aber sicher, das war so geplant.");
 
	StartBriefing(briefing);
end	

Bei fragen bitte hier im Forum melden! Tenji

Siehe auch


FIXME

Zur Tutorial-Übersicht