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