FANDOM


Skriptfunktionen per QSB aufrufenBearbeiten

Um Funktionen im Mapskript auf im Spiel nutzen zu können gibt es 2 Möglichkeiten:

  1. Aufruf per Jobs, die bei Missionsbeginn gestartet werden (oder später durch ein Reward_MapScriptFunction)
  2. Aufruf durch Goal_MapScriptFunction,  Reprisal_MapScriptFunction,  Reward_MapScriptFunction und  Trigger_MapScriptFunction

Wie man eine Funktion im Skript startet sollte bekannt sein. Andernfalls sollten zuerst die Grundlagen von LUA erlernt werden.

Eine Funktion muss aber zwangsläufig durch den Questassistenten aufgerufen werden. Obwohl Quests eigentlich im globalen skript erstellt werden, haben die Entwickler eine dritte Skriptumgebung geschaffen, genannt QSB (Quest System Behavior). Die Standart-QSB im Editor ist stark veraltet.

Die Aktuellste Version ist hier erhältlich.

Eine spezielle Version, in der merhere Sprachen nutzbar sind gibt es hier. Eine genauere Erläuterung zur QSB 4.0 findest du auf siedelwood.de.


Funktionsaufruf per QSBBearbeiten

Eine Finktion kann als Ziel (Goal), Strafe (Reprisal), Belohnung (Reward) oder Auslöser (Trigger) benutzt werden. Je nach dem Verwendungszweck unterscheidet sich die Funktion in ihrem Aufbau. Allerdings ist der Aufruf immer gleich. Egal ob Goal, Reprisal, Reward oder Trigger nutzt man immer den jeweiligen Eintrag ..._MapScriptFunktion und trägt den Funktionsnamen ohne die Aufrufsklammern () in das Dialogfeld ein. Sofern der Funktionsname stimmt und die Funktion auch im globalen Skript vorhanden ist, wird sie entsprechend ihrer Art ausgeführt.

Beispiel für ein ZielBearbeiten

Dieses Custom Goal wird in das globale Skript kopiert. Es prüft in diesem Fall ob alle benannten Zelte zerstört wurden. Solange noch ein Zelt übrig ist, meldet die Funktion nil (Quest läuft weiter). Wenn alle Zelte zerstört sind, wird true (Quest ist erfüllt) zurückgegeben. Fällt der Ritter, meldet das Goal false (Mission verloren).

function Goal_DestroyBanditTents()
    if Logic.KnightGetResurrectionProgress(Logic.GetKnightID(1)) ~= 1 then
        return false
    else
        local noTentExisting = true
        for i=1,12 do
            if IsExisting("tent"..i)then
                noTentExisting = nil
            end
        end
        return noTentExisting
    end
    return nil
end

Beispiel für eine StrafeBearbeiten

Der menschliche Spieler verliert das Spiel (ähnlich Reprisal_Defeat).

function Reprisal_Defeat()
    Logic.PlayerSetGameStateToLost(1)
end

Beispiel für eine BelohnungBearbeiten

Der menschliche Spieler bekommt 1000 Gold als Belohnung

function Reward_Chest()
    AddGood(Goods.G_Gold,1000,1)
end


Beispiel für einen Auslöser

Sobald eine Variable ture wird, startet der Auslöser die Quest. Solange die Variable nil ist passiert nichts.

function Trigger_Briefing1()
    return gvBriefing1End
end

Funktionen für EinsteigerBearbeiten

In dieser Kategorie sind alle Standartfunktionen untergebracht, die auch von Mappern mit wenig Erfahrung genutzt werden können.

Funktionen für FortgeschritteneBearbeiten

In dieser Kategorie sind die Funktionen untergebracht, die etwas Erfahrung im Umgang voraussetzen. Mapper, die noch nicht sehr viel mit dem Skript gearbeitet haben sollten sich erstmal mit den "einfacheren" Dingen auseinandersetzen.

Funktionen für ProfisBearbeiten

Diese Funktionen setzten viel Erfahrung und/oder Wissen im Bereich LUA voraus. Außerdem sollte man DIE SIEDLER - Aufstieg eines Königreiches wie seine Westentasche kennen und einschätzen können, was umsetzbar ist und was nicht.

Störung durch Adblocker erkannt!


Wikia ist eine gebührenfreie Seite, die sich durch Werbung finanziert. Benutzer, die Adblocker einsetzen, haben eine modifizierte Ansicht der Seite.

Wikia ist nicht verfügbar, wenn du weitere Modifikationen in dem Adblocker-Programm gemacht hast. Wenn du sie entfernst, dann wird die Seite ohne Probleme geladen.

Auch bei FANDOM

Zufälliges Wiki