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




Questhandling selbstgebaut
Zur Tutorial-Übersicht