===== Questhandling SetupExpedition =====
\\
function SetupExpedition( _Quest )
Mit dieser Funktion kann man sehr leicht überprüfen, ob eine bestimmte Entity eine andere bestimmte Entity/einen bestimmten Ort erreicht hat. Ihr braucht keinen zusätzlichen Code in euer Script zu kopieren, diese Funktion stellt das Spiel von sich aus bereit.
//_Quest// ist ein Table, das folgende Werte enthalten kann:
Entweder:\\
//EntityName//: Eine bestimmte Entity (Name oder ID) muss das Ziel erreichen
oder:\\
//Heroes//: Wenn true, muss irgendein Held das Ziel erreichen\\
//Leaders//: Wenn true, muss irgendein Hauptmann das Ziel erreichen\\
//Serfs//: wenn true, muss irgendein Leibeigener das Ziel erreichen\\
//TargetName//: Name oder ID des Ziels
//Distance//: Distanz zum Ziel in Siedlerzentimetern (maximal 6400 bei Helden oder Militäreinheiten)
//Callback//: Die Funktion die aufgerufen wird, wenn der Quest erfüllt ist. Der Callback Funktion wird der selbsterstellte Quest-Table als Parameter übergeben. Das ist ganz praktisch, da man den Table hier mit eigenen zusätzlichen Infos füllen und das in der Callback Funktion verwenden kann.
Beispiel:
function SetupQuest_Explore()
-- Zunächst wird das quest Table mit allen Informationen gefüllt
local quest = {
-- Name der Entity die diesen Quest erfüllen muss
EntityName = "Dario",
-- Name des Zielortes, zu dem die angebene Einheit hinlaufen muss
TargetName = "Ari",
-- Mit einer Toleranz von 300 Siedlerzentimetern um den Zielpunkt
Distance = 300,
-- Wenn das erledigt wurde, wird Callback_QuestExplore aufgerufen. Diese Funktion kann man natürlich,
-- wie schon im Briefingtutorial demonstriert, auch gleich hier erstellen
Callback = Callback_QuestExplore,
-- Jetzt noch ein paar zusätliche Infos für später merken
-- Man könnte auch "egal" anstatt "MessageText" schreiben, hauptsache man holt den Wert mit diesem Namen später wieder heraus
MessageText = "Super, Dario hat Ari gefunden"
};
-- Nun wird der ErkundungsCheck gestartet
SetupExpedition( quest )
end
function Callback_QuestExplore( _Quest )
-- Hier wird die zuvor gespeicherte Nachricht ausgegeben.
-- Mit einer festen Nachricht macht das natürlich wenig Sinn, aber möglicherweise fällt jemandem eine bessere Verwendungsmöglichkeit ein
Message( _Quest.MessageText )
end
Beispiel 2:
function SetupQuest_Explore()
-- Zunächst wird das quest Table mit allen Informationen gefüllt
local quest = {
-- Ein Held oder ein Hauptmann soll das Ziel erreichen
Heroes = true,
Leaders = true,
-- Name des Zielortes, zu dem die angebene(n) Einheit(en) hinlaufen muss
TargetName = "IrgendwoImNirgendwo",
-- Mit einer Toleranz von 200 Siedlerzentimetern um den Zielpunkt
Distance = 200,
-- Wenn das erledigt wurde, wird diese Funktion aufgerufen.
Callback = function( _Quest )
Message( "Quest erfüllt!" )
end
};
-- Nun wird der ErkundungsCheck gestartet
SetupExpedition( quest )
end
\\
* [[reference:SetupDestroy]]
* [[reference:SetupEstablish]]
\\
\\
[[tutorials:questhandling_vereinfachen_selbstgebaut|Questhandling selbstgebaut]]\\
[[:tutorials:index|Zur Tutorial-Übersicht]]